[FFmpeg-devel] [PATCH 26/38] avfilter/avfilter: Don't fail upon options for filter without AVClass

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Sun Sep 12 13:53:24 EEST 2021


Commit 62549f9655c48f0ec061087fa33a96040ce01145 added a check to
(the predecessor of) avfilter_init_str() to error out if options
were provided to a filter without options (or rather, without private
class). This was fine at the time, yet soon afterwards commit
fdd93eabfb2644f541f7aac9943abce26776ea73 added a generic option
for all AVFilterContexts and since then it is wrong to error out
in case options have been provided to a filter without AVClass.

To workaround this issue, several filters with timeline support
added AVClasses and empty options; these will be removed in subsequent
commits. Furthermore, the super2xsai filter supports slice threading,
but no options and so has no AVClass, making it impossible to set
the number of threads when using avfilter_init_str() (and therefore
from the ffmpeg-tool). This is fixed by this commit, too.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
 libavfilter/avfilter.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/libavfilter/avfilter.c b/libavfilter/avfilter.c
index 165ab1f44a..c76b74f214 100644
--- a/libavfilter/avfilter.c
+++ b/libavfilter/avfilter.c
@@ -922,12 +922,6 @@ int avfilter_init_str(AVFilterContext *filter, const char *args)
     int ret = 0;
 
     if (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);
-            return AVERROR(EINVAL);
-        }
-
         ret = process_options(filter, &options, args);
         if (ret < 0)
             goto fail;
-- 
2.30.2



More information about the ffmpeg-devel mailing list