summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-05-18 13:00:50 +0200
committerMichael Niedermayer <michaelni@gmx.at>2014-05-18 13:00:50 +0200
commit68c05185e229b093bf5c2236c2883cbc296ea938 (patch)
treea9be3ada3ccf90ecf227295f5d60f314aa176d9c
parentff17d8b56ec87fe1516ddd49b0bdea81f22904af (diff)
parentfd056029f45a9f6d213d9fce8165632042511d4f (diff)
downloadffmpeg-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/APIchanges4
-rw-r--r--libavcodec/avcodec.h11
-rw-r--r--libavcodec/options.c15
-rw-r--r--libavcodec/version.h2
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, \
OpenPOWER on IntegriCloud