diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-05-18 13:00:50 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-05-18 13:00:50 +0200 |
commit | 68c05185e229b093bf5c2236c2883cbc296ea938 (patch) | |
tree | a9be3ada3ccf90ecf227295f5d60f314aa176d9c | |
parent | ff17d8b56ec87fe1516ddd49b0bdea81f22904af (diff) | |
parent | fd056029f45a9f6d213d9fce8165632042511d4f (diff) | |
download | ffmpeg-streaming-68c05185e229b093bf5c2236c2883cbc296ea938.zip ffmpeg-streaming-68c05185e229b093bf5c2236c2883cbc296ea938.tar.gz |
Merge commit 'fd056029f45a9f6d213d9fce8165632042511d4f'
* commit 'fd056029f45a9f6d213d9fce8165632042511d4f':
lavc: add avcodec_free_context().
Conflicts:
doc/APIchanges
libavcodec/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | doc/APIchanges | 4 | ||||
-rw-r--r-- | libavcodec/avcodec.h | 11 | ||||
-rw-r--r-- | libavcodec/options.c | 15 | ||||
-rw-r--r-- | libavcodec/version.h | 2 |
4 files changed, 28 insertions, 4 deletions
diff --git a/doc/APIchanges b/doc/APIchanges index 83c08ba..6ea235e 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -15,6 +15,10 @@ libavutil: 2012-10-22 API changes, most recent first: +2014-04-xx - xxxxxxx - lavc 55.52.0 - avcodec.h + Add avcodec_free_context(). From now on it should be used for freeing + AVCodecContext. + 2014-05-xx - xxxxxxx - lavu 52.84.100 - time.h Add av_gettime_relative() av_gettime_relative_is_monotonic() diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index 9a24c96..45a9a7d 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -3455,9 +3455,8 @@ void avcodec_register(AVCodec *codec); void avcodec_register_all(void); /** - * Allocate an AVCodecContext and set its fields to default values. The - * resulting struct can be deallocated by calling avcodec_close() on it followed - * by av_free(). + * Allocate an AVCodecContext and set its fields to default values. The + * resulting struct should be freed with avcodec_free_context(). * * @param codec if non-NULL, allocate private data and initialize defaults * for the given codec. It is illegal to then call avcodec_open2() @@ -3472,6 +3471,12 @@ void avcodec_register_all(void); AVCodecContext *avcodec_alloc_context3(const AVCodec *codec); /** + * Free the codec context and everything associated with it and write NULL to + * the provided pointer. + */ +void avcodec_free_context(AVCodecContext **avctx); + +/** * Set the fields of the given AVCodecContext to default values corresponding * to the given codec (defaults may be codec-dependent). * diff --git a/libavcodec/options.c b/libavcodec/options.c index b31483b..694e1c3 100644 --- a/libavcodec/options.c +++ b/libavcodec/options.c @@ -154,6 +154,21 @@ AVCodecContext *avcodec_alloc_context3(const AVCodec *codec) return avctx; } +void avcodec_free_context(AVCodecContext **pavctx) +{ + AVCodecContext *avctx = *pavctx; + + if (!avctx) + return; + + avcodec_close(avctx); + + av_freep(&avctx->extradata); + av_freep(&avctx->subtitle_header); + + av_freep(pavctx); +} + int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src) { const AVCodec *orig_codec = dest->codec; diff --git a/libavcodec/version.h b/libavcodec/version.h index 680c060..4e344a4 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -29,7 +29,7 @@ #include "libavutil/version.h" #define LIBAVCODEC_VERSION_MAJOR 55 -#define LIBAVCODEC_VERSION_MINOR 62 +#define LIBAVCODEC_VERSION_MINOR 63 #define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ |