From 2308b6c19a74c0b1af58c12ab379976b54bc83a2 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 28 Apr 2010 20:00:23 +0000 Subject: [PATCH] Add version to AVClass so we can add to and use fields of AVClass without ABI issues. Originally committed as revision 22987 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/options.c | 2 +- libavcodec/resample.c | 2 +- libavfilter/avfilter.c | 4 +++- libavformat/avio.c | 2 +- libavformat/options.c | 2 +- libavutil/avutil.h | 2 +- libavutil/log.h | 8 ++++++++ 7 files changed, 16 insertions(+), 6 deletions(-) diff --git a/libavcodec/options.c b/libavcodec/options.c index 65305224fe..6835352c30 100644 --- a/libavcodec/options.c +++ b/libavcodec/options.c @@ -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; diff --git a/libavcodec/resample.c b/libavcodec/resample.c index dce88abd43..b008180fe5 100644 --- a/libavcodec/resample.c +++ b/libavcodec/resample.c @@ -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; diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index feba3d9c75..3ed59d7cc2 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -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) diff --git a/libavformat/avio.c b/libavformat/avio.c index 3fb64d149c..48399d081f 100644 --- a/libavformat/avio.c +++ b/libavformat/avio.c @@ -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 diff --git a/libavformat/options.c b/libavformat/options.c index 50daba9309..85d793ec09 100644 --- a/libavformat/options.c +++ b/libavformat/options.c @@ -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) { diff --git a/libavutil/avutil.h b/libavutil/avutil.h index b31eb0d6ab..b2c49283b0 100644 --- a/libavutil/avutil.h +++ b/libavutil/avutil.h @@ -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, \ diff --git a/libavutil/log.h b/libavutil/log.h index b0a1493607..566440f854 100644 --- a/libavutil/log.h +++ b/libavutil/log.h @@ -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 */