From b522000e9b2ca36fe5b2751096b9a5f5ed8f87e6 Mon Sep 17 00:00:00 2001 From: Luca Barbato Date: Wed, 10 Oct 2012 01:39:06 +0200 Subject: avio: introduce avio_closep --- libavformat/avio.h | 15 +++++++++++++++ libavformat/aviobuf.c | 7 +++++++ libavformat/version.h | 4 ++-- 3 files changed, 24 insertions(+), 2 deletions(-) (limited to 'libavformat') diff --git a/libavformat/avio.h b/libavformat/avio.h index 96e8e1ce77..b6d3cb33b2 100644 --- a/libavformat/avio.h +++ b/libavformat/avio.h @@ -353,9 +353,24 @@ int avio_open2(AVIOContext **s, const char *url, int flags, * resource. * * @return 0 on success, an AVERROR < 0 on error. + * @see avio_closep */ int avio_close(AVIOContext *s); +/** + * Close the resource accessed by the AVIOContext *s, free it + * and set the pointer pointing to it to NULL. + * This function can only be used if s was opened by avio_open(). + * + * The internal buffer is automatically flushed before closing the + * resource. + * + * @return 0 on success, an AVERROR < 0 on error. + * @see avio_close + */ +int avio_closep(AVIOContext **s); + + /** * Open a write only memory stream. * diff --git a/libavformat/aviobuf.c b/libavformat/aviobuf.c index 7dc66e25a6..da836c6fd5 100644 --- a/libavformat/aviobuf.c +++ b/libavformat/aviobuf.c @@ -768,6 +768,13 @@ int avio_close(AVIOContext *s) return ffurl_close(h); } +int avio_closep(AVIOContext **s) +{ + int ret = avio_close(*s); + *s = NULL; + return ret; +} + int avio_printf(AVIOContext *s, const char *fmt, ...) { va_list ap; diff --git a/libavformat/version.h b/libavformat/version.h index 4a4cfe3283..79dc7d1439 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -30,8 +30,8 @@ #include "libavutil/avutil.h" #define LIBAVFORMAT_VERSION_MAJOR 54 -#define LIBAVFORMAT_VERSION_MINOR 17 -#define LIBAVFORMAT_VERSION_MICRO 3 +#define LIBAVFORMAT_VERSION_MINOR 18 +#define LIBAVFORMAT_VERSION_MICRO 0 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ LIBAVFORMAT_VERSION_MINOR, \ -- cgit v1.2.3