diff mbox series

[FFmpeg-devel,11/25] fftools/ffmpeg_mux_init: move check for mixing simple/complex filters

Message ID 20230419195243.2974-11-anton@khirnov.net
State Accepted
Commit 84e1e0fa7361579affc24030d1ae7cdc22f112c1
Headers show
Series [FFmpeg-devel,01/25] fftools/ffmpeg_filter: drop write-only FilterGraph.reconfiguration | expand

Checks

Context Check Description
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Anton Khirnov April 19, 2023, 7:52 p.m. UTC
Do it in ost_get_filters() together with other similar checks. Will be
useful in following commits.

Also, improve the log message.
---
 fftools/ffmpeg_mux_init.c | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)
diff mbox series

Patch

diff --git a/fftools/ffmpeg_mux_init.c b/fftools/ffmpeg_mux_init.c
index 7c35d6b582..c82556a706 100644
--- a/fftools/ffmpeg_mux_init.c
+++ b/fftools/ffmpeg_mux_init.c
@@ -438,6 +438,19 @@  static int ost_get_filters(const OptionsContext *o, AVFormatContext *oc,
         return 0;
     }
 
+    if (!ost->ist) {
+        if (ost->filters_script || ost->filters) {
+            av_log(ost, AV_LOG_ERROR,
+                   "%s '%s' was specified for a stream fed from a complex "
+                   "filtergraph. Simple and complex filtering cannot be used "
+                   "together for the same stream.\n",
+                   ost->filters ? "Filtergraph" : "Filtergraph script",
+                   ost->filters ? ost->filters : ost->filters_script);
+            return AVERROR(EINVAL);
+        }
+        return 0;
+    }
+
     if (ost->filters_script && ost->filters) {
         av_log(ost, AV_LOG_ERROR, "Both -filter and -filter_script set\n");
         exit_program(1);
@@ -1263,18 +1276,6 @@  static void init_output_filter(OutputFilter *ofilter, const OptionsContext *o,
         exit_program(1);
     }
 
-    if (ost->avfilter && (ost->filters || ost->filters_script)) {
-        const char *opt = ost->filters ? "-vf/-af/-filter" : "-filter_script";
-        av_log(ost, AV_LOG_ERROR,
-               "%s '%s' was specified through the %s option "
-               "for output stream %d:%d, which is fed from a complex filtergraph.\n"
-               "%s and -filter_complex cannot be used together for the same stream.\n",
-               ost->filters ? "Filtergraph" : "Filtergraph script",
-               ost->filters ? ost->filters : ost->filters_script,
-               opt, ost->file_index, ost->index, opt);
-        exit_program(1);
-    }
-
     avfilter_inout_free(&ofilter->out_tmp);
 }