[FFmpeg-devel] [PATCH 1/2] ffmpeg: add disable_all_auto_conversion_filters option.

Nicolas George george at nsup.org
Fri Aug 14 20:14:52 EEST 2020


Signed-off-by: Nicolas George <george at nsup.org>
---
 doc/ffmpeg.texi         | 5 +++++
 fftools/ffmpeg.h        | 1 +
 fftools/ffmpeg_filter.c | 2 ++
 fftools/ffmpeg_opt.c    | 3 +++
 4 files changed, 11 insertions(+)

diff --git a/doc/ffmpeg.texi b/doc/ffmpeg.texi
index 267ddfe8b5..1603431d56 100644
--- a/doc/ffmpeg.texi
+++ b/doc/ffmpeg.texi
@@ -1746,6 +1746,11 @@ this buffer, in packets, for the matching output stream.
 The default value of this option should be high enough for most uses, so only
 touch this option if you are sure that you need it.
 
+ at item -disable_all_auto_conversion_filters (@emph{global})
+Disable automatically inserting conversion filters in all filter graphs,
+including those defined by @option{-vf}, @option{-af},
+ at option{-filter_complex} and @option{-lavfi}.
+
 @end table
 
 As a special exception, you can use a bitmap subtitle stream as input: it
diff --git a/fftools/ffmpeg.h b/fftools/ffmpeg.h
index 6e3f2545c7..acd297c8e8 100644
--- a/fftools/ffmpeg.h
+++ b/fftools/ffmpeg.h
@@ -613,6 +613,7 @@ extern char *videotoolbox_pixfmt;
 extern int filter_nbthreads;
 extern int filter_complex_nbthreads;
 extern int vstats_version;
+extern int disable_all_auto_conversion_filters;
 
 extern const AVIOInterruptCB int_cb;
 
diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c
index 4784e8a575..8721403d7a 100644
--- a/fftools/ffmpeg_filter.c
+++ b/fftools/ffmpeg_filter.c
@@ -1104,6 +1104,8 @@ int configure_filtergraph(FilterGraph *fg)
         configure_output_filter(fg, fg->outputs[i], cur);
     avfilter_inout_free(&outputs);
 
+    if (disable_all_auto_conversion_filters)
+        avfilter_graph_set_auto_convert(fg->graph, AVFILTER_AUTO_CONVERT_NONE);
     if ((ret = avfilter_graph_config(fg->graph, NULL)) < 0)
         goto fail;
 
diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c
index 853550a142..e6131dac97 100644
--- a/fftools/ffmpeg_opt.c
+++ b/fftools/ffmpeg_opt.c
@@ -172,6 +172,7 @@ float max_error_rate  = 2.0/3;
 int filter_nbthreads = 0;
 int filter_complex_nbthreads = 0;
 int vstats_version = 2;
+int disable_all_auto_conversion_filters = 0;
 
 
 static int intra_only         = 0;
@@ -3545,6 +3546,8 @@ const OptionDef options[] = {
         "create a complex filtergraph", "graph_description" },
     { "filter_complex_script", HAS_ARG | OPT_EXPERT,                 { .func_arg = opt_filter_complex_script },
         "read complex filtergraph description from a file", "filename" },
+    { "disable_all_auto_conversion_filters", OPT_BOOL | OPT_EXPERT,  { &disable_all_auto_conversion_filters },
+        "create a complex filtergraph", "graph_description" },
     { "stats",          OPT_BOOL,                                    { &print_stats },
         "print progress report during encoding", },
     { "attach",         HAS_ARG | OPT_PERFILE | OPT_EXPERT |
-- 
2.28.0



More information about the ffmpeg-devel mailing list