Module: libav Branch: master Commit: 32d545e0a4686e919319bf472725ea0162b72720
Author: Samuel Pitoiset <samuel.pitoi...@gmail.com> Committer: Martin Storsjö <mar...@martin.st> Date: Mon May 21 11:24:54 2012 +0200 avio: Add a function for signalling end of reading/writing Signed-off-by: Martin Storsjö <mar...@martin.st> --- libavformat/avio.c | 7 +++++++ libavformat/url.h | 13 +++++++++++++ 2 files changed, 20 insertions(+), 0 deletions(-) diff --git a/libavformat/avio.c b/libavformat/avio.c index ba25abe..371500e 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 bf8b6ed..0f0de78 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 _______________________________________________ libav-commits mailing list libav-commits@libav.org https://lists.libav.org/mailman/listinfo/libav-commits