|  | @@ -101,16 +101,13 @@ static int zmq_proto_open(URLContext *h, const char *uri, int flags) | 
														
													
														
															
																|  |  | s->socket = zmq_socket(s->context, ZMQ_PUB); |  |  | s->socket = zmq_socket(s->context, ZMQ_PUB); | 
														
													
														
															
																|  |  | if (!s->socket) { |  |  | if (!s->socket) { | 
														
													
														
															
																|  |  | av_log(h, AV_LOG_ERROR, "Error occured during zmq_socket(): %s\n", ZMQ_STRERROR); |  |  | av_log(h, AV_LOG_ERROR, "Error occured during zmq_socket(): %s\n", ZMQ_STRERROR); | 
														
													
														
															
																|  |  | zmq_ctx_term(s->context); |  |  |  | 
														
													
														
															
																|  |  | return AVERROR_EXTERNAL; |  |  |  | 
														
													
														
															
																|  |  |  |  |  | goto fail_term; | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | ret = zmq_bind(s->socket, uri); |  |  | ret = zmq_bind(s->socket, uri); | 
														
													
														
															
																|  |  | if (ret == -1) { |  |  | if (ret == -1) { | 
														
													
														
															
																|  |  | av_log(h, AV_LOG_ERROR, "Error occured during zmq_bind(): %s\n", ZMQ_STRERROR); |  |  | av_log(h, AV_LOG_ERROR, "Error occured during zmq_bind(): %s\n", ZMQ_STRERROR); | 
														
													
														
															
																|  |  | zmq_close(s->socket); |  |  |  | 
														
													
														
															
																|  |  | zmq_ctx_term(s->context); |  |  |  | 
														
													
														
															
																|  |  | return AVERROR_EXTERNAL; |  |  |  | 
														
													
														
															
																|  |  |  |  |  | goto fail_close; | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
												
													
														
															
																|  | @@ -119,27 +116,28 @@ static int zmq_proto_open(URLContext *h, const char *uri, int flags) | 
														
													
														
															
																|  |  | s->socket = zmq_socket(s->context, ZMQ_SUB); |  |  | s->socket = zmq_socket(s->context, ZMQ_SUB); | 
														
													
														
															
																|  |  | if (!s->socket) { |  |  | if (!s->socket) { | 
														
													
														
															
																|  |  | av_log(h, AV_LOG_ERROR, "Error occured during zmq_socket(): %s\n", ZMQ_STRERROR); |  |  | av_log(h, AV_LOG_ERROR, "Error occured during zmq_socket(): %s\n", ZMQ_STRERROR); | 
														
													
														
															
																|  |  | zmq_ctx_term(s->context); |  |  |  | 
														
													
														
															
																|  |  | return AVERROR_EXTERNAL; |  |  |  | 
														
													
														
															
																|  |  |  |  |  | goto fail_term; | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | ret = zmq_setsockopt(s->socket, ZMQ_SUBSCRIBE, "", 0); |  |  | ret = zmq_setsockopt(s->socket, ZMQ_SUBSCRIBE, "", 0); | 
														
													
														
															
																|  |  | if (ret == -1) { |  |  | if (ret == -1) { | 
														
													
														
															
																|  |  | av_log(h, AV_LOG_ERROR, "Error occured during zmq_setsockopt(): %s\n", ZMQ_STRERROR); |  |  | av_log(h, AV_LOG_ERROR, "Error occured during zmq_setsockopt(): %s\n", ZMQ_STRERROR); | 
														
													
														
															
																|  |  | zmq_close(s->socket); |  |  |  | 
														
													
														
															
																|  |  | zmq_ctx_term(s->context); |  |  |  | 
														
													
														
															
																|  |  | return AVERROR_EXTERNAL; |  |  |  | 
														
													
														
															
																|  |  |  |  |  | goto fail_close; | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | ret = zmq_connect(s->socket, uri); |  |  | ret = zmq_connect(s->socket, uri); | 
														
													
														
															
																|  |  | if (ret == -1) { |  |  | if (ret == -1) { | 
														
													
														
															
																|  |  | av_log(h, AV_LOG_ERROR, "Error occured during zmq_connect(): %s\n", ZMQ_STRERROR); |  |  | av_log(h, AV_LOG_ERROR, "Error occured during zmq_connect(): %s\n", ZMQ_STRERROR); | 
														
													
														
															
																|  |  | zmq_close(s->socket); |  |  |  | 
														
													
														
															
																|  |  | zmq_ctx_term(s->context); |  |  |  | 
														
													
														
															
																|  |  | return AVERROR_EXTERNAL; |  |  |  | 
														
													
														
															
																|  |  |  |  |  | goto fail_close; | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  | return 0; |  |  | return 0; | 
														
													
														
															
																|  |  |  |  |  | 
 | 
														
													
														
															
																|  |  |  |  |  | fail_close: | 
														
													
														
															
																|  |  |  |  |  | zmq_close(s->socket); | 
														
													
														
															
																|  |  |  |  |  | fail_term: | 
														
													
														
															
																|  |  |  |  |  | zmq_ctx_term(s->context); | 
														
													
														
															
																|  |  |  |  |  | return AVERROR_EXTERNAL; | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | static int zmq_proto_write(URLContext *h, const unsigned char *buf, int size) |  |  | static int zmq_proto_write(URLContext *h, const unsigned char *buf, int size) | 
														
													
												
													
														
															
																|  | 
 |