[FFmpeg-cvslog] avformat/http: add ff_http_get_shutdown_status api for check the status of shutdown

Steven Liu git at videolan.org
Fri Sep 6 05:26:35 EEST 2019


ffmpeg | branch: master | Steven Liu <lq at chinaffmpeg.org> | Fri Aug 30 07:14:27 2019 +0800| [6c593fee6335b8dda62eaa54d40504aa366b0696] | committer: Steven Liu

avformat/http: add ff_http_get_shutdown_status api for check the status of shutdown

this function is used to get the previous shutdown status
when reusing the old connection in block mode.

Signed-off-by: Steven Liu <lq at chinaffmpeg.org>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6c593fee6335b8dda62eaa54d40504aa366b0696
---

 libavformat/http.c | 16 ++++++++++++++++
 libavformat/http.h |  9 +++++++++
 2 files changed, 25 insertions(+)

diff --git a/libavformat/http.c b/libavformat/http.c
index 579debcd35..71dd6c2b1f 100644
--- a/libavformat/http.c
+++ b/libavformat/http.c
@@ -304,6 +304,22 @@ fail:
         return location_changed;
     return ff_http_averror(s->http_code, AVERROR(EIO));
 }
+int ff_http_get_shutdown_status(URLContext *h)
+{
+    int ret = 0;
+    HTTPContext *s = h->priv_data;
+
+    /* flush the receive buffer when it is write only mode */
+    char buf[1024];
+    int read_ret;
+    read_ret = ffurl_read(s->hd, buf, sizeof(buf));
+    if (read_ret < 0) {
+        ret = read_ret;
+    }
+
+    return ret;
+}
+
 
 int ff_http_do_new_request(URLContext *h, const char *uri)
 {
diff --git a/libavformat/http.h b/libavformat/http.h
index 7d02713e31..662bd2cab6 100644
--- a/libavformat/http.h
+++ b/libavformat/http.h
@@ -38,6 +38,15 @@
 void ff_http_init_auth_state(URLContext *dest, const URLContext *src);
 
 /**
+ * Get the HTTP shutdown response status, be used after http_shutdown.
+ *
+ * @param h pointer to the resource
+ * @return a negative value if an error condition occurred, 0
+ * otherwise
+ */
+int ff_http_get_shutdown_status(URLContext *h);
+
+/**
  * Send a new HTTP request, reusing the old connection.
  *
  * @param h pointer to the resource



More information about the ffmpeg-cvslog mailing list