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

Marton Balint cus at passwd.hu
Sun Aug 16 18:49:19 EEST 2020



On Sun, 16 Aug 2020, Nicolas George wrote:

> Signed-off-by: Nicolas George <george at nsup.org>
> ---
> doc/ffmpeg.texi         | 8 ++++++++
> fftools/ffmpeg.h        | 1 +
> fftools/ffmpeg_filter.c | 2 ++
> fftools/ffmpeg_opt.c    | 3 +++
> 4 files changed, 14 insertions(+)
>
> diff --git a/doc/ffmpeg.texi b/doc/ffmpeg.texi
> index 267ddfe8b5..e38e55573e 100644
> --- a/doc/ffmpeg.texi
> +++ b/doc/ffmpeg.texi
> @@ -1746,6 +1746,14 @@ 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})

Can we find a shorter name for the option? E.g. simply call the option 
auto_conversion_filters and the user can use -noauto_conversion_filters to 
disable it... In the next patch with the current name you have 
-nodisable_auto_coversion_filters which is really ugly IMHO.

Regards,
Marton

> +Disable automatically inserting format conversion filters in all filter
> +graphs, including those defined by @option{-vf}, @option{-af},
> + at option{-filter_complex} and @option{-lavfi}. If filter format negotiation
> +requires a conversion, the initialization of the filters will fail.
> +Conversions can still be performed by inserting the relevant conversion
> +filter (scale, aresample) in the graph.
> +
> @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..7c69cca10d 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 },
> +        "disable all automatic conversion filters" },
>     { "stats",          OPT_BOOL,                                    { &print_stats },
>         "print progress report during encoding", },
>     { "attach",         HAS_ARG | OPT_PERFILE | OPT_EXPERT |
> -- 
> 2.28.0
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list