aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Liu <lq@chinaffmpeg.org>2019-04-15 15:24:56 +0800
committerSteven Liu <lq@chinaffmpeg.org>2019-04-15 15:24:56 +0800
commitf502bd5432c9d7a34392ec3147bc5b5e3a868d9c (patch)
tree6ccfae460708530c099a25e17ed12b1c2b71e370
parentf9840cd2b501fe7956155542be5afb4432530903 (diff)
downloadffmpeg-f502bd5432c9d7a34392ec3147bc5b5e3a868d9c.tar.gz
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 <lq@onvideo.cn> Signed-off-by: Jun Li <junli1026@gmail.com>
-rw-r--r--libavformat/rtsp.c10
1 files 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 */