summaryrefslogtreecommitdiffstats
path: root/libavformat
diff options
context:
space:
mode:
authorvectronic <hello.vectronic@gmail.com>2019-10-04 22:56:01 +0100
committerSteven Liu <lq@chinaffmpeg.org>2019-10-08 14:57:44 +0800
commite81c686a95b19966def357ccb113bd4e5e269772 (patch)
tree3b5beec6c06c7e7317318aab108d8800f72a9e37 /libavformat
parentafab93ccd097169b2a598768af4a9273332f3619 (diff)
downloadffmpeg-streaming-e81c686a95b19966def357ccb113bd4e5e269772.zip
ffmpeg-streaming-e81c686a95b19966def357ccb113bd4e5e269772.tar.gz
avformat/http: add ff_http_do_new_request2 for options
add ff_http_do_new_request2() which supports options to be applied to HTTPContext after initialisation with the new uri Signed-off-by: Steven Liu <lq@onvideo.cn> Signed-off-by: vectronic <hello.vectronic@gmail.com>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/http.c8
-rw-r--r--libavformat/http.h13
2 files changed, 20 insertions, 1 deletions
diff --git a/libavformat/http.c b/libavformat/http.c
index 71dd6c2..85cbd06 100644
--- a/libavformat/http.c
+++ b/libavformat/http.c
@@ -320,8 +320,11 @@ int ff_http_get_shutdown_status(URLContext *h)
return ret;
}
+int ff_http_do_new_request(URLContext *h, const char *uri) {
+ return ff_http_do_new_request2(h, uri, NULL);
+}
-int ff_http_do_new_request(URLContext *h, const char *uri)
+int ff_http_do_new_request2(URLContext *h, const char *uri, AVDictionary **opts)
{
HTTPContext *s = h->priv_data;
AVDictionary *options = NULL;
@@ -366,6 +369,9 @@ int ff_http_do_new_request(URLContext *h, const char *uri)
if (!s->location)
return AVERROR(ENOMEM);
+ if ((ret = av_opt_set_dict(s, opts)) < 0)
+ return ret;
+
av_log(s, AV_LOG_INFO, "Opening \'%s\' for %s\n", uri, h->flags & AVIO_FLAG_WRITE ? "writing" : "reading");
ret = http_open_cnx(h, &options);
av_dict_free(&options);
diff --git a/libavformat/http.h b/libavformat/http.h
index 662bd2c..5557ce9 100644
--- a/libavformat/http.h
+++ b/libavformat/http.h
@@ -56,6 +56,19 @@ int ff_http_get_shutdown_status(URLContext *h);
*/
int ff_http_do_new_request(URLContext *h, const char *uri);
+/**
+ * Send a new HTTP request, reusing the old connection.
+ *
+ * @param h pointer to the resource
+ * @param uri uri used to perform the request
+ * @param options A dictionary filled with HTTP options. On return
+ * this parameter will be destroyed and replaced with a dict containing options
+ * that were not found. May be NULL.
+ * @return a negative value if an error condition occurred, 0
+ * otherwise
+ */
+int ff_http_do_new_request2(URLContext *h, const char *uri, AVDictionary **options);
+
int ff_http_averror(int status_code, int default_averror);
#endif /* AVFORMAT_HTTP_H */
OpenPOWER on IntegriCloud