avfilter/avfilter: Remove compatibility code for old filter options

Added in ad7d972e08dddb1788ac6a434d1be314febcb09d; the old syntax has
been deprecated in b439c992c2.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
pull/362/head
Andreas Rheinhardt 4 years ago committed by James Almer
parent e83717e63e
commit 1ec87f50f4
  1. 82
      libavfilter/avfilter.c
  2. 3
      libavfilter/version.h

@ -948,85 +948,9 @@ int avfilter_init_str(AVFilterContext *filter, const char *args)
return AVERROR(EINVAL);
}
#if FF_API_OLD_FILTER_OPTS_ERROR
if ( !strcmp(filter->filter->name, "format") ||
!strcmp(filter->filter->name, "noformat") ||
!strcmp(filter->filter->name, "frei0r") ||
!strcmp(filter->filter->name, "frei0r_src") ||
!strcmp(filter->filter->name, "ocv") ||
!strcmp(filter->filter->name, "pan") ||
!strcmp(filter->filter->name, "pp") ||
!strcmp(filter->filter->name, "aevalsrc")) {
/* a hack for compatibility with the old syntax
* replace colons with |s */
char *copy = av_strdup(args);
char *p = copy;
int nb_leading = 0; // number of leading colons to skip
int deprecated = 0;
if (!copy) {
ret = AVERROR(ENOMEM);
goto fail;
}
if (!strcmp(filter->filter->name, "frei0r") ||
!strcmp(filter->filter->name, "ocv"))
nb_leading = 1;
else if (!strcmp(filter->filter->name, "frei0r_src"))
nb_leading = 3;
while (nb_leading--) {
p = strchr(p, ':');
if (!p) {
p = copy + strlen(copy);
break;
}
p++;
}
deprecated = strchr(p, ':') != NULL;
if (!strcmp(filter->filter->name, "aevalsrc")) {
deprecated = 0;
while ((p = strchr(p, ':')) && p[1] != ':') {
const char *epos = strchr(p + 1, '=');
const char *spos = strchr(p + 1, ':');
const int next_token_is_opt = epos && (!spos || epos < spos);
if (next_token_is_opt) {
p++;
break;
}
/* next token does not contain a '=', assume a channel expression */
deprecated = 1;
*p++ = '|';
}
if (p && *p == ':') { // double sep '::' found
deprecated = 1;
memmove(p, p + 1, strlen(p));
}
} else
while ((p = strchr(p, ':')))
*p++ = '|';
if (deprecated) {
av_log(filter, AV_LOG_ERROR, "This syntax is deprecated. Use "
"'|' to separate the list items ('%s' instead of '%s')\n",
copy, args);
ret = AVERROR(EINVAL);
} else {
ret = process_options(filter, &options, copy);
}
av_freep(&copy);
if (ret < 0)
goto fail;
} else
#endif
{
ret = process_options(filter, &options, args);
if (ret < 0)
goto fail;
}
ret = process_options(filter, &options, args);
if (ret < 0)
goto fail;
}
ret = avfilter_init_dict(filter, &options);

@ -50,9 +50,6 @@
* the public API and may change, break or disappear at any time.
*/
#ifndef FF_API_OLD_FILTER_OPTS_ERROR
#define FF_API_OLD_FILTER_OPTS_ERROR (LIBAVFILTER_VERSION_MAJOR < 8)
#endif
#ifndef FF_API_LAVR_OPTS
#define FF_API_LAVR_OPTS (LIBAVFILTER_VERSION_MAJOR < 8)
#endif

Loading…
Cancel
Save