OSDN Git Service

Add version to AVClass so we can add to and use fields of AVClass without ABI issues.
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 28 Apr 2010 20:00:23 +0000 (20:00 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 28 Apr 2010 20:00:23 +0000 (20:00 +0000)
Originally committed as revision 22987 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/options.c
libavcodec/resample.c
libavfilter/avfilter.c
libavformat/avio.c
libavformat/options.c
libavutil/avutil.h
libavutil/log.h

index 6530522..6835352 100644 (file)
@@ -421,7 +421,7 @@ static const AVOption options[]={
 #undef D
 #undef DEFAULT
 
-static const AVClass av_codec_context_class = { "AVCodecContext", context_to_name, options };
+static const AVClass av_codec_context_class = { "AVCodecContext", context_to_name, options, LIBAVUTIL_VERSION_INT };
 
 void avcodec_get_context_defaults2(AVCodecContext *s, enum AVMediaType codec_type){
     int flags=0;
index dce88ab..b008180 100644 (file)
@@ -36,7 +36,7 @@ static const char *context_to_name(void *ptr)
 }
 
 static const AVOption options[] = {{NULL}};
-static const AVClass audioresample_context_class = { "ReSampleContext", context_to_name, options };
+static const AVClass audioresample_context_class = { "ReSampleContext", context_to_name, options, LIBAVUTIL_VERSION_INT };
 
 struct ReSampleContext {
     struct AVResampleContext *resample_context;
index feba3d9..3ed59d7 100644 (file)
@@ -385,7 +385,9 @@ static const char *filter_name(void *p)
 
 static const AVClass avfilter_class = {
     "AVFilter",
-    filter_name
+    filter_name,
+    NULL,
+    LIBAVUTIL_VERSION_INT,
 };
 
 AVFilterContext *avfilter_open(AVFilter *filter, const char *inst_name)
index 3fb64d1..48399d0 100644 (file)
@@ -41,7 +41,7 @@ static const char *urlcontext_to_name(void *ptr)
 }
 static const AVOption options[] = {{NULL}};
 static const AVClass urlcontext_class =
-        { "URLContext", urlcontext_to_name, options };
+        { "URLContext", urlcontext_to_name, options, LIBAVUTIL_VERSION_INT };
 /*@}*/
 #endif
 
index 50daba9..85d793e 100644 (file)
@@ -66,7 +66,7 @@ static const AVOption options[]={
 #undef D
 #undef DEFAULT
 
-static const AVClass av_format_context_class = { "AVFormatContext", format_to_name, options };
+static const AVClass av_format_context_class = { "AVFormatContext", format_to_name, options, LIBAVUTIL_VERSION_INT };
 
 static void avformat_get_context_defaults(AVFormatContext *s)
 {
index b31eb0d..b2c4928 100644 (file)
@@ -40,7 +40,7 @@
 #define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c)
 
 #define LIBAVUTIL_VERSION_MAJOR 50
-#define LIBAVUTIL_VERSION_MINOR 14
+#define LIBAVUTIL_VERSION_MINOR 15
 #define LIBAVUTIL_VERSION_MICRO  0
 
 #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
index b0a1493..566440f 100644 (file)
@@ -48,6 +48,14 @@ typedef struct {
      * @see av_set_default_options()
      */
     const struct AVOption *option;
+
+    /**
+     * LIBAVUTIL_VERSION with which this structure was created.
+     * This is used to allow fields to be added without requireing major
+     * version bumps everywhere.
+     */
+
+    int version;
 } AVClass;
 
 /* av_log API */