diff --git a/libavcodec/options.c b/libavcodec/options.c index 098778aa237a65bdf4618acf0d317f269112b0d6..7d14beba6a2607cf71f14651018486b83f4323d6 100644 --- a/libavcodec/options.c +++ b/libavcodec/options.c @@ -519,19 +519,12 @@ static const AVOption options[]={ static const AVClass av_codec_context_class = { "AVCodecContext", context_to_name, options, LIBAVUTIL_VERSION_INT, OFFSET(log_level_offset), .opt_find = opt_find}; void avcodec_get_context_defaults2(AVCodecContext *s, enum AVMediaType codec_type){ - int flags=0; memset(s, 0, sizeof(AVCodecContext)); s->av_class= &av_codec_context_class; s->codec_type = codec_type; - if(codec_type == AVMEDIA_TYPE_AUDIO) - flags= AV_OPT_FLAG_AUDIO_PARAM; - else if(codec_type == AVMEDIA_TYPE_VIDEO) - flags= AV_OPT_FLAG_VIDEO_PARAM; - else if(codec_type == AVMEDIA_TYPE_SUBTITLE) - flags= AV_OPT_FLAG_SUBTITLE_PARAM; - av_opt_set_defaults2(s, flags, flags); + av_opt_set_defaults(s); s->time_base= (AVRational){0,1}; s->get_buffer= avcodec_default_get_buffer; diff --git a/libavfilter/vf_drawtext.c b/libavfilter/vf_drawtext.c index ed4b1003d8182664870acc34392976edef9e019b..3e16baf87e22eac257f1b98a4e7897e916d19573 100644 --- a/libavfilter/vf_drawtext.c +++ b/libavfilter/vf_drawtext.c @@ -223,7 +223,7 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) Glyph *glyph; dtext->class = &drawtext_class; - av_opt_set_defaults2(dtext, 0, 0); + av_opt_set_defaults(dtext); dtext->fontcolor_string = av_strdup("black"); dtext->boxcolor_string = av_strdup("white"); dtext->shadowcolor_string = av_strdup("black"); diff --git a/libavfilter/vsrc_movie.c b/libavfilter/vsrc_movie.c index b018ba7418138e4fe63a598f0ecb24b4b84890ad..a5d5572f483253271a24541a671c60becdd95dd9 100644 --- a/libavfilter/vsrc_movie.c +++ b/libavfilter/vsrc_movie.c @@ -164,7 +164,7 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) MovieContext *movie = ctx->priv; int ret; movie->class = &movie_class; - av_opt_set_defaults2(movie, 0, 0); + av_opt_set_defaults(movie); if (args) movie->file_name = av_get_token(&args, ":"); diff --git a/libavutil/avutil.h b/libavutil/avutil.h index 24594107bc3cdaf256484f5894175ed2de21d0ec..3f9267908a420bec637c4f279b5d96a027083d40 100644 --- a/libavutil/avutil.h +++ b/libavutil/avutil.h @@ -66,6 +66,9 @@ #ifndef FF_API_AV_FIFO_PEEK #define FF_API_AV_FIFO_PEEK (LIBAVUTIL_VERSION_MAJOR < 52) #endif +#ifndef FF_API_OLD_AVOPTIONS +#define FF_API_OLD_AVOPTIONS (LIBAVUTIL_VERSION_MAJOR < 52) +#endif /** * Return the LIBAVUTIL_VERSION_INT constant. diff --git a/libavutil/opt.c b/libavutil/opt.c index 0dd58a7f14397b7c3d769121a865c4a1ad19f8b2..160da8d75681ce2f14691f9d3a636e8319d45c56 100644 --- a/libavutil/opt.c +++ b/libavutil/opt.c @@ -414,12 +414,21 @@ int av_opt_show2(void *obj, void *av_log_obj, int req_flags, int rej_flags) return 0; } +void av_opt_set_defaults(void *s) +{ +#if FF_API_OLD_AVOPTIONS + av_opt_set_defaults2(s, 0, 0); +} + void av_opt_set_defaults2(void *s, int mask, int flags) { +#endif const AVOption *opt = NULL; while ((opt = av_next_option(s, opt)) != NULL) { +#if FF_API_OLD_AVOPTIONS if ((opt->flags & mask) != flags) continue; +#endif switch (opt->type) { case FF_OPT_TYPE_CONST: /* Nothing to be done here */ @@ -461,11 +470,6 @@ void av_opt_set_defaults2(void *s, int mask, int flags) } } -void av_opt_set_defaults(void *s) -{ - av_opt_set_defaults2(s, 0, 0); -} - /** * Store the value in the field in ctx that is named like key. * ctx must be an AVClass context, storing is done using AVOptions. @@ -648,7 +652,7 @@ int main(void) }; test_ctx.class = &test_class; - av_opt_set_defaults2(&test_ctx, 0, 0); + av_opt_set_defaults(&test_ctx); test_ctx.string = av_strdup("default"); av_log_set_level(AV_LOG_DEBUG); diff --git a/libavutil/opt.h b/libavutil/opt.h index f8eea6bc2a8c52e9f5af10f8dbdbbbad8eff2b5c..c6a59196be2e9361ce015e1942e96933f3726f4f 100644 --- a/libavutil/opt.h +++ b/libavutil/opt.h @@ -166,7 +166,11 @@ int av_opt_show2(void *obj, void *av_log_obj, int req_flags, int rej_flags); * @param s an AVOption-enabled struct (its first member must be a pointer to AVClass) */ void av_opt_set_defaults(void *s); + +#if FF_API_OLD_AVOPTIONS +attribute_deprecated void av_opt_set_defaults2(void *s, int mask, int flags); +#endif /** * Parse the key/value pairs list in opts. For each key/value pair