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
This commit is contained in:
Michael Niedermayer 2010-04-28 20:00:23 +00:00
parent b01dba14f3
commit 2308b6c19a
7 changed files with 16 additions and 6 deletions

View 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;

View 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;

View 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)

View 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

View 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)
{

View 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, \

View 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 */