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",
+};
+
+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, "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, "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, "showspectrum") ||
- !strcmp(filter->filter->name, "silencedetect") ||
- !strcmp(filter->filter->name, "smartblur") ||
- !strcmp(filter->filter->name, "split" ) ||
- !strcmp(filter->filter->name, "stereo3d" ) ||
- !strcmp(filter->filter->name, "subtitles") ||
- !strcmp(filter->filter->name, "testsrc" ) ||
- !strcmp(filter->filter->name, "thumbnail") ||
- !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, "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);
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);
}
}
- 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");