OSDN Git Service

avio: Add a function for signalling end of reading/writing
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 21 May 2012 09:24:54 +0000 (11:24 +0200)
committerMartin Storsjö <martin@martin.st>
Tue, 22 May 2012 20:16:41 +0000 (23:16 +0300)
Signed-off-by: Martin Storsjö <martin@martin.st>
libavformat/avio.c
libavformat/url.h

index ba25abe..371500e 100644 (file)
@@ -345,6 +345,13 @@ int ffurl_get_file_handle(URLContext *h)
     return h->prot->url_get_file_handle(h);
 }
 
+int ffurl_shutdown(URLContext *h, int flags)
+{
+    if (!h->prot->url_shutdown)
+        return AVERROR(EINVAL);
+    return h->prot->url_shutdown(h, flags);
+}
+
 int ff_check_interrupt(AVIOInterruptCB *cb)
 {
     int ret;
index bf8b6ed..0f0de78 100644 (file)
@@ -81,6 +81,7 @@ typedef struct URLProtocol {
     int64_t (*url_read_seek)(URLContext *h, int stream_index,
                              int64_t timestamp, int flags);
     int (*url_get_file_handle)(URLContext *h);
+    int (*url_shutdown)(URLContext *h, int flags);
     int priv_data_size;
     const AVClass *priv_data_class;
     int flags;
@@ -201,6 +202,18 @@ int64_t ffurl_size(URLContext *h);
 int ffurl_get_file_handle(URLContext *h);
 
 /**
+ * Signal the URLContext that we are done reading or writing the stream.
+ *
+ * @param h pointer to the resource
+ * @param flags flags which control how the resource indicated by url
+ * is to be shutdown
+ *
+ * @return a negative value if an error condition occurred, 0
+ * otherwise
+ */
+int ffurl_shutdown(URLContext *h, int flags);
+
+/**
  * Register the URLProtocol protocol.
  *
  * @param size the size of the URLProtocol struct referenced