avfilter: Replace query_formats callback with union of list and callback

If one looks at the many query_formats callbacks in existence,
one will immediately recognize that there is one type of default
callback for video and a slightly different default callback for
audio: It is "return ff_set_common_formats_from_list(ctx, pix_fmts);"
for video with a filter-specific pix_fmts list. For audio, it is
the same with a filter-specific sample_fmts list together with
ff_set_common_all_samplerates() and ff_set_common_all_channel_counts().

This commit allows to remove the boilerplate query_formats callbacks
by replacing said callback with a union consisting the old callback
and pointers for pixel and sample format arrays. For the not uncommon
case in which these lists only contain a single entry (besides the
sentinel) enum AVPixelFormat and enum AVSampleFormat fields are also
added to the union to store them directly in the AVFilter,
thereby avoiding a relocation.

The state of said union will be contained in a new, dedicated AVFilter
field (the nb_inputs and nb_outputs fields have been shrunk to uint8_t
in order to create a hole for this new field; this is no problem, as
the maximum of all the nb_inputs is four; for nb_outputs it is only
two).

The state's default value coincides with the earlier default of
query_formats being unset, namely that the filter accepts all formats
(and also sample rates and channel counts/layouts for audio)
provided that these properties agree coincide for all inputs and
outputs.

By using different union members for audio and video filters
the type-unsafety of using the same functions for audio and video
lists will furthermore be more confined to formats.c than before.

When the new fields are used, they will also avoid allocations:
Currently something nearly equivalent to ff_default_query_formats()
is called after every successful call to a query_formats callback;
yet in the common case that the newly allocated AVFilterFormats
are not used at all (namely if there are no free links) these newly
allocated AVFilterFormats are freed again without ever being used.
Filters no longer using the callback will not exhibit this any more.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Reviewed-by: Nicolas George <george@nsup.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt 2021-09-27 12:07:35 +02:00
parent aa6360928e
commit b4f5201967
360 changed files with 551 additions and 441 deletions

View File

@ -320,13 +320,13 @@ static const AVFilterPad aevalsrc_outputs[] = {
const AVFilter ff_asrc_aevalsrc = {
.name = "aevalsrc",
.description = NULL_IF_CONFIG_SMALL("Generate an audio signal generated by an expression."),
.query_formats = query_formats,
.init = init,
.uninit = uninit,
.activate = activate,
.priv_size = sizeof(EvalContext),
.inputs = NULL,
FILTER_OUTPUTS(aevalsrc_outputs),
FILTER_QUERY_FUNC(query_formats),
.priv_class = &aevalsrc_class,
};
@ -466,12 +466,12 @@ static const AVFilterPad aeval_outputs[] = {
const AVFilter ff_af_aeval = {
.name = "aeval",
.description = NULL_IF_CONFIG_SMALL("Filter audio signal according to a specified expression."),
.query_formats = aeval_query_formats,
.init = init,
.uninit = uninit,
.priv_size = sizeof(EvalContext),
FILTER_INPUTS(aeval_inputs),
FILTER_OUTPUTS(aeval_outputs),
FILTER_QUERY_FUNC(aeval_query_formats),
.priv_class = &aeval_class,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC,
};

View File

@ -199,9 +199,9 @@ static const AVFilterPad outputs[] = {
const AVFilter ff_af_acontrast = {
.name = "acontrast",
.description = NULL_IF_CONFIG_SMALL("Simple audio dynamic range compression/expansion filter."),
.query_formats = query_formats,
.priv_size = sizeof(AudioContrastContext),
.priv_class = &acontrast_class,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -559,7 +559,7 @@ const AVFilter ff_af_acrossover = {
.priv_class = &acrossover_class,
.init = init,
.uninit = uninit,
.query_formats = query_formats,
FILTER_QUERY_FUNC(query_formats),
FILTER_INPUTS(inputs),
.outputs = NULL,
.flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS |

View File

@ -357,7 +357,7 @@ const AVFilter ff_af_acrusher = {
.priv_size = sizeof(ACrusherContext),
.priv_class = &acrusher_class,
.uninit = uninit,
.query_formats = query_formats,
FILTER_QUERY_FUNC(query_formats),
FILTER_INPUTS(avfilter_af_acrusher_inputs),
FILTER_OUTPUTS(avfilter_af_acrusher_outputs),
.process_command = process_command,

View File

@ -753,7 +753,6 @@ static const AVFilterPad outputs[] = {
const AVFilter ff_af_adeclick = {
.name = "adeclick",
.description = NULL_IF_CONFIG_SMALL("Remove impulsive noise from input audio."),
.query_formats = query_formats,
.priv_size = sizeof(AudioDeclickContext),
.priv_class = &adeclick_class,
.init = init,
@ -761,6 +760,7 @@ const AVFilter ff_af_adeclick = {
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.flags = AVFILTER_FLAG_SLICE_THREADS | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL,
};
@ -789,7 +789,6 @@ AVFILTER_DEFINE_CLASS(adeclip);
const AVFilter ff_af_adeclip = {
.name = "adeclip",
.description = NULL_IF_CONFIG_SMALL("Remove clipping from input audio."),
.query_formats = query_formats,
.priv_size = sizeof(AudioDeclickContext),
.priv_class = &adeclip_class,
.init = init,
@ -797,5 +796,6 @@ const AVFilter ff_af_adeclip = {
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.flags = AVFILTER_FLAG_SLICE_THREADS | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL,
};

View File

@ -257,12 +257,12 @@ static const AVFilterPad outputs[] = {
const AVFilter ff_af_adecorrelate = {
.name = "adecorrelate",
.description = NULL_IF_CONFIG_SMALL("Apply decorrelation to input audio."),
.query_formats = query_formats,
.priv_size = sizeof(ADecorrelateContext),
.priv_class = &adecorrelate_class,
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC |
AVFILTER_FLAG_SLICE_THREADS,
};

View File

@ -338,12 +338,12 @@ static const AVFilterPad adelay_outputs[] = {
const AVFilter ff_af_adelay = {
.name = "adelay",
.description = NULL_IF_CONFIG_SMALL("Delay one or more audio channels."),
.query_formats = query_formats,
.priv_size = sizeof(AudioDelayContext),
.priv_class = &adelay_class,
.activate = activate,
.uninit = uninit,
FILTER_INPUTS(adelay_inputs),
FILTER_OUTPUTS(adelay_outputs),
FILTER_QUERY_FUNC(query_formats),
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL,
};

View File

@ -307,10 +307,10 @@ AVFILTER_DEFINE_CLASS(adenorm);
const AVFilter ff_af_adenorm = {
.name = "adenorm",
.description = NULL_IF_CONFIG_SMALL("Remedy denormals by adding extremely low-level noise."),
.query_formats = query_formats,
.priv_size = sizeof(ADenormContext),
FILTER_INPUTS(adenorm_inputs),
FILTER_OUTPUTS(adenorm_outputs),
FILTER_QUERY_FUNC(query_formats),
.priv_class = &adenorm_class,
.process_command = process_command,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC |

View File

@ -175,19 +175,19 @@ static const AVFilterPad aderivative_outputs[] = {
const AVFilter ff_af_aderivative = {
.name = "aderivative",
.description = NULL_IF_CONFIG_SMALL("Compute derivative of input audio."),
.query_formats = query_formats,
.priv_size = sizeof(ADerivativeContext),
.uninit = uninit,
FILTER_INPUTS(aderivative_inputs),
FILTER_OUTPUTS(aderivative_outputs),
FILTER_QUERY_FUNC(query_formats),
};
const AVFilter ff_af_aintegral = {
.name = "aintegral",
.description = NULL_IF_CONFIG_SMALL("Compute integral of input audio."),
.query_formats = query_formats,
.priv_size = sizeof(ADerivativeContext),
.uninit = uninit,
FILTER_INPUTS(aderivative_inputs),
FILTER_OUTPUTS(aderivative_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -364,7 +364,6 @@ static const AVFilterPad aecho_outputs[] = {
const AVFilter ff_af_aecho = {
.name = "aecho",
.description = NULL_IF_CONFIG_SMALL("Add echoing to the audio."),
.query_formats = query_formats,
.priv_size = sizeof(AudioEchoContext),
.priv_class = &aecho_class,
.init = init,
@ -372,4 +371,5 @@ const AVFilter ff_af_aecho = {
.uninit = uninit,
FILTER_INPUTS(aecho_inputs),
FILTER_OUTPUTS(aecho_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -391,9 +391,9 @@ const AVFilter ff_af_aemphasis = {
.priv_size = sizeof(AudioEmphasisContext),
.priv_class = &aemphasis_class,
.uninit = uninit,
.query_formats = query_formats,
FILTER_INPUTS(avfilter_af_aemphasis_inputs),
FILTER_OUTPUTS(avfilter_af_aemphasis_outputs),
FILTER_QUERY_FUNC(query_formats),
.process_command = process_command,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC |
AVFILTER_FLAG_SLICE_THREADS,

View File

@ -294,9 +294,9 @@ const AVFilter ff_af_aexciter = {
.priv_size = sizeof(AExciterContext),
.priv_class = &aexciter_class,
.uninit = uninit,
.query_formats = query_formats,
FILTER_INPUTS(avfilter_af_aexciter_inputs),
FILTER_OUTPUTS(avfilter_af_aexciter_outputs),
FILTER_QUERY_FUNC(query_formats),
.process_command = process_command,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL,
};

View File

@ -353,11 +353,11 @@ static const AVFilterPad avfilter_af_afade_outputs[] = {
const AVFilter ff_af_afade = {
.name = "afade",
.description = NULL_IF_CONFIG_SMALL("Fade in/out input audio."),
.query_formats = query_formats,
.priv_size = sizeof(AudioFadeContext),
.init = init,
FILTER_INPUTS(avfilter_af_afade_inputs),
FILTER_OUTPUTS(avfilter_af_afade_outputs),
FILTER_QUERY_FUNC(query_formats),
.priv_class = &afade_class,
.process_command = process_command,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC,
@ -626,12 +626,12 @@ static const AVFilterPad avfilter_af_acrossfade_outputs[] = {
const AVFilter ff_af_acrossfade = {
.name = "acrossfade",
.description = NULL_IF_CONFIG_SMALL("Cross fade two input audio streams."),
.query_formats = query_formats,
.priv_size = sizeof(AudioFadeContext),
.activate = activate,
.priv_class = &acrossfade_class,
FILTER_INPUTS(avfilter_af_acrossfade_inputs),
FILTER_OUTPUTS(avfilter_af_acrossfade_outputs),
FILTER_QUERY_FUNC(query_formats),
};
#endif /* CONFIG_ACROSSFADE_FILTER */

View File

@ -1412,13 +1412,13 @@ static const AVFilterPad outputs[] = {
const AVFilter ff_af_afftdn = {
.name = "afftdn",
.description = NULL_IF_CONFIG_SMALL("Denoise audio samples using FFT."),
.query_formats = query_formats,
.priv_size = sizeof(AudioFFTDeNoiseContext),
.priv_class = &afftdn_class,
.activate = activate,
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.process_command = process_command,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL |
AVFILTER_FLAG_SLICE_THREADS,

View File

@ -489,8 +489,8 @@ const AVFilter ff_af_afftfilt = {
.priv_class = &afftfilt_class,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.activate = activate,
.query_formats = query_formats,
.uninit = uninit,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL,
};

View File

@ -942,7 +942,7 @@ const AVFilter ff_af_afir = {
.description = NULL_IF_CONFIG_SMALL("Apply Finite Impulse Response filter with supplied coefficients in additional stream(s)."),
.priv_size = sizeof(AudioFIRContext),
.priv_class = &afir_class,
.query_formats = query_formats,
FILTER_QUERY_FUNC(query_formats),
.init = init,
.activate = activate,
.uninit = uninit,

View File

@ -160,9 +160,9 @@ const AVFilter ff_af_aformat = {
.description = NULL_IF_CONFIG_SMALL("Convert the input audio to one of the specified formats."),
.init = init,
.uninit = uninit,
.query_formats = query_formats,
.priv_size = sizeof(AFormatContext),
.priv_class = &aformat_class,
FILTER_INPUTS(avfilter_af_aformat_inputs),
FILTER_OUTPUTS(avfilter_af_aformat_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -388,12 +388,12 @@ static const AVFilterPad outputs[] = {
const AVFilter ff_af_afreqshift = {
.name = "afreqshift",
.description = NULL_IF_CONFIG_SMALL("Apply frequency shifting to input audio."),
.query_formats = query_formats,
.priv_size = sizeof(AFreqShift),
.priv_class = &afreqshift_class,
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.process_command = ff_filter_process_command,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC |
AVFILTER_FLAG_SLICE_THREADS,
@ -411,12 +411,12 @@ AVFILTER_DEFINE_CLASS(aphaseshift);
const AVFilter ff_af_aphaseshift = {
.name = "aphaseshift",
.description = NULL_IF_CONFIG_SMALL("Apply phase shifting to input audio."),
.query_formats = query_formats,
.priv_size = sizeof(AFreqShift),
.priv_class = &aphaseshift_class,
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.process_command = ff_filter_process_command,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC |
AVFILTER_FLAG_SLICE_THREADS,

View File

@ -1325,13 +1325,13 @@ static const AVFilterPad outputs[] = {
const AVFilter ff_af_afwtdn = {
.name = "afwtdn",
.description = NULL_IF_CONFIG_SMALL("Denoise audio stream using Wavelets."),
.query_formats = query_formats,
.priv_size = sizeof(AudioFWTDNContext),
.priv_class = &afwtdn_class,
.activate = activate,
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.process_command = process_command,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL |
AVFILTER_FLAG_SLICE_THREADS,

View File

@ -255,10 +255,10 @@ const AVFilter ff_af_agate = {
.name = "agate",
.description = NULL_IF_CONFIG_SMALL("Audio gate."),
.priv_class = &agate_sidechaingate_class,
.query_formats = query_formats,
.priv_size = sizeof(AudioGateContext),
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.process_command = ff_filter_process_command,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC,
};
@ -404,11 +404,11 @@ const AVFilter ff_af_sidechaingate = {
.description = NULL_IF_CONFIG_SMALL("Audio sidechain gate."),
.priv_class = &agate_sidechaingate_class,
.priv_size = sizeof(AudioGateContext),
.query_formats = scquery_formats,
.activate = activate,
.uninit = uninit,
FILTER_INPUTS(sidechaingate_inputs),
FILTER_OUTPUTS(sidechaingate_outputs),
FILTER_QUERY_FUNC(scquery_formats),
.process_command = ff_filter_process_command,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL,
};

View File

@ -1572,8 +1572,8 @@ const AVFilter ff_af_aiir = {
.priv_class = &aiir_class,
.init = init,
.uninit = uninit,
.query_formats = query_formats,
FILTER_INPUTS(inputs),
FILTER_QUERY_FUNC(query_formats),
.flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS |
AVFILTER_FLAG_SLICE_THREADS,
};

View File

@ -353,7 +353,7 @@ const AVFilter ff_af_alimiter = {
.priv_class = &alimiter_class,
.init = init,
.uninit = uninit,
.query_formats = query_formats,
FILTER_INPUTS(alimiter_inputs),
FILTER_OUTPUTS(alimiter_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -337,10 +337,10 @@ const AVFilter ff_af_amerge = {
.priv_size = sizeof(AMergeContext),
.init = init,
.uninit = uninit,
.query_formats = query_formats,
.activate = activate,
.inputs = NULL,
FILTER_OUTPUTS(amerge_outputs),
FILTER_QUERY_FUNC(query_formats),
.priv_class = &amerge_class,
.flags = AVFILTER_FLAG_DYNAMIC_INPUTS,
};

View File

@ -639,9 +639,9 @@ const AVFilter ff_af_amix = {
.init = init,
.uninit = uninit,
.activate = activate,
.query_formats = query_formats,
.inputs = NULL,
FILTER_OUTPUTS(avfilter_af_amix_outputs),
FILTER_QUERY_FUNC(query_formats),
.process_command = process_command,
.flags = AVFILTER_FLAG_DYNAMIC_INPUTS,
};

View File

@ -196,7 +196,7 @@ const AVFilter ff_af_amultiply = {
.init = init,
.uninit = uninit,
.activate = activate,
.query_formats = query_formats,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -770,9 +770,9 @@ const AVFilter ff_af_anequalizer = {
.priv_class = &anequalizer_class,
.init = init,
.uninit = uninit,
.query_formats = query_formats,
FILTER_INPUTS(inputs),
.outputs = NULL,
FILTER_QUERY_FUNC(query_formats),
.process_command = process_command,
.flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS |
AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL |

View File

@ -402,12 +402,12 @@ static const AVFilterPad outputs[] = {
const AVFilter ff_af_anlmdn = {
.name = "anlmdn",
.description = NULL_IF_CONFIG_SMALL("Reduce broadband noise from stream using Non-Local Means."),
.query_formats = query_formats,
.priv_size = sizeof(AudioNLMeansContext),
.priv_class = &anlmdn_class,
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.process_command = process_command,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL |
AVFILTER_FLAG_SLICE_THREADS,

View File

@ -306,9 +306,9 @@ const AVFilter ff_af_anlms = {
.init = init,
.uninit = uninit,
.activate = activate,
.query_formats = query_formats,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.flags = AVFILTER_FLAG_SLICE_THREADS,
.process_command = ff_filter_process_command,
};

View File

@ -278,11 +278,11 @@ static const AVFilterPad aphaser_outputs[] = {
const AVFilter ff_af_aphaser = {
.name = "aphaser",
.description = NULL_IF_CONFIG_SMALL("Add a phasing effect to the audio."),
.query_formats = query_formats,
.priv_size = sizeof(AudioPhaserContext),
.init = init,
.uninit = uninit,
FILTER_INPUTS(aphaser_inputs),
FILTER_OUTPUTS(aphaser_outputs),
FILTER_QUERY_FUNC(query_formats),
.priv_class = &aphaser_class,
};

View File

@ -666,12 +666,12 @@ static const AVFilterPad outputs[] = {
const AVFilter ff_af_apsyclip = {
.name = "apsyclip",
.description = NULL_IF_CONFIG_SMALL("Audio Psychoacoustic Clipper."),
.query_formats = query_formats,
.priv_size = sizeof(AudioPsyClipContext),
.priv_class = &apsyclip_class,
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL |
AVFILTER_FLAG_SLICE_THREADS,
.activate = activate,

View File

@ -249,7 +249,7 @@ const AVFilter ff_af_apulsator = {
.description = NULL_IF_CONFIG_SMALL("Audio pulsator."),
.priv_size = sizeof(AudioPulsatorContext),
.priv_class = &apulsator_class,
.query_formats = query_formats,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -332,9 +332,9 @@ const AVFilter ff_af_aresample = {
.description = NULL_IF_CONFIG_SMALL("Resample audio data."),
.preinit = preinit,
.uninit = uninit,
.query_formats = query_formats,
.priv_size = sizeof(AResampleContext),
.priv_class = &aresample_class,
FILTER_INPUTS(aresample_inputs),
FILTER_OUTPUTS(aresample_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -1608,7 +1608,6 @@ AVFILTER_DEFINE_CLASS(arnndn);
const AVFilter ff_af_arnndn = {
.name = "arnndn",
.description = NULL_IF_CONFIG_SMALL("Reduce noise from speech using Recurrent Neural Networks."),
.query_formats = query_formats,
.priv_size = sizeof(AudioRNNContext),
.priv_class = &arnndn_class,
.activate = activate,
@ -1616,6 +1615,7 @@ const AVFilter ff_af_arnndn = {
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL |
AVFILTER_FLAG_SLICE_THREADS,
.process_command = process_command,

View File

@ -108,9 +108,9 @@ const AVFilter ff_af_asetrate = {
.name = "asetrate",
.description = NULL_IF_CONFIG_SMALL("Change the sample rate without "
"altering the data."),
.query_formats = query_formats,
.priv_size = sizeof(ASetRateContext),
FILTER_INPUTS(asetrate_inputs),
FILTER_OUTPUTS(asetrate_outputs),
FILTER_QUERY_FUNC(query_formats),
.priv_class = &asetrate_class,
};

View File

@ -500,11 +500,11 @@ static const AVFilterPad outputs[] = {
const AVFilter ff_af_asoftclip = {
.name = "asoftclip",
.description = NULL_IF_CONFIG_SMALL("Audio Soft Clipper."),
.query_formats = query_formats,
.priv_size = sizeof(ASoftClipContext),
.priv_class = &asoftclip_class,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.uninit = uninit,
.process_command = ff_filter_process_command,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC |

View File

@ -172,7 +172,7 @@ const AVFilter ff_af_asr = {
.priv_class = &asr_class,
.init = asr_init,
.uninit = asr_uninit,
.query_formats = query_formats,
FILTER_INPUTS(asr_inputs),
FILTER_OUTPUTS(asr_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -863,11 +863,11 @@ static const AVFilterPad astats_outputs[] = {
const AVFilter ff_af_astats = {
.name = "astats",
.description = NULL_IF_CONFIG_SMALL("Show time domain statistics about audio frames."),
.query_formats = query_formats,
.priv_size = sizeof(AudioStatsContext),
.priv_class = &astats_class,
.uninit = uninit,
FILTER_INPUTS(astats_inputs),
FILTER_OUTPUTS(astats_outputs),
FILTER_QUERY_FUNC(query_formats),
.flags = AVFILTER_FLAG_SLICE_THREADS,
};

View File

@ -233,12 +233,12 @@ static const AVFilterPad outputs[] = {
const AVFilter ff_af_asubboost = {
.name = "asubboost",
.description = NULL_IF_CONFIG_SMALL("Boost subwoofer frequencies."),
.query_formats = query_formats,
.priv_size = sizeof(ASubBoostContext),
.priv_class = &asubboost_class,
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.process_command = process_command,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL |
AVFILTER_FLAG_SLICE_THREADS,

View File

@ -357,12 +357,12 @@ static const AVFilterPad outputs[] = {
const AVFilter ff_af_asupercut = {
.name = "asupercut",
.description = NULL_IF_CONFIG_SMALL("Cut super frequencies."),
.query_formats = query_formats,
.priv_size = sizeof(ASuperCutContext),
.priv_class = &asupercut_class,
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.process_command = process_command,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC |
AVFILTER_FLAG_SLICE_THREADS,
@ -380,12 +380,12 @@ AVFILTER_DEFINE_CLASS(asubcut);
const AVFilter ff_af_asubcut = {
.name = "asubcut",
.description = NULL_IF_CONFIG_SMALL("Cut subwoofer frequencies."),
.query_formats = query_formats,
.priv_size = sizeof(ASuperCutContext),
.priv_class = &asubcut_class,
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.process_command = process_command,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC |
AVFILTER_FLAG_SLICE_THREADS,
@ -406,11 +406,11 @@ const AVFilter ff_af_asuperpass = {
.name = "asuperpass",
.description = NULL_IF_CONFIG_SMALL("Apply high order Butterworth band-pass filter."),
.priv_class = &asuperpass_asuperstop_class,
.query_formats = query_formats,
.priv_size = sizeof(ASuperCutContext),
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.process_command = process_command,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC |
AVFILTER_FLAG_SLICE_THREADS,
@ -420,11 +420,11 @@ const AVFilter ff_af_asuperstop = {
.name = "asuperstop",
.description = NULL_IF_CONFIG_SMALL("Apply high order Butterworth band-stop filter."),
.priv_class = &asuperpass_asuperstop_class,
.query_formats = query_formats,
.priv_size = sizeof(ASuperCutContext),
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.process_command = process_command,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC |
AVFILTER_FLAG_SLICE_THREADS,

View File

@ -1188,10 +1188,10 @@ const AVFilter ff_af_atempo = {
.description = NULL_IF_CONFIG_SMALL("Adjust audio tempo."),
.init = init,
.uninit = uninit,
.query_formats = query_formats,
.process_command = process_command,
.priv_size = sizeof(ATempoContext),
.priv_class = &atempo_class,
FILTER_INPUTS(atempo_inputs),
FILTER_OUTPUTS(atempo_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -275,12 +275,12 @@ static const AVFilterPad outputs[] = {
AVFilter ff_af_atilt = {
.name = "atilt",
.description = NULL_IF_CONFIG_SMALL("Apply spectral tilt to audio."),
.query_formats = query_formats,
.priv_size = sizeof(ATiltContext),
.priv_class = &atilt_class,
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.process_command = process_command,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC |
AVFILTER_FLAG_SLICE_THREADS,

View File

@ -354,9 +354,9 @@ const AVFilter ff_af_axcorrelate = {
.description = NULL_IF_CONFIG_SMALL("Cross-correlate two audio streams."),
.priv_size = sizeof(AudioXCorrelateContext),
.priv_class = &axcorrelate_class,
.query_formats = query_formats,
.activate = activate,
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -868,9 +868,9 @@ const AVFilter ff_af_##name_ = { \
.priv_size = sizeof(BiquadsContext), \
.init = name_##_init, \
.uninit = uninit, \
.query_formats = query_formats, \
FILTER_INPUTS(inputs), \
FILTER_OUTPUTS(outputs), \
FILTER_QUERY_FUNC(query_formats), \
.process_command = process_command, \
.flags = AVFILTER_FLAG_SLICE_THREADS | AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL, \
}

View File

@ -205,11 +205,11 @@ static const AVFilterPad bs2b_outputs[] = {
const AVFilter ff_af_bs2b = {
.name = "bs2b",
.description = NULL_IF_CONFIG_SMALL("Bauer stereo-to-binaural filter."),
.query_formats = query_formats,
.priv_size = sizeof(Bs2bContext),
.priv_class = &bs2b_class,
.init = init,
.uninit = uninit,
FILTER_INPUTS(bs2b_inputs),
FILTER_OUTPUTS(bs2b_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -400,9 +400,9 @@ const AVFilter ff_af_channelmap = {
.name = "channelmap",
.description = NULL_IF_CONFIG_SMALL("Remap audio channels."),
.init = channelmap_init,
.query_formats = channelmap_query_formats,
.priv_size = sizeof(ChannelMapContext),
.priv_class = &channelmap_class,
FILTER_INPUTS(avfilter_af_channelmap_inputs),
FILTER_OUTPUTS(avfilter_af_channelmap_outputs),
FILTER_QUERY_FUNC(channelmap_query_formats),
};

View File

@ -172,8 +172,8 @@ const AVFilter ff_af_channelsplit = {
.priv_size = sizeof(ChannelSplitContext),
.priv_class = &channelsplit_class,
.init = init,
.query_formats = query_formats,
FILTER_INPUTS(avfilter_af_channelsplit_inputs),
.outputs = NULL,
FILTER_QUERY_FUNC(query_formats),
.flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS,
};

View File

@ -357,11 +357,11 @@ static const AVFilterPad chorus_outputs[] = {
const AVFilter ff_af_chorus = {
.name = "chorus",
.description = NULL_IF_CONFIG_SMALL("Add a chorus effect to the audio."),
.query_formats = query_formats,
.priv_size = sizeof(ChorusContext),
.priv_class = &chorus_class,
.init = init,
.uninit = uninit,
FILTER_INPUTS(chorus_inputs),
FILTER_OUTPUTS(chorus_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -574,11 +574,11 @@ const AVFilter ff_af_compand = {
.name = "compand",
.description = NULL_IF_CONFIG_SMALL(
"Compress or expand audio dynamic range."),
.query_formats = query_formats,
.priv_size = sizeof(CompandContext),
.priv_class = &compand_class,
.init = init,
.uninit = uninit,
FILTER_INPUTS(compand_inputs),
FILTER_OUTPUTS(compand_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -174,10 +174,10 @@ static const AVFilterPad compensationdelay_outputs[] = {
const AVFilter ff_af_compensationdelay = {
.name = "compensationdelay",
.description = NULL_IF_CONFIG_SMALL("Audio Compensation Delay Line."),
.query_formats = query_formats,
.priv_size = sizeof(CompensationDelayContext),
.priv_class = &compensationdelay_class,
.uninit = uninit,
FILTER_INPUTS(compensationdelay_inputs),
FILTER_OUTPUTS(compensationdelay_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -176,11 +176,11 @@ static const AVFilterPad outputs[] = {
const AVFilter ff_af_crossfeed = {
.name = "crossfeed",
.description = NULL_IF_CONFIG_SMALL("Apply headphone crossfeed filter."),
.query_formats = query_formats,
.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,
};

View File

@ -379,12 +379,12 @@ static const AVFilterPad outputs[] = {
const AVFilter ff_af_crystalizer = {
.name = "crystalizer",
.description = NULL_IF_CONFIG_SMALL("Simple audio noise sharpening filter."),
.query_formats = query_formats,
.priv_size = sizeof(CrystalizerContext),
.priv_class = &crystalizer_class,
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.process_command = process_command,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL |
AVFILTER_FLAG_SLICE_THREADS,

View File

@ -148,11 +148,11 @@ static const AVFilterPad dcshift_outputs[] = {
const AVFilter ff_af_dcshift = {
.name = "dcshift",
.description = NULL_IF_CONFIG_SMALL("Apply a DC shift to the audio."),
.query_formats = query_formats,
.priv_size = sizeof(DCShiftContext),
.priv_class = &dcshift_class,
.init = init,
FILTER_INPUTS(dcshift_inputs),
FILTER_OUTPUTS(dcshift_outputs),
FILTER_QUERY_FUNC(query_formats),
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC,
};

View File

@ -220,11 +220,11 @@ static const AVFilterPad outputs[] = {
const AVFilter ff_af_deesser = {
.name = "deesser",
.description = NULL_IF_CONFIG_SMALL("Apply de-essing to the audio."),
.query_formats = query_formats,
.priv_size = sizeof(DeesserContext),
.priv_class = &deesser_class,
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL,
};

View File

@ -214,10 +214,10 @@ static const AVFilterPad drmeter_outputs[] = {
const AVFilter ff_af_drmeter = {
.name = "drmeter",
.description = NULL_IF_CONFIG_SMALL("Measure audio dynamic range."),
.query_formats = query_formats,
.priv_size = sizeof(DRMeterContext),
.priv_class = &drmeter_class,
.uninit = uninit,
FILTER_INPUTS(drmeter_inputs),
FILTER_OUTPUTS(drmeter_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -874,13 +874,13 @@ static const AVFilterPad avfilter_af_dynaudnorm_outputs[] = {
const AVFilter ff_af_dynaudnorm = {
.name = "dynaudnorm",
.description = NULL_IF_CONFIG_SMALL("Dynamic Audio Normalizer."),
.query_formats = query_formats,
.priv_size = sizeof(DynamicAudioNormalizerContext),
.init = init,
.uninit = uninit,
.activate = activate,
FILTER_INPUTS(avfilter_af_dynaudnorm_inputs),
FILTER_OUTPUTS(avfilter_af_dynaudnorm_outputs),
FILTER_QUERY_FUNC(query_formats),
.priv_class = &dynaudnorm_class,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL,
.process_command = process_command,

View File

@ -232,9 +232,9 @@ static const AVFilterPad earwax_outputs[] = {
const AVFilter ff_af_earwax = {
.name = "earwax",
.description = NULL_IF_CONFIG_SMALL("Widen the stereo image."),
.query_formats = query_formats,
.priv_size = sizeof(EarwaxContext),
.uninit = uninit,
FILTER_INPUTS(earwax_inputs),
FILTER_OUTPUTS(earwax_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -120,11 +120,11 @@ static const AVFilterPad outputs[] = {
const AVFilter ff_af_extrastereo = {
.name = "extrastereo",
.description = NULL_IF_CONFIG_SMALL("Increase difference between stereo audio channels."),
.query_formats = query_formats,
.priv_size = sizeof(ExtraStereoContext),
.priv_class = &extrastereo_class,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC,
.process_command = ff_filter_process_command,
};

View File

@ -958,10 +958,10 @@ const AVFilter ff_af_firequalizer = {
.name = "firequalizer",
.description = NULL_IF_CONFIG_SMALL("Finite Impulse Response Equalizer."),
.uninit = uninit,
.query_formats = query_formats,
.process_command = process_command,
.priv_size = sizeof(FIREqualizerContext),
FILTER_INPUTS(firequalizer_inputs),
FILTER_OUTPUTS(firequalizer_outputs),
FILTER_QUERY_FUNC(query_formats),
.priv_class = &firequalizer_class,
};

View File

@ -221,11 +221,11 @@ static const AVFilterPad flanger_outputs[] = {
const AVFilter ff_af_flanger = {
.name = "flanger",
.description = NULL_IF_CONFIG_SMALL("Apply a flanging effect to the audio."),
.query_formats = query_formats,
.priv_size = sizeof(FlangerContext),
.priv_class = &flanger_class,
.init = init,
.uninit = uninit,
FILTER_INPUTS(flanger_inputs),
FILTER_OUTPUTS(flanger_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -216,10 +216,10 @@ static const AVFilterPad outputs[] = {
const AVFilter ff_af_haas = {
.name = "haas",
.description = NULL_IF_CONFIG_SMALL("Apply Haas Stereo Enhancer."),
.query_formats = query_formats,
.priv_size = sizeof(HaasContext),
.priv_class = &haas_class,
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -1777,7 +1777,7 @@ const AVFilter ff_af_hdcd = {
.priv_class = &hdcd_class,
.init = init,
.uninit = uninit,
.query_formats = query_formats,
FILTER_INPUTS(avfilter_af_hdcd_inputs),
FILTER_OUTPUTS(avfilter_af_hdcd_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -763,9 +763,9 @@ const AVFilter ff_af_headphone = {
.priv_class = &headphone_class,
.init = init,
.uninit = uninit,
.query_formats = query_formats,
.activate = activate,
.inputs = NULL,
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.flags = AVFILTER_FLAG_SLICE_THREADS | AVFILTER_FLAG_DYNAMIC_INPUTS,
};

View File

@ -541,8 +541,8 @@ const AVFilter ff_af_join = {
.init = join_init,
.uninit = join_uninit,
.activate = activate,
.query_formats = join_query_formats,
.inputs = NULL,
FILTER_OUTPUTS(avfilter_af_join_outputs),
FILTER_QUERY_FUNC(join_query_formats),
.flags = AVFILTER_FLAG_DYNAMIC_INPUTS,
};

View File

@ -778,9 +778,9 @@ const AVFilter ff_af_ladspa = {
.priv_class = &ladspa_class,
.init = init,
.uninit = uninit,
.query_formats = query_formats,
.process_command = process_command,
.inputs = 0,
FILTER_OUTPUTS(ladspa_outputs),
FILTER_QUERY_FUNC(query_formats),
.flags = AVFILTER_FLAG_DYNAMIC_INPUTS,
};

View File

@ -911,9 +911,9 @@ const AVFilter ff_af_loudnorm = {
.description = NULL_IF_CONFIG_SMALL("EBU R128 loudness normalization"),
.priv_size = sizeof(LoudNormContext),
.priv_class = &loudnorm_class,
.query_formats = query_formats,
.init = init,
.uninit = uninit,
FILTER_INPUTS(avfilter_af_loudnorm_inputs),
FILTER_OUTPUTS(avfilter_af_loudnorm_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -578,8 +578,8 @@ const AVFilter ff_af_lv2 = {
.priv_class = &lv2_class,
.init = init,
.uninit = uninit,
.query_formats = query_formats,
.inputs = 0,
FILTER_OUTPUTS(lv2_outputs),
FILTER_QUERY_FUNC(query_formats),
.flags = AVFILTER_FLAG_DYNAMIC_INPUTS,
};

View File

@ -654,10 +654,10 @@ const AVFilter ff_af_mcompand = {
.name = "mcompand",
.description = NULL_IF_CONFIG_SMALL(
"Multiband Compress or expand audio dynamic range."),
.query_formats = query_formats,
.priv_size = sizeof(MCompandContext),
.priv_class = &mcompand_class,
.uninit = uninit,
FILTER_INPUTS(mcompand_inputs),
FILTER_OUTPUTS(mcompand_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -451,7 +451,7 @@ const AVFilter ff_af_pan = {
.priv_class = &pan_class,
.init = init,
.uninit = uninit,
.query_formats = query_formats,
FILTER_INPUTS(pan_inputs),
FILTER_OUTPUTS(pan_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -604,9 +604,9 @@ static const AVFilterPad replaygain_outputs[] = {
const AVFilter ff_af_replaygain = {
.name = "replaygain",
.description = NULL_IF_CONFIG_SMALL("ReplayGain scanner."),
.query_formats = query_formats,
.uninit = uninit,
.priv_size = sizeof(ReplayGainContext),
FILTER_INPUTS(replaygain_inputs),
FILTER_OUTPUTS(replaygain_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -222,12 +222,12 @@ static const AVFilterPad rubberband_outputs[] = {
const AVFilter ff_af_rubberband = {
.name = "rubberband",
.description = NULL_IF_CONFIG_SMALL("Apply time-stretching and pitch-shifting."),
.query_formats = query_formats,
.priv_size = sizeof(RubberBandContext),
.priv_class = &rubberband_class,
.uninit = uninit,
.activate = activate,
FILTER_INPUTS(rubberband_inputs),
FILTER_OUTPUTS(rubberband_outputs),
FILTER_QUERY_FUNC(query_formats),
.process_command = process_command,
};

View File

@ -366,11 +366,11 @@ const AVFilter ff_af_sidechaincompress = {
.description = NULL_IF_CONFIG_SMALL("Sidechain compressor."),
.priv_class = &sidechaincompress_acompressor_class,
.priv_size = sizeof(SidechainCompressContext),
.query_formats = query_formats,
.activate = activate,
.uninit = uninit,
FILTER_INPUTS(sidechaincompress_inputs),
FILTER_OUTPUTS(sidechaincompress_outputs),
FILTER_QUERY_FUNC(query_formats),
.process_command = process_command,
};
#endif /* CONFIG_SIDECHAINCOMPRESS_FILTER */
@ -444,9 +444,9 @@ const AVFilter ff_af_acompressor = {
.description = NULL_IF_CONFIG_SMALL("Audio compressor."),
.priv_class = &sidechaincompress_acompressor_class,
.priv_size = sizeof(SidechainCompressContext),
.query_formats = acompressor_query_formats,
FILTER_INPUTS(acompressor_inputs),
FILTER_OUTPUTS(acompressor_outputs),
FILTER_QUERY_FUNC(acompressor_query_formats),
.process_command = process_command,
};
#endif /* CONFIG_ACOMPRESSOR_FILTER */

View File

@ -284,9 +284,9 @@ const AVFilter ff_af_silencedetect = {
.name = "silencedetect",
.description = NULL_IF_CONFIG_SMALL("Detect silence."),
.priv_size = sizeof(SilenceDetectContext),
.query_formats = query_formats,
.uninit = uninit,
FILTER_INPUTS(silencedetect_inputs),
FILTER_OUTPUTS(silencedetect_outputs),
FILTER_QUERY_FUNC(query_formats),
.priv_class = &silencedetect_class,
};

View File

@ -979,7 +979,7 @@ const AVFilter ff_af_silenceremove = {
.priv_class = &silenceremove_class,
.init = init,
.uninit = uninit,
.query_formats = query_formats,
FILTER_INPUTS(silenceremove_inputs),
FILTER_OUTPUTS(silenceremove_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -1112,8 +1112,8 @@ const AVFilter ff_af_sofalizer = {
.init = init,
.activate = activate,
.uninit = uninit,
.query_formats = query_formats,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.flags = AVFILTER_FLAG_SLICE_THREADS,
};

View File

@ -574,13 +574,13 @@ static const AVFilterPad outputs[] = {
const AVFilter ff_af_speechnorm = {
.name = "speechnorm",
.description = NULL_IF_CONFIG_SMALL("Speech Normalizer."),
.query_formats = query_formats,
.priv_size = sizeof(SpeechNormalizerContext),
.priv_class = &speechnorm_class,
.activate = activate,
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL,
.process_command = process_command,
};

View File

@ -375,12 +375,12 @@ static const AVFilterPad outputs[] = {
const AVFilter ff_af_stereotools = {
.name = "stereotools",
.description = NULL_IF_CONFIG_SMALL("Apply various stereo tools."),
.query_formats = query_formats,
.priv_size = sizeof(StereoToolsContext),
.priv_class = &stereotools_class,
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.process_command = process_command,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL,
};

View File

@ -156,12 +156,12 @@ static const AVFilterPad outputs[] = {
const AVFilter ff_af_stereowiden = {
.name = "stereowiden",
.description = NULL_IF_CONFIG_SMALL("Apply stereo widening effect."),
.query_formats = query_formats,
.priv_size = sizeof(StereoWidenContext),
.priv_class = &stereowiden_class,
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL,
.process_command = ff_filter_process_command,
};

View File

@ -368,10 +368,10 @@ const AVFilter ff_af_superequalizer = {
.description = NULL_IF_CONFIG_SMALL("Apply 18 band equalization filter."),
.priv_size = sizeof(SuperEqualizerContext),
.priv_class = &superequalizer_class,
.query_formats = query_formats,
.init = init,
.activate = activate,
.uninit = uninit,
FILTER_INPUTS(superequalizer_inputs),
FILTER_OUTPUTS(superequalizer_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -1783,7 +1783,6 @@ static const AVFilterPad outputs[] = {
const AVFilter ff_af_surround = {
.name = "surround",
.description = NULL_IF_CONFIG_SMALL("Apply audio surround upmix filter."),
.query_formats = query_formats,
.priv_size = sizeof(AudioSurroundContext),
.priv_class = &surround_class,
.init = init,
@ -1791,5 +1790,6 @@ const AVFilter ff_af_surround = {
.activate = activate,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.flags = AVFILTER_FLAG_SLICE_THREADS,
};

View File

@ -151,7 +151,7 @@ const AVFilter ff_af_tremolo = {
.priv_size = sizeof(TremoloContext),
.priv_class = &tremolo_class,
.uninit = uninit,
.query_formats = query_formats,
FILTER_INPUTS(avfilter_af_tremolo_inputs),
FILTER_OUTPUTS(avfilter_af_tremolo_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -189,7 +189,7 @@ const AVFilter ff_af_vibrato = {
.priv_size = sizeof(VibratoContext),
.priv_class = &vibrato_class,
.uninit = uninit,
.query_formats = query_formats,
FILTER_INPUTS(avfilter_af_vibrato_inputs),
FILTER_OUTPUTS(avfilter_af_vibrato_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -465,13 +465,13 @@ static const AVFilterPad avfilter_af_volume_outputs[] = {
const AVFilter ff_af_volume = {
.name = "volume",
.description = NULL_IF_CONFIG_SMALL("Change input volume."),
.query_formats = query_formats,
.priv_size = sizeof(VolumeContext),
.priv_class = &volume_class,
.init = init,
.uninit = uninit,
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,
};

View File

@ -147,8 +147,8 @@ const AVFilter ff_af_volumedetect = {
.name = "volumedetect",
.description = NULL_IF_CONFIG_SMALL("Detect audio volume."),
.priv_size = sizeof(VolDetectContext),
.query_formats = query_formats,
.uninit = uninit,
FILTER_INPUTS(volumedetect_inputs),
FILTER_OUTPUTS(volumedetect_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -311,12 +311,12 @@ static const AVFilterPad afirsrc_outputs[] = {
const AVFilter ff_asrc_afirsrc = {
.name = "afirsrc",
.description = NULL_IF_CONFIG_SMALL("Generate a FIR coefficients audio stream."),
.query_formats = query_formats,
.init = init,
.uninit = uninit,
.activate = activate,
.priv_size = sizeof(AudioFIRSourceContext),
.inputs = NULL,
FILTER_OUTPUTS(afirsrc_outputs),
FILTER_QUERY_FUNC(query_formats),
.priv_class = &afirsrc_class,
};

View File

@ -235,10 +235,10 @@ static const AVFilterPad anoisesrc_outputs[] = {
const AVFilter ff_asrc_anoisesrc = {
.name = "anoisesrc",
.description = NULL_IF_CONFIG_SMALL("Generate a noise audio signal."),
.query_formats = query_formats,
.priv_size = sizeof(ANoiseSrcContext),
.inputs = NULL,
.activate = activate,
FILTER_OUTPUTS(anoisesrc_outputs),
FILTER_QUERY_FUNC(query_formats),
.priv_class = &anoisesrc_class,
};

View File

@ -140,10 +140,10 @@ const AVFilter ff_asrc_anullsrc = {
.name = "anullsrc",
.description = NULL_IF_CONFIG_SMALL("Null audio source, return empty audio frames."),
.init = init,
.query_formats = query_formats,
.priv_size = sizeof(ANullContext),
.inputs = NULL,
FILTER_OUTPUTS(avfilter_asrc_anullsrc_outputs),
FILTER_QUERY_FUNC(query_formats),
.activate = activate,
.priv_class = &anullsrc_class,
};

View File

@ -276,11 +276,11 @@ static const AVFilterPad flite_outputs[] = {
const AVFilter ff_asrc_flite = {
.name = "flite",
.description = NULL_IF_CONFIG_SMALL("Synthesize voice from text using libflite."),
.query_formats = query_formats,
.init = init,
.uninit = uninit,
.priv_size = sizeof(FliteContext),
.inputs = NULL,
FILTER_OUTPUTS(flite_outputs),
FILTER_QUERY_FUNC(query_formats),
.priv_class = &flite_class,
};

View File

@ -181,12 +181,12 @@ static const AVFilterPad hilbert_outputs[] = {
const AVFilter ff_asrc_hilbert = {
.name = "hilbert",
.description = NULL_IF_CONFIG_SMALL("Generate a Hilbert transform FIR coefficients."),
.query_formats = query_formats,
.init = init,
.uninit = uninit,
.activate = activate,
.priv_size = sizeof(HilbertContext),
.inputs = NULL,
FILTER_OUTPUTS(hilbert_outputs),
FILTER_QUERY_FUNC(query_formats),
.priv_class = &hilbert_class,
};

View File

@ -441,9 +441,9 @@ const AVFilter ff_asrc_sinc = {
.description = NULL_IF_CONFIG_SMALL("Generate a sinc kaiser-windowed low-pass, high-pass, band-pass, or band-reject FIR coefficients."),
.priv_size = sizeof(SincContext),
.priv_class = &sinc_class,
.query_formats = query_formats,
.uninit = uninit,
.activate = activate,
.inputs = NULL,
FILTER_OUTPUTS(sinc_outputs),
FILTER_QUERY_FUNC(query_formats),
};

View File

@ -263,12 +263,12 @@ static const AVFilterPad sine_outputs[] = {
const AVFilter ff_asrc_sine = {
.name = "sine",
.description = NULL_IF_CONFIG_SMALL("Generate sine wave audio signal."),
.query_formats = query_formats,
.init = init,
.uninit = uninit,
.activate = activate,
.priv_size = sizeof(SineContext),
.inputs = NULL,
FILTER_OUTPUTS(sine_outputs),
FILTER_QUERY_FUNC(query_formats),
.priv_class = &sine_class,
};

View File

@ -261,10 +261,10 @@ static const AVFilterPad outputs[] = {
const AVFilter ff_avf_abitscope = {
.name = "abitscope",
.description = NULL_IF_CONFIG_SMALL("Convert input audio to audio bit scope video output."),
.query_formats = query_formats,
.priv_size = sizeof(AudioBitScopeContext),
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_QUERY_FUNC(query_formats),
.activate = activate,
.priv_class = &abitscope_class,
};

View File

@ -426,10 +426,10 @@ const AVFilter ff_avf_ahistogram = {
.name = "ahistogram",
.description = NULL_IF_CONFIG_SMALL("Convert input audio to histogram video output."),
.uninit = uninit,
.query_formats = query_formats,
.priv_size = sizeof(AudioHistogramContext),
.activate = activate,
FILTER_INPUTS(ahistogram_inputs),
FILTER_OUTPUTS(ahistogram_outputs),
FILTER_QUERY_FUNC(query_formats),
.priv_class = &ahistogram_class,
};

View File

@ -387,10 +387,10 @@ const AVFilter ff_avf_aphasemeter = {
.description = NULL_IF_CONFIG_SMALL("Convert input audio to phase meter video output."),
.init = init,
.uninit = uninit,
.query_formats = query_formats,
.priv_size = sizeof(AudioPhaseMeterContext),
FILTER_INPUTS(inputs),
.outputs = NULL,
FILTER_QUERY_FUNC(query_formats),
.priv_class = &aphasemeter_class,
.flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS,
};

View File

@ -445,11 +445,11 @@ const AVFilter ff_avf_avectorscope = {
.name = "avectorscope",
.description = NULL_IF_CONFIG_SMALL("Convert input audio to vectorscope video output."),
.uninit = uninit,
.query_formats = query_formats,
.priv_size = sizeof(AudioVectorScopeContext),
.activate = activate,
FILTER_INPUTS(audiovectorscope_inputs),
FILTER_OUTPUTS(audiovectorscope_outputs),
FILTER_QUERY_FUNC(query_formats),
.priv_class = &avectorscope_class,
.flags = AVFILTER_FLAG_SLICE_THREADS,
.process_command = ff_filter_process_command,

View File

@ -449,12 +449,12 @@ const AVFilter ff_avf_concat = {
.description = NULL_IF_CONFIG_SMALL("Concatenate audio and video streams."),
.init = init,
.uninit = uninit,
.query_formats = query_formats,
.activate = activate,
.priv_size = sizeof(ConcatContext),
.inputs = NULL,
.outputs = NULL,
.priv_class = &concat_class,
.flags = AVFILTER_FLAG_DYNAMIC_INPUTS | AVFILTER_FLAG_DYNAMIC_OUTPUTS,
FILTER_QUERY_FUNC(query_formats),
.process_command = process_command,
};

View File

@ -1593,9 +1593,9 @@ const AVFilter ff_avf_showcqt = {
.description = NULL_IF_CONFIG_SMALL("Convert input audio to a CQT (Constant/Clamped Q Transform) spectrum video output."),
.init = init,
.uninit = uninit,
.query_formats = query_formats,
.priv_size = sizeof(ShowCQTContext),
FILTER_INPUTS(showcqt_inputs),
FILTER_OUTPUTS(showcqt_outputs),
FILTER_QUERY_FUNC(query_formats),
.priv_class = &showcqt_class,
};

View File

@ -567,10 +567,10 @@ const AVFilter ff_avf_showfreqs = {
.description = NULL_IF_CONFIG_SMALL("Convert input audio to a frequencies video output."),
.init = init,
.uninit = uninit,
.query_formats = query_formats,
.priv_size = sizeof(ShowFreqsContext),
.activate = activate,
FILTER_INPUTS(showfreqs_inputs),
FILTER_OUTPUTS(showfreqs_outputs),
FILTER_QUERY_FUNC(query_formats),
.priv_class = &showfreqs_class,
};

View File

@ -360,10 +360,10 @@ const AVFilter ff_avf_showspatial = {
.name = "showspatial",
.description = NULL_IF_CONFIG_SMALL("Convert input audio to a spatial video output."),
.uninit = uninit,
.query_formats = query_formats,
.priv_size = sizeof(ShowSpatialContext),
FILTER_INPUTS(showspatial_inputs),
FILTER_OUTPUTS(showspatial_outputs),
FILTER_QUERY_FUNC(query_formats),
.activate = spatial_activate,
.priv_class = &showspatial_class,
.flags = AVFILTER_FLAG_SLICE_THREADS,

View File

@ -1646,10 +1646,10 @@ const AVFilter ff_avf_showspectrum = {
.name = "showspectrum",
.description = NULL_IF_CONFIG_SMALL("Convert input audio to a spectrum video output."),
.uninit = uninit,
.query_formats = query_formats,
.priv_size = sizeof(ShowSpectrumContext),
FILTER_INPUTS(showspectrum_inputs),
FILTER_OUTPUTS(showspectrum_outputs),
FILTER_QUERY_FUNC(query_formats),
.activate = activate,
.priv_class = &showspectrum_class,
.flags = AVFILTER_FLAG_SLICE_THREADS,
@ -1829,10 +1829,10 @@ const AVFilter ff_avf_showspectrumpic = {
.name = "showspectrumpic",
.description = NULL_IF_CONFIG_SMALL("Convert input audio to a spectrum video output single picture."),
.uninit = uninit,
.query_formats = query_formats,
.priv_size = sizeof(ShowSpectrumContext),
FILTER_INPUTS(showspectrumpic_inputs),
FILTER_OUTPUTS(showspectrumpic_outputs),
FILTER_QUERY_FUNC(query_formats),
.priv_class = &showspectrumpic_class,
.flags = AVFILTER_FLAG_SLICE_THREADS,
};

View File

@ -502,9 +502,9 @@ const AVFilter ff_avf_showvolume = {
.init = init,
.activate = activate,
.uninit = uninit,
.query_formats = query_formats,
.priv_size = sizeof(ShowVolumeContext),
FILTER_INPUTS(showvolume_inputs),
FILTER_OUTPUTS(showvolume_outputs),
FILTER_QUERY_FUNC(query_formats),
.priv_class = &showvolume_class,
};

Some files were not shown because too many files have changed in this diff Show More