diff options
author | Samuel Pitoiset | 2012-05-21 11:24:54 +0200 |
---|---|---|
committer | Martin Storsjö | 2012-05-22 23:16:41 +0300 |
commit | 32d545e0a4686e919319bf472725ea0162b72720 (patch) | |
tree | ec46d42e83646b1a2518be610e46a0388d79c157 | |
parent | 0ce4a627c9b8bcd2c23d05ada3e4858684cb8127 (diff) |
avio: Add a function for signalling end of reading/writing
Signed-off-by: Martin Storsjö <martin@martin.st>
-rw-r--r-- | libavformat/avio.c | 7 | ||||
-rw-r--r-- | libavformat/url.h | 13 |
2 files changed, 20 insertions, 0 deletions
diff --git a/libavformat/avio.c b/libavformat/avio.c index ba25abea38..371500e8a6 100644 --- a/libavformat/avio.c +++ b/libavformat/avio.c @@ -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; diff --git a/libavformat/url.h b/libavformat/url.h index bf8b6ed6e7..0f0de7881c 100644 --- a/libavformat/url.h +++ b/libavformat/url.h @@ -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 |