aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHendrik Leppkes <h.leppkes@gmail.com>2016-06-26 14:34:53 +0200
committerHendrik Leppkes <h.leppkes@gmail.com>2016-06-26 14:34:53 +0200
commit69c38d64d745c678f2f596f5932a5121b7aafc07 (patch)
tree35a4f898c2b5b68474ed3c0a90a3d7d8cdb6af0f
parent6988cf2969d777ebac84d241123883357375dc6c (diff)
parent04fc8e24a091ed1d77d7a3c0cbcfe60baec19a9f (diff)
downloadffmpeg-69c38d64d745c678f2f596f5932a5121b7aafc07.tar.gz
Merge commit '04fc8e24a091ed1d77d7a3c0cbcfe60baec19a9f'
* commit '04fc8e24a091ed1d77d7a3c0cbcfe60baec19a9f': lavc: deprecate avcodec_get_context_defaults3() Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
-rw-r--r--libavcodec/avcodec.h23
-rw-r--r--libavcodec/options.c11
-rw-r--r--libavcodec/version.h3
3 files changed, 21 insertions, 16 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 6c1d54b40c..5f3c4b3015 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -4118,7 +4118,6 @@ void avcodec_register_all(void);
* important mainly for encoders, e.g. libx264).
*
* @return An AVCodecContext filled with default values or NULL on failure.
- * @see avcodec_get_context_defaults
*/
AVCodecContext *avcodec_alloc_context3(const AVCodec *codec);
@@ -4128,16 +4127,14 @@ AVCodecContext *avcodec_alloc_context3(const AVCodec *codec);
*/
void avcodec_free_context(AVCodecContext **avctx);
+#if FF_API_GET_CONTEXT_DEFAULTS
/**
- * Set the fields of the given AVCodecContext to default values corresponding
- * to the given codec (defaults may be codec-dependent).
- *
- * Do not call this function if a non-NULL codec has been passed
- * to avcodec_alloc_context3() that allocated this AVCodecContext.
- * If codec is non-NULL, it is illegal to call avcodec_open2() with a
- * different codec on this AVCodecContext.
+ * @deprecated This function should not be used, as closing and opening a codec
+ * context multiple time is not supported. A new codec context should be
+ * allocated for each new use.
*/
int avcodec_get_context_defaults3(AVCodecContext *s, const AVCodec *codec);
+#endif
/**
* Get the AVClass for AVCodecContext. It can be used in combination with
@@ -4256,9 +4253,8 @@ int avcodec_parameters_to_context(AVCodecContext *codec,
* @param avctx The context to initialize.
* @param codec The codec to open this context for. If a non-NULL codec has been
* previously passed to avcodec_alloc_context3() or
- * avcodec_get_context_defaults3() for this context, then this
- * parameter MUST be either NULL or equal to the previously passed
- * codec.
+ * for this context, then this parameter MUST be either NULL or
+ * equal to the previously passed codec.
* @param options A dictionary filled with AVCodecContext and codec-private options.
* On return this object will be filled with options that were not found.
*
@@ -4273,9 +4269,8 @@ int avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **op
* (but not the AVCodecContext itself).
*
* Calling this function on an AVCodecContext that hasn't been opened will free
- * the codec-specific data allocated in avcodec_alloc_context3() /
- * avcodec_get_context_defaults3() with a non-NULL codec. Subsequent calls will
- * do nothing.
+ * the codec-specific data allocated in avcodec_alloc_context3() with a non-NULL
+ * codec. Subsequent calls will do nothing.
*/
int avcodec_close(AVCodecContext *avctx);
diff --git a/libavcodec/options.c b/libavcodec/options.c
index a82f3759a3..10dc0558c6 100644
--- a/libavcodec/options.c
+++ b/libavcodec/options.c
@@ -89,7 +89,7 @@ static const AVClass av_codec_context_class = {
.get_category = get_category,
};
-int avcodec_get_context_defaults3(AVCodecContext *s, const AVCodec *codec)
+static int init_context_defaults(AVCodecContext *s, const AVCodec *codec)
{
int flags=0;
memset(s, 0, sizeof(AVCodecContext));
@@ -146,6 +146,13 @@ int avcodec_get_context_defaults3(AVCodecContext *s, const AVCodec *codec)
return 0;
}
+#if FF_API_GET_CONTEXT_DEFAULTS
+int avcodec_get_context_defaults3(AVCodecContext *s, const AVCodec *codec)
+{
+ return init_context_defaults(s, codec);
+}
+#endif
+
AVCodecContext *avcodec_alloc_context3(const AVCodec *codec)
{
AVCodecContext *avctx= av_malloc(sizeof(AVCodecContext));
@@ -153,7 +160,7 @@ AVCodecContext *avcodec_alloc_context3(const AVCodec *codec)
if (!avctx)
return NULL;
- if(avcodec_get_context_defaults3(avctx, codec) < 0){
+ if (init_context_defaults(avctx, codec) < 0) {
av_free(avctx);
return NULL;
}
diff --git a/libavcodec/version.h b/libavcodec/version.h
index b3dc8e8418..6ce6fc7715 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -220,6 +220,9 @@
#ifndef FF_API_COPY_CONTEXT
#define FF_API_COPY_CONTEXT (LIBAVCODEC_VERSION_MAJOR < 59)
#endif
+#ifndef FF_API_GET_CONTEXT_DEFAULTS
+#define FF_API_GET_CONTEXT_DEFAULTS (LIBAVCODEC_VERSION_MAJOR < 59)
+#endif
#ifndef FF_API_NVENC_OLD_NAME
#define FF_API_NVENC_OLD_NAME (LIBAVCODEC_VERSION_MAJOR < 59)
#endif