On Thu, 9 Oct 2014, Luca Barbato wrote:
Make tcp and tls urls near-interchangeable. --- libavformat/tls.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-)diff --git a/libavformat/tls.c b/libavformat/tls.c index 7c78fda..817aedc 100644 --- a/libavformat/tls.c +++ b/libavformat/tls.c @@ -142,6 +142,7 @@ static int tls_open(URLContext *h, const char *uri, int flags) TLSContext *c = h->priv_data; int ret; int port; + const char *p; char buf[200], host[200], opts[50] = ""; int numerichost = 0; struct addrinfo hints = { 0 }, *ai = NULL; @@ -154,7 +155,17 @@ static int tls_open(URLContext *h, const char *uri, int flags) snprintf(opts, sizeof(opts), "?listen=1"); av_url_split(NULL, 0, NULL, 0, host, sizeof(host), &port, NULL, 0, uri); - ff_url_join(buf, sizeof(buf), "tcp", NULL, host, port, "%s", opts); + + p = strchr(uri, '?'); + + if (!p) { + p = opts; + } else { + if (av_find_info_tag(opts, sizeof(opts), "listen", p)) + c->listen = 1; + } + + ff_url_join(buf, sizeof(buf), "tcp", NULL, host, port, "%s", p); hints.ai_flags = AI_NUMERICHOST; if (!getaddrinfo(host, NULL, &hints, &ai)) { -- 2.1.0
Probably ok. I can see how this helps for the rtsps patchset even though we probably generally want to move towards avoptions.
For the future (note to self) we might also want to use url_open2 here, so we can pass on other AVOptions from tls to tcp.
// Martin _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
