diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c index edde33c0ad..8c92b88a9d 100644 --- a/libavfilter/avfilter.c +++ b/libavfilter/avfilter.c @@ -670,111 +670,51 @@ static int process_options(AVFilterContext *ctx, AVDictionary **options, return count; } +// TODO: drop me +static const char *const filters_left_to_update[] = { + "abuffer" + "aconvert", + "aevalsrc", + "amerge", + "anullsrc", + "aresample", + "asendcmd", + "asetnsamples", + "astreamsync", + "atempo", + "bbox", + "blackdetect", + "buffer" + "flite", + "hue", + "mp", + "pan", + "removelogo", + "scale", + "sendcmd", + "setdar", + "setsar", + "showwaves", + "smptebars", +}; + +static int filter_use_deprecated_init(const char *name) +{ + int i; + for (i = 0; i < FF_ARRAY_ELEMS(filters_left_to_update); i++) + if (!strcmp(name, filters_left_to_update[i])) + return 1; + return 0; +} + int avfilter_init_filter(AVFilterContext *filter, const char *args, void *opaque) { AVDictionary *options = NULL; AVDictionaryEntry *e; int ret=0; - int anton_options = - !strcmp(filter->filter->name, "allpass" ) || - !strcmp(filter->filter->name, "afade" ) || - !strcmp(filter->filter->name, "aformat") || - !strcmp(filter->filter->name, "amix" ) || - !strcmp(filter->filter->name, "apad" ) || - !strcmp(filter->filter->name, "aphaser" ) || - !strcmp(filter->filter->name, "asplit" ) || - !strcmp(filter->filter->name, "ass") || - !strcmp(filter->filter->name, "asyncts" ) || - !strcmp(filter->filter->name, "bandpass" ) || - !strcmp(filter->filter->name, "bandreject") || - !strcmp(filter->filter->name, "bass" ) || - !strcmp(filter->filter->name, "biquad" ) || - !strcmp(filter->filter->name, "blackframe") || - !strcmp(filter->filter->name, "blend" ) || - !strcmp(filter->filter->name, "boxblur" ) || - !strcmp(filter->filter->name, "cellauto") || - !strcmp(filter->filter->name, "channelmap") || - !strcmp(filter->filter->name, "channelsplit") || - !strcmp(filter->filter->name, "color" ) || - !strcmp(filter->filter->name, "colormatrix") || - !strcmp(filter->filter->name, "concat" ) || - !strcmp(filter->filter->name, "crop" ) || - !strcmp(filter->filter->name, "cropdetect") || - !strcmp(filter->filter->name, "curves" ) || - !strcmp(filter->filter->name, "decimate" ) || - !strcmp(filter->filter->name, "delogo" ) || - !strcmp(filter->filter->name, "deshake" ) || - !strcmp(filter->filter->name, "drawbox" ) || - !strcmp(filter->filter->name, "drawtext" ) || - !strcmp(filter->filter->name, "ebur128" ) || - !strcmp(filter->filter->name, "edgedetect") || - !strcmp(filter->filter->name, "equalizer" ) || - !strcmp(filter->filter->name, "fade" ) || - !strcmp(filter->filter->name, "field" ) || - !strcmp(filter->filter->name, "fieldorder") || - !strcmp(filter->filter->name, "fps" ) || - !strcmp(filter->filter->name, "framestep" ) || - !strcmp(filter->filter->name, "frei0r" ) || - !strcmp(filter->filter->name, "frei0r_src") || - !strcmp(filter->filter->name, "geq" ) || - !strcmp(filter->filter->name, "gradfun" ) || - !strcmp(filter->filter->name, "highpass" ) || - !strcmp(filter->filter->name, "histeq" ) || - !strcmp(filter->filter->name, "histogram" ) || - !strcmp(filter->filter->name, "hqdn3d" ) || - !strcmp(filter->filter->name, "idet" ) || - !strcmp(filter->filter->name, "il" ) || - !strcmp(filter->filter->name, "join" ) || - !strcmp(filter->filter->name, "kerndeint" ) || - !strcmp(filter->filter->name, "ocv" ) || - !strcmp(filter->filter->name, "life" ) || - !strcmp(filter->filter->name, "lut" ) || - !strcmp(filter->filter->name, "lutyuv" ) || - !strcmp(filter->filter->name, "lutrgb" ) || - !strcmp(filter->filter->name, "lowpass" ) || - !strcmp(filter->filter->name, "mandelbrot" ) || - !strcmp(filter->filter->name, "mptestsrc" ) || - !strcmp(filter->filter->name, "movie" ) || - !strcmp(filter->filter->name, "amovie" ) || - !strcmp(filter->filter->name, "negate" ) || - !strcmp(filter->filter->name, "noise" ) || - !strcmp(filter->filter->name, "nullsrc" ) || - !strcmp(filter->filter->name, "overlay" ) || - !strcmp(filter->filter->name, "pad" ) || - !strcmp(filter->filter->name, "format") || - !strcmp(filter->filter->name, "noformat") || - !strcmp(filter->filter->name, "perms") || - !strcmp(filter->filter->name, "pp" ) || - !strcmp(filter->filter->name, "aperms") || - !strcmp(filter->filter->name, "resample") || - !strcmp(filter->filter->name, "rgbtestsrc") || - !strcmp(filter->filter->name, "setpts" ) || - !strcmp(filter->filter->name, "settb" ) || - !strcmp(filter->filter->name, "asettb" ) || - !strcmp(filter->filter->name, "setfield") || - !strcmp(filter->filter->name, "showspectrum") || - !strcmp(filter->filter->name, "silencedetect") || - !strcmp(filter->filter->name, "sine" ) || - !strcmp(filter->filter->name, "smartblur") || - !strcmp(filter->filter->name, "split" ) || - !strcmp(filter->filter->name, "stereo3d" ) || - !strcmp(filter->filter->name, "subtitles") || - !strcmp(filter->filter->name, "telecine" ) || - !strcmp(filter->filter->name, "testsrc" ) || - !strcmp(filter->filter->name, "thumbnail") || - !strcmp(filter->filter->name, "tile") || - !strcmp(filter->filter->name, "tinterlace") || - !strcmp(filter->filter->name, "transpose") || - !strcmp(filter->filter->name, "treble" ) || - !strcmp(filter->filter->name, "unsharp" ) || -// !strcmp(filter->filter->name, "scale" ) || - !strcmp(filter->filter->name, "select") || - !strcmp(filter->filter->name, "aselect" ) || - !strcmp(filter->filter->name, "volume" ) || - !strcmp(filter->filter->name, "yadif" ) || - 0 - ; + int deprecated_init = filter_use_deprecated_init(filter->filter->name); + // TODO: remove old shorthand if (filter->filter->shorthand) { av_assert0(filter->priv); av_assert0(filter->filter->priv_class); @@ -787,7 +727,7 @@ int avfilter_init_filter(AVFilterContext *filter, const char *args, void *opaque args = NULL; } - if (anton_options && args && *args) { + if (!deprecated_init && args && *args) { if (!filter->filter->priv_class) { av_log(filter, AV_LOG_ERROR, "This filter does not take any " "options, but options were provided: %s.\n", args); @@ -873,7 +813,7 @@ int avfilter_init_filter(AVFilterContext *filter, const char *args, void *opaque } } - if (anton_options && filter->filter->priv_class) { + if (!deprecated_init && filter->filter->priv_class) { ret = av_opt_set_dict(filter->priv, &options); if (ret < 0) { av_log(filter, AV_LOG_ERROR, "Error applying options to the filter.\n");