Currently an API user has no easy way that always works to know whether an AVFilter supports commands. One can check for whether the filter has any AVOption with AV_OPT_FLAG_RUNTIME_PARAM set, but this is a bit of extra work and more importantly it doesn't work for all filters: anequalizer, ladspa, drawtext, overlay, pp, concat and (a)movie accept commands, but have no AVOptions of this type. Tellingly ffprobe/cmdutils.c has to abuse the API and check for AVFilter.process_command to know whether a filter accepts commands.
This commit fixes this by adding a new AVFilter flag. Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@outlook.com> --- libavfilter/af_acrusher.c | 1 + libavfilter/af_adenorm.c | 3 ++- libavfilter/af_aemphasis.c | 3 ++- libavfilter/af_aexciter.c | 3 ++- libavfilter/af_afade.c | 3 ++- libavfilter/af_afftdn.c | 3 ++- libavfilter/af_afir.c | 3 ++- libavfilter/af_afreqshift.c | 6 ++++-- libavfilter/af_afwtdn.c | 3 ++- libavfilter/af_agate.c | 6 ++++-- libavfilter/af_amix.c | 3 ++- libavfilter/af_anequalizer.c | 3 ++- libavfilter/af_anlmdn.c | 3 ++- libavfilter/af_anlms.c | 3 ++- libavfilter/af_apsyclip.c | 3 ++- libavfilter/af_arnndn.c | 3 ++- libavfilter/af_asoftclip.c | 3 ++- libavfilter/af_asubboost.c | 3 ++- libavfilter/af_asupercut.c | 12 ++++++++---- libavfilter/af_atempo.c | 1 + libavfilter/af_atilt.c | 3 ++- libavfilter/af_biquads.c | 4 +++- libavfilter/af_crossfeed.c | 3 ++- libavfilter/af_crystalizer.c | 3 ++- libavfilter/af_dynaudnorm.c | 3 ++- libavfilter/af_extrastereo.c | 3 ++- libavfilter/af_firequalizer.c | 1 + libavfilter/af_ladspa.c | 3 ++- libavfilter/af_rubberband.c | 1 + libavfilter/af_sidechaincompress.c | 2 ++ libavfilter/af_speechnorm.c | 3 ++- libavfilter/af_stereotools.c | 3 ++- libavfilter/af_stereowiden.c | 3 ++- libavfilter/af_volume.c | 3 ++- libavfilter/avf_avectorscope.c | 3 ++- libavfilter/avf_concat.c | 3 ++- libavfilter/avfilter.h | 11 +++++++++++ libavfilter/f_streamselect.c | 6 ++++-- libavfilter/src_movie.c | 6 ++++-- libavfilter/vf_amplify.c | 3 ++- libavfilter/vf_atadenoise.c | 3 ++- libavfilter/vf_avgblur.c | 3 ++- libavfilter/vf_bbox.c | 3 ++- libavfilter/vf_bilateral.c | 3 ++- libavfilter/vf_blend.c | 6 ++++-- libavfilter/vf_cas.c | 3 ++- libavfilter/vf_chromakey.c | 6 ++++-- libavfilter/vf_chromanr.c | 3 ++- libavfilter/vf_chromashift.c | 6 ++++-- libavfilter/vf_colorbalance.c | 3 ++- libavfilter/vf_colorchannelmixer.c | 3 ++- libavfilter/vf_colorcontrast.c | 3 ++- libavfilter/vf_colorcorrect.c | 3 ++- libavfilter/vf_colorize.c | 3 ++- libavfilter/vf_colorkey.c | 6 ++++-- libavfilter/vf_colorlevels.c | 3 ++- libavfilter/vf_colortemperature.c | 3 ++- libavfilter/vf_convolution.c | 18 ++++++++++++------ libavfilter/vf_crop.c | 1 + libavfilter/vf_curves.c | 3 ++- libavfilter/vf_datascope.c | 9 ++++++--- libavfilter/vf_dblur.c | 3 ++- libavfilter/vf_deband.c | 3 ++- libavfilter/vf_deblock.c | 3 ++- libavfilter/vf_despill.c | 3 ++- libavfilter/vf_drawbox.c | 6 ++++-- libavfilter/vf_drawtext.c | 3 ++- libavfilter/vf_eq.c | 3 ++- libavfilter/vf_estdif.c | 3 ++- libavfilter/vf_exposure.c | 3 ++- libavfilter/vf_fillborders.c | 3 ++- libavfilter/vf_frei0r.c | 3 ++- libavfilter/vf_gblur.c | 3 ++- libavfilter/vf_guided.c | 3 ++- libavfilter/vf_hqdn3d.c | 3 ++- libavfilter/vf_hsvkey.c | 6 ++++-- libavfilter/vf_hue.c | 3 ++- libavfilter/vf_il.c | 3 ++- libavfilter/vf_lagfun.c | 3 ++- libavfilter/vf_lenscorrection.c | 3 ++- libavfilter/vf_limiter.c | 3 ++- libavfilter/vf_lumakey.c | 4 +++- libavfilter/vf_lut.c | 3 ++- libavfilter/vf_lut2.c | 6 ++++-- libavfilter/vf_lut3d.c | 9 ++++++--- libavfilter/vf_maskedclamp.c | 3 ++- libavfilter/vf_maskedmerge.c | 3 ++- libavfilter/vf_maskedminmax.c | 6 ++++-- libavfilter/vf_maskedthreshold.c | 3 ++- libavfilter/vf_maskfun.c | 3 ++- libavfilter/vf_median.c | 3 ++- libavfilter/vf_mix.c | 7 +++++-- libavfilter/vf_monochrome.c | 3 ++- libavfilter/vf_morpho.c | 3 ++- libavfilter/vf_neighbor.c | 3 ++- libavfilter/vf_nnedi.c | 3 ++- libavfilter/vf_normalize.c | 3 ++- libavfilter/vf_overlay.c | 3 ++- libavfilter/vf_phase.c | 3 ++- libavfilter/vf_pp.c | 3 ++- libavfilter/vf_pseudocolor.c | 3 ++- libavfilter/vf_readeia608.c | 3 ++- libavfilter/vf_rotate.c | 3 ++- libavfilter/vf_scale.c | 2 ++ libavfilter/vf_scroll.c | 3 ++- libavfilter/vf_shear.c | 3 ++- libavfilter/vf_spp.c | 3 ++- libavfilter/vf_swaprect.c | 3 ++- libavfilter/vf_threshold.c | 3 ++- libavfilter/vf_v360.c | 3 ++- libavfilter/vf_vibrance.c | 3 ++- libavfilter/vf_w3fdif.c | 3 ++- libavfilter/vf_xmedian.c | 7 +++++-- libavfilter/vf_yaepblur.c | 3 ++- libavfilter/vf_zscale.c | 1 + libavfilter/vsrc_testsrc.c | 1 + 116 files changed, 290 insertions(+), 132 deletions(-) diff --git a/libavfilter/af_acrusher.c b/libavfilter/af_acrusher.c index 14d66e88ea..59382b8c76 100644 --- a/libavfilter/af_acrusher.c +++ b/libavfilter/af_acrusher.c @@ -335,6 +335,7 @@ static const AVFilterPad avfilter_af_acrusher_outputs[] = { const AVFilter ff_af_acrusher = { .name = "acrusher", .description = NULL_IF_CONFIG_SMALL("Reduce audio bit resolution."), + .flags = AVFILTER_FLAG_SUPPORT_COMMANDS, .priv_size = sizeof(ACrusherContext), .priv_class = &acrusher_class, .uninit = uninit, diff --git a/libavfilter/af_adenorm.c b/libavfilter/af_adenorm.c index 3ad1e7f594..aa433d009e 100644 --- a/libavfilter/af_adenorm.c +++ b/libavfilter/af_adenorm.c @@ -297,5 +297,6 @@ const AVFilter ff_af_adenorm = { .priv_class = &adenorm_class, .process_command = process_command, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | - AVFILTER_FLAG_SLICE_THREADS, + AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/af_aemphasis.c b/libavfilter/af_aemphasis.c index 1adfcdb63b..4352de42fa 100644 --- a/libavfilter/af_aemphasis.c +++ b/libavfilter/af_aemphasis.c @@ -379,5 +379,6 @@ const AVFilter ff_af_aemphasis = { FILTER_SINGLE_SAMPLEFMT(AV_SAMPLE_FMT_DBLP), .process_command = process_command, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | - AVFILTER_FLAG_SLICE_THREADS, + AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/af_aexciter.c b/libavfilter/af_aexciter.c index 5d76f290a0..aee2bf453c 100644 --- a/libavfilter/af_aexciter.c +++ b/libavfilter/af_aexciter.c @@ -281,5 +281,6 @@ const AVFilter ff_af_aexciter = { FILTER_OUTPUTS(avfilter_af_aexciter_outputs), FILTER_SINGLE_SAMPLEFMT(AV_SAMPLE_FMT_DBL), .process_command = process_command, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/af_afade.c b/libavfilter/af_afade.c index c57709050e..80fe383b62 100644 --- a/libavfilter/af_afade.c +++ b/libavfilter/af_afade.c @@ -348,7 +348,8 @@ const AVFilter ff_af_afade = { FILTER_SAMPLEFMTS_ARRAY(sample_fmts), .priv_class = &afade_class, .process_command = process_command, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; #endif /* CONFIG_AFADE_FILTER */ diff --git a/libavfilter/af_afftdn.c b/libavfilter/af_afftdn.c index d1dbbc667b..4bf7e2c5ce 100644 --- a/libavfilter/af_afftdn.c +++ b/libavfilter/af_afftdn.c @@ -1404,5 +1404,6 @@ const AVFilter ff_af_afftdn = { FILTER_SINGLE_SAMPLEFMT(AV_SAMPLE_FMT_FLTP), .process_command = process_command, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | - AVFILTER_FLAG_SLICE_THREADS, + AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/af_afir.c b/libavfilter/af_afir.c index ace5087e90..1305dbc6f9 100644 --- a/libavfilter/af_afir.c +++ b/libavfilter/af_afir.c @@ -949,5 +949,6 @@ const AVFilter ff_af_afir = { .process_command = process_command, .flags = AVFILTER_FLAG_DYNAMIC_INPUTS | AVFILTER_FLAG_DYNAMIC_OUTPUTS | - AVFILTER_FLAG_SLICE_THREADS, + AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/af_afreqshift.c b/libavfilter/af_afreqshift.c index 731e97afef..5fd8151912 100644 --- a/libavfilter/af_afreqshift.c +++ b/libavfilter/af_afreqshift.c @@ -382,7 +382,8 @@ const AVFilter ff_af_afreqshift = { FILTER_SAMPLEFMTS_ARRAY(sample_fmts), .process_command = ff_filter_process_command, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | - AVFILTER_FLAG_SLICE_THREADS, + AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; static const AVOption aphaseshift_options[] = { @@ -405,5 +406,6 @@ const AVFilter ff_af_aphaseshift = { FILTER_SAMPLEFMTS_ARRAY(sample_fmts), .process_command = ff_filter_process_command, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | - AVFILTER_FLAG_SLICE_THREADS, + AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/af_afwtdn.c b/libavfilter/af_afwtdn.c index 09b504d634..f653642980 100644 --- a/libavfilter/af_afwtdn.c +++ b/libavfilter/af_afwtdn.c @@ -1317,5 +1317,6 @@ const AVFilter ff_af_afwtdn = { FILTER_SINGLE_SAMPLEFMT(AV_SAMPLE_FMT_DBLP), .process_command = process_command, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | - AVFILTER_FLAG_SLICE_THREADS, + AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/af_agate.c b/libavfilter/af_agate.c index 682f17c7dd..b00dfb3adf 100644 --- a/libavfilter/af_agate.c +++ b/libavfilter/af_agate.c @@ -242,7 +242,8 @@ const AVFilter ff_af_agate = { FILTER_OUTPUTS(outputs), FILTER_SINGLE_SAMPLEFMT(AV_SAMPLE_FMT_DBL), .process_command = ff_filter_process_command, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; #endif /* CONFIG_AGATE_FILTER */ @@ -392,6 +393,7 @@ const AVFilter ff_af_sidechaingate = { FILTER_OUTPUTS(sidechaingate_outputs), FILTER_QUERY_FUNC(scquery_formats), .process_command = ff_filter_process_command, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; #endif /* CONFIG_SIDECHAINGATE_FILTER */ diff --git a/libavfilter/af_amix.c b/libavfilter/af_amix.c index 3f51d43acd..68129bb67d 100644 --- a/libavfilter/af_amix.c +++ b/libavfilter/af_amix.c @@ -628,5 +628,6 @@ const AVFilter ff_af_amix = { FILTER_SAMPLEFMTS(AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_DBL, AV_SAMPLE_FMT_DBLP), .process_command = process_command, - .flags = AVFILTER_FLAG_DYNAMIC_INPUTS, + .flags = AVFILTER_FLAG_DYNAMIC_INPUTS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/af_anequalizer.c b/libavfilter/af_anequalizer.c index 57a9b7634b..fafde760e8 100644 --- a/libavfilter/af_anequalizer.c +++ b/libavfilter/af_anequalizer.c @@ -776,5 +776,6 @@ const AVFilter ff_af_anequalizer = { .process_command = process_command, .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | - AVFILTER_FLAG_SLICE_THREADS, + AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/af_anlmdn.c b/libavfilter/af_anlmdn.c index 141e5f398e..0482f9a6ab 100644 --- a/libavfilter/af_anlmdn.c +++ b/libavfilter/af_anlmdn.c @@ -393,5 +393,6 @@ const AVFilter ff_af_anlmdn = { FILTER_SINGLE_SAMPLEFMT(AV_SAMPLE_FMT_FLTP), .process_command = process_command, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | - AVFILTER_FLAG_SLICE_THREADS, + AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/af_anlms.c b/libavfilter/af_anlms.c index f1f82b491d..5af5f0a97e 100644 --- a/libavfilter/af_anlms.c +++ b/libavfilter/af_anlms.c @@ -309,6 +309,7 @@ const AVFilter ff_af_anlms = { FILTER_INPUTS(inputs), FILTER_OUTPUTS(outputs), FILTER_QUERY_FUNC(query_formats), - .flags = AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/af_apsyclip.c b/libavfilter/af_apsyclip.c index dc3a8e97e4..a09d0eb620 100644 --- a/libavfilter/af_apsyclip.c +++ b/libavfilter/af_apsyclip.c @@ -654,7 +654,8 @@ const AVFilter ff_af_apsyclip = { FILTER_OUTPUTS(outputs), FILTER_SINGLE_SAMPLEFMT(AV_SAMPLE_FMT_FLTP), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | - AVFILTER_FLAG_SLICE_THREADS, + AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .activate = activate, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/af_arnndn.c b/libavfilter/af_arnndn.c index 3115c4ae0c..48314d6871 100644 --- a/libavfilter/af_arnndn.c +++ b/libavfilter/af_arnndn.c @@ -1617,6 +1617,7 @@ const AVFilter ff_af_arnndn = { FILTER_OUTPUTS(outputs), FILTER_QUERY_FUNC(query_formats), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | - AVFILTER_FLAG_SLICE_THREADS, + AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/af_asoftclip.c b/libavfilter/af_asoftclip.c index 6ffde4431a..9e1de2a123 100644 --- a/libavfilter/af_asoftclip.c +++ b/libavfilter/af_asoftclip.c @@ -491,5 +491,6 @@ const AVFilter ff_af_asoftclip = { .uninit = uninit, .process_command = ff_filter_process_command, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | - AVFILTER_FLAG_SLICE_THREADS, + AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/af_asubboost.c b/libavfilter/af_asubboost.c index da3e68e841..8e0efecaa9 100644 --- a/libavfilter/af_asubboost.c +++ b/libavfilter/af_asubboost.c @@ -224,5 +224,6 @@ const AVFilter ff_af_asubboost = { FILTER_SINGLE_SAMPLEFMT(AV_SAMPLE_FMT_DBLP), .process_command = process_command, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | - AVFILTER_FLAG_SLICE_THREADS, + AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/af_asupercut.c b/libavfilter/af_asupercut.c index a4c2d15154..3d7bf95467 100644 --- a/libavfilter/af_asupercut.c +++ b/libavfilter/af_asupercut.c @@ -351,7 +351,8 @@ const AVFilter ff_af_asupercut = { FILTER_SAMPLEFMTS_ARRAY(sample_fmts), .process_command = process_command, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | - AVFILTER_FLAG_SLICE_THREADS, + AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; static const AVOption asubcut_options[] = { @@ -374,7 +375,8 @@ const AVFilter ff_af_asubcut = { FILTER_SAMPLEFMTS_ARRAY(sample_fmts), .process_command = process_command, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | - AVFILTER_FLAG_SLICE_THREADS, + AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; static const AVOption asuperpass_asuperstop_options[] = { @@ -399,7 +401,8 @@ const AVFilter ff_af_asuperpass = { FILTER_SAMPLEFMTS_ARRAY(sample_fmts), .process_command = process_command, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | - AVFILTER_FLAG_SLICE_THREADS, + AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; const AVFilter ff_af_asuperstop = { @@ -413,5 +416,6 @@ const AVFilter ff_af_asuperstop = { FILTER_SAMPLEFMTS_ARRAY(sample_fmts), .process_command = process_command, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | - AVFILTER_FLAG_SLICE_THREADS, + AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/af_atempo.c b/libavfilter/af_atempo.c index e9a6da7970..0ae2fb4d33 100644 --- a/libavfilter/af_atempo.c +++ b/libavfilter/af_atempo.c @@ -1174,6 +1174,7 @@ static const AVFilterPad atempo_outputs[] = { const AVFilter ff_af_atempo = { .name = "atempo", .description = NULL_IF_CONFIG_SMALL("Adjust audio tempo."), + .flags = AVFILTER_FLAG_SUPPORT_COMMANDS, .init = init, .uninit = uninit, .process_command = process_command, diff --git a/libavfilter/af_atilt.c b/libavfilter/af_atilt.c index a1ce030feb..80edafd819 100644 --- a/libavfilter/af_atilt.c +++ b/libavfilter/af_atilt.c @@ -264,5 +264,6 @@ const AVFilter ff_af_atilt = { FILTER_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_DBLP), .process_command = process_command, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | - AVFILTER_FLAG_SLICE_THREADS, + AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/af_biquads.c b/libavfilter/af_biquads.c index adbae5892d..f78d38ed45 100644 --- a/libavfilter/af_biquads.c +++ b/libavfilter/af_biquads.c @@ -865,6 +865,9 @@ const AVFilter ff_af_##name_ = { \ .name = #name_, \ .description = NULL_IF_CONFIG_SMALL(description_), \ .priv_class = &priv_class_##_class, \ + .flags = AVFILTER_FLAG_SLICE_THREADS | \ + AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | \ + AVFILTER_FLAG_SUPPORT_COMMANDS, \ .priv_size = sizeof(BiquadsContext), \ .init = name_##_init, \ .uninit = uninit, \ @@ -872,7 +875,6 @@ const AVFilter ff_af_##name_ = { \ FILTER_OUTPUTS(outputs), \ FILTER_QUERY_FUNC(query_formats), \ .process_command = process_command, \ - .flags = AVFILTER_FLAG_SLICE_THREADS | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, \ } #define DEFINE_BIQUAD_FILTER(name, description) \ diff --git a/libavfilter/af_crossfeed.c b/libavfilter/af_crossfeed.c index ecfbb978d4..1111f5dfec 100644 --- a/libavfilter/af_crossfeed.c +++ b/libavfilter/af_crossfeed.c @@ -176,11 +176,12 @@ static const AVFilterPad outputs[] = { const AVFilter ff_af_crossfeed = { .name = "crossfeed", .description = NULL_IF_CONFIG_SMALL("Apply headphone crossfeed filter."), + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | + AVFILTER_FLAG_SUPPORT_COMMANDS, .priv_size = sizeof(CrossfeedContext), .priv_class = &crossfeed_class, FILTER_INPUTS(inputs), FILTER_OUTPUTS(outputs), FILTER_QUERY_FUNC(query_formats), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, .process_command = process_command, }; diff --git a/libavfilter/af_crystalizer.c b/libavfilter/af_crystalizer.c index 8d967fd629..4613369435 100644 --- a/libavfilter/af_crystalizer.c +++ b/libavfilter/af_crystalizer.c @@ -370,5 +370,6 @@ const AVFilter ff_af_crystalizer = { AV_SAMPLE_FMT_DBL, AV_SAMPLE_FMT_DBLP), .process_command = process_command, .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | - AVFILTER_FLAG_SLICE_THREADS, + AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/af_dynaudnorm.c b/libavfilter/af_dynaudnorm.c index 783266f8c1..d6df527b0d 100644 --- a/libavfilter/af_dynaudnorm.c +++ b/libavfilter/af_dynaudnorm.c @@ -857,6 +857,8 @@ static const AVFilterPad avfilter_af_dynaudnorm_outputs[] = { const AVFilter ff_af_dynaudnorm = { .name = "dynaudnorm", .description = NULL_IF_CONFIG_SMALL("Dynamic Audio Normalizer."), + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | + AVFILTER_FLAG_SUPPORT_COMMANDS, .priv_size = sizeof(DynamicAudioNormalizerContext), .init = init, .uninit = uninit, @@ -865,6 +867,5 @@ const AVFilter ff_af_dynaudnorm = { FILTER_OUTPUTS(avfilter_af_dynaudnorm_outputs), FILTER_SINGLE_SAMPLEFMT(AV_SAMPLE_FMT_DBLP), .priv_class = &dynaudnorm_class, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, .process_command = process_command, }; diff --git a/libavfilter/af_extrastereo.c b/libavfilter/af_extrastereo.c index 1645ccb944..f02d9666b3 100644 --- a/libavfilter/af_extrastereo.c +++ b/libavfilter/af_extrastereo.c @@ -125,6 +125,7 @@ const AVFilter ff_af_extrastereo = { FILTER_INPUTS(inputs), FILTER_OUTPUTS(outputs), FILTER_QUERY_FUNC(query_formats), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/af_firequalizer.c b/libavfilter/af_firequalizer.c index 568b78117a..738f921160 100644 --- a/libavfilter/af_firequalizer.c +++ b/libavfilter/af_firequalizer.c @@ -940,6 +940,7 @@ static const AVFilterPad firequalizer_outputs[] = { const AVFilter ff_af_firequalizer = { .name = "firequalizer", .description = NULL_IF_CONFIG_SMALL("Finite Impulse Response Equalizer."), + .flags = AVFILTER_FLAG_SUPPORT_COMMANDS, .uninit = uninit, .process_command = process_command, .priv_size = sizeof(FIREqualizerContext), diff --git a/libavfilter/af_ladspa.c b/libavfilter/af_ladspa.c index ff16388a56..0aaf5036e1 100644 --- a/libavfilter/af_ladspa.c +++ b/libavfilter/af_ladspa.c @@ -782,5 +782,6 @@ const AVFilter ff_af_ladspa = { .inputs = 0, FILTER_OUTPUTS(ladspa_outputs), FILTER_QUERY_FUNC(query_formats), - .flags = AVFILTER_FLAG_DYNAMIC_INPUTS, + .flags = AVFILTER_FLAG_DYNAMIC_INPUTS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/af_rubberband.c b/libavfilter/af_rubberband.c index 4a42aa8a1f..52051f0998 100644 --- a/libavfilter/af_rubberband.c +++ b/libavfilter/af_rubberband.c @@ -205,6 +205,7 @@ static const AVFilterPad rubberband_outputs[] = { const AVFilter ff_af_rubberband = { .name = "rubberband", .description = NULL_IF_CONFIG_SMALL("Apply time-stretching and pitch-shifting."), + .flags = AVFILTER_FLAG_SUPPORT_COMMANDS, .priv_size = sizeof(RubberBandContext), .priv_class = &rubberband_class, .uninit = uninit, diff --git a/libavfilter/af_sidechaincompress.c b/libavfilter/af_sidechaincompress.c index c0ce82066b..f7e3b2305a 100644 --- a/libavfilter/af_sidechaincompress.c +++ b/libavfilter/af_sidechaincompress.c @@ -365,6 +365,7 @@ const AVFilter ff_af_sidechaincompress = { .name = "sidechaincompress", .description = NULL_IF_CONFIG_SMALL("Sidechain compressor."), .priv_class = &sidechaincompress_acompressor_class, + .flags = AVFILTER_FLAG_SUPPORT_COMMANDS, .priv_size = sizeof(SidechainCompressContext), .activate = activate, .uninit = uninit, @@ -426,6 +427,7 @@ const AVFilter ff_af_acompressor = { .name = "acompressor", .description = NULL_IF_CONFIG_SMALL("Audio compressor."), .priv_class = &sidechaincompress_acompressor_class, + .flags = AVFILTER_FLAG_SUPPORT_COMMANDS, .priv_size = sizeof(SidechainCompressContext), FILTER_INPUTS(acompressor_inputs), FILTER_OUTPUTS(acompressor_outputs), diff --git a/libavfilter/af_speechnorm.c b/libavfilter/af_speechnorm.c index 212a926f36..13e5328c2a 100644 --- a/libavfilter/af_speechnorm.c +++ b/libavfilter/af_speechnorm.c @@ -564,6 +564,7 @@ const AVFilter ff_af_speechnorm = { FILTER_INPUTS(inputs), FILTER_OUTPUTS(outputs), FILTER_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_DBLP), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/af_stereotools.c b/libavfilter/af_stereotools.c index 27ec4a2e4a..53d2466f0f 100644 --- a/libavfilter/af_stereotools.c +++ b/libavfilter/af_stereotools.c @@ -375,6 +375,8 @@ static const AVFilterPad outputs[] = { const AVFilter ff_af_stereotools = { .name = "stereotools", .description = NULL_IF_CONFIG_SMALL("Apply various stereo tools."), + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | + AVFILTER_FLAG_SUPPORT_COMMANDS, .priv_size = sizeof(StereoToolsContext), .priv_class = &stereotools_class, .uninit = uninit, @@ -382,5 +384,4 @@ const AVFilter ff_af_stereotools = { FILTER_OUTPUTS(outputs), FILTER_QUERY_FUNC(query_formats), .process_command = process_command, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, }; diff --git a/libavfilter/af_stereowiden.c b/libavfilter/af_stereowiden.c index 7cce1a8f28..ebd5658b80 100644 --- a/libavfilter/af_stereowiden.c +++ b/libavfilter/af_stereowiden.c @@ -162,6 +162,7 @@ const AVFilter ff_af_stereowiden = { FILTER_INPUTS(inputs), FILTER_OUTPUTS(outputs), FILTER_QUERY_FUNC(query_formats), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/af_volume.c b/libavfilter/af_volume.c index 76ccddc316..ba7c53543e 100644 --- a/libavfilter/af_volume.c +++ b/libavfilter/af_volume.c @@ -465,6 +465,8 @@ static const AVFilterPad avfilter_af_volume_outputs[] = { const AVFilter ff_af_volume = { .name = "volume", .description = NULL_IF_CONFIG_SMALL("Change input volume."), + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | + AVFILTER_FLAG_SUPPORT_COMMANDS, .priv_size = sizeof(VolumeContext), .priv_class = &volume_class, .init = init, @@ -472,6 +474,5 @@ const AVFilter ff_af_volume = { FILTER_INPUTS(avfilter_af_volume_inputs), FILTER_OUTPUTS(avfilter_af_volume_outputs), FILTER_QUERY_FUNC(query_formats), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, .process_command = process_command, }; diff --git a/libavfilter/avf_avectorscope.c b/libavfilter/avf_avectorscope.c index ba392153f3..b73a36786d 100644 --- a/libavfilter/avf_avectorscope.c +++ b/libavfilter/avf_avectorscope.c @@ -444,6 +444,8 @@ static const AVFilterPad audiovectorscope_outputs[] = { const AVFilter ff_avf_avectorscope = { .name = "avectorscope", .description = NULL_IF_CONFIG_SMALL("Convert input audio to vectorscope video output."), + .flags = AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .uninit = uninit, .priv_size = sizeof(AudioVectorScopeContext), .activate = activate, @@ -451,6 +453,5 @@ const AVFilter ff_avf_avectorscope = { FILTER_OUTPUTS(audiovectorscope_outputs), FILTER_QUERY_FUNC(query_formats), .priv_class = &avectorscope_class, - .flags = AVFILTER_FLAG_SLICE_THREADS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/avf_concat.c b/libavfilter/avf_concat.c index 84c2a52094..82c19fa3aa 100644 --- a/libavfilter/avf_concat.c +++ b/libavfilter/avf_concat.c @@ -454,7 +454,8 @@ const AVFilter ff_avf_concat = { .inputs = NULL, .outputs = NULL, .priv_class = &concat_class, - .flags = AVFILTER_FLAG_DYNAMIC_INPUTS | AVFILTER_FLAG_DYNAMIC_OUTPUTS, + .flags = AVFILTER_FLAG_DYNAMIC_INPUTS | AVFILTER_FLAG_DYNAMIC_OUTPUTS | + AVFILTER_FLAG_SUPPORT_COMMANDS, FILTER_QUERY_FUNC(query_formats), .process_command = process_command, }; diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h index f7208754a7..f5db6fa966 100644 --- a/libavfilter/avfilter.h +++ b/libavfilter/avfilter.h @@ -119,6 +119,17 @@ enum AVMediaType avfilter_pad_get_type(const AVFilterPad *pads, int pad_idx); * and processing them concurrently. */ #define AVFILTER_FLAG_SLICE_THREADS (1 << 2) +/** + * The filter accepts filter-specific commands via avfilter_process_command(), + * avfilter_graph_send_command() and avfilter_graph_queue_command(); + * support for generic commands like enable-expressions is independent of + * this flag. + * + * Most of these commands are AVOptions with the AV_OPT_FLAG_RUNTIME_PARAM flag. + * Some commands are different and cannot be queried via the API. They are + * documented alongside the rest of the filter. + */ +#define AVFILTER_FLAG_SUPPORT_COMMANDS (1 << 3) /** * Some filters support a generic "enable" expression option that can be used * to enable or disable a filter in the timeline. Filters supporting this diff --git a/libavfilter/f_streamselect.c b/libavfilter/f_streamselect.c index 3708d2b256..a345870999 100644 --- a/libavfilter/f_streamselect.c +++ b/libavfilter/f_streamselect.c @@ -324,7 +324,8 @@ const AVFilter ff_vf_streamselect = { .activate = activate, .priv_size = sizeof(StreamSelectContext), .priv_class = &streamselect_class, - .flags = AVFILTER_FLAG_DYNAMIC_INPUTS | AVFILTER_FLAG_DYNAMIC_OUTPUTS, + .flags = AVFILTER_FLAG_DYNAMIC_INPUTS | AVFILTER_FLAG_DYNAMIC_OUTPUTS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; const AVFilter ff_af_astreamselect = { @@ -337,5 +338,6 @@ const AVFilter ff_af_astreamselect = { .uninit = uninit, .activate = activate, .priv_size = sizeof(StreamSelectContext), - .flags = AVFILTER_FLAG_DYNAMIC_INPUTS | AVFILTER_FLAG_DYNAMIC_OUTPUTS, + .flags = AVFILTER_FLAG_DYNAMIC_INPUTS | AVFILTER_FLAG_DYNAMIC_OUTPUTS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/src_movie.c b/libavfilter/src_movie.c index 573f363705..718ff36cf4 100644 --- a/libavfilter/src_movie.c +++ b/libavfilter/src_movie.c @@ -645,7 +645,8 @@ const AVFilter ff_avsrc_movie = { .inputs = NULL, .outputs = NULL, - .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, + .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command }; @@ -664,7 +665,8 @@ const AVFilter ff_avsrc_amovie = { .inputs = NULL, .outputs = NULL, - .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS, + .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_amplify.c b/libavfilter/vf_amplify.c index 10f153be49..19f61c6170 100644 --- a/libavfilter/vf_amplify.c +++ b/libavfilter/vf_amplify.c @@ -315,6 +315,7 @@ const AVFilter ff_vf_amplify = { FILTER_PIXFMTS_ARRAY(pixel_fmts), .init = init, .uninit = uninit, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_atadenoise.c b/libavfilter/vf_atadenoise.c index 196d354654..3262d575a0 100644 --- a/libavfilter/vf_atadenoise.c +++ b/libavfilter/vf_atadenoise.c @@ -573,6 +573,7 @@ const AVFilter ff_vf_atadenoise = { FILTER_INPUTS(inputs), FILTER_OUTPUTS(outputs), FILTER_PIXFMTS_ARRAY(pixel_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_avgblur.c b/libavfilter/vf_avgblur.c index e44b9f63c8..05772bdaee 100644 --- a/libavfilter/vf_avgblur.c +++ b/libavfilter/vf_avgblur.c @@ -348,6 +348,7 @@ const AVFilter ff_vf_avgblur = { FILTER_INPUTS(avgblur_inputs), FILTER_OUTPUTS(avgblur_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_bbox.c b/libavfilter/vf_bbox.c index 559ca505bf..d37a9ec243 100644 --- a/libavfilter/vf_bbox.c +++ b/libavfilter/vf_bbox.c @@ -151,6 +151,7 @@ const AVFilter ff_vf_bbox = { FILTER_INPUTS(bbox_inputs), FILTER_OUTPUTS(bbox_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_bilateral.c b/libavfilter/vf_bilateral.c index 2a4a3df6cc..fed4aea057 100644 --- a/libavfilter/vf_bilateral.c +++ b/libavfilter/vf_bilateral.c @@ -381,6 +381,7 @@ const AVFilter ff_vf_bilateral = { FILTER_INPUTS(bilateral_inputs), FILTER_OUTPUTS(bilateral_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_blend.c b/libavfilter/vf_blend.c index b6f3c4fed3..a4ffb07e86 100644 --- a/libavfilter/vf_blend.c +++ b/libavfilter/vf_blend.c @@ -584,7 +584,8 @@ const AVFilter ff_vf_blend = { FILTER_OUTPUTS(blend_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &blend_class, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; @@ -641,7 +642,8 @@ const AVFilter ff_vf_tblend = { FILTER_INPUTS(tblend_inputs), FILTER_OUTPUTS(tblend_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_cas.c b/libavfilter/vf_cas.c index 305aec9bd1..215fdc8f14 100644 --- a/libavfilter/vf_cas.c +++ b/libavfilter/vf_cas.c @@ -281,6 +281,7 @@ const AVFilter ff_vf_cas = { FILTER_INPUTS(cas_inputs), FILTER_OUTPUTS(cas_outputs), FILTER_PIXFMTS_ARRAY(pixel_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_chromakey.c b/libavfilter/vf_chromakey.c index 3bfacda7e4..f56f622380 100644 --- a/libavfilter/vf_chromakey.c +++ b/libavfilter/vf_chromakey.c @@ -375,7 +375,8 @@ const AVFilter ff_vf_chromakey = { FILTER_INPUTS(chromakey_inputs), FILTER_OUTPUTS(chromakey_outputs), FILTER_PIXFMTS_ARRAY(chromakey_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; @@ -434,6 +435,7 @@ const AVFilter ff_vf_chromahold = { FILTER_INPUTS(chromahold_inputs), FILTER_OUTPUTS(chromahold_outputs), FILTER_PIXFMTS_ARRAY(hold_pixel_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_chromanr.c b/libavfilter/vf_chromanr.c index 9c36e02c00..583347718d 100644 --- a/libavfilter/vf_chromanr.c +++ b/libavfilter/vf_chromanr.c @@ -278,6 +278,7 @@ const AVFilter ff_vf_chromanr = { FILTER_OUTPUTS(outputs), FILTER_INPUTS(inputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_chromashift.c b/libavfilter/vf_chromashift.c index 0d197b1344..f65852cc80 100644 --- a/libavfilter/vf_chromashift.c +++ b/libavfilter/vf_chromashift.c @@ -430,7 +430,8 @@ const AVFilter ff_vf_chromashift = { FILTER_OUTPUTS(outputs), FILTER_INPUTS(inputs), FILTER_PIXFMTS_ARRAY(yuv_pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; @@ -467,6 +468,7 @@ const AVFilter ff_vf_rgbashift = { FILTER_OUTPUTS(outputs), FILTER_INPUTS(inputs), FILTER_PIXFMTS_ARRAY(rgb_pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_colorbalance.c b/libavfilter/vf_colorbalance.c index 0e626681b6..d9c9ac93af 100644 --- a/libavfilter/vf_colorbalance.c +++ b/libavfilter/vf_colorbalance.c @@ -439,6 +439,7 @@ const AVFilter ff_vf_colorbalance = { FILTER_INPUTS(colorbalance_inputs), FILTER_OUTPUTS(colorbalance_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_colorchannelmixer.c b/libavfilter/vf_colorchannelmixer.c index dfbc082b3f..9ffd9c425f 100644 --- a/libavfilter/vf_colorchannelmixer.c +++ b/libavfilter/vf_colorchannelmixer.c @@ -778,6 +778,7 @@ const AVFilter ff_vf_colorchannelmixer = { FILTER_INPUTS(colorchannelmixer_inputs), FILTER_OUTPUTS(colorchannelmixer_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_colorcontrast.c b/libavfilter/vf_colorcontrast.c index 7561d21259..fe80a12564 100644 --- a/libavfilter/vf_colorcontrast.c +++ b/libavfilter/vf_colorcontrast.c @@ -390,6 +390,7 @@ const AVFilter ff_vf_colorcontrast = { FILTER_INPUTS(colorcontrast_inputs), FILTER_OUTPUTS(colorcontrast_outputs), FILTER_PIXFMTS_ARRAY(pixel_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_colorcorrect.c b/libavfilter/vf_colorcorrect.c index ee97b62b0e..ffe43af9dd 100644 --- a/libavfilter/vf_colorcorrect.c +++ b/libavfilter/vf_colorcorrect.c @@ -545,6 +545,7 @@ const AVFilter ff_vf_colorcorrect = { FILTER_INPUTS(colorcorrect_inputs), FILTER_OUTPUTS(colorcorrect_outputs), FILTER_PIXFMTS_ARRAY(pixel_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_colorize.c b/libavfilter/vf_colorize.c index ba7b80dae7..27221a74f7 100644 --- a/libavfilter/vf_colorize.c +++ b/libavfilter/vf_colorize.c @@ -288,6 +288,7 @@ const AVFilter ff_vf_colorize = { FILTER_INPUTS(colorize_inputs), FILTER_OUTPUTS(colorize_outputs), FILTER_PIXFMTS_ARRAY(pixel_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_colorkey.c b/libavfilter/vf_colorkey.c index ed43722c03..41fdd67c7b 100644 --- a/libavfilter/vf_colorkey.c +++ b/libavfilter/vf_colorkey.c @@ -207,7 +207,8 @@ const AVFilter ff_vf_colorkey = { FILTER_INPUTS(colorkey_inputs), FILTER_OUTPUTS(colorkey_outputs), FILTER_PIXFMTS_ARRAY(pixel_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; @@ -232,7 +233,8 @@ const AVFilter ff_vf_colorhold = { FILTER_INPUTS(colorkey_inputs), FILTER_OUTPUTS(colorkey_outputs), FILTER_PIXFMTS_ARRAY(pixel_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_colorlevels.c b/libavfilter/vf_colorlevels.c index c089740b0a..4b882f1599 100644 --- a/libavfilter/vf_colorlevels.c +++ b/libavfilter/vf_colorlevels.c @@ -379,6 +379,7 @@ const AVFilter ff_vf_colorlevels = { AV_PIX_FMT_RGB48, AV_PIX_FMT_BGR48, AV_PIX_FMT_RGBA64, AV_PIX_FMT_BGRA64, AV_PIX_FMT_RGBA, AV_PIX_FMT_BGRA), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_colortemperature.c b/libavfilter/vf_colortemperature.c index e6ac5f95c7..d9e7fdd2b5 100644 --- a/libavfilter/vf_colortemperature.c +++ b/libavfilter/vf_colortemperature.c @@ -352,6 +352,7 @@ const AVFilter ff_vf_colortemperature = { FILTER_INPUTS(inputs), FILTER_OUTPUTS(outputs), FILTER_PIXFMTS_ARRAY(pixel_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_convolution.c b/libavfilter/vf_convolution.c index cc9ba2399e..bda89e67a5 100644 --- a/libavfilter/vf_convolution.c +++ b/libavfilter/vf_convolution.c @@ -963,7 +963,8 @@ const AVFilter ff_vf_convolution = { FILTER_INPUTS(convolution_inputs), FILTER_OUTPUTS(convolution_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; @@ -990,7 +991,8 @@ const AVFilter ff_vf_prewitt = { FILTER_INPUTS(convolution_inputs), FILTER_OUTPUTS(convolution_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; @@ -1007,7 +1009,8 @@ const AVFilter ff_vf_sobel = { FILTER_INPUTS(convolution_inputs), FILTER_OUTPUTS(convolution_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; @@ -1024,7 +1027,8 @@ const AVFilter ff_vf_roberts = { FILTER_INPUTS(convolution_inputs), FILTER_OUTPUTS(convolution_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; @@ -1041,7 +1045,8 @@ const AVFilter ff_vf_kirsch = { FILTER_INPUTS(convolution_inputs), FILTER_OUTPUTS(convolution_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; @@ -1058,7 +1063,8 @@ const AVFilter ff_vf_scharr = { FILTER_INPUTS(convolution_inputs), FILTER_OUTPUTS(convolution_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_crop.c b/libavfilter/vf_crop.c index c7cbfa51ef..2ada190e61 100644 --- a/libavfilter/vf_crop.c +++ b/libavfilter/vf_crop.c @@ -389,6 +389,7 @@ static const AVFilterPad avfilter_vf_crop_outputs[] = { const AVFilter ff_vf_crop = { .name = "crop", .description = NULL_IF_CONFIG_SMALL("Crop the input video."), + .flags = AVFILTER_FLAG_SUPPORT_COMMANDS, .priv_size = sizeof(CropContext), .priv_class = &crop_class, .uninit = uninit, diff --git a/libavfilter/vf_curves.c b/libavfilter/vf_curves.c index 22a1f8aa70..4a75f74942 100644 --- a/libavfilter/vf_curves.c +++ b/libavfilter/vf_curves.c @@ -810,6 +810,7 @@ const AVFilter ff_vf_curves = { AV_PIX_FMT_GBRP14, AV_PIX_FMT_GBRP16, AV_PIX_FMT_GBRAP16), .priv_class = &curves_class, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_datascope.c b/libavfilter/vf_datascope.c index 0a605985f1..640243ef77 100644 --- a/libavfilter/vf_datascope.c +++ b/libavfilter/vf_datascope.c @@ -456,7 +456,8 @@ const AVFilter ff_vf_datascope = { FILTER_INPUTS(inputs), FILTER_OUTPUTS(outputs), FILTER_QUERY_FUNC(query_formats), - .flags = AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; @@ -743,7 +744,8 @@ const AVFilter ff_vf_pixscope = { FILTER_INPUTS(pixscope_inputs), FILTER_OUTPUTS(pixscope_outputs), FILTER_QUERY_FUNC(query_formats), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = pixscope_process_command, }; @@ -1148,6 +1150,7 @@ const AVFilter ff_vf_oscilloscope = { FILTER_INPUTS(oscilloscope_inputs), FILTER_OUTPUTS(oscilloscope_outputs), FILTER_QUERY_FUNC(query_formats), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = oscilloscope_process_command, }; diff --git a/libavfilter/vf_dblur.c b/libavfilter/vf_dblur.c index 8ea1229629..51414d9929 100644 --- a/libavfilter/vf_dblur.c +++ b/libavfilter/vf_dblur.c @@ -294,6 +294,7 @@ const AVFilter ff_vf_dblur = { FILTER_INPUTS(dblur_inputs), FILTER_OUTPUTS(dblur_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_deband.c b/libavfilter/vf_deband.c index ec91cb1548..5a4832d747 100644 --- a/libavfilter/vf_deband.c +++ b/libavfilter/vf_deband.c @@ -474,6 +474,7 @@ const AVFilter ff_vf_deband = { FILTER_INPUTS(avfilter_vf_deband_inputs), FILTER_OUTPUTS(avfilter_vf_deband_outputs), FILTER_QUERY_FUNC(query_formats), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_deblock.c b/libavfilter/vf_deblock.c index b7c6a03d4a..dab7b2162e 100644 --- a/libavfilter/vf_deblock.c +++ b/libavfilter/vf_deblock.c @@ -414,6 +414,7 @@ const AVFilter ff_vf_deblock = { FILTER_INPUTS(inputs), FILTER_OUTPUTS(outputs), FILTER_PIXFMTS_ARRAY(pixel_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_despill.c b/libavfilter/vf_despill.c index 483d9c8560..d59103458e 100644 --- a/libavfilter/vf_despill.c +++ b/libavfilter/vf_despill.c @@ -167,5 +167,6 @@ const AVFilter ff_vf_despill = { FILTER_OUTPUTS(despill_outputs), FILTER_PIXFMTS_ARRAY(pixel_fmts), .process_command = ff_filter_process_command, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/vf_drawbox.c b/libavfilter/vf_drawbox.c index 919652e50f..68e41e124d 100644 --- a/libavfilter/vf_drawbox.c +++ b/libavfilter/vf_drawbox.c @@ -403,7 +403,8 @@ const AVFilter ff_vf_drawbox = { FILTER_OUTPUTS(drawbox_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), .process_command = process_command, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; #endif /* CONFIG_DRAWBOX_FILTER */ @@ -484,7 +485,8 @@ const AVFilter ff_vf_drawgrid = { FILTER_INPUTS(drawgrid_inputs), FILTER_OUTPUTS(drawgrid_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_drawtext.c b/libavfilter/vf_drawtext.c index 2a88692cbd..b8eb9ccd4a 100644 --- a/libavfilter/vf_drawtext.c +++ b/libavfilter/vf_drawtext.c @@ -1639,5 +1639,6 @@ const AVFilter ff_vf_drawtext = { FILTER_OUTPUTS(avfilter_vf_drawtext_outputs), FILTER_QUERY_FUNC(query_formats), .process_command = command, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/vf_eq.c b/libavfilter/vf_eq.c index 4a0d85e8e5..dc9c5bdd35 100644 --- a/libavfilter/vf_eq.c +++ b/libavfilter/vf_eq.c @@ -379,5 +379,6 @@ const AVFilter ff_vf_eq = { .process_command = process_command, .init = initialize, .uninit = uninit, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/vf_estdif.c b/libavfilter/vf_estdif.c index a8ef93826c..91cf57442d 100644 --- a/libavfilter/vf_estdif.c +++ b/libavfilter/vf_estdif.c @@ -574,6 +574,7 @@ const AVFilter ff_vf_estdif = { FILTER_INPUTS(estdif_inputs), FILTER_OUTPUTS(estdif_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_exposure.c b/libavfilter/vf_exposure.c index 108fba7930..6391aeb772 100644 --- a/libavfilter/vf_exposure.c +++ b/libavfilter/vf_exposure.c @@ -121,6 +121,7 @@ const AVFilter ff_vf_exposure = { FILTER_INPUTS(exposure_inputs), FILTER_OUTPUTS(exposure_outputs), FILTER_PIXFMTS(AV_PIX_FMT_GBRPF32, AV_PIX_FMT_GBRAPF32), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_fillborders.c b/libavfilter/vf_fillborders.c index 83f206aeb1..ced8b9970e 100644 --- a/libavfilter/vf_fillborders.c +++ b/libavfilter/vf_fillborders.c @@ -722,6 +722,7 @@ const AVFilter ff_vf_fillborders = { FILTER_INPUTS(fillborders_inputs), FILTER_OUTPUTS(fillborders_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_frei0r.c b/libavfilter/vf_frei0r.c index 9cd0098e73..a70cd54fe1 100644 --- a/libavfilter/vf_frei0r.c +++ b/libavfilter/vf_frei0r.c @@ -422,7 +422,8 @@ const AVFilter ff_vf_frei0r = { FILTER_OUTPUTS(avfilter_vf_frei0r_outputs), FILTER_QUERY_FUNC(query_formats), .process_command = process_command, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; static av_cold int source_init(AVFilterContext *ctx) diff --git a/libavfilter/vf_gblur.c b/libavfilter/vf_gblur.c index 9a74686fba..6d46a201db 100644 --- a/libavfilter/vf_gblur.c +++ b/libavfilter/vf_gblur.c @@ -413,6 +413,7 @@ const AVFilter ff_vf_gblur = { FILTER_INPUTS(gblur_inputs), FILTER_OUTPUTS(gblur_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_guided.c b/libavfilter/vf_guided.c index 7636cd2cdc..e8f84f8c93 100644 --- a/libavfilter/vf_guided.c +++ b/libavfilter/vf_guided.c @@ -490,6 +490,7 @@ const AVFilter ff_vf_guided = { FILTER_OUTPUTS(guided_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), .flags = AVFILTER_FLAG_DYNAMIC_INPUTS | AVFILTER_FLAG_SLICE_THREADS | - AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, + AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_hqdn3d.c b/libavfilter/vf_hqdn3d.c index 6078bb260f..8e4ccef074 100644 --- a/libavfilter/vf_hqdn3d.c +++ b/libavfilter/vf_hqdn3d.c @@ -399,6 +399,7 @@ const AVFilter ff_vf_hqdn3d = { FILTER_INPUTS(avfilter_vf_hqdn3d_inputs), FILTER_OUTPUTS(avfilter_vf_hqdn3d_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_hsvkey.c b/libavfilter/vf_hsvkey.c index 8963bcf1f8..f7d93be293 100644 --- a/libavfilter/vf_hsvkey.c +++ b/libavfilter/vf_hsvkey.c @@ -307,7 +307,8 @@ const AVFilter ff_vf_hsvkey = { FILTER_INPUTS(hsvkey_inputs), FILTER_OUTPUTS(hsvkey_outputs), FILTER_PIXFMTS_ARRAY(key_pixel_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; @@ -367,6 +368,7 @@ const AVFilter ff_vf_hsvhold = { FILTER_INPUTS(hsvhold_inputs), FILTER_OUTPUTS(hsvhold_outputs), FILTER_PIXFMTS_ARRAY(hold_pixel_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_hue.c b/libavfilter/vf_hue.c index 644c99b1b1..994c5d1d7a 100644 --- a/libavfilter/vf_hue.c +++ b/libavfilter/vf_hue.c @@ -518,5 +518,6 @@ const AVFilter ff_vf_hue = { FILTER_OUTPUTS(hue_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &hue_class, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/vf_il.c b/libavfilter/vf_il.c index e1c380a2cf..6b41e34443 100644 --- a/libavfilter/vf_il.c +++ b/libavfilter/vf_il.c @@ -198,6 +198,7 @@ const AVFilter ff_vf_il = { FILTER_OUTPUTS(outputs), FILTER_QUERY_FUNC(query_formats), .priv_class = &il_class, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_lagfun.c b/libavfilter/vf_lagfun.c index c2e0f7383d..92d629565e 100644 --- a/libavfilter/vf_lagfun.c +++ b/libavfilter/vf_lagfun.c @@ -220,6 +220,7 @@ const AVFilter ff_vf_lagfun = { FILTER_OUTPUTS(outputs), FILTER_INPUTS(inputs), FILTER_PIXFMTS_ARRAY(pixel_fmts), - .flags = AVFILTER_FLAG_SLICE_THREADS | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, + .flags = AVFILTER_FLAG_SLICE_THREADS | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_lenscorrection.c b/libavfilter/vf_lenscorrection.c index 413eabefba..6ad0ea218f 100644 --- a/libavfilter/vf_lenscorrection.c +++ b/libavfilter/vf_lenscorrection.c @@ -358,6 +358,7 @@ const AVFilter ff_vf_lenscorrection = { FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &lenscorrection_class, .uninit = uninit, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_limiter.c b/libavfilter/vf_limiter.c index 488c8865dd..f63a609fe4 100644 --- a/libavfilter/vf_limiter.c +++ b/libavfilter/vf_limiter.c @@ -259,6 +259,7 @@ const AVFilter ff_vf_limiter = { FILTER_INPUTS(inputs), FILTER_OUTPUTS(outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_lumakey.c b/libavfilter/vf_lumakey.c index af1d85ec54..6ea56dfa4a 100644 --- a/libavfilter/vf_lumakey.c +++ b/libavfilter/vf_lumakey.c @@ -195,11 +195,13 @@ AVFILTER_DEFINE_CLASS(lumakey); const AVFilter ff_vf_lumakey = { .name = "lumakey", .description = NULL_IF_CONFIG_SMALL("Turns a certain luma into transparency."), + .flags = AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS | + AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, .priv_size = sizeof(LumakeyContext), .priv_class = &lumakey_class, FILTER_INPUTS(lumakey_inputs), FILTER_OUTPUTS(lumakey_outputs), FILTER_PIXFMTS_ARRAY(pixel_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, .process_command = process_command, }; diff --git a/libavfilter/vf_lut.c b/libavfilter/vf_lut.c index 64668039d1..645a5cf3ed 100644 --- a/libavfilter/vf_lut.c +++ b/libavfilter/vf_lut.c @@ -599,7 +599,8 @@ static const AVFilterPad outputs[] = { FILTER_OUTPUTS(outputs), \ FILTER_QUERY_FUNC(query_formats), \ .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | \ - AVFILTER_FLAG_SLICE_THREADS, \ + AVFILTER_FLAG_SLICE_THREADS | \ + AVFILTER_FLAG_SUPPORT_COMMANDS, \ .process_command = process_command, \ } diff --git a/libavfilter/vf_lut2.c b/libavfilter/vf_lut2.c index 868c0496fa..0dee5aae86 100644 --- a/libavfilter/vf_lut2.c +++ b/libavfilter/vf_lut2.c @@ -571,7 +571,8 @@ const AVFilter ff_vf_lut2 = { FILTER_OUTPUTS(outputs), FILTER_QUERY_FUNC(query_formats), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | - AVFILTER_FLAG_SLICE_THREADS, + AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; @@ -661,7 +662,8 @@ const AVFilter ff_vf_tlut2 = { FILTER_OUTPUTS(tlut2_outputs), FILTER_QUERY_FUNC(query_formats), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | - AVFILTER_FLAG_SLICE_THREADS, + AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_lut3d.c b/libavfilter/vf_lut3d.c index 8ec07f8ab0..5062602f8a 100644 --- a/libavfilter/vf_lut3d.c +++ b/libavfilter/vf_lut3d.c @@ -1364,7 +1364,8 @@ const AVFilter ff_vf_lut3d = { FILTER_OUTPUTS(lut3d_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &lut3d_class, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; #endif @@ -1628,7 +1629,8 @@ const AVFilter ff_vf_haldclut = { FILTER_OUTPUTS(haldclut_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &haldclut_class, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; #endif @@ -2291,7 +2293,8 @@ const AVFilter ff_vf_lut1d = { FILTER_OUTPUTS(lut1d_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &lut1d_class, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = lut1d_process_command, }; #endif diff --git a/libavfilter/vf_maskedclamp.c b/libavfilter/vf_maskedclamp.c index de97669877..fbb950175c 100644 --- a/libavfilter/vf_maskedclamp.c +++ b/libavfilter/vf_maskedclamp.c @@ -314,6 +314,7 @@ const AVFilter ff_vf_maskedclamp = { FILTER_OUTPUTS(maskedclamp_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &maskedclamp_class, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_maskedmerge.c b/libavfilter/vf_maskedmerge.c index f86bf0c748..0a994d6b4a 100644 --- a/libavfilter/vf_maskedmerge.c +++ b/libavfilter/vf_maskedmerge.c @@ -315,6 +315,7 @@ const AVFilter ff_vf_maskedmerge = { FILTER_OUTPUTS(maskedmerge_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &maskedmerge_class, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_maskedminmax.c b/libavfilter/vf_maskedminmax.c index 5b70c8437f..e567d394ec 100644 --- a/libavfilter/vf_maskedminmax.c +++ b/libavfilter/vf_maskedminmax.c @@ -326,7 +326,8 @@ const AVFilter ff_vf_maskedmin = { FILTER_INPUTS(maskedminmax_inputs), FILTER_OUTPUTS(maskedminmax_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; @@ -340,6 +341,7 @@ const AVFilter ff_vf_maskedmax = { FILTER_INPUTS(maskedminmax_inputs), FILTER_OUTPUTS(maskedminmax_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_maskedthreshold.c b/libavfilter/vf_maskedthreshold.c index 4d3745232e..1835159e2b 100644 --- a/libavfilter/vf_maskedthreshold.c +++ b/libavfilter/vf_maskedthreshold.c @@ -283,6 +283,7 @@ const AVFilter ff_vf_maskedthreshold = { FILTER_INPUTS(maskedthreshold_inputs), FILTER_OUTPUTS(maskedthreshold_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_maskfun.c b/libavfilter/vf_maskfun.c index ff4acacc76..aab06f45fd 100644 --- a/libavfilter/vf_maskfun.c +++ b/libavfilter/vf_maskfun.c @@ -311,6 +311,7 @@ const AVFilter ff_vf_maskfun = { FILTER_OUTPUTS(maskfun_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &maskfun_class, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_median.c b/libavfilter/vf_median.c index 11eccf608c..d1727453f7 100644 --- a/libavfilter/vf_median.c +++ b/libavfilter/vf_median.c @@ -286,6 +286,7 @@ const AVFilter ff_vf_median = { FILTER_INPUTS(median_inputs), FILTER_OUTPUTS(median_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_mix.c b/libavfilter/vf_mix.c index 27455657f2..f69824505b 100644 --- a/libavfilter/vf_mix.c +++ b/libavfilter/vf_mix.c @@ -359,7 +359,8 @@ const AVFilter ff_vf_mix = { .uninit = uninit, .activate = activate, .flags = AVFILTER_FLAG_DYNAMIC_INPUTS | AVFILTER_FLAG_SLICE_THREADS | - AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, + AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; @@ -428,6 +429,9 @@ AVFILTER_DEFINE_CLASS(tmix); const AVFilter ff_vf_tmix = { .name = "tmix", .description = NULL_IF_CONFIG_SMALL("Mix successive video frames."), + .flags = AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS | + AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, .priv_size = sizeof(MixContext), .priv_class = &tmix_class, FILTER_OUTPUTS(outputs), @@ -435,7 +439,6 @@ const AVFilter ff_vf_tmix = { FILTER_QUERY_FUNC(query_formats), .init = init, .uninit = uninit, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, .process_command = process_command, }; diff --git a/libavfilter/vf_monochrome.c b/libavfilter/vf_monochrome.c index 1afc21560d..f6f63f1cea 100644 --- a/libavfilter/vf_monochrome.c +++ b/libavfilter/vf_monochrome.c @@ -296,6 +296,7 @@ const AVFilter ff_vf_monochrome = { FILTER_INPUTS(monochrome_inputs), FILTER_OUTPUTS(monochrome_outputs), FILTER_PIXFMTS_ARRAY(pixel_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_morpho.c b/libavfilter/vf_morpho.c index f91957ab81..52e7580093 100644 --- a/libavfilter/vf_morpho.c +++ b/libavfilter/vf_morpho.c @@ -1022,6 +1022,7 @@ const AVFilter ff_vf_morpho = { FILTER_INPUTS(morpho_inputs), FILTER_OUTPUTS(morpho_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_neighbor.c b/libavfilter/vf_neighbor.c index f48fb306b2..f7a3247756 100644 --- a/libavfilter/vf_neighbor.c +++ b/libavfilter/vf_neighbor.c @@ -359,7 +359,8 @@ const AVFilter ff_vf_##name_ = { \ FILTER_OUTPUTS(neighbor_outputs), \ FILTER_PIXFMTS_ARRAY(pix_fmts), \ .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC| \ - AVFILTER_FLAG_SLICE_THREADS, \ + AVFILTER_FLAG_SLICE_THREADS | \ + AVFILTER_FLAG_SUPPORT_COMMANDS, \ .process_command = ff_filter_process_command, \ } diff --git a/libavfilter/vf_nnedi.c b/libavfilter/vf_nnedi.c index cbe2110577..25c37b1ae1 100644 --- a/libavfilter/vf_nnedi.c +++ b/libavfilter/vf_nnedi.c @@ -1157,6 +1157,7 @@ const AVFilter ff_vf_nnedi = { FILTER_INPUTS(inputs), FILTER_OUTPUTS(outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_normalize.c b/libavfilter/vf_normalize.c index 43ed3c67b3..7b6c6d85f7 100644 --- a/libavfilter/vf_normalize.c +++ b/libavfilter/vf_normalize.c @@ -527,6 +527,7 @@ const AVFilter ff_vf_normalize = { FILTER_INPUTS(inputs), FILTER_OUTPUTS(outputs), FILTER_PIXFMTS_ARRAY(pixel_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_overlay.c b/libavfilter/vf_overlay.c index 2966cef09c..29f8752f8e 100644 --- a/libavfilter/vf_overlay.c +++ b/libavfilter/vf_overlay.c @@ -1118,5 +1118,6 @@ const AVFilter ff_vf_overlay = { FILTER_OUTPUTS(avfilter_vf_overlay_outputs), FILTER_QUERY_FUNC(query_formats), .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | - AVFILTER_FLAG_SLICE_THREADS, + AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/vf_phase.c b/libavfilter/vf_phase.c index 1cb71e0e43..fef30c14ee 100644 --- a/libavfilter/vf_phase.c +++ b/libavfilter/vf_phase.c @@ -234,6 +234,7 @@ const AVFilter ff_vf_phase = { FILTER_INPUTS(phase_inputs), FILTER_OUTPUTS(phase_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_pp.c b/libavfilter/vf_pp.c index 13a013a12d..c053d4b010 100644 --- a/libavfilter/vf_pp.c +++ b/libavfilter/vf_pp.c @@ -192,5 +192,6 @@ const AVFilter ff_vf_pp = { FILTER_PIXFMTS_ARRAY(pix_fmts), .process_command = pp_process_command, .priv_class = &pp_class, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/vf_pseudocolor.c b/libavfilter/vf_pseudocolor.c index cb9c9c84cf..738660c459 100644 --- a/libavfilter/vf_pseudocolor.c +++ b/libavfilter/vf_pseudocolor.c @@ -920,6 +920,7 @@ const AVFilter ff_vf_pseudocolor = { FILTER_INPUTS(inputs), FILTER_OUTPUTS(outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_readeia608.c b/libavfilter/vf_readeia608.c index b9dc46e10e..82ca49657b 100644 --- a/libavfilter/vf_readeia608.c +++ b/libavfilter/vf_readeia608.c @@ -555,6 +555,7 @@ const AVFilter ff_vf_readeia608 = { FILTER_OUTPUTS(readeia608_outputs), FILTER_PIXFMTS_ARRAY(pixel_fmts), .uninit = uninit, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_rotate.c b/libavfilter/vf_rotate.c index 4429e3d543..39366fd4b5 100644 --- a/libavfilter/vf_rotate.c +++ b/libavfilter/vf_rotate.c @@ -601,5 +601,6 @@ const AVFilter ff_vf_rotate = { FILTER_OUTPUTS(rotate_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &rotate_class, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c index 5411289894..9ef2d00d96 100644 --- a/libavfilter/vf_scale.c +++ b/libavfilter/vf_scale.c @@ -994,6 +994,7 @@ static const AVFilterPad avfilter_vf_scale_outputs[] = { const AVFilter ff_vf_scale = { .name = "scale", .description = NULL_IF_CONFIG_SMALL("Scale the input video size and/or convert the image format."), + .flags = AVFILTER_FLAG_SUPPORT_COMMANDS, .init_dict = init_dict, .uninit = uninit, .priv_size = sizeof(ScaleContext), @@ -1035,6 +1036,7 @@ static const AVFilterPad avfilter_vf_scale2ref_outputs[] = { const AVFilter ff_vf_scale2ref = { .name = "scale2ref", .description = NULL_IF_CONFIG_SMALL("Scale the input video size and/or convert the image format to the given reference."), + .flags = AVFILTER_FLAG_SUPPORT_COMMANDS, .init_dict = init_dict, .uninit = uninit, .priv_size = sizeof(ScaleContext), diff --git a/libavfilter/vf_scroll.c b/libavfilter/vf_scroll.c index 107686cb02..2a0bd573ef 100644 --- a/libavfilter/vf_scroll.c +++ b/libavfilter/vf_scroll.c @@ -209,6 +209,7 @@ const AVFilter ff_vf_scroll = { FILTER_INPUTS(scroll_inputs), FILTER_OUTPUTS(scroll_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_shear.c b/libavfilter/vf_shear.c index 760caa5011..457109439d 100644 --- a/libavfilter/vf_shear.c +++ b/libavfilter/vf_shear.c @@ -316,6 +316,7 @@ const AVFilter ff_vf_shear = { FILTER_OUTPUTS(outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), .priv_class = &shear_class, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_spp.c b/libavfilter/vf_spp.c index 0192676909..3763820bf3 100644 --- a/libavfilter/vf_spp.c +++ b/libavfilter/vf_spp.c @@ -501,5 +501,6 @@ const AVFilter ff_vf_spp = { FILTER_PIXFMTS_ARRAY(pix_fmts), .process_command = process_command, .priv_class = &spp_class, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | + AVFILTER_FLAG_SUPPORT_COMMANDS, }; diff --git a/libavfilter/vf_swaprect.c b/libavfilter/vf_swaprect.c index b76e3bb99d..ce7692efcc 100644 --- a/libavfilter/vf_swaprect.c +++ b/libavfilter/vf_swaprect.c @@ -241,6 +241,7 @@ const AVFilter ff_vf_swaprect = { FILTER_INPUTS(inputs), FILTER_OUTPUTS(outputs), FILTER_QUERY_FUNC(query_formats), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_threshold.c b/libavfilter/vf_threshold.c index 2a0add4a8f..b5b10fa5ab 100644 --- a/libavfilter/vf_threshold.c +++ b/libavfilter/vf_threshold.c @@ -351,6 +351,7 @@ const AVFilter ff_vf_threshold = { FILTER_INPUTS(inputs), FILTER_OUTPUTS(outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_v360.c b/libavfilter/vf_v360.c index f7c45286e2..9e4cbdf386 100644 --- a/libavfilter/vf_v360.c +++ b/libavfilter/vf_v360.c @@ -5018,6 +5018,7 @@ const AVFilter ff_vf_v360 = { FILTER_OUTPUTS(outputs), FILTER_QUERY_FUNC(query_formats), .priv_class = &v360_class, - .flags = AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; diff --git a/libavfilter/vf_vibrance.c b/libavfilter/vf_vibrance.c index 81ae63902c..f416022a34 100644 --- a/libavfilter/vf_vibrance.c +++ b/libavfilter/vf_vibrance.c @@ -373,6 +373,7 @@ const AVFilter ff_vf_vibrance = { FILTER_INPUTS(vibrance_inputs), FILTER_OUTPUTS(vibrance_outputs), FILTER_PIXFMTS_ARRAY(pixel_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_w3fdif.c b/libavfilter/vf_w3fdif.c index c2ea76dfa3..bdd426314f 100644 --- a/libavfilter/vf_w3fdif.c +++ b/libavfilter/vf_w3fdif.c @@ -614,6 +614,7 @@ const AVFilter ff_vf_w3fdif = { FILTER_INPUTS(w3fdif_inputs), FILTER_OUTPUTS(w3fdif_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_xmedian.c b/libavfilter/vf_xmedian.c index f9dc0f7ecf..b98a18caed 100644 --- a/libavfilter/vf_xmedian.c +++ b/libavfilter/vf_xmedian.c @@ -398,7 +398,8 @@ const AVFilter ff_vf_xmedian = { .uninit = uninit, .activate = activate, .flags = AVFILTER_FLAG_DYNAMIC_INPUTS | AVFILTER_FLAG_SLICE_THREADS | - AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, + AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = process_command, }; @@ -472,6 +473,9 @@ AVFILTER_DEFINE_CLASS(tmedian); const AVFilter ff_vf_tmedian = { .name = "tmedian", .description = NULL_IF_CONFIG_SMALL("Pick median pixels from successive frames."), + .flags = AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS | + AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, .priv_size = sizeof(XMedianContext), .priv_class = &tmedian_class, FILTER_INPUTS(tmedian_inputs), @@ -479,7 +483,6 @@ const AVFilter ff_vf_tmedian = { FILTER_PIXFMTS_ARRAY(pixel_fmts), .init = init, .uninit = uninit, - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS, .process_command = process_command, }; diff --git a/libavfilter/vf_yaepblur.c b/libavfilter/vf_yaepblur.c index 28a74a85a0..1c7a784bbc 100644 --- a/libavfilter/vf_yaepblur.c +++ b/libavfilter/vf_yaepblur.c @@ -340,6 +340,7 @@ const AVFilter ff_vf_yaepblur = { FILTER_INPUTS(yaep_inputs), FILTER_OUTPUTS(yaep_outputs), FILTER_PIXFMTS_ARRAY(pix_fmts), - .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS | + AVFILTER_FLAG_SUPPORT_COMMANDS, .process_command = ff_filter_process_command, }; diff --git a/libavfilter/vf_zscale.c b/libavfilter/vf_zscale.c index 3f7dba489a..69f0f000c5 100644 --- a/libavfilter/vf_zscale.c +++ b/libavfilter/vf_zscale.c @@ -938,6 +938,7 @@ static const AVFilterPad avfilter_vf_zscale_outputs[] = { const AVFilter ff_vf_zscale = { .name = "zscale", .description = NULL_IF_CONFIG_SMALL("Apply resizing, colorspace and bit depth conversion."), + .flags = AVFILTER_FLAG_SUPPORT_COMMANDS, .init = init, .priv_size = sizeof(ZScaleContext), .priv_class = &zscale_class, diff --git a/libavfilter/vsrc_testsrc.c b/libavfilter/vsrc_testsrc.c index c99cc63be8..47aa0820bb 100644 --- a/libavfilter/vsrc_testsrc.c +++ b/libavfilter/vsrc_testsrc.c @@ -269,6 +269,7 @@ const AVFilter ff_vsrc_color = { .name = "color", .description = NULL_IF_CONFIG_SMALL("Provide an uniformly colored input."), .priv_class = &color_class, + .flags = AVFILTER_FLAG_SUPPORT_COMMANDS, .priv_size = sizeof(TestSourceContext), .init = color_init, .uninit = uninit, -- 2.30.2 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".