From 1ae8a1073ba8a3ceb9f51d9350785c27530aa469 Mon Sep 17 00:00:00 2001 From: "Signed-off-by: Jun Li" Date: Mon, 15 Apr 2019 19:44:11 +0800 Subject: [PATCH] lavf/rtsp.c: Fix stimeout option not applied on http tunnel stimeout option is already used in tcp transport, since http is based on tcp, pass the option to http for tunneling case. Reviewed-by: Steven Liu Signed-off-by: Jun Li --- libavformat/rtsp.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index 033095905d..8349840c96 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -1744,6 +1744,9 @@ redirect: char httpname[1024]; char sessioncookie[17]; char headers[1024]; + AVDictionary *options = NULL; + + av_dict_set_int(&options, "timeout", rt->stimeout, 0); ff_url_join(httpname, sizeof(httpname), https_tunnel ? "https" : "http", auth, host, port, "%s", path); snprintf(sessioncookie, sizeof(sessioncookie), "%08x%08x", @@ -1774,7 +1777,8 @@ redirect: } /* complete the connection */ - if (ffurl_connect(rt->rtsp_hd, NULL)) { + if (ffurl_connect(rt->rtsp_hd, &options)) { + av_dict_free(&options); err = AVERROR(EIO); goto fail; } @@ -1818,10 +1822,12 @@ redirect: ff_http_init_auth_state(rt->rtsp_hd_out, rt->rtsp_hd); /* complete the connection */ - if (ffurl_connect(rt->rtsp_hd_out, NULL)) { + if (ffurl_connect(rt->rtsp_hd_out, &options)) { + av_dict_free(&options); err = AVERROR(EIO); goto fail; } + av_dict_free(&options); } else { int ret; /* open the tcp connection */