diff --git a/configure b/configure
index d14eb552ea..d74c9fe3da 100755
--- a/configure
+++ b/configure
@@ -3902,7 +3902,7 @@ find_things_extern(){
 
 find_filters_extern(){
     file=$source_path/$1
-    sed -n 's/^extern AVFilter ff_[avfsinkrc]\{2,5\}_\([[:alnum:]_]\{1,\}\);/\1_filter/p' $file
+    sed -n 's/^extern const AVFilter ff_[avfsinkrc]\{2,5\}_\([[:alnum:]_]\{1,\}\);/\1_filter/p' $file
 }
 
 FILTER_LIST=$(find_filters_extern libavfilter/allfilters.c)
@@ -7639,7 +7639,7 @@ cp_if_changed $TMPH libavutil/avconfig.h
 # full_filter_name_foo=vf_foo
 # full_filter_name_bar=asrc_bar
 # ...
-eval "$(sed -n "s/^extern AVFilter ff_\([avfsinkrc]\{2,5\}\)_\(.*\);/full_filter_name_\2=\1_\2/p" $source_path/libavfilter/allfilters.c)"
+eval "$(sed -n "s/^extern const AVFilter ff_\([avfsinkrc]\{2,5\}\)_\(.*\);/full_filter_name_\2=\1_\2/p" $source_path/libavfilter/allfilters.c)"
 
 # generate the lists of enabled components
 print_enabled_components(){
diff --git a/libavfilter/aeval.c b/libavfilter/aeval.c
index d5437431ab..ed7cf502de 100644
--- a/libavfilter/aeval.c
+++ b/libavfilter/aeval.c
@@ -322,7 +322,7 @@ static const AVFilterPad aevalsrc_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_asrc_aevalsrc = {
+const AVFilter ff_asrc_aevalsrc = {
     .name          = "aevalsrc",
     .description   = NULL_IF_CONFIG_SMALL("Generate an audio signal generated by an expression."),
     .query_formats = query_formats,
@@ -473,7 +473,7 @@ static const AVFilterPad aeval_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_aeval = {
+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,
diff --git a/libavfilter/af_acontrast.c b/libavfilter/af_acontrast.c
index e08053146e..69fe6b7e22 100644
--- a/libavfilter/af_acontrast.c
+++ b/libavfilter/af_acontrast.c
@@ -208,7 +208,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_acontrast = {
+const AVFilter ff_af_acontrast = {
     .name           = "acontrast",
     .description    = NULL_IF_CONFIG_SMALL("Simple audio dynamic range compression/expansion filter."),
     .query_formats  = query_formats,
diff --git a/libavfilter/af_acopy.c b/libavfilter/af_acopy.c
index 2d915019db..29551996d9 100644
--- a/libavfilter/af_acopy.c
+++ b/libavfilter/af_acopy.c
@@ -62,7 +62,7 @@ static const AVFilterPad acopy_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_acopy = {
+const AVFilter ff_af_acopy = {
     .name          = "acopy",
     .description   = NULL_IF_CONFIG_SMALL("Copy the input audio unchanged to the output."),
     .inputs        = acopy_inputs,
diff --git a/libavfilter/af_acrossover.c b/libavfilter/af_acrossover.c
index 03a7ae1119..3ba67b30e1 100644
--- a/libavfilter/af_acrossover.c
+++ b/libavfilter/af_acrossover.c
@@ -569,7 +569,7 @@ static const AVFilterPad inputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_acrossover = {
+const AVFilter ff_af_acrossover = {
     .name           = "acrossover",
     .description    = NULL_IF_CONFIG_SMALL("Split audio into per-bands streams."),
     .priv_size      = sizeof(AudioCrossoverContext),
diff --git a/libavfilter/af_acrusher.c b/libavfilter/af_acrusher.c
index d3c31c20bd..ce337013ab 100644
--- a/libavfilter/af_acrusher.c
+++ b/libavfilter/af_acrusher.c
@@ -364,7 +364,7 @@ static const AVFilterPad avfilter_af_acrusher_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_acrusher = {
+const AVFilter ff_af_acrusher = {
     .name          = "acrusher",
     .description   = NULL_IF_CONFIG_SMALL("Reduce audio bit resolution."),
     .priv_size     = sizeof(ACrusherContext),
diff --git a/libavfilter/af_adeclick.c b/libavfilter/af_adeclick.c
index c8a41cd60e..798838f522 100644
--- a/libavfilter/af_adeclick.c
+++ b/libavfilter/af_adeclick.c
@@ -762,7 +762,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_adeclick = {
+const AVFilter ff_af_adeclick = {
     .name          = "adeclick",
     .description   = NULL_IF_CONFIG_SMALL("Remove impulsive noise from input audio."),
     .query_formats = query_formats,
@@ -798,7 +798,7 @@ static const AVOption adeclip_options[] = {
 
 AVFILTER_DEFINE_CLASS(adeclip);
 
-AVFilter ff_af_adeclip = {
+const AVFilter ff_af_adeclip = {
     .name          = "adeclip",
     .description   = NULL_IF_CONFIG_SMALL("Remove clipping from input audio."),
     .query_formats = query_formats,
diff --git a/libavfilter/af_adelay.c b/libavfilter/af_adelay.c
index 6ac81c2a3e..ba7fac6d5e 100644
--- a/libavfilter/af_adelay.c
+++ b/libavfilter/af_adelay.c
@@ -345,7 +345,7 @@ static const AVFilterPad adelay_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_adelay = {
+const AVFilter ff_af_adelay = {
     .name          = "adelay",
     .description   = NULL_IF_CONFIG_SMALL("Delay one or more audio channels."),
     .query_formats = query_formats,
diff --git a/libavfilter/af_adenorm.c b/libavfilter/af_adenorm.c
index 992a1fe56a..ee8d26ee73 100644
--- a/libavfilter/af_adenorm.c
+++ b/libavfilter/af_adenorm.c
@@ -318,7 +318,7 @@ static const AVOption adenorm_options[] = {
 
 AVFILTER_DEFINE_CLASS(adenorm);
 
-AVFilter ff_af_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,
diff --git a/libavfilter/af_aderivative.c b/libavfilter/af_aderivative.c
index a591515cbf..6b3e4dd0e4 100644
--- a/libavfilter/af_aderivative.c
+++ b/libavfilter/af_aderivative.c
@@ -186,7 +186,7 @@ static const AVFilterPad aderivative_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_aderivative = {
+const AVFilter ff_af_aderivative = {
     .name          = "aderivative",
     .description   = NULL_IF_CONFIG_SMALL("Compute derivative of input audio."),
     .query_formats = query_formats,
@@ -196,7 +196,7 @@ AVFilter ff_af_aderivative = {
     .outputs       = aderivative_outputs,
 };
 
-AVFilter ff_af_aintegral = {
+const AVFilter ff_af_aintegral = {
     .name          = "aintegral",
     .description   = NULL_IF_CONFIG_SMALL("Compute integral of input audio."),
     .query_formats = query_formats,
diff --git a/libavfilter/af_aecho.c b/libavfilter/af_aecho.c
index 7a7b8bccf2..4e45ab9a8b 100644
--- a/libavfilter/af_aecho.c
+++ b/libavfilter/af_aecho.c
@@ -376,7 +376,7 @@ static const AVFilterPad aecho_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_aecho = {
+const AVFilter ff_af_aecho = {
     .name          = "aecho",
     .description   = NULL_IF_CONFIG_SMALL("Add echoing to the audio."),
     .query_formats = query_formats,
diff --git a/libavfilter/af_aemphasis.c b/libavfilter/af_aemphasis.c
index 50999572c9..66fe7036fa 100644
--- a/libavfilter/af_aemphasis.c
+++ b/libavfilter/af_aemphasis.c
@@ -400,7 +400,7 @@ static const AVFilterPad avfilter_af_aemphasis_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_aemphasis = {
+const AVFilter ff_af_aemphasis = {
     .name          = "aemphasis",
     .description   = NULL_IF_CONFIG_SMALL("Audio emphasis."),
     .priv_size     = sizeof(AudioEmphasisContext),
diff --git a/libavfilter/af_aexciter.c b/libavfilter/af_aexciter.c
index f09c99984c..e7f72cca38 100644
--- a/libavfilter/af_aexciter.c
+++ b/libavfilter/af_aexciter.c
@@ -303,7 +303,7 @@ static const AVFilterPad avfilter_af_aexciter_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_aexciter = {
+const AVFilter ff_af_aexciter = {
     .name          = "aexciter",
     .description   = NULL_IF_CONFIG_SMALL("Enhance high frequency part of audio."),
     .priv_size     = sizeof(AExciterContext),
diff --git a/libavfilter/af_afade.c b/libavfilter/af_afade.c
index 976b6752cd..b22432f2e7 100644
--- a/libavfilter/af_afade.c
+++ b/libavfilter/af_afade.c
@@ -365,7 +365,7 @@ static const AVFilterPad avfilter_af_afade_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_afade = {
+const AVFilter ff_af_afade = {
     .name          = "afade",
     .description   = NULL_IF_CONFIG_SMALL("Fade in/out input audio."),
     .query_formats = query_formats,
@@ -653,7 +653,7 @@ static const AVFilterPad avfilter_af_acrossfade_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_acrossfade = {
+const AVFilter ff_af_acrossfade = {
     .name          = "acrossfade",
     .description   = NULL_IF_CONFIG_SMALL("Cross fade two input audio streams."),
     .query_formats = query_formats,
diff --git a/libavfilter/af_afftdn.c b/libavfilter/af_afftdn.c
index bde5ff6685..064009ffd5 100644
--- a/libavfilter/af_afftdn.c
+++ b/libavfilter/af_afftdn.c
@@ -1418,7 +1418,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_afftdn = {
+const AVFilter ff_af_afftdn = {
     .name            = "afftdn",
     .description     = NULL_IF_CONFIG_SMALL("Denoise audio samples using FFT."),
     .query_formats   = query_formats,
diff --git a/libavfilter/af_afftfilt.c b/libavfilter/af_afftfilt.c
index 9b9001a44b..6c1ddbe51f 100644
--- a/libavfilter/af_afftfilt.c
+++ b/libavfilter/af_afftfilt.c
@@ -476,7 +476,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_afftfilt = {
+const AVFilter ff_af_afftfilt = {
     .name            = "afftfilt",
     .description     = NULL_IF_CONFIG_SMALL("Apply arbitrary expressions to samples in frequency domain."),
     .priv_size       = sizeof(AFFTFiltContext),
diff --git a/libavfilter/af_afir.c b/libavfilter/af_afir.c
index 1b4e0a0c9e..26d61d4c0f 100644
--- a/libavfilter/af_afir.c
+++ b/libavfilter/af_afir.c
@@ -948,7 +948,7 @@ static const AVOption afir_options[] = {
 
 AVFILTER_DEFINE_CLASS(afir);
 
-AVFilter ff_af_afir = {
+const AVFilter ff_af_afir = {
     .name          = "afir",
     .description   = NULL_IF_CONFIG_SMALL("Apply Finite Impulse Response filter with supplied coefficients in additional stream(s)."),
     .priv_size     = sizeof(AudioFIRContext),
diff --git a/libavfilter/af_aformat.c b/libavfilter/af_aformat.c
index e669f2de83..e9cc4738fd 100644
--- a/libavfilter/af_aformat.c
+++ b/libavfilter/af_aformat.c
@@ -157,7 +157,7 @@ static const AVFilterPad avfilter_af_aformat_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_aformat = {
+const AVFilter ff_af_aformat = {
     .name          = "aformat",
     .description   = NULL_IF_CONFIG_SMALL("Convert the input audio to one of the specified formats."),
     .init          = init,
diff --git a/libavfilter/af_afreqshift.c b/libavfilter/af_afreqshift.c
index 6141730e03..85a1e65a96 100644
--- a/libavfilter/af_afreqshift.c
+++ b/libavfilter/af_afreqshift.c
@@ -390,7 +390,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_afreqshift = {
+const AVFilter ff_af_afreqshift = {
     .name            = "afreqshift",
     .description     = NULL_IF_CONFIG_SMALL("Apply frequency shifting to input audio."),
     .query_formats   = query_formats,
@@ -412,7 +412,7 @@ static const AVOption aphaseshift_options[] = {
 
 AVFILTER_DEFINE_CLASS(aphaseshift);
 
-AVFilter ff_af_aphaseshift = {
+const AVFilter ff_af_aphaseshift = {
     .name            = "aphaseshift",
     .description     = NULL_IF_CONFIG_SMALL("Apply phase shifting to input audio."),
     .query_formats   = query_formats,
diff --git a/libavfilter/af_agate.c b/libavfilter/af_agate.c
index 5fcf6eceb1..a70af800c8 100644
--- a/libavfilter/af_agate.c
+++ b/libavfilter/af_agate.c
@@ -260,7 +260,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_agate = {
+const AVFilter ff_af_agate = {
     .name           = "agate",
     .description    = NULL_IF_CONFIG_SMALL("Audio gate."),
     .query_formats  = query_formats,
@@ -437,7 +437,7 @@ static const AVFilterPad sidechaingate_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_sidechaingate = {
+const AVFilter ff_af_sidechaingate = {
     .name           = "sidechaingate",
     .description    = NULL_IF_CONFIG_SMALL("Audio sidechain gate."),
     .priv_size      = sizeof(AudioGateContext),
diff --git a/libavfilter/af_aiir.c b/libavfilter/af_aiir.c
index 0f4129cfa0..a95f66d6bc 100644
--- a/libavfilter/af_aiir.c
+++ b/libavfilter/af_aiir.c
@@ -1577,7 +1577,7 @@ static const AVOption aiir_options[] = {
 
 AVFILTER_DEFINE_CLASS(aiir);
 
-AVFilter ff_af_aiir = {
+const AVFilter ff_af_aiir = {
     .name          = "aiir",
     .description   = NULL_IF_CONFIG_SMALL("Apply Infinite Impulse Response filter with supplied coefficients."),
     .priv_size     = sizeof(AudioIIRContext),
diff --git a/libavfilter/af_alimiter.c b/libavfilter/af_alimiter.c
index c41e95576f..6ffb585f29 100644
--- a/libavfilter/af_alimiter.c
+++ b/libavfilter/af_alimiter.c
@@ -362,7 +362,7 @@ static const AVFilterPad alimiter_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_alimiter = {
+const AVFilter ff_af_alimiter = {
     .name           = "alimiter",
     .description    = NULL_IF_CONFIG_SMALL("Audio lookahead limiter."),
     .priv_size      = sizeof(AudioLimiterContext),
diff --git a/libavfilter/af_amerge.c b/libavfilter/af_amerge.c
index a914fd45ca..2e45b7c277 100644
--- a/libavfilter/af_amerge.c
+++ b/libavfilter/af_amerge.c
@@ -347,7 +347,7 @@ static const AVFilterPad amerge_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_amerge = {
+const AVFilter ff_af_amerge = {
     .name          = "amerge",
     .description   = NULL_IF_CONFIG_SMALL("Merge two or more audio streams into "
                                           "a single multi-channel stream."),
diff --git a/libavfilter/af_amix.c b/libavfilter/af_amix.c
index 45a5dadf0a..2296b49243 100644
--- a/libavfilter/af_amix.c
+++ b/libavfilter/af_amix.c
@@ -637,7 +637,7 @@ static const AVFilterPad avfilter_af_amix_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_amix = {
+const AVFilter ff_af_amix = {
     .name           = "amix",
     .description    = NULL_IF_CONFIG_SMALL("Audio mixing."),
     .priv_size      = sizeof(MixContext),
diff --git a/libavfilter/af_amultiply.c b/libavfilter/af_amultiply.c
index cc032846fa..1cf67ac186 100644
--- a/libavfilter/af_amultiply.c
+++ b/libavfilter/af_amultiply.c
@@ -205,7 +205,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_amultiply = {
+const AVFilter ff_af_amultiply = {
     .name           = "amultiply",
     .description    = NULL_IF_CONFIG_SMALL("Multiply two audio streams."),
     .priv_size      = sizeof(AudioMultiplyContext),
diff --git a/libavfilter/af_anequalizer.c b/libavfilter/af_anequalizer.c
index 80e2c690f4..faa0e2a230 100644
--- a/libavfilter/af_anequalizer.c
+++ b/libavfilter/af_anequalizer.c
@@ -764,7 +764,7 @@ static const AVFilterPad inputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_anequalizer = {
+const AVFilter ff_af_anequalizer = {
     .name          = "anequalizer",
     .description   = NULL_IF_CONFIG_SMALL("Apply high-order audio parametric multi band equalizer."),
     .priv_size     = sizeof(AudioNEqualizerContext),
diff --git a/libavfilter/af_anlmdn.c b/libavfilter/af_anlmdn.c
index e2661e102f..8be73079bd 100644
--- a/libavfilter/af_anlmdn.c
+++ b/libavfilter/af_anlmdn.c
@@ -408,7 +408,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_anlmdn = {
+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,
diff --git a/libavfilter/af_anlms.c b/libavfilter/af_anlms.c
index 55e6946b68..9564441391 100644
--- a/libavfilter/af_anlms.c
+++ b/libavfilter/af_anlms.c
@@ -314,7 +314,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_anlms = {
+const AVFilter ff_af_anlms = {
     .name           = "anlms",
     .description    = NULL_IF_CONFIG_SMALL("Apply Normalized Least-Mean-Squares algorithm to first audio stream."),
     .priv_size      = sizeof(AudioNLMSContext),
diff --git a/libavfilter/af_anull.c b/libavfilter/af_anull.c
index 1d0af451dc..74f915778f 100644
--- a/libavfilter/af_anull.c
+++ b/libavfilter/af_anull.c
@@ -43,7 +43,7 @@ static const AVFilterPad avfilter_af_anull_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_anull = {
+const AVFilter ff_af_anull = {
     .name          = "anull",
     .description   = NULL_IF_CONFIG_SMALL("Pass the source unchanged to the output."),
     .inputs        = avfilter_af_anull_inputs,
diff --git a/libavfilter/af_apad.c b/libavfilter/af_apad.c
index fbcf6d1349..8628c0c2e2 100644
--- a/libavfilter/af_apad.c
+++ b/libavfilter/af_apad.c
@@ -168,7 +168,7 @@ static const AVFilterPad apad_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_apad = {
+const AVFilter ff_af_apad = {
     .name          = "apad",
     .description   = NULL_IF_CONFIG_SMALL("Pad audio with silence."),
     .init          = init,
diff --git a/libavfilter/af_aphaser.c b/libavfilter/af_aphaser.c
index bf46cc8fab..e033a6d904 100644
--- a/libavfilter/af_aphaser.c
+++ b/libavfilter/af_aphaser.c
@@ -290,7 +290,7 @@ static const AVFilterPad aphaser_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_aphaser = {
+const AVFilter ff_af_aphaser = {
     .name          = "aphaser",
     .description   = NULL_IF_CONFIG_SMALL("Add a phasing effect to the audio."),
     .query_formats = query_formats,
diff --git a/libavfilter/af_apulsator.c b/libavfilter/af_apulsator.c
index 67711a28ce..6be61eb905 100644
--- a/libavfilter/af_apulsator.c
+++ b/libavfilter/af_apulsator.c
@@ -246,7 +246,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_apulsator = {
+const AVFilter ff_af_apulsator = {
     .name          = "apulsator",
     .description   = NULL_IF_CONFIG_SMALL("Audio pulsator."),
     .priv_size     = sizeof(AudioPulsatorContext),
diff --git a/libavfilter/af_aresample.c b/libavfilter/af_aresample.c
index f8e03061a5..1127ad2718 100644
--- a/libavfilter/af_aresample.c
+++ b/libavfilter/af_aresample.c
@@ -342,7 +342,7 @@ static const AVFilterPad aresample_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_aresample = {
+const AVFilter ff_af_aresample = {
     .name          = "aresample",
     .description   = NULL_IF_CONFIG_SMALL("Resample audio data."),
     .init_dict     = init_dict,
diff --git a/libavfilter/af_arnndn.c b/libavfilter/af_arnndn.c
index 049865b589..0c70a32271 100644
--- a/libavfilter/af_arnndn.c
+++ b/libavfilter/af_arnndn.c
@@ -1619,7 +1619,7 @@ static const AVOption arnndn_options[] = {
 
 AVFILTER_DEFINE_CLASS(arnndn);
 
-AVFilter ff_af_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,
diff --git a/libavfilter/af_asetnsamples.c b/libavfilter/af_asetnsamples.c
index bbc391a4ff..e05bb80e7a 100644
--- a/libavfilter/af_asetnsamples.c
+++ b/libavfilter/af_asetnsamples.c
@@ -118,7 +118,7 @@ static const AVFilterPad asetnsamples_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_asetnsamples = {
+const AVFilter ff_af_asetnsamples = {
     .name        = "asetnsamples",
     .description = NULL_IF_CONFIG_SMALL("Set the number of samples for each output audio frames."),
     .priv_size   = sizeof(ASNSContext),
diff --git a/libavfilter/af_asetrate.c b/libavfilter/af_asetrate.c
index 2bb75e4a21..f89185d936 100644
--- a/libavfilter/af_asetrate.c
+++ b/libavfilter/af_asetrate.c
@@ -106,7 +106,7 @@ static const AVFilterPad asetrate_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_asetrate = {
+const AVFilter ff_af_asetrate = {
     .name          = "asetrate",
     .description   = NULL_IF_CONFIG_SMALL("Change the sample rate without "
                                           "altering the data."),
diff --git a/libavfilter/af_ashowinfo.c b/libavfilter/af_ashowinfo.c
index e817ecea37..652197b2d1 100644
--- a/libavfilter/af_ashowinfo.c
+++ b/libavfilter/af_ashowinfo.c
@@ -254,7 +254,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_ashowinfo = {
+const AVFilter ff_af_ashowinfo = {
     .name        = "ashowinfo",
     .description = NULL_IF_CONFIG_SMALL("Show textual information for each audio frame."),
     .priv_size   = sizeof(AShowInfoContext),
diff --git a/libavfilter/af_asoftclip.c b/libavfilter/af_asoftclip.c
index 4900cb6ddf..17361ba3a2 100644
--- a/libavfilter/af_asoftclip.c
+++ b/libavfilter/af_asoftclip.c
@@ -474,7 +474,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_asoftclip = {
+const AVFilter ff_af_asoftclip = {
     .name           = "asoftclip",
     .description    = NULL_IF_CONFIG_SMALL("Audio Soft Clipper."),
     .query_formats  = query_formats,
diff --git a/libavfilter/af_asr.c b/libavfilter/af_asr.c
index 0c08df1356..ff9eff4e38 100644
--- a/libavfilter/af_asr.c
+++ b/libavfilter/af_asr.c
@@ -168,7 +168,7 @@ static const AVFilterPad asr_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_asr = {
+const AVFilter ff_af_asr = {
     .name          = "asr",
     .description   = NULL_IF_CONFIG_SMALL("Automatic Speech Recognition."),
     .priv_size     = sizeof(ASRContext),
diff --git a/libavfilter/af_astats.c b/libavfilter/af_astats.c
index f50cbe199c..51a01aba2f 100644
--- a/libavfilter/af_astats.c
+++ b/libavfilter/af_astats.c
@@ -837,7 +837,7 @@ static const AVFilterPad astats_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_astats = {
+const AVFilter ff_af_astats = {
     .name          = "astats",
     .description   = NULL_IF_CONFIG_SMALL("Show time domain statistics about audio frames."),
     .query_formats = query_formats,
diff --git a/libavfilter/af_asubboost.c b/libavfilter/af_asubboost.c
index 4b30c67461..f36ce81552 100644
--- a/libavfilter/af_asubboost.c
+++ b/libavfilter/af_asubboost.c
@@ -244,7 +244,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_asubboost = {
+const AVFilter ff_af_asubboost = {
     .name           = "asubboost",
     .description    = NULL_IF_CONFIG_SMALL("Boost subwoofer frequencies."),
     .query_formats  = query_formats,
diff --git a/libavfilter/af_asupercut.c b/libavfilter/af_asupercut.c
index d5c9a75d5d..54921cf4c3 100644
--- a/libavfilter/af_asupercut.c
+++ b/libavfilter/af_asupercut.c
@@ -368,7 +368,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_asupercut = {
+const AVFilter ff_af_asupercut = {
     .name            = "asupercut",
     .description     = NULL_IF_CONFIG_SMALL("Cut super frequencies."),
     .query_formats   = query_formats,
@@ -391,7 +391,7 @@ static const AVOption asubcut_options[] = {
 
 AVFILTER_DEFINE_CLASS(asubcut);
 
-AVFilter ff_af_asubcut = {
+const AVFilter ff_af_asubcut = {
     .name            = "asubcut",
     .description     = NULL_IF_CONFIG_SMALL("Cut subwoofer frequencies."),
     .query_formats   = query_formats,
@@ -416,7 +416,7 @@ static const AVOption asuperpass_asuperstop_options[] = {
 #define asuperpass_options asuperpass_asuperstop_options
 AVFILTER_DEFINE_CLASS(asuperpass);
 
-AVFilter ff_af_asuperpass = {
+const AVFilter ff_af_asuperpass = {
     .name            = "asuperpass",
     .description     = NULL_IF_CONFIG_SMALL("Apply high order Butterworth band-pass filter."),
     .query_formats   = query_formats,
@@ -433,7 +433,7 @@ AVFilter ff_af_asuperpass = {
 #define asuperstop_options asuperpass_asuperstop_options
 AVFILTER_DEFINE_CLASS(asuperstop);
 
-AVFilter ff_af_asuperstop = {
+const AVFilter ff_af_asuperstop = {
     .name            = "asuperstop",
     .description     = NULL_IF_CONFIG_SMALL("Apply high order Butterworth band-stop filter."),
     .query_formats   = query_formats,
diff --git a/libavfilter/af_atempo.c b/libavfilter/af_atempo.c
index e4fc691abe..80a33c43ed 100644
--- a/libavfilter/af_atempo.c
+++ b/libavfilter/af_atempo.c
@@ -1202,7 +1202,7 @@ static const AVFilterPad atempo_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_atempo = {
+const AVFilter ff_af_atempo = {
     .name            = "atempo",
     .description     = NULL_IF_CONFIG_SMALL("Adjust audio tempo."),
     .init            = init,
diff --git a/libavfilter/af_axcorrelate.c b/libavfilter/af_axcorrelate.c
index 6e9a028716..abd722b83e 100644
--- a/libavfilter/af_axcorrelate.c
+++ b/libavfilter/af_axcorrelate.c
@@ -365,7 +365,7 @@ static const AVOption axcorrelate_options[] = {
 
 AVFILTER_DEFINE_CLASS(axcorrelate);
 
-AVFilter ff_af_axcorrelate = {
+const AVFilter ff_af_axcorrelate = {
     .name           = "axcorrelate",
     .description    = NULL_IF_CONFIG_SMALL("Cross-correlate two audio streams."),
     .priv_size      = sizeof(AudioXCorrelateContext),
diff --git a/libavfilter/af_biquads.c b/libavfilter/af_biquads.c
index 4a09f8204a..c477906f87 100644
--- a/libavfilter/af_biquads.c
+++ b/libavfilter/af_biquads.c
@@ -877,7 +877,7 @@ static av_cold int name_##_init(AVFilterContext *ctx)                   \
     return 0;                                                           \
 }                                                                       \
                                                          \
-AVFilter ff_af_##name_ = {                               \
+const AVFilter ff_af_##name_ = {                               \
     .name          = #name_,                             \
     .description   = NULL_IF_CONFIG_SMALL(description_), \
     .priv_size     = sizeof(BiquadsContext),             \
diff --git a/libavfilter/af_bs2b.c b/libavfilter/af_bs2b.c
index c01b983cd3..7b9958325f 100644
--- a/libavfilter/af_bs2b.c
+++ b/libavfilter/af_bs2b.c
@@ -211,7 +211,7 @@ static const AVFilterPad bs2b_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_bs2b = {
+const AVFilter ff_af_bs2b = {
     .name           = "bs2b",
     .description    = NULL_IF_CONFIG_SMALL("Bauer stereo-to-binaural filter."),
     .query_formats  = query_formats,
diff --git a/libavfilter/af_channelmap.c b/libavfilter/af_channelmap.c
index c4b8dd5470..3cdf8b2bd8 100644
--- a/libavfilter/af_channelmap.c
+++ b/libavfilter/af_channelmap.c
@@ -398,7 +398,7 @@ static const AVFilterPad avfilter_af_channelmap_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_channelmap = {
+const AVFilter ff_af_channelmap = {
     .name          = "channelmap",
     .description   = NULL_IF_CONFIG_SMALL("Remap audio channels."),
     .init          = channelmap_init,
diff --git a/libavfilter/af_channelsplit.c b/libavfilter/af_channelsplit.c
index ad00fe1ba1..3bd3355d88 100644
--- a/libavfilter/af_channelsplit.c
+++ b/libavfilter/af_channelsplit.c
@@ -168,7 +168,7 @@ static const AVFilterPad avfilter_af_channelsplit_inputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_channelsplit = {
+const AVFilter ff_af_channelsplit = {
     .name           = "channelsplit",
     .description    = NULL_IF_CONFIG_SMALL("Split audio into per-channel streams."),
     .priv_size      = sizeof(ChannelSplitContext),
diff --git a/libavfilter/af_chorus.c b/libavfilter/af_chorus.c
index 29c47ab14a..72e684bd3a 100644
--- a/libavfilter/af_chorus.c
+++ b/libavfilter/af_chorus.c
@@ -369,7 +369,7 @@ static const AVFilterPad chorus_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_chorus = {
+const AVFilter ff_af_chorus = {
     .name          = "chorus",
     .description   = NULL_IF_CONFIG_SMALL("Add a chorus effect to the audio."),
     .query_formats = query_formats,
diff --git a/libavfilter/af_compand.c b/libavfilter/af_compand.c
index 1e75be4f41..62d9c2e941 100644
--- a/libavfilter/af_compand.c
+++ b/libavfilter/af_compand.c
@@ -585,7 +585,7 @@ static const AVFilterPad compand_outputs[] = {
 };
 
 
-AVFilter ff_af_compand = {
+const AVFilter ff_af_compand = {
     .name           = "compand",
     .description    = NULL_IF_CONFIG_SMALL(
             "Compress or expand audio dynamic range."),
diff --git a/libavfilter/af_compensationdelay.c b/libavfilter/af_compensationdelay.c
index 525b3d6f3f..f2e0dcd467 100644
--- a/libavfilter/af_compensationdelay.c
+++ b/libavfilter/af_compensationdelay.c
@@ -186,7 +186,7 @@ static const AVFilterPad compensationdelay_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_compensationdelay = {
+const AVFilter ff_af_compensationdelay = {
     .name          = "compensationdelay",
     .description   = NULL_IF_CONFIG_SMALL("Audio Compensation Delay Line."),
     .query_formats = query_formats,
diff --git a/libavfilter/af_crossfeed.c b/libavfilter/af_crossfeed.c
index fb0a49ec87..7ad9c4f483 100644
--- a/libavfilter/af_crossfeed.c
+++ b/libavfilter/af_crossfeed.c
@@ -175,7 +175,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_crossfeed = {
+const AVFilter ff_af_crossfeed = {
     .name           = "crossfeed",
     .description    = NULL_IF_CONFIG_SMALL("Apply headphone crossfeed filter."),
     .query_formats  = query_formats,
diff --git a/libavfilter/af_crystalizer.c b/libavfilter/af_crystalizer.c
index d1f44984ac..f4ad326ede 100644
--- a/libavfilter/af_crystalizer.c
+++ b/libavfilter/af_crystalizer.c
@@ -456,7 +456,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_crystalizer = {
+const AVFilter ff_af_crystalizer = {
     .name           = "crystalizer",
     .description    = NULL_IF_CONFIG_SMALL("Simple audio noise sharpening filter."),
     .query_formats  = query_formats,
diff --git a/libavfilter/af_dcshift.c b/libavfilter/af_dcshift.c
index e007efe05e..1384ad87bf 100644
--- a/libavfilter/af_dcshift.c
+++ b/libavfilter/af_dcshift.c
@@ -160,7 +160,7 @@ static const AVFilterPad dcshift_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_dcshift = {
+const AVFilter ff_af_dcshift = {
     .name           = "dcshift",
     .description    = NULL_IF_CONFIG_SMALL("Apply a DC shift to the audio."),
     .query_formats  = query_formats,
diff --git a/libavfilter/af_deesser.c b/libavfilter/af_deesser.c
index fad3e98f5c..e05ee9f10b 100644
--- a/libavfilter/af_deesser.c
+++ b/libavfilter/af_deesser.c
@@ -231,7 +231,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_deesser = {
+const AVFilter ff_af_deesser = {
     .name          = "deesser",
     .description   = NULL_IF_CONFIG_SMALL("Apply de-essing to the audio."),
     .query_formats = query_formats,
diff --git a/libavfilter/af_drmeter.c b/libavfilter/af_drmeter.c
index ecccb65186..3774259da3 100644
--- a/libavfilter/af_drmeter.c
+++ b/libavfilter/af_drmeter.c
@@ -221,7 +221,7 @@ static const AVFilterPad drmeter_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_drmeter = {
+const AVFilter ff_af_drmeter = {
     .name          = "drmeter",
     .description   = NULL_IF_CONFIG_SMALL("Measure audio dynamic range."),
     .query_formats = query_formats,
diff --git a/libavfilter/af_dynaudnorm.c b/libavfilter/af_dynaudnorm.c
index 81fa62b69d..01c99788af 100644
--- a/libavfilter/af_dynaudnorm.c
+++ b/libavfilter/af_dynaudnorm.c
@@ -868,7 +868,7 @@ static const AVFilterPad avfilter_af_dynaudnorm_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_dynaudnorm = {
+const AVFilter ff_af_dynaudnorm = {
     .name          = "dynaudnorm",
     .description   = NULL_IF_CONFIG_SMALL("Dynamic Audio Normalizer."),
     .query_formats = query_formats,
diff --git a/libavfilter/af_earwax.c b/libavfilter/af_earwax.c
index a4434290a7..a5a7e6a5d2 100644
--- a/libavfilter/af_earwax.c
+++ b/libavfilter/af_earwax.c
@@ -231,7 +231,7 @@ static const AVFilterPad earwax_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_earwax = {
+const AVFilter ff_af_earwax = {
     .name           = "earwax",
     .description    = NULL_IF_CONFIG_SMALL("Widen the stereo image."),
     .query_formats  = query_formats,
diff --git a/libavfilter/af_extrastereo.c b/libavfilter/af_extrastereo.c
index d8e4da9a93..0555aa6610 100644
--- a/libavfilter/af_extrastereo.c
+++ b/libavfilter/af_extrastereo.c
@@ -120,7 +120,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_extrastereo = {
+const AVFilter ff_af_extrastereo = {
     .name           = "extrastereo",
     .description    = NULL_IF_CONFIG_SMALL("Increase difference between stereo audio channels."),
     .query_formats  = query_formats,
diff --git a/libavfilter/af_firequalizer.c b/libavfilter/af_firequalizer.c
index f4513a1c46..c0b7b1aa4d 100644
--- a/libavfilter/af_firequalizer.c
+++ b/libavfilter/af_firequalizer.c
@@ -968,7 +968,7 @@ static const AVFilterPad firequalizer_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_firequalizer = {
+const AVFilter ff_af_firequalizer = {
     .name               = "firequalizer",
     .description        = NULL_IF_CONFIG_SMALL("Finite Impulse Response Equalizer."),
     .uninit             = uninit,
diff --git a/libavfilter/af_flanger.c b/libavfilter/af_flanger.c
index 33c8245ea5..6984ab12d3 100644
--- a/libavfilter/af_flanger.c
+++ b/libavfilter/af_flanger.c
@@ -233,7 +233,7 @@ static const AVFilterPad flanger_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_flanger = {
+const AVFilter ff_af_flanger = {
     .name          = "flanger",
     .description   = NULL_IF_CONFIG_SMALL("Apply a flanging effect to the audio."),
     .query_formats = query_formats,
diff --git a/libavfilter/af_haas.c b/libavfilter/af_haas.c
index 0cfc93a7d1..b1a207f808 100644
--- a/libavfilter/af_haas.c
+++ b/libavfilter/af_haas.c
@@ -216,7 +216,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_haas = {
+const AVFilter ff_af_haas = {
     .name           = "haas",
     .description    = NULL_IF_CONFIG_SMALL("Apply Haas Stereo Enhancer."),
     .query_formats  = query_formats,
diff --git a/libavfilter/af_hdcd.c b/libavfilter/af_hdcd.c
index 978f63599b..badac0cce6 100644
--- a/libavfilter/af_hdcd.c
+++ b/libavfilter/af_hdcd.c
@@ -1772,7 +1772,7 @@ static const AVFilterPad avfilter_af_hdcd_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_hdcd = {
+const AVFilter ff_af_hdcd = {
     .name          = "hdcd",
     .description   = NULL_IF_CONFIG_SMALL("Apply High Definition Compatible Digital (HDCD) decoding."),
     .priv_size     = sizeof(HDCDContext),
diff --git a/libavfilter/af_headphone.c b/libavfilter/af_headphone.c
index edf8e773d7..ad6195662b 100644
--- a/libavfilter/af_headphone.c
+++ b/libavfilter/af_headphone.c
@@ -744,7 +744,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_headphone = {
+const AVFilter ff_af_headphone = {
     .name          = "headphone",
     .description   = NULL_IF_CONFIG_SMALL("Apply headphone binaural spatialization with HRTFs in additional streams."),
     .priv_size     = sizeof(HeadphoneContext),
diff --git a/libavfilter/af_join.c b/libavfilter/af_join.c
index 8f5df267de..eb60fe9b29 100644
--- a/libavfilter/af_join.c
+++ b/libavfilter/af_join.c
@@ -528,7 +528,7 @@ static const AVFilterPad avfilter_af_join_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_join = {
+const AVFilter ff_af_join = {
     .name           = "join",
     .description    = NULL_IF_CONFIG_SMALL("Join multiple audio streams into "
                                            "multi-channel output."),
diff --git a/libavfilter/af_ladspa.c b/libavfilter/af_ladspa.c
index 31adc9c345..4060251670 100644
--- a/libavfilter/af_ladspa.c
+++ b/libavfilter/af_ladspa.c
@@ -791,7 +791,7 @@ static const AVFilterPad ladspa_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_ladspa = {
+const AVFilter ff_af_ladspa = {
     .name          = "ladspa",
     .description   = NULL_IF_CONFIG_SMALL("Apply LADSPA effect."),
     .priv_size     = sizeof(LADSPAContext),
diff --git a/libavfilter/af_loudnorm.c b/libavfilter/af_loudnorm.c
index 06aca8ef4f..5a3e762b27 100644
--- a/libavfilter/af_loudnorm.c
+++ b/libavfilter/af_loudnorm.c
@@ -919,7 +919,7 @@ static const AVFilterPad avfilter_af_loudnorm_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_loudnorm = {
+const AVFilter ff_af_loudnorm = {
     .name          = "loudnorm",
     .description   = NULL_IF_CONFIG_SMALL("EBU R128 loudness normalization"),
     .priv_size     = sizeof(LoudNormContext),
diff --git a/libavfilter/af_lv2.c b/libavfilter/af_lv2.c
index 3dabe566f5..53a58a46ea 100644
--- a/libavfilter/af_lv2.c
+++ b/libavfilter/af_lv2.c
@@ -588,7 +588,7 @@ static const AVFilterPad lv2_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_lv2 = {
+const AVFilter ff_af_lv2 = {
     .name          = "lv2",
     .description   = NULL_IF_CONFIG_SMALL("Apply LV2 effect."),
     .priv_size     = sizeof(LV2Context),
diff --git a/libavfilter/af_mcompand.c b/libavfilter/af_mcompand.c
index d1a3dc123a..ab1c2bff53 100644
--- a/libavfilter/af_mcompand.c
+++ b/libavfilter/af_mcompand.c
@@ -666,7 +666,7 @@ static const AVFilterPad mcompand_outputs[] = {
 };
 
 
-AVFilter ff_af_mcompand = {
+const AVFilter ff_af_mcompand = {
     .name           = "mcompand",
     .description    = NULL_IF_CONFIG_SMALL(
             "Multiband Compress or expand audio dynamic range."),
diff --git a/libavfilter/af_pan.c b/libavfilter/af_pan.c
index b628177071..7ae18e9bfe 100644
--- a/libavfilter/af_pan.c
+++ b/libavfilter/af_pan.c
@@ -448,7 +448,7 @@ static const AVFilterPad pan_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_pan = {
+const AVFilter ff_af_pan = {
     .name          = "pan",
     .description   = NULL_IF_CONFIG_SMALL("Remix channels with coefficients (panning)."),
     .priv_size     = sizeof(PanContext),
diff --git a/libavfilter/af_replaygain.c b/libavfilter/af_replaygain.c
index 53fe49d769..a5f5959eb3 100644
--- a/libavfilter/af_replaygain.c
+++ b/libavfilter/af_replaygain.c
@@ -604,7 +604,7 @@ static const AVFilterPad replaygain_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_replaygain = {
+const AVFilter ff_af_replaygain = {
     .name          = "replaygain",
     .description   = NULL_IF_CONFIG_SMALL("ReplayGain scanner."),
     .query_formats = query_formats,
diff --git a/libavfilter/af_rubberband.c b/libavfilter/af_rubberband.c
index b42e67f09b..bfacbcd245 100644
--- a/libavfilter/af_rubberband.c
+++ b/libavfilter/af_rubberband.c
@@ -234,7 +234,7 @@ static const AVFilterPad rubberband_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_rubberband = {
+const AVFilter ff_af_rubberband = {
     .name          = "rubberband",
     .description   = NULL_IF_CONFIG_SMALL("Apply time-stretching and pitch-shifting."),
     .query_formats = query_formats,
diff --git a/libavfilter/af_sidechaincompress.c b/libavfilter/af_sidechaincompress.c
index 80d1d8a10b..d20ab57990 100644
--- a/libavfilter/af_sidechaincompress.c
+++ b/libavfilter/af_sidechaincompress.c
@@ -387,7 +387,7 @@ static const AVFilterPad sidechaincompress_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_sidechaincompress = {
+const AVFilter ff_af_sidechaincompress = {
     .name           = "sidechaincompress",
     .description    = NULL_IF_CONFIG_SMALL("Sidechain compressor."),
     .priv_size      = sizeof(SidechainCompressContext),
@@ -483,7 +483,7 @@ static const AVFilterPad acompressor_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_acompressor = {
+const AVFilter ff_af_acompressor = {
     .name           = "acompressor",
     .description    = NULL_IF_CONFIG_SMALL("Audio compressor."),
     .priv_size      = sizeof(SidechainCompressContext),
diff --git a/libavfilter/af_silencedetect.c b/libavfilter/af_silencedetect.c
index ff3b219e77..53f54d1834 100644
--- a/libavfilter/af_silencedetect.c
+++ b/libavfilter/af_silencedetect.c
@@ -258,7 +258,7 @@ static const AVFilterPad silencedetect_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_silencedetect = {
+const AVFilter ff_af_silencedetect = {
     .name          = "silencedetect",
     .description   = NULL_IF_CONFIG_SMALL("Detect silence."),
     .priv_size     = sizeof(SilenceDetectContext),
diff --git a/libavfilter/af_silenceremove.c b/libavfilter/af_silenceremove.c
index 7dd8c5a1d8..e4b4cd71d2 100644
--- a/libavfilter/af_silenceremove.c
+++ b/libavfilter/af_silenceremove.c
@@ -668,7 +668,7 @@ static const AVFilterPad silenceremove_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_silenceremove = {
+const AVFilter ff_af_silenceremove = {
     .name          = "silenceremove",
     .description   = NULL_IF_CONFIG_SMALL("Remove silence."),
     .priv_size     = sizeof(SilenceRemoveContext),
diff --git a/libavfilter/af_sofalizer.c b/libavfilter/af_sofalizer.c
index 8a0397f54e..e62cad2499 100644
--- a/libavfilter/af_sofalizer.c
+++ b/libavfilter/af_sofalizer.c
@@ -1092,7 +1092,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_sofalizer = {
+const AVFilter ff_af_sofalizer = {
     .name          = "sofalizer",
     .description   = NULL_IF_CONFIG_SMALL("SOFAlizer (Spatially Oriented Format for Acoustics)."),
     .priv_size     = sizeof(SOFAlizerContext),
diff --git a/libavfilter/af_speechnorm.c b/libavfilter/af_speechnorm.c
index eb46cf2985..a2b51a1bd8 100644
--- a/libavfilter/af_speechnorm.c
+++ b/libavfilter/af_speechnorm.c
@@ -565,7 +565,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_speechnorm = {
+const AVFilter ff_af_speechnorm = {
     .name            = "speechnorm",
     .description     = NULL_IF_CONFIG_SMALL("Speech Normalizer."),
     .query_formats   = query_formats,
diff --git a/libavfilter/af_stereotools.c b/libavfilter/af_stereotools.c
index 2c636a27a5..d60fa55ccd 100644
--- a/libavfilter/af_stereotools.c
+++ b/libavfilter/af_stereotools.c
@@ -375,7 +375,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_stereotools = {
+const AVFilter ff_af_stereotools = {
     .name           = "stereotools",
     .description    = NULL_IF_CONFIG_SMALL("Apply various stereo tools."),
     .query_formats  = query_formats,
diff --git a/libavfilter/af_stereowiden.c b/libavfilter/af_stereowiden.c
index 251f08438e..1fbb635841 100644
--- a/libavfilter/af_stereowiden.c
+++ b/libavfilter/af_stereowiden.c
@@ -156,7 +156,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_stereowiden = {
+const AVFilter ff_af_stereowiden = {
     .name           = "stereowiden",
     .description    = NULL_IF_CONFIG_SMALL("Apply stereo widening effect."),
     .query_formats  = query_formats,
diff --git a/libavfilter/af_superequalizer.c b/libavfilter/af_superequalizer.c
index f11ec9e6d1..aa8b6376b0 100644
--- a/libavfilter/af_superequalizer.c
+++ b/libavfilter/af_superequalizer.c
@@ -374,7 +374,7 @@ static const AVOption superequalizer_options[] = {
 
 AVFILTER_DEFINE_CLASS(superequalizer);
 
-AVFilter ff_af_superequalizer = {
+const AVFilter ff_af_superequalizer = {
     .name          = "superequalizer",
     .description   = NULL_IF_CONFIG_SMALL("Apply 18 band equalization filter."),
     .priv_size     = sizeof(SuperEqualizerContext),
diff --git a/libavfilter/af_surround.c b/libavfilter/af_surround.c
index d18b3146e7..3fb7a1bbba 100644
--- a/libavfilter/af_surround.c
+++ b/libavfilter/af_surround.c
@@ -1785,7 +1785,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_surround = {
+const AVFilter ff_af_surround = {
     .name           = "surround",
     .description    = NULL_IF_CONFIG_SMALL("Apply audio surround upmix filter."),
     .query_formats  = query_formats,
diff --git a/libavfilter/af_tremolo.c b/libavfilter/af_tremolo.c
index 6baeb7f110..8f9e310040 100644
--- a/libavfilter/af_tremolo.c
+++ b/libavfilter/af_tremolo.c
@@ -160,7 +160,7 @@ static const AVFilterPad avfilter_af_tremolo_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_tremolo = {
+const AVFilter ff_af_tremolo = {
     .name          = "tremolo",
     .description   = NULL_IF_CONFIG_SMALL("Apply tremolo effect."),
     .priv_size     = sizeof(TremoloContext),
diff --git a/libavfilter/af_vibrato.c b/libavfilter/af_vibrato.c
index 5db1f0f6c9..fe4d194531 100644
--- a/libavfilter/af_vibrato.c
+++ b/libavfilter/af_vibrato.c
@@ -198,7 +198,7 @@ static const AVFilterPad avfilter_af_vibrato_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_vibrato = {
+const AVFilter ff_af_vibrato = {
     .name          = "vibrato",
     .description   = NULL_IF_CONFIG_SMALL("Apply vibrato effect."),
     .priv_size     = sizeof(VibratoContext),
diff --git a/libavfilter/af_volume.c b/libavfilter/af_volume.c
index 5fc00d82a4..844ddbeff7 100644
--- a/libavfilter/af_volume.c
+++ b/libavfilter/af_volume.c
@@ -477,7 +477,7 @@ static const AVFilterPad avfilter_af_volume_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_volume = {
+const AVFilter ff_af_volume = {
     .name           = "volume",
     .description    = NULL_IF_CONFIG_SMALL("Change input volume."),
     .query_formats  = query_formats,
diff --git a/libavfilter/af_volumedetect.c b/libavfilter/af_volumedetect.c
index 43c1ebf02c..61af21797c 100644
--- a/libavfilter/af_volumedetect.c
+++ b/libavfilter/af_volumedetect.c
@@ -155,7 +155,7 @@ static const AVFilterPad volumedetect_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_volumedetect = {
+const AVFilter ff_af_volumedetect = {
     .name          = "volumedetect",
     .description   = NULL_IF_CONFIG_SMALL("Detect audio volume."),
     .priv_size     = sizeof(VolDetectContext),
diff --git a/libavfilter/allfilters.c b/libavfilter/allfilters.c
index 19c2acb63c..931d7dbb0d 100644
--- a/libavfilter/allfilters.c
+++ b/libavfilter/allfilters.c
@@ -23,510 +23,510 @@
 #include "avfilter.h"
 #include "config.h"
 
-extern AVFilter ff_af_abench;
-extern AVFilter ff_af_acompressor;
-extern AVFilter ff_af_acontrast;
-extern AVFilter ff_af_acopy;
-extern AVFilter ff_af_acue;
-extern AVFilter ff_af_acrossfade;
-extern AVFilter ff_af_acrossover;
-extern AVFilter ff_af_acrusher;
-extern AVFilter ff_af_adeclick;
-extern AVFilter ff_af_adeclip;
-extern AVFilter ff_af_adelay;
-extern AVFilter ff_af_adenorm;
-extern AVFilter ff_af_aderivative;
-extern AVFilter ff_af_aecho;
-extern AVFilter ff_af_aemphasis;
-extern AVFilter ff_af_aeval;
-extern AVFilter ff_af_aexciter;
-extern AVFilter ff_af_afade;
-extern AVFilter ff_af_afftdn;
-extern AVFilter ff_af_afftfilt;
-extern AVFilter ff_af_afir;
-extern AVFilter ff_af_aformat;
-extern AVFilter ff_af_afreqshift;
-extern AVFilter ff_af_agate;
-extern AVFilter ff_af_aiir;
-extern AVFilter ff_af_aintegral;
-extern AVFilter ff_af_ainterleave;
-extern AVFilter ff_af_alimiter;
-extern AVFilter ff_af_allpass;
-extern AVFilter ff_af_aloop;
-extern AVFilter ff_af_amerge;
-extern AVFilter ff_af_ametadata;
-extern AVFilter ff_af_amix;
-extern AVFilter ff_af_amultiply;
-extern AVFilter ff_af_anequalizer;
-extern AVFilter ff_af_anlmdn;
-extern AVFilter ff_af_anlms;
-extern AVFilter ff_af_anull;
-extern AVFilter ff_af_apad;
-extern AVFilter ff_af_aperms;
-extern AVFilter ff_af_aphaser;
-extern AVFilter ff_af_aphaseshift;
-extern AVFilter ff_af_apulsator;
-extern AVFilter ff_af_arealtime;
-extern AVFilter ff_af_aresample;
-extern AVFilter ff_af_areverse;
-extern AVFilter ff_af_arnndn;
-extern AVFilter ff_af_aselect;
-extern AVFilter ff_af_asendcmd;
-extern AVFilter ff_af_asetnsamples;
-extern AVFilter ff_af_asetpts;
-extern AVFilter ff_af_asetrate;
-extern AVFilter ff_af_asettb;
-extern AVFilter ff_af_ashowinfo;
-extern AVFilter ff_af_asidedata;
-extern AVFilter ff_af_asoftclip;
-extern AVFilter ff_af_asplit;
-extern AVFilter ff_af_asr;
-extern AVFilter ff_af_astats;
-extern AVFilter ff_af_astreamselect;
-extern AVFilter ff_af_asubboost;
-extern AVFilter ff_af_asubcut;
-extern AVFilter ff_af_asupercut;
-extern AVFilter ff_af_asuperpass;
-extern AVFilter ff_af_asuperstop;
-extern AVFilter ff_af_atempo;
-extern AVFilter ff_af_atrim;
-extern AVFilter ff_af_axcorrelate;
-extern AVFilter ff_af_azmq;
-extern AVFilter ff_af_bandpass;
-extern AVFilter ff_af_bandreject;
-extern AVFilter ff_af_bass;
-extern AVFilter ff_af_biquad;
-extern AVFilter ff_af_bs2b;
-extern AVFilter ff_vf_chromaber_vulkan;
-extern AVFilter ff_af_channelmap;
-extern AVFilter ff_af_channelsplit;
-extern AVFilter ff_af_chorus;
-extern AVFilter ff_af_compand;
-extern AVFilter ff_af_compensationdelay;
-extern AVFilter ff_af_crossfeed;
-extern AVFilter ff_af_crystalizer;
-extern AVFilter ff_af_dcshift;
-extern AVFilter ff_af_deesser;
-extern AVFilter ff_af_drmeter;
-extern AVFilter ff_af_dynaudnorm;
-extern AVFilter ff_af_earwax;
-extern AVFilter ff_af_ebur128;
-extern AVFilter ff_af_equalizer;
-extern AVFilter ff_af_extrastereo;
-extern AVFilter ff_af_firequalizer;
-extern AVFilter ff_af_flanger;
-extern AVFilter ff_af_haas;
-extern AVFilter ff_af_hdcd;
-extern AVFilter ff_af_headphone;
-extern AVFilter ff_af_highpass;
-extern AVFilter ff_af_highshelf;
-extern AVFilter ff_af_join;
-extern AVFilter ff_af_ladspa;
-extern AVFilter ff_af_loudnorm;
-extern AVFilter ff_af_lowpass;
-extern AVFilter ff_af_lowshelf;
-extern AVFilter ff_af_lv2;
-extern AVFilter ff_af_mcompand;
-extern AVFilter ff_af_pan;
-extern AVFilter ff_af_replaygain;
-extern AVFilter ff_af_rubberband;
-extern AVFilter ff_af_sidechaincompress;
-extern AVFilter ff_af_sidechaingate;
-extern AVFilter ff_af_silencedetect;
-extern AVFilter ff_af_silenceremove;
-extern AVFilter ff_af_sofalizer;
-extern AVFilter ff_af_speechnorm;
-extern AVFilter ff_af_stereotools;
-extern AVFilter ff_af_stereowiden;
-extern AVFilter ff_af_superequalizer;
-extern AVFilter ff_af_surround;
-extern AVFilter ff_af_treble;
-extern AVFilter ff_af_tremolo;
-extern AVFilter ff_af_vibrato;
-extern AVFilter ff_af_volume;
-extern AVFilter ff_af_volumedetect;
+extern const AVFilter ff_af_abench;
+extern const AVFilter ff_af_acompressor;
+extern const AVFilter ff_af_acontrast;
+extern const AVFilter ff_af_acopy;
+extern const AVFilter ff_af_acue;
+extern const AVFilter ff_af_acrossfade;
+extern const AVFilter ff_af_acrossover;
+extern const AVFilter ff_af_acrusher;
+extern const AVFilter ff_af_adeclick;
+extern const AVFilter ff_af_adeclip;
+extern const AVFilter ff_af_adelay;
+extern const AVFilter ff_af_adenorm;
+extern const AVFilter ff_af_aderivative;
+extern const AVFilter ff_af_aecho;
+extern const AVFilter ff_af_aemphasis;
+extern const AVFilter ff_af_aeval;
+extern const AVFilter ff_af_aexciter;
+extern const AVFilter ff_af_afade;
+extern const AVFilter ff_af_afftdn;
+extern const AVFilter ff_af_afftfilt;
+extern const AVFilter ff_af_afir;
+extern const AVFilter ff_af_aformat;
+extern const AVFilter ff_af_afreqshift;
+extern const AVFilter ff_af_agate;
+extern const AVFilter ff_af_aiir;
+extern const AVFilter ff_af_aintegral;
+extern const AVFilter ff_af_ainterleave;
+extern const AVFilter ff_af_alimiter;
+extern const AVFilter ff_af_allpass;
+extern const AVFilter ff_af_aloop;
+extern const AVFilter ff_af_amerge;
+extern const AVFilter ff_af_ametadata;
+extern const AVFilter ff_af_amix;
+extern const AVFilter ff_af_amultiply;
+extern const AVFilter ff_af_anequalizer;
+extern const AVFilter ff_af_anlmdn;
+extern const AVFilter ff_af_anlms;
+extern const AVFilter ff_af_anull;
+extern const AVFilter ff_af_apad;
+extern const AVFilter ff_af_aperms;
+extern const AVFilter ff_af_aphaser;
+extern const AVFilter ff_af_aphaseshift;
+extern const AVFilter ff_af_apulsator;
+extern const AVFilter ff_af_arealtime;
+extern const AVFilter ff_af_aresample;
+extern const AVFilter ff_af_areverse;
+extern const AVFilter ff_af_arnndn;
+extern const AVFilter ff_af_aselect;
+extern const AVFilter ff_af_asendcmd;
+extern const AVFilter ff_af_asetnsamples;
+extern const AVFilter ff_af_asetpts;
+extern const AVFilter ff_af_asetrate;
+extern const AVFilter ff_af_asettb;
+extern const AVFilter ff_af_ashowinfo;
+extern const AVFilter ff_af_asidedata;
+extern const AVFilter ff_af_asoftclip;
+extern const AVFilter ff_af_asplit;
+extern const AVFilter ff_af_asr;
+extern const AVFilter ff_af_astats;
+extern const AVFilter ff_af_astreamselect;
+extern const AVFilter ff_af_asubboost;
+extern const AVFilter ff_af_asubcut;
+extern const AVFilter ff_af_asupercut;
+extern const AVFilter ff_af_asuperpass;
+extern const AVFilter ff_af_asuperstop;
+extern const AVFilter ff_af_atempo;
+extern const AVFilter ff_af_atrim;
+extern const AVFilter ff_af_axcorrelate;
+extern const AVFilter ff_af_azmq;
+extern const AVFilter ff_af_bandpass;
+extern const AVFilter ff_af_bandreject;
+extern const AVFilter ff_af_bass;
+extern const AVFilter ff_af_biquad;
+extern const AVFilter ff_af_bs2b;
+extern const AVFilter ff_vf_chromaber_vulkan;
+extern const AVFilter ff_af_channelmap;
+extern const AVFilter ff_af_channelsplit;
+extern const AVFilter ff_af_chorus;
+extern const AVFilter ff_af_compand;
+extern const AVFilter ff_af_compensationdelay;
+extern const AVFilter ff_af_crossfeed;
+extern const AVFilter ff_af_crystalizer;
+extern const AVFilter ff_af_dcshift;
+extern const AVFilter ff_af_deesser;
+extern const AVFilter ff_af_drmeter;
+extern const AVFilter ff_af_dynaudnorm;
+extern const AVFilter ff_af_earwax;
+extern const AVFilter ff_af_ebur128;
+extern const AVFilter ff_af_equalizer;
+extern const AVFilter ff_af_extrastereo;
+extern const AVFilter ff_af_firequalizer;
+extern const AVFilter ff_af_flanger;
+extern const AVFilter ff_af_haas;
+extern const AVFilter ff_af_hdcd;
+extern const AVFilter ff_af_headphone;
+extern const AVFilter ff_af_highpass;
+extern const AVFilter ff_af_highshelf;
+extern const AVFilter ff_af_join;
+extern const AVFilter ff_af_ladspa;
+extern const AVFilter ff_af_loudnorm;
+extern const AVFilter ff_af_lowpass;
+extern const AVFilter ff_af_lowshelf;
+extern const AVFilter ff_af_lv2;
+extern const AVFilter ff_af_mcompand;
+extern const AVFilter ff_af_pan;
+extern const AVFilter ff_af_replaygain;
+extern const AVFilter ff_af_rubberband;
+extern const AVFilter ff_af_sidechaincompress;
+extern const AVFilter ff_af_sidechaingate;
+extern const AVFilter ff_af_silencedetect;
+extern const AVFilter ff_af_silenceremove;
+extern const AVFilter ff_af_sofalizer;
+extern const AVFilter ff_af_speechnorm;
+extern const AVFilter ff_af_stereotools;
+extern const AVFilter ff_af_stereowiden;
+extern const AVFilter ff_af_superequalizer;
+extern const AVFilter ff_af_surround;
+extern const AVFilter ff_af_treble;
+extern const AVFilter ff_af_tremolo;
+extern const AVFilter ff_af_vibrato;
+extern const AVFilter ff_af_volume;
+extern const AVFilter ff_af_volumedetect;
 
-extern AVFilter ff_asrc_aevalsrc;
-extern AVFilter ff_asrc_afirsrc;
-extern AVFilter ff_asrc_anoisesrc;
-extern AVFilter ff_asrc_anullsrc;
-extern AVFilter ff_asrc_flite;
-extern AVFilter ff_asrc_hilbert;
-extern AVFilter ff_asrc_sinc;
-extern AVFilter ff_asrc_sine;
+extern const AVFilter ff_asrc_aevalsrc;
+extern const AVFilter ff_asrc_afirsrc;
+extern const AVFilter ff_asrc_anoisesrc;
+extern const AVFilter ff_asrc_anullsrc;
+extern const AVFilter ff_asrc_flite;
+extern const AVFilter ff_asrc_hilbert;
+extern const AVFilter ff_asrc_sinc;
+extern const AVFilter ff_asrc_sine;
 
-extern AVFilter ff_asink_anullsink;
+extern const AVFilter ff_asink_anullsink;
 
-extern AVFilter ff_vf_addroi;
-extern AVFilter ff_vf_alphaextract;
-extern AVFilter ff_vf_alphamerge;
-extern AVFilter ff_vf_amplify;
-extern AVFilter ff_vf_ass;
-extern AVFilter ff_vf_atadenoise;
-extern AVFilter ff_vf_avgblur;
-extern AVFilter ff_vf_avgblur_opencl;
-extern AVFilter ff_vf_avgblur_vulkan;
-extern AVFilter ff_vf_bbox;
-extern AVFilter ff_vf_bench;
-extern AVFilter ff_vf_bilateral;
-extern AVFilter ff_vf_bitplanenoise;
-extern AVFilter ff_vf_blackdetect;
-extern AVFilter ff_vf_blackframe;
-extern AVFilter ff_vf_blend;
-extern AVFilter ff_vf_bm3d;
-extern AVFilter ff_vf_boxblur;
-extern AVFilter ff_vf_boxblur_opencl;
-extern AVFilter ff_vf_bwdif;
-extern AVFilter ff_vf_cas;
-extern AVFilter ff_vf_chromahold;
-extern AVFilter ff_vf_chromakey;
-extern AVFilter ff_vf_chromanr;
-extern AVFilter ff_vf_chromashift;
-extern AVFilter ff_vf_ciescope;
-extern AVFilter ff_vf_codecview;
-extern AVFilter ff_vf_colorbalance;
-extern AVFilter ff_vf_colorchannelmixer;
-extern AVFilter ff_vf_colorcontrast;
-extern AVFilter ff_vf_colorcorrect;
-extern AVFilter ff_vf_colorize;
-extern AVFilter ff_vf_colorkey;
-extern AVFilter ff_vf_colorkey_opencl;
-extern AVFilter ff_vf_colorhold;
-extern AVFilter ff_vf_colorlevels;
-extern AVFilter ff_vf_colormatrix;
-extern AVFilter ff_vf_colorspace;
-extern AVFilter ff_vf_colortemperature;
-extern AVFilter ff_vf_convolution;
-extern AVFilter ff_vf_convolution_opencl;
-extern AVFilter ff_vf_convolve;
-extern AVFilter ff_vf_copy;
-extern AVFilter ff_vf_coreimage;
-extern AVFilter ff_vf_cover_rect;
-extern AVFilter ff_vf_crop;
-extern AVFilter ff_vf_cropdetect;
-extern AVFilter ff_vf_cue;
-extern AVFilter ff_vf_curves;
-extern AVFilter ff_vf_datascope;
-extern AVFilter ff_vf_dblur;
-extern AVFilter ff_vf_dctdnoiz;
-extern AVFilter ff_vf_deband;
-extern AVFilter ff_vf_deblock;
-extern AVFilter ff_vf_decimate;
-extern AVFilter ff_vf_deconvolve;
-extern AVFilter ff_vf_dedot;
-extern AVFilter ff_vf_deflate;
-extern AVFilter ff_vf_deflicker;
-extern AVFilter ff_vf_deinterlace_qsv;
-extern AVFilter ff_vf_deinterlace_vaapi;
-extern AVFilter ff_vf_dejudder;
-extern AVFilter ff_vf_delogo;
-extern AVFilter ff_vf_denoise_vaapi;
-extern AVFilter ff_vf_derain;
-extern AVFilter ff_vf_deshake;
-extern AVFilter ff_vf_deshake_opencl;
-extern AVFilter ff_vf_despill;
-extern AVFilter ff_vf_detelecine;
-extern AVFilter ff_vf_dilation;
-extern AVFilter ff_vf_dilation_opencl;
-extern AVFilter ff_vf_displace;
-extern AVFilter ff_vf_dnn_detect;
-extern AVFilter ff_vf_dnn_processing;
-extern AVFilter ff_vf_doubleweave;
-extern AVFilter ff_vf_drawbox;
-extern AVFilter ff_vf_drawgraph;
-extern AVFilter ff_vf_drawgrid;
-extern AVFilter ff_vf_drawtext;
-extern AVFilter ff_vf_edgedetect;
-extern AVFilter ff_vf_elbg;
-extern AVFilter ff_vf_entropy;
-extern AVFilter ff_vf_epx;
-extern AVFilter ff_vf_eq;
-extern AVFilter ff_vf_erosion;
-extern AVFilter ff_vf_erosion_opencl;
-extern AVFilter ff_vf_estdif;
-extern AVFilter ff_vf_exposure;
-extern AVFilter ff_vf_extractplanes;
-extern AVFilter ff_vf_fade;
-extern AVFilter ff_vf_fftdnoiz;
-extern AVFilter ff_vf_fftfilt;
-extern AVFilter ff_vf_field;
-extern AVFilter ff_vf_fieldhint;
-extern AVFilter ff_vf_fieldmatch;
-extern AVFilter ff_vf_fieldorder;
-extern AVFilter ff_vf_fillborders;
-extern AVFilter ff_vf_find_rect;
-extern AVFilter ff_vf_floodfill;
-extern AVFilter ff_vf_format;
-extern AVFilter ff_vf_fps;
-extern AVFilter ff_vf_framepack;
-extern AVFilter ff_vf_framerate;
-extern AVFilter ff_vf_framestep;
-extern AVFilter ff_vf_freezedetect;
-extern AVFilter ff_vf_freezeframes;
-extern AVFilter ff_vf_frei0r;
-extern AVFilter ff_vf_fspp;
-extern AVFilter ff_vf_gblur;
-extern AVFilter ff_vf_geq;
-extern AVFilter ff_vf_gradfun;
-extern AVFilter ff_vf_graphmonitor;
-extern AVFilter ff_vf_greyedge;
-extern AVFilter ff_vf_haldclut;
-extern AVFilter ff_vf_hflip;
-extern AVFilter ff_vf_histeq;
-extern AVFilter ff_vf_histogram;
-extern AVFilter ff_vf_hqdn3d;
-extern AVFilter ff_vf_hqx;
-extern AVFilter ff_vf_hstack;
-extern AVFilter ff_vf_hue;
-extern AVFilter ff_vf_hwdownload;
-extern AVFilter ff_vf_hwmap;
-extern AVFilter ff_vf_hwupload;
-extern AVFilter ff_vf_hwupload_cuda;
-extern AVFilter ff_vf_hysteresis;
-extern AVFilter ff_vf_identity;
-extern AVFilter ff_vf_idet;
-extern AVFilter ff_vf_il;
-extern AVFilter ff_vf_inflate;
-extern AVFilter ff_vf_interlace;
-extern AVFilter ff_vf_interleave;
-extern AVFilter ff_vf_kerndeint;
-extern AVFilter ff_vf_kirsch;
-extern AVFilter ff_vf_lagfun;
-extern AVFilter ff_vf_lenscorrection;
-extern AVFilter ff_vf_lensfun;
-extern AVFilter ff_vf_libvmaf;
-extern AVFilter ff_vf_limiter;
-extern AVFilter ff_vf_loop;
-extern AVFilter ff_vf_lumakey;
-extern AVFilter ff_vf_lut;
-extern AVFilter ff_vf_lut1d;
-extern AVFilter ff_vf_lut2;
-extern AVFilter ff_vf_lut3d;
-extern AVFilter ff_vf_lutrgb;
-extern AVFilter ff_vf_lutyuv;
-extern AVFilter ff_vf_maskedclamp;
-extern AVFilter ff_vf_maskedmax;
-extern AVFilter ff_vf_maskedmerge;
-extern AVFilter ff_vf_maskedmin;
-extern AVFilter ff_vf_maskedthreshold;
-extern AVFilter ff_vf_maskfun;
-extern AVFilter ff_vf_mcdeint;
-extern AVFilter ff_vf_median;
-extern AVFilter ff_vf_mergeplanes;
-extern AVFilter ff_vf_mestimate;
-extern AVFilter ff_vf_metadata;
-extern AVFilter ff_vf_midequalizer;
-extern AVFilter ff_vf_minterpolate;
-extern AVFilter ff_vf_mix;
-extern AVFilter ff_vf_monochrome;
-extern AVFilter ff_vf_mpdecimate;
-extern AVFilter ff_vf_msad;
-extern AVFilter ff_vf_negate;
-extern AVFilter ff_vf_nlmeans;
-extern AVFilter ff_vf_nlmeans_opencl;
-extern AVFilter ff_vf_nnedi;
-extern AVFilter ff_vf_noformat;
-extern AVFilter ff_vf_noise;
-extern AVFilter ff_vf_normalize;
-extern AVFilter ff_vf_null;
-extern AVFilter ff_vf_ocr;
-extern AVFilter ff_vf_ocv;
-extern AVFilter ff_vf_oscilloscope;
-extern AVFilter ff_vf_overlay;
-extern AVFilter ff_vf_overlay_opencl;
-extern AVFilter ff_vf_overlay_qsv;
-extern AVFilter ff_vf_overlay_vulkan;
-extern AVFilter ff_vf_overlay_cuda;
-extern AVFilter ff_vf_owdenoise;
-extern AVFilter ff_vf_pad;
-extern AVFilter ff_vf_pad_opencl;
-extern AVFilter ff_vf_palettegen;
-extern AVFilter ff_vf_paletteuse;
-extern AVFilter ff_vf_perms;
-extern AVFilter ff_vf_perspective;
-extern AVFilter ff_vf_phase;
-extern AVFilter ff_vf_photosensitivity;
-extern AVFilter ff_vf_pixdesctest;
-extern AVFilter ff_vf_pixscope;
-extern AVFilter ff_vf_pp;
-extern AVFilter ff_vf_pp7;
-extern AVFilter ff_vf_premultiply;
-extern AVFilter ff_vf_prewitt;
-extern AVFilter ff_vf_prewitt_opencl;
-extern AVFilter ff_vf_procamp_vaapi;
-extern AVFilter ff_vf_program_opencl;
-extern AVFilter ff_vf_pseudocolor;
-extern AVFilter ff_vf_psnr;
-extern AVFilter ff_vf_pullup;
-extern AVFilter ff_vf_qp;
-extern AVFilter ff_vf_random;
-extern AVFilter ff_vf_readeia608;
-extern AVFilter ff_vf_readvitc;
-extern AVFilter ff_vf_realtime;
-extern AVFilter ff_vf_remap;
-extern AVFilter ff_vf_removegrain;
-extern AVFilter ff_vf_removelogo;
-extern AVFilter ff_vf_repeatfields;
-extern AVFilter ff_vf_reverse;
-extern AVFilter ff_vf_rgbashift;
-extern AVFilter ff_vf_roberts;
-extern AVFilter ff_vf_roberts_opencl;
-extern AVFilter ff_vf_rotate;
-extern AVFilter ff_vf_sab;
-extern AVFilter ff_vf_scale;
-extern AVFilter ff_vf_scale_cuda;
-extern AVFilter ff_vf_scale_npp;
-extern AVFilter ff_vf_scale_qsv;
-extern AVFilter ff_vf_scale_vaapi;
-extern AVFilter ff_vf_scale_vulkan;
-extern AVFilter ff_vf_scale2ref;
-extern AVFilter ff_vf_scdet;
-extern AVFilter ff_vf_scroll;
-extern AVFilter ff_vf_select;
-extern AVFilter ff_vf_selectivecolor;
-extern AVFilter ff_vf_sendcmd;
-extern AVFilter ff_vf_separatefields;
-extern AVFilter ff_vf_setdar;
-extern AVFilter ff_vf_setfield;
-extern AVFilter ff_vf_setparams;
-extern AVFilter ff_vf_setpts;
-extern AVFilter ff_vf_setrange;
-extern AVFilter ff_vf_setsar;
-extern AVFilter ff_vf_settb;
-extern AVFilter ff_vf_sharpness_vaapi;
-extern AVFilter ff_vf_shear;
-extern AVFilter ff_vf_showinfo;
-extern AVFilter ff_vf_showpalette;
-extern AVFilter ff_vf_shuffleframes;
-extern AVFilter ff_vf_shufflepixels;
-extern AVFilter ff_vf_shuffleplanes;
-extern AVFilter ff_vf_sidedata;
-extern AVFilter ff_vf_signalstats;
-extern AVFilter ff_vf_signature;
-extern AVFilter ff_vf_smartblur;
-extern AVFilter ff_vf_sobel;
-extern AVFilter ff_vf_sobel_opencl;
-extern AVFilter ff_vf_split;
-extern AVFilter ff_vf_spp;
-extern AVFilter ff_vf_sr;
-extern AVFilter ff_vf_ssim;
-extern AVFilter ff_vf_stereo3d;
-extern AVFilter ff_vf_streamselect;
-extern AVFilter ff_vf_subtitles;
-extern AVFilter ff_vf_super2xsai;
-extern AVFilter ff_vf_swaprect;
-extern AVFilter ff_vf_swapuv;
-extern AVFilter ff_vf_tblend;
-extern AVFilter ff_vf_telecine;
-extern AVFilter ff_vf_thistogram;
-extern AVFilter ff_vf_threshold;
-extern AVFilter ff_vf_thumbnail;
-extern AVFilter ff_vf_thumbnail_cuda;
-extern AVFilter ff_vf_tile;
-extern AVFilter ff_vf_tinterlace;
-extern AVFilter ff_vf_tlut2;
-extern AVFilter ff_vf_tmedian;
-extern AVFilter ff_vf_tmidequalizer;
-extern AVFilter ff_vf_tmix;
-extern AVFilter ff_vf_tonemap;
-extern AVFilter ff_vf_tonemap_opencl;
-extern AVFilter ff_vf_tonemap_vaapi;
-extern AVFilter ff_vf_tpad;
-extern AVFilter ff_vf_transpose;
-extern AVFilter ff_vf_transpose_npp;
-extern AVFilter ff_vf_transpose_opencl;
-extern AVFilter ff_vf_transpose_vaapi;
-extern AVFilter ff_vf_trim;
-extern AVFilter ff_vf_unpremultiply;
-extern AVFilter ff_vf_unsharp;
-extern AVFilter ff_vf_unsharp_opencl;
-extern AVFilter ff_vf_untile;
-extern AVFilter ff_vf_uspp;
-extern AVFilter ff_vf_v360;
-extern AVFilter ff_vf_vaguedenoiser;
-extern AVFilter ff_vf_vectorscope;
-extern AVFilter ff_vf_vflip;
-extern AVFilter ff_vf_vfrdet;
-extern AVFilter ff_vf_vibrance;
-extern AVFilter ff_vf_vidstabdetect;
-extern AVFilter ff_vf_vidstabtransform;
-extern AVFilter ff_vf_vif;
-extern AVFilter ff_vf_vignette;
-extern AVFilter ff_vf_vmafmotion;
-extern AVFilter ff_vf_vpp_qsv;
-extern AVFilter ff_vf_vstack;
-extern AVFilter ff_vf_w3fdif;
-extern AVFilter ff_vf_waveform;
-extern AVFilter ff_vf_weave;
-extern AVFilter ff_vf_xbr;
-extern AVFilter ff_vf_xfade;
-extern AVFilter ff_vf_xfade_opencl;
-extern AVFilter ff_vf_xmedian;
-extern AVFilter ff_vf_xstack;
-extern AVFilter ff_vf_yadif;
-extern AVFilter ff_vf_yadif_cuda;
-extern AVFilter ff_vf_yaepblur;
-extern AVFilter ff_vf_zmq;
-extern AVFilter ff_vf_zoompan;
-extern AVFilter ff_vf_zscale;
+extern const AVFilter ff_vf_addroi;
+extern const AVFilter ff_vf_alphaextract;
+extern const AVFilter ff_vf_alphamerge;
+extern const AVFilter ff_vf_amplify;
+extern const AVFilter ff_vf_ass;
+extern const AVFilter ff_vf_atadenoise;
+extern const AVFilter ff_vf_avgblur;
+extern const AVFilter ff_vf_avgblur_opencl;
+extern const AVFilter ff_vf_avgblur_vulkan;
+extern const AVFilter ff_vf_bbox;
+extern const AVFilter ff_vf_bench;
+extern const AVFilter ff_vf_bilateral;
+extern const AVFilter ff_vf_bitplanenoise;
+extern const AVFilter ff_vf_blackdetect;
+extern const AVFilter ff_vf_blackframe;
+extern const AVFilter ff_vf_blend;
+extern const AVFilter ff_vf_bm3d;
+extern const AVFilter ff_vf_boxblur;
+extern const AVFilter ff_vf_boxblur_opencl;
+extern const AVFilter ff_vf_bwdif;
+extern const AVFilter ff_vf_cas;
+extern const AVFilter ff_vf_chromahold;
+extern const AVFilter ff_vf_chromakey;
+extern const AVFilter ff_vf_chromanr;
+extern const AVFilter ff_vf_chromashift;
+extern const AVFilter ff_vf_ciescope;
+extern const AVFilter ff_vf_codecview;
+extern const AVFilter ff_vf_colorbalance;
+extern const AVFilter ff_vf_colorchannelmixer;
+extern const AVFilter ff_vf_colorcontrast;
+extern const AVFilter ff_vf_colorcorrect;
+extern const AVFilter ff_vf_colorize;
+extern const AVFilter ff_vf_colorkey;
+extern const AVFilter ff_vf_colorkey_opencl;
+extern const AVFilter ff_vf_colorhold;
+extern const AVFilter ff_vf_colorlevels;
+extern const AVFilter ff_vf_colormatrix;
+extern const AVFilter ff_vf_colorspace;
+extern const AVFilter ff_vf_colortemperature;
+extern const AVFilter ff_vf_convolution;
+extern const AVFilter ff_vf_convolution_opencl;
+extern const AVFilter ff_vf_convolve;
+extern const AVFilter ff_vf_copy;
+extern const AVFilter ff_vf_coreimage;
+extern const AVFilter ff_vf_cover_rect;
+extern const AVFilter ff_vf_crop;
+extern const AVFilter ff_vf_cropdetect;
+extern const AVFilter ff_vf_cue;
+extern const AVFilter ff_vf_curves;
+extern const AVFilter ff_vf_datascope;
+extern const AVFilter ff_vf_dblur;
+extern const AVFilter ff_vf_dctdnoiz;
+extern const AVFilter ff_vf_deband;
+extern const AVFilter ff_vf_deblock;
+extern const AVFilter ff_vf_decimate;
+extern const AVFilter ff_vf_deconvolve;
+extern const AVFilter ff_vf_dedot;
+extern const AVFilter ff_vf_deflate;
+extern const AVFilter ff_vf_deflicker;
+extern const AVFilter ff_vf_deinterlace_qsv;
+extern const AVFilter ff_vf_deinterlace_vaapi;
+extern const AVFilter ff_vf_dejudder;
+extern const AVFilter ff_vf_delogo;
+extern const AVFilter ff_vf_denoise_vaapi;
+extern const AVFilter ff_vf_derain;
+extern const AVFilter ff_vf_deshake;
+extern const AVFilter ff_vf_deshake_opencl;
+extern const AVFilter ff_vf_despill;
+extern const AVFilter ff_vf_detelecine;
+extern const AVFilter ff_vf_dilation;
+extern const AVFilter ff_vf_dilation_opencl;
+extern const AVFilter ff_vf_displace;
+extern const AVFilter ff_vf_dnn_detect;
+extern const AVFilter ff_vf_dnn_processing;
+extern const AVFilter ff_vf_doubleweave;
+extern const AVFilter ff_vf_drawbox;
+extern const AVFilter ff_vf_drawgraph;
+extern const AVFilter ff_vf_drawgrid;
+extern const AVFilter ff_vf_drawtext;
+extern const AVFilter ff_vf_edgedetect;
+extern const AVFilter ff_vf_elbg;
+extern const AVFilter ff_vf_entropy;
+extern const AVFilter ff_vf_epx;
+extern const AVFilter ff_vf_eq;
+extern const AVFilter ff_vf_erosion;
+extern const AVFilter ff_vf_erosion_opencl;
+extern const AVFilter ff_vf_estdif;
+extern const AVFilter ff_vf_exposure;
+extern const AVFilter ff_vf_extractplanes;
+extern const AVFilter ff_vf_fade;
+extern const AVFilter ff_vf_fftdnoiz;
+extern const AVFilter ff_vf_fftfilt;
+extern const AVFilter ff_vf_field;
+extern const AVFilter ff_vf_fieldhint;
+extern const AVFilter ff_vf_fieldmatch;
+extern const AVFilter ff_vf_fieldorder;
+extern const AVFilter ff_vf_fillborders;
+extern const AVFilter ff_vf_find_rect;
+extern const AVFilter ff_vf_floodfill;
+extern const AVFilter ff_vf_format;
+extern const AVFilter ff_vf_fps;
+extern const AVFilter ff_vf_framepack;
+extern const AVFilter ff_vf_framerate;
+extern const AVFilter ff_vf_framestep;
+extern const AVFilter ff_vf_freezedetect;
+extern const AVFilter ff_vf_freezeframes;
+extern const AVFilter ff_vf_frei0r;
+extern const AVFilter ff_vf_fspp;
+extern const AVFilter ff_vf_gblur;
+extern const AVFilter ff_vf_geq;
+extern const AVFilter ff_vf_gradfun;
+extern const AVFilter ff_vf_graphmonitor;
+extern const AVFilter ff_vf_greyedge;
+extern const AVFilter ff_vf_haldclut;
+extern const AVFilter ff_vf_hflip;
+extern const AVFilter ff_vf_histeq;
+extern const AVFilter ff_vf_histogram;
+extern const AVFilter ff_vf_hqdn3d;
+extern const AVFilter ff_vf_hqx;
+extern const AVFilter ff_vf_hstack;
+extern const AVFilter ff_vf_hue;
+extern const AVFilter ff_vf_hwdownload;
+extern const AVFilter ff_vf_hwmap;
+extern const AVFilter ff_vf_hwupload;
+extern const AVFilter ff_vf_hwupload_cuda;
+extern const AVFilter ff_vf_hysteresis;
+extern const AVFilter ff_vf_identity;
+extern const AVFilter ff_vf_idet;
+extern const AVFilter ff_vf_il;
+extern const AVFilter ff_vf_inflate;
+extern const AVFilter ff_vf_interlace;
+extern const AVFilter ff_vf_interleave;
+extern const AVFilter ff_vf_kerndeint;
+extern const AVFilter ff_vf_kirsch;
+extern const AVFilter ff_vf_lagfun;
+extern const AVFilter ff_vf_lenscorrection;
+extern const AVFilter ff_vf_lensfun;
+extern const AVFilter ff_vf_libvmaf;
+extern const AVFilter ff_vf_limiter;
+extern const AVFilter ff_vf_loop;
+extern const AVFilter ff_vf_lumakey;
+extern const AVFilter ff_vf_lut;
+extern const AVFilter ff_vf_lut1d;
+extern const AVFilter ff_vf_lut2;
+extern const AVFilter ff_vf_lut3d;
+extern const AVFilter ff_vf_lutrgb;
+extern const AVFilter ff_vf_lutyuv;
+extern const AVFilter ff_vf_maskedclamp;
+extern const AVFilter ff_vf_maskedmax;
+extern const AVFilter ff_vf_maskedmerge;
+extern const AVFilter ff_vf_maskedmin;
+extern const AVFilter ff_vf_maskedthreshold;
+extern const AVFilter ff_vf_maskfun;
+extern const AVFilter ff_vf_mcdeint;
+extern const AVFilter ff_vf_median;
+extern const AVFilter ff_vf_mergeplanes;
+extern const AVFilter ff_vf_mestimate;
+extern const AVFilter ff_vf_metadata;
+extern const AVFilter ff_vf_midequalizer;
+extern const AVFilter ff_vf_minterpolate;
+extern const AVFilter ff_vf_mix;
+extern const AVFilter ff_vf_monochrome;
+extern const AVFilter ff_vf_mpdecimate;
+extern const AVFilter ff_vf_msad;
+extern const AVFilter ff_vf_negate;
+extern const AVFilter ff_vf_nlmeans;
+extern const AVFilter ff_vf_nlmeans_opencl;
+extern const AVFilter ff_vf_nnedi;
+extern const AVFilter ff_vf_noformat;
+extern const AVFilter ff_vf_noise;
+extern const AVFilter ff_vf_normalize;
+extern const AVFilter ff_vf_null;
+extern const AVFilter ff_vf_ocr;
+extern const AVFilter ff_vf_ocv;
+extern const AVFilter ff_vf_oscilloscope;
+extern const AVFilter ff_vf_overlay;
+extern const AVFilter ff_vf_overlay_opencl;
+extern const AVFilter ff_vf_overlay_qsv;
+extern const AVFilter ff_vf_overlay_vulkan;
+extern const AVFilter ff_vf_overlay_cuda;
+extern const AVFilter ff_vf_owdenoise;
+extern const AVFilter ff_vf_pad;
+extern const AVFilter ff_vf_pad_opencl;
+extern const AVFilter ff_vf_palettegen;
+extern const AVFilter ff_vf_paletteuse;
+extern const AVFilter ff_vf_perms;
+extern const AVFilter ff_vf_perspective;
+extern const AVFilter ff_vf_phase;
+extern const AVFilter ff_vf_photosensitivity;
+extern const AVFilter ff_vf_pixdesctest;
+extern const AVFilter ff_vf_pixscope;
+extern const AVFilter ff_vf_pp;
+extern const AVFilter ff_vf_pp7;
+extern const AVFilter ff_vf_premultiply;
+extern const AVFilter ff_vf_prewitt;
+extern const AVFilter ff_vf_prewitt_opencl;
+extern const AVFilter ff_vf_procamp_vaapi;
+extern const AVFilter ff_vf_program_opencl;
+extern const AVFilter ff_vf_pseudocolor;
+extern const AVFilter ff_vf_psnr;
+extern const AVFilter ff_vf_pullup;
+extern const AVFilter ff_vf_qp;
+extern const AVFilter ff_vf_random;
+extern const AVFilter ff_vf_readeia608;
+extern const AVFilter ff_vf_readvitc;
+extern const AVFilter ff_vf_realtime;
+extern const AVFilter ff_vf_remap;
+extern const AVFilter ff_vf_removegrain;
+extern const AVFilter ff_vf_removelogo;
+extern const AVFilter ff_vf_repeatfields;
+extern const AVFilter ff_vf_reverse;
+extern const AVFilter ff_vf_rgbashift;
+extern const AVFilter ff_vf_roberts;
+extern const AVFilter ff_vf_roberts_opencl;
+extern const AVFilter ff_vf_rotate;
+extern const AVFilter ff_vf_sab;
+extern const AVFilter ff_vf_scale;
+extern const AVFilter ff_vf_scale_cuda;
+extern const AVFilter ff_vf_scale_npp;
+extern const AVFilter ff_vf_scale_qsv;
+extern const AVFilter ff_vf_scale_vaapi;
+extern const AVFilter ff_vf_scale_vulkan;
+extern const AVFilter ff_vf_scale2ref;
+extern const AVFilter ff_vf_scdet;
+extern const AVFilter ff_vf_scroll;
+extern const AVFilter ff_vf_select;
+extern const AVFilter ff_vf_selectivecolor;
+extern const AVFilter ff_vf_sendcmd;
+extern const AVFilter ff_vf_separatefields;
+extern const AVFilter ff_vf_setdar;
+extern const AVFilter ff_vf_setfield;
+extern const AVFilter ff_vf_setparams;
+extern const AVFilter ff_vf_setpts;
+extern const AVFilter ff_vf_setrange;
+extern const AVFilter ff_vf_setsar;
+extern const AVFilter ff_vf_settb;
+extern const AVFilter ff_vf_sharpness_vaapi;
+extern const AVFilter ff_vf_shear;
+extern const AVFilter ff_vf_showinfo;
+extern const AVFilter ff_vf_showpalette;
+extern const AVFilter ff_vf_shuffleframes;
+extern const AVFilter ff_vf_shufflepixels;
+extern const AVFilter ff_vf_shuffleplanes;
+extern const AVFilter ff_vf_sidedata;
+extern const AVFilter ff_vf_signalstats;
+extern const AVFilter ff_vf_signature;
+extern const AVFilter ff_vf_smartblur;
+extern const AVFilter ff_vf_sobel;
+extern const AVFilter ff_vf_sobel_opencl;
+extern const AVFilter ff_vf_split;
+extern const AVFilter ff_vf_spp;
+extern const AVFilter ff_vf_sr;
+extern const AVFilter ff_vf_ssim;
+extern const AVFilter ff_vf_stereo3d;
+extern const AVFilter ff_vf_streamselect;
+extern const AVFilter ff_vf_subtitles;
+extern const AVFilter ff_vf_super2xsai;
+extern const AVFilter ff_vf_swaprect;
+extern const AVFilter ff_vf_swapuv;
+extern const AVFilter ff_vf_tblend;
+extern const AVFilter ff_vf_telecine;
+extern const AVFilter ff_vf_thistogram;
+extern const AVFilter ff_vf_threshold;
+extern const AVFilter ff_vf_thumbnail;
+extern const AVFilter ff_vf_thumbnail_cuda;
+extern const AVFilter ff_vf_tile;
+extern const AVFilter ff_vf_tinterlace;
+extern const AVFilter ff_vf_tlut2;
+extern const AVFilter ff_vf_tmedian;
+extern const AVFilter ff_vf_tmidequalizer;
+extern const AVFilter ff_vf_tmix;
+extern const AVFilter ff_vf_tonemap;
+extern const AVFilter ff_vf_tonemap_opencl;
+extern const AVFilter ff_vf_tonemap_vaapi;
+extern const AVFilter ff_vf_tpad;
+extern const AVFilter ff_vf_transpose;
+extern const AVFilter ff_vf_transpose_npp;
+extern const AVFilter ff_vf_transpose_opencl;
+extern const AVFilter ff_vf_transpose_vaapi;
+extern const AVFilter ff_vf_trim;
+extern const AVFilter ff_vf_unpremultiply;
+extern const AVFilter ff_vf_unsharp;
+extern const AVFilter ff_vf_unsharp_opencl;
+extern const AVFilter ff_vf_untile;
+extern const AVFilter ff_vf_uspp;
+extern const AVFilter ff_vf_v360;
+extern const AVFilter ff_vf_vaguedenoiser;
+extern const AVFilter ff_vf_vectorscope;
+extern const AVFilter ff_vf_vflip;
+extern const AVFilter ff_vf_vfrdet;
+extern const AVFilter ff_vf_vibrance;
+extern const AVFilter ff_vf_vidstabdetect;
+extern const AVFilter ff_vf_vidstabtransform;
+extern const AVFilter ff_vf_vif;
+extern const AVFilter ff_vf_vignette;
+extern const AVFilter ff_vf_vmafmotion;
+extern const AVFilter ff_vf_vpp_qsv;
+extern const AVFilter ff_vf_vstack;
+extern const AVFilter ff_vf_w3fdif;
+extern const AVFilter ff_vf_waveform;
+extern const AVFilter ff_vf_weave;
+extern const AVFilter ff_vf_xbr;
+extern const AVFilter ff_vf_xfade;
+extern const AVFilter ff_vf_xfade_opencl;
+extern const AVFilter ff_vf_xmedian;
+extern const AVFilter ff_vf_xstack;
+extern const AVFilter ff_vf_yadif;
+extern const AVFilter ff_vf_yadif_cuda;
+extern const AVFilter ff_vf_yaepblur;
+extern const AVFilter ff_vf_zmq;
+extern const AVFilter ff_vf_zoompan;
+extern const AVFilter ff_vf_zscale;
 
-extern AVFilter ff_vsrc_allrgb;
-extern AVFilter ff_vsrc_allyuv;
-extern AVFilter ff_vsrc_cellauto;
-extern AVFilter ff_vsrc_color;
-extern AVFilter ff_vsrc_coreimagesrc;
-extern AVFilter ff_vsrc_frei0r_src;
-extern AVFilter ff_vsrc_gradients;
-extern AVFilter ff_vsrc_haldclutsrc;
-extern AVFilter ff_vsrc_life;
-extern AVFilter ff_vsrc_mandelbrot;
-extern AVFilter ff_vsrc_mptestsrc;
-extern AVFilter ff_vsrc_nullsrc;
-extern AVFilter ff_vsrc_openclsrc;
-extern AVFilter ff_vsrc_pal75bars;
-extern AVFilter ff_vsrc_pal100bars;
-extern AVFilter ff_vsrc_rgbtestsrc;
-extern AVFilter ff_vsrc_sierpinski;
-extern AVFilter ff_vsrc_smptebars;
-extern AVFilter ff_vsrc_smptehdbars;
-extern AVFilter ff_vsrc_testsrc;
-extern AVFilter ff_vsrc_testsrc2;
-extern AVFilter ff_vsrc_yuvtestsrc;
+extern const AVFilter ff_vsrc_allrgb;
+extern const AVFilter ff_vsrc_allyuv;
+extern const AVFilter ff_vsrc_cellauto;
+extern const AVFilter ff_vsrc_color;
+extern const AVFilter ff_vsrc_coreimagesrc;
+extern const AVFilter ff_vsrc_frei0r_src;
+extern const AVFilter ff_vsrc_gradients;
+extern const AVFilter ff_vsrc_haldclutsrc;
+extern const AVFilter ff_vsrc_life;
+extern const AVFilter ff_vsrc_mandelbrot;
+extern const AVFilter ff_vsrc_mptestsrc;
+extern const AVFilter ff_vsrc_nullsrc;
+extern const AVFilter ff_vsrc_openclsrc;
+extern const AVFilter ff_vsrc_pal75bars;
+extern const AVFilter ff_vsrc_pal100bars;
+extern const AVFilter ff_vsrc_rgbtestsrc;
+extern const AVFilter ff_vsrc_sierpinski;
+extern const AVFilter ff_vsrc_smptebars;
+extern const AVFilter ff_vsrc_smptehdbars;
+extern const AVFilter ff_vsrc_testsrc;
+extern const AVFilter ff_vsrc_testsrc2;
+extern const AVFilter ff_vsrc_yuvtestsrc;
 
-extern AVFilter ff_vsink_nullsink;
+extern const AVFilter ff_vsink_nullsink;
 
 /* multimedia filters */
-extern AVFilter ff_avf_abitscope;
-extern AVFilter ff_avf_adrawgraph;
-extern AVFilter ff_avf_agraphmonitor;
-extern AVFilter ff_avf_ahistogram;
-extern AVFilter ff_avf_aphasemeter;
-extern AVFilter ff_avf_avectorscope;
-extern AVFilter ff_avf_concat;
-extern AVFilter ff_avf_showcqt;
-extern AVFilter ff_avf_showfreqs;
-extern AVFilter ff_avf_showspatial;
-extern AVFilter ff_avf_showspectrum;
-extern AVFilter ff_avf_showspectrumpic;
-extern AVFilter ff_avf_showvolume;
-extern AVFilter ff_avf_showwaves;
-extern AVFilter ff_avf_showwavespic;
-extern AVFilter ff_vaf_spectrumsynth;
+extern const AVFilter ff_avf_abitscope;
+extern const AVFilter ff_avf_adrawgraph;
+extern const AVFilter ff_avf_agraphmonitor;
+extern const AVFilter ff_avf_ahistogram;
+extern const AVFilter ff_avf_aphasemeter;
+extern const AVFilter ff_avf_avectorscope;
+extern const AVFilter ff_avf_concat;
+extern const AVFilter ff_avf_showcqt;
+extern const AVFilter ff_avf_showfreqs;
+extern const AVFilter ff_avf_showspatial;
+extern const AVFilter ff_avf_showspectrum;
+extern const AVFilter ff_avf_showspectrumpic;
+extern const AVFilter ff_avf_showvolume;
+extern const AVFilter ff_avf_showwaves;
+extern const AVFilter ff_avf_showwavespic;
+extern const AVFilter ff_vaf_spectrumsynth;
 
 /* multimedia sources */
-extern AVFilter ff_avsrc_amovie;
-extern AVFilter ff_avsrc_movie;
+extern const AVFilter ff_avsrc_amovie;
+extern const AVFilter ff_avsrc_movie;
 
 /* those filters are part of public or internal API,
  * they are formatted to not be found by the grep
  * as they are manually added again (due to their 'names'
  * being the same while having different 'types'). */
-extern  AVFilter ff_asrc_abuffer;
-extern  AVFilter ff_vsrc_buffer;
-extern  AVFilter ff_asink_abuffer;
-extern  AVFilter ff_vsink_buffer;
-extern AVFilter ff_af_afifo;
-extern AVFilter ff_vf_fifo;
+extern  const AVFilter ff_asrc_abuffer;
+extern  const AVFilter ff_vsrc_buffer;
+extern  const AVFilter ff_asink_abuffer;
+extern  const AVFilter ff_vsink_buffer;
+extern const AVFilter ff_af_afifo;
+extern const AVFilter ff_vf_fifo;
 
 #include "libavfilter/filter_list.c"
 
diff --git a/libavfilter/asink_anullsink.c b/libavfilter/asink_anullsink.c
index c10a348475..dce0204839 100644
--- a/libavfilter/asink_anullsink.c
+++ b/libavfilter/asink_anullsink.c
@@ -37,7 +37,7 @@ static const AVFilterPad avfilter_asink_anullsink_inputs[] = {
     { NULL },
 };
 
-AVFilter ff_asink_anullsink = {
+const AVFilter ff_asink_anullsink = {
     .name        = "anullsink",
     .description = NULL_IF_CONFIG_SMALL("Do absolutely nothing with the input audio."),
     .priv_size   = 0,
diff --git a/libavfilter/asrc_afirsrc.c b/libavfilter/asrc_afirsrc.c
index d8ba8f6a54..4002118d6a 100644
--- a/libavfilter/asrc_afirsrc.c
+++ b/libavfilter/asrc_afirsrc.c
@@ -317,7 +317,7 @@ static const AVFilterPad afirsrc_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_asrc_afirsrc = {
+const AVFilter ff_asrc_afirsrc = {
     .name          = "afirsrc",
     .description   = NULL_IF_CONFIG_SMALL("Generate a FIR coefficients audio stream."),
     .query_formats = query_formats,
diff --git a/libavfilter/asrc_anoisesrc.c b/libavfilter/asrc_anoisesrc.c
index 40ee077001..286334acc8 100644
--- a/libavfilter/asrc_anoisesrc.c
+++ b/libavfilter/asrc_anoisesrc.c
@@ -246,7 +246,7 @@ static const AVFilterPad anoisesrc_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_asrc_anoisesrc = {
+const AVFilter ff_asrc_anoisesrc = {
     .name          = "anoisesrc",
     .description   = NULL_IF_CONFIG_SMALL("Generate a noise audio signal."),
     .query_formats = query_formats,
diff --git a/libavfilter/asrc_anullsrc.c b/libavfilter/asrc_anullsrc.c
index f2c0799faa..45d830e3a2 100644
--- a/libavfilter/asrc_anullsrc.c
+++ b/libavfilter/asrc_anullsrc.c
@@ -137,7 +137,7 @@ static const AVFilterPad avfilter_asrc_anullsrc_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_asrc_anullsrc = {
+const AVFilter ff_asrc_anullsrc = {
     .name          = "anullsrc",
     .description   = NULL_IF_CONFIG_SMALL("Null audio source, return empty audio frames."),
     .init          = init,
diff --git a/libavfilter/asrc_flite.c b/libavfilter/asrc_flite.c
index 3e543a3ab6..e3065cff79 100644
--- a/libavfilter/asrc_flite.c
+++ b/libavfilter/asrc_flite.c
@@ -274,7 +274,7 @@ static const AVFilterPad flite_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_asrc_flite = {
+const AVFilter ff_asrc_flite = {
     .name          = "flite",
     .description   = NULL_IF_CONFIG_SMALL("Synthesize voice from text using libflite."),
     .query_formats = query_formats,
diff --git a/libavfilter/asrc_hilbert.c b/libavfilter/asrc_hilbert.c
index 640dfe46f9..64e566084c 100644
--- a/libavfilter/asrc_hilbert.c
+++ b/libavfilter/asrc_hilbert.c
@@ -187,7 +187,7 @@ static const AVFilterPad hilbert_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_asrc_hilbert = {
+const AVFilter ff_asrc_hilbert = {
     .name          = "hilbert",
     .description   = NULL_IF_CONFIG_SMALL("Generate a Hilbert transform FIR coefficients."),
     .query_formats = query_formats,
diff --git a/libavfilter/asrc_sinc.c b/libavfilter/asrc_sinc.c
index c3ecb864d1..e4aa51c0d0 100644
--- a/libavfilter/asrc_sinc.c
+++ b/libavfilter/asrc_sinc.c
@@ -444,7 +444,7 @@ static const AVOption sinc_options[] = {
 
 AVFILTER_DEFINE_CLASS(sinc);
 
-AVFilter ff_asrc_sinc = {
+const AVFilter ff_asrc_sinc = {
     .name          = "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),
diff --git a/libavfilter/asrc_sine.c b/libavfilter/asrc_sine.c
index 3b7d2e6d00..f75a5fc728 100644
--- a/libavfilter/asrc_sine.c
+++ b/libavfilter/asrc_sine.c
@@ -269,7 +269,7 @@ static const AVFilterPad sine_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_asrc_sine = {
+const AVFilter ff_asrc_sine = {
     .name          = "sine",
     .description   = NULL_IF_CONFIG_SMALL("Generate sine wave audio signal."),
     .query_formats = query_formats,
diff --git a/libavfilter/avf_abitscope.c b/libavfilter/avf_abitscope.c
index 5011943888..c38c73e0e5 100644
--- a/libavfilter/avf_abitscope.c
+++ b/libavfilter/avf_abitscope.c
@@ -261,7 +261,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_avf_abitscope = {
+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,
diff --git a/libavfilter/avf_ahistogram.c b/libavfilter/avf_ahistogram.c
index b37b4a66a2..864c061c2f 100644
--- a/libavfilter/avf_ahistogram.c
+++ b/libavfilter/avf_ahistogram.c
@@ -424,7 +424,7 @@ static const AVFilterPad ahistogram_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_avf_ahistogram = {
+const AVFilter ff_avf_ahistogram = {
     .name          = "ahistogram",
     .description   = NULL_IF_CONFIG_SMALL("Convert input audio to histogram video output."),
     .uninit        = uninit,
diff --git a/libavfilter/avf_aphasemeter.c b/libavfilter/avf_aphasemeter.c
index 61da9a90b6..ea529d3fee 100644
--- a/libavfilter/avf_aphasemeter.c
+++ b/libavfilter/avf_aphasemeter.c
@@ -385,7 +385,7 @@ static const AVFilterPad inputs[] = {
     { NULL }
 };
 
-AVFilter ff_avf_aphasemeter = {
+const AVFilter ff_avf_aphasemeter = {
     .name          = "aphasemeter",
     .description   = NULL_IF_CONFIG_SMALL("Convert input audio to phase meter video output."),
     .init          = init,
diff --git a/libavfilter/avf_avectorscope.c b/libavfilter/avf_avectorscope.c
index c44353c7fd..a0011fe33b 100644
--- a/libavfilter/avf_avectorscope.c
+++ b/libavfilter/avf_avectorscope.c
@@ -415,7 +415,7 @@ static const AVFilterPad audiovectorscope_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_avf_avectorscope = {
+const AVFilter ff_avf_avectorscope = {
     .name          = "avectorscope",
     .description   = NULL_IF_CONFIG_SMALL("Convert input audio to vectorscope video output."),
     .uninit        = uninit,
diff --git a/libavfilter/avf_concat.c b/libavfilter/avf_concat.c
index df6414704d..f5cd8c11a7 100644
--- a/libavfilter/avf_concat.c
+++ b/libavfilter/avf_concat.c
@@ -447,7 +447,7 @@ static int process_command(AVFilterContext *ctx, const char *cmd, const char *ar
     return ret;
 }
 
-AVFilter ff_avf_concat = {
+const AVFilter ff_avf_concat = {
     .name          = "concat",
     .description   = NULL_IF_CONFIG_SMALL("Concatenate audio and video streams."),
     .init          = init,
diff --git a/libavfilter/avf_showcqt.c b/libavfilter/avf_showcqt.c
index dba1f089ee..996a6f63c5 100644
--- a/libavfilter/avf_showcqt.c
+++ b/libavfilter/avf_showcqt.c
@@ -1589,7 +1589,7 @@ static const AVFilterPad showcqt_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_avf_showcqt = {
+const AVFilter ff_avf_showcqt = {
     .name          = "showcqt",
     .description   = NULL_IF_CONFIG_SMALL("Convert input audio to a CQT (Constant/Clamped Q Transform) spectrum video output."),
     .init          = init,
diff --git a/libavfilter/avf_showfreqs.c b/libavfilter/avf_showfreqs.c
index 6f286c03ba..0b8067116c 100644
--- a/libavfilter/avf_showfreqs.c
+++ b/libavfilter/avf_showfreqs.c
@@ -556,7 +556,7 @@ static const AVFilterPad showfreqs_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_avf_showfreqs = {
+const AVFilter ff_avf_showfreqs = {
     .name          = "showfreqs",
     .description   = NULL_IF_CONFIG_SMALL("Convert input audio to a frequencies video output."),
     .init          = init,
diff --git a/libavfilter/avf_showspatial.c b/libavfilter/avf_showspatial.c
index a2c8ac24ba..82d202a817 100644
--- a/libavfilter/avf_showspatial.c
+++ b/libavfilter/avf_showspatial.c
@@ -358,7 +358,7 @@ static const AVFilterPad showspatial_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_avf_showspatial = {
+const AVFilter ff_avf_showspatial = {
     .name          = "showspatial",
     .description   = NULL_IF_CONFIG_SMALL("Convert input audio to a spatial video output."),
     .uninit        = uninit,
diff --git a/libavfilter/avf_showspectrum.c b/libavfilter/avf_showspectrum.c
index c690665bad..4544bef0bd 100644
--- a/libavfilter/avf_showspectrum.c
+++ b/libavfilter/avf_showspectrum.c
@@ -1526,7 +1526,7 @@ static const AVFilterPad showspectrum_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_avf_showspectrum = {
+const AVFilter ff_avf_showspectrum = {
     .name          = "showspectrum",
     .description   = NULL_IF_CONFIG_SMALL("Convert input audio to a spectrum video output."),
     .uninit        = uninit,
@@ -1709,7 +1709,7 @@ static const AVFilterPad showspectrumpic_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_avf_showspectrumpic = {
+const AVFilter ff_avf_showspectrumpic = {
     .name          = "showspectrumpic",
     .description   = NULL_IF_CONFIG_SMALL("Convert input audio to a spectrum video output single picture."),
     .uninit        = uninit,
diff --git a/libavfilter/avf_showvolume.c b/libavfilter/avf_showvolume.c
index 466283a3eb..d4b8c48297 100644
--- a/libavfilter/avf_showvolume.c
+++ b/libavfilter/avf_showvolume.c
@@ -498,7 +498,7 @@ static const AVFilterPad showvolume_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_avf_showvolume = {
+const AVFilter ff_avf_showvolume = {
     .name          = "showvolume",
     .description   = NULL_IF_CONFIG_SMALL("Convert input audio volume to video output."),
     .init          = init,
diff --git a/libavfilter/avf_showwaves.c b/libavfilter/avf_showwaves.c
index aabd79e23b..b3639f46a5 100644
--- a/libavfilter/avf_showwaves.c
+++ b/libavfilter/avf_showwaves.c
@@ -775,7 +775,7 @@ static const AVFilterPad showwaves_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_avf_showwaves = {
+const AVFilter ff_avf_showwaves = {
     .name          = "showwaves",
     .description   = NULL_IF_CONFIG_SMALL("Convert input audio to a video output."),
     .init          = init,
@@ -890,7 +890,7 @@ static const AVFilterPad showwavespic_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_avf_showwavespic = {
+const AVFilter ff_avf_showwavespic = {
     .name          = "showwavespic",
     .description   = NULL_IF_CONFIG_SMALL("Convert input audio to a video output single picture."),
     .init          = init,
diff --git a/libavfilter/buffersink.c b/libavfilter/buffersink.c
index 15d897cff6..c4147bf732 100644
--- a/libavfilter/buffersink.c
+++ b/libavfilter/buffersink.c
@@ -335,7 +335,7 @@ static const AVFilterPad avfilter_vsink_buffer_inputs[] = {
     { NULL }
 };
 
-AVFilter ff_vsink_buffer = {
+const AVFilter ff_vsink_buffer = {
     .name          = "buffersink",
     .description   = NULL_IF_CONFIG_SMALL("Buffer video frames, and make them available to the end of the filter graph."),
     .priv_size     = sizeof(BufferSinkContext),
@@ -355,7 +355,7 @@ static const AVFilterPad avfilter_asink_abuffer_inputs[] = {
     { NULL }
 };
 
-AVFilter ff_asink_abuffer = {
+const AVFilter ff_asink_abuffer = {
     .name          = "abuffersink",
     .description   = NULL_IF_CONFIG_SMALL("Buffer audio frames, and make them available to the end of the filter graph."),
     .priv_class    = &abuffersink_class,
diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c
index da1cf9941e..29c01285cd 100644
--- a/libavfilter/buffersrc.c
+++ b/libavfilter/buffersrc.c
@@ -438,7 +438,7 @@ static const AVFilterPad avfilter_vsrc_buffer_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vsrc_buffer = {
+const AVFilter ff_vsrc_buffer = {
     .name      = "buffer",
     .description = NULL_IF_CONFIG_SMALL("Buffer video frames, and make them accessible to the filterchain."),
     .priv_size = sizeof(BufferSourceContext),
@@ -462,7 +462,7 @@ static const AVFilterPad avfilter_asrc_abuffer_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_asrc_abuffer = {
+const AVFilter ff_asrc_abuffer = {
     .name          = "abuffer",
     .description   = NULL_IF_CONFIG_SMALL("Buffer audio frames, and make them accessible to the filterchain."),
     .priv_size     = sizeof(BufferSourceContext),
diff --git a/libavfilter/f_bench.c b/libavfilter/f_bench.c
index f9e1006925..e7d7c5e299 100644
--- a/libavfilter/f_bench.c
+++ b/libavfilter/f_bench.c
@@ -107,7 +107,7 @@ static const AVFilterPad bench_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_bench = {
+const AVFilter ff_vf_bench = {
     .name          = "bench",
     .description   = NULL_IF_CONFIG_SMALL("Benchmark part of a filtergraph."),
     .priv_size     = sizeof(BenchContext),
@@ -139,7 +139,7 @@ static const AVFilterPad abench_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_abench = {
+const AVFilter ff_af_abench = {
     .name          = "abench",
     .description   = NULL_IF_CONFIG_SMALL("Benchmark part of a filtergraph."),
     .priv_size     = sizeof(BenchContext),
diff --git a/libavfilter/f_cue.c b/libavfilter/f_cue.c
index b48dfc9d49..03804f1667 100644
--- a/libavfilter/f_cue.c
+++ b/libavfilter/f_cue.c
@@ -114,7 +114,7 @@ static const AVFilterPad cue_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_cue = {
+const AVFilter ff_vf_cue = {
     .name        = "cue",
     .description = NULL_IF_CONFIG_SMALL("Delay filtering to match a cue."),
     .priv_size   = sizeof(CueContext),
@@ -145,7 +145,7 @@ static const AVFilterPad acue_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_acue = {
+const AVFilter ff_af_acue = {
     .name        = "acue",
     .description = NULL_IF_CONFIG_SMALL("Delay filtering to match a cue."),
     .priv_size   = sizeof(CueContext),
diff --git a/libavfilter/f_drawgraph.c b/libavfilter/f_drawgraph.c
index b9dd26d392..70701e330e 100644
--- a/libavfilter/f_drawgraph.c
+++ b/libavfilter/f_drawgraph.c
@@ -471,7 +471,7 @@ static const AVFilterPad drawgraph_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_drawgraph = {
+const AVFilter ff_vf_drawgraph = {
     .name          = "drawgraph",
     .description   = NULL_IF_CONFIG_SMALL("Draw a graph using input video metadata."),
     .priv_size     = sizeof(DrawGraphContext),
@@ -509,7 +509,7 @@ static const AVFilterPad adrawgraph_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_avf_adrawgraph = {
+const AVFilter ff_avf_adrawgraph = {
     .name          = "adrawgraph",
     .description   = NULL_IF_CONFIG_SMALL("Draw a graph using input audio metadata."),
     .priv_size     = sizeof(DrawGraphContext),
diff --git a/libavfilter/f_ebur128.c b/libavfilter/f_ebur128.c
index e81520838d..a9a7820db8 100644
--- a/libavfilter/f_ebur128.c
+++ b/libavfilter/f_ebur128.c
@@ -999,7 +999,7 @@ static const AVFilterPad ebur128_inputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_ebur128 = {
+const AVFilter ff_af_ebur128 = {
     .name          = "ebur128",
     .description   = NULL_IF_CONFIG_SMALL("EBU R128 scanner."),
     .priv_size     = sizeof(EBUR128Context),
diff --git a/libavfilter/f_graphmonitor.c b/libavfilter/f_graphmonitor.c
index 74779965d9..ba17f1f638 100644
--- a/libavfilter/f_graphmonitor.c
+++ b/libavfilter/f_graphmonitor.c
@@ -393,7 +393,7 @@ static const AVFilterPad graphmonitor_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_graphmonitor = {
+const AVFilter ff_vf_graphmonitor = {
     .name          = "graphmonitor",
     .description   = NULL_IF_CONFIG_SMALL("Show various filtergraph stats."),
     .priv_size     = sizeof(GraphMonitorContext),
@@ -428,7 +428,7 @@ static const AVFilterPad agraphmonitor_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_avf_agraphmonitor = {
+const AVFilter ff_avf_agraphmonitor = {
     .name          = "agraphmonitor",
     .description   = NULL_IF_CONFIG_SMALL("Show various filtergraph stats."),
     .priv_size     = sizeof(GraphMonitorContext),
diff --git a/libavfilter/f_interleave.c b/libavfilter/f_interleave.c
index 024657c024..259952b591 100644
--- a/libavfilter/f_interleave.c
+++ b/libavfilter/f_interleave.c
@@ -238,7 +238,7 @@ static const AVFilterPad interleave_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_interleave = {
+const AVFilter ff_vf_interleave = {
     .name        = "interleave",
     .description = NULL_IF_CONFIG_SMALL("Temporally interleave video inputs."),
     .priv_size   = sizeof(InterleaveContext),
@@ -266,7 +266,7 @@ static const AVFilterPad ainterleave_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_ainterleave = {
+const AVFilter ff_af_ainterleave = {
     .name        = "ainterleave",
     .description = NULL_IF_CONFIG_SMALL("Temporally interleave audio inputs."),
     .priv_size   = sizeof(InterleaveContext),
diff --git a/libavfilter/f_loop.c b/libavfilter/f_loop.c
index 0a029f0104..15f6076a67 100644
--- a/libavfilter/f_loop.c
+++ b/libavfilter/f_loop.c
@@ -281,7 +281,7 @@ static const AVFilterPad aoutputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_aloop = {
+const AVFilter ff_af_aloop = {
     .name          = "aloop",
     .description   = NULL_IF_CONFIG_SMALL("Loop audio samples."),
     .priv_size     = sizeof(LoopContext),
@@ -454,7 +454,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_loop = {
+const AVFilter ff_vf_loop = {
     .name        = "loop",
     .description = NULL_IF_CONFIG_SMALL("Loop video frames."),
     .priv_size   = sizeof(LoopContext),
diff --git a/libavfilter/f_metadata.c b/libavfilter/f_metadata.c
index 598257b15b..5fec7c3c56 100644
--- a/libavfilter/f_metadata.c
+++ b/libavfilter/f_metadata.c
@@ -383,7 +383,7 @@ static const AVFilterPad aoutputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_ametadata = {
+const AVFilter ff_af_ametadata = {
     .name          = "ametadata",
     .description   = NULL_IF_CONFIG_SMALL("Manipulate audio frame metadata."),
     .priv_size     = sizeof(MetadataContext),
@@ -418,7 +418,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_metadata = {
+const AVFilter ff_vf_metadata = {
     .name        = "metadata",
     .description = NULL_IF_CONFIG_SMALL("Manipulate video frame metadata."),
     .priv_size   = sizeof(MetadataContext),
diff --git a/libavfilter/f_perms.c b/libavfilter/f_perms.c
index d984e5b150..0302ed765b 100644
--- a/libavfilter/f_perms.c
+++ b/libavfilter/f_perms.c
@@ -133,7 +133,7 @@ static const AVFilterPad aperms_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_aperms = {
+const AVFilter ff_af_aperms = {
     .name        = "aperms",
     .description = NULL_IF_CONFIG_SMALL("Set permissions for the output audio frame."),
     .init        = init,
@@ -167,7 +167,7 @@ static const AVFilterPad perms_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_perms = {
+const AVFilter ff_vf_perms = {
     .name        = "perms",
     .description = NULL_IF_CONFIG_SMALL("Set permissions for the output video frame."),
     .init        = init,
diff --git a/libavfilter/f_realtime.c b/libavfilter/f_realtime.c
index 6fd3559dac..332ef21ac5 100644
--- a/libavfilter/f_realtime.c
+++ b/libavfilter/f_realtime.c
@@ -92,7 +92,7 @@ static const AVFilterPad avfilter_vf_realtime_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_realtime = {
+const AVFilter ff_vf_realtime = {
     .name        = "realtime",
     .description = NULL_IF_CONFIG_SMALL("Slow down filtering to match realtime."),
     .priv_size   = sizeof(RealtimeContext),
@@ -124,7 +124,7 @@ static const AVFilterPad arealtime_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_arealtime = {
+const AVFilter ff_af_arealtime = {
     .name        = "arealtime",
     .description = NULL_IF_CONFIG_SMALL("Slow down filtering to match realtime."),
     .priv_size   = sizeof(RealtimeContext),
diff --git a/libavfilter/f_reverse.c b/libavfilter/f_reverse.c
index 1e27264dd6..2a85e6966e 100644
--- a/libavfilter/f_reverse.c
+++ b/libavfilter/f_reverse.c
@@ -133,7 +133,7 @@ static const AVFilterPad reverse_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_reverse = {
+const AVFilter ff_vf_reverse = {
     .name        = "reverse",
     .description = NULL_IF_CONFIG_SMALL("Reverse a clip."),
     .priv_size   = sizeof(ReverseContext),
@@ -294,7 +294,7 @@ static const AVFilterPad areverse_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_areverse = {
+const AVFilter ff_af_areverse = {
     .name          = "areverse",
     .description   = NULL_IF_CONFIG_SMALL("Reverse an audio clip."),
     .query_formats = query_formats,
diff --git a/libavfilter/f_select.c b/libavfilter/f_select.c
index 92938c33aa..f0468078e8 100644
--- a/libavfilter/f_select.c
+++ b/libavfilter/f_select.c
@@ -476,7 +476,7 @@ static const AVFilterPad avfilter_af_aselect_inputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_aselect = {
+const AVFilter ff_af_aselect = {
     .name        = "aselect",
     .description = NULL_IF_CONFIG_SMALL("Select audio frames to pass in output."),
     .init        = aselect_init,
@@ -540,7 +540,7 @@ static const AVFilterPad avfilter_vf_select_inputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_select = {
+const AVFilter ff_vf_select = {
     .name          = "select",
     .description   = NULL_IF_CONFIG_SMALL("Select video frames to pass in output."),
     .init          = select_init,
diff --git a/libavfilter/f_sendcmd.c b/libavfilter/f_sendcmd.c
index 6b02669afa..71b0a5c411 100644
--- a/libavfilter/f_sendcmd.c
+++ b/libavfilter/f_sendcmd.c
@@ -594,7 +594,7 @@ static const AVFilterPad sendcmd_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_sendcmd = {
+const AVFilter ff_vf_sendcmd = {
     .name        = "sendcmd",
     .description = NULL_IF_CONFIG_SMALL("Send commands to filters."),
     .init        = init,
@@ -629,7 +629,7 @@ static const AVFilterPad asendcmd_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_asendcmd = {
+const AVFilter ff_af_asendcmd = {
     .name        = "asendcmd",
     .description = NULL_IF_CONFIG_SMALL("Send commands to filters."),
     .init        = init,
diff --git a/libavfilter/f_sidedata.c b/libavfilter/f_sidedata.c
index 0542373ed8..9133fcb1e3 100644
--- a/libavfilter/f_sidedata.c
+++ b/libavfilter/f_sidedata.c
@@ -141,7 +141,7 @@ static const AVFilterPad aoutputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_asidedata = {
+const AVFilter ff_af_asidedata = {
     .name          = "asidedata",
     .description   = NULL_IF_CONFIG_SMALL("Manipulate audio frame side data."),
     .priv_size     = sizeof(SideDataContext),
@@ -175,7 +175,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_sidedata = {
+const AVFilter ff_vf_sidedata = {
     .name        = "sidedata",
     .description = NULL_IF_CONFIG_SMALL("Manipulate video frame side data."),
     .priv_size   = sizeof(SideDataContext),
diff --git a/libavfilter/f_streamselect.c b/libavfilter/f_streamselect.c
index b3ae4bed62..22eb76d4d7 100644
--- a/libavfilter/f_streamselect.c
+++ b/libavfilter/f_streamselect.c
@@ -327,7 +327,7 @@ static int query_formats(AVFilterContext *ctx)
     return 0;
 }
 
-AVFilter ff_vf_streamselect = {
+const AVFilter ff_vf_streamselect = {
     .name            = "streamselect",
     .description     = NULL_IF_CONFIG_SMALL("Select video streams"),
     .init            = init,
@@ -343,7 +343,7 @@ AVFilter ff_vf_streamselect = {
 #define astreamselect_options streamselect_options
 AVFILTER_DEFINE_CLASS(astreamselect);
 
-AVFilter ff_af_astreamselect = {
+const AVFilter ff_af_astreamselect = {
     .name            = "astreamselect",
     .description     = NULL_IF_CONFIG_SMALL("Select audio streams"),
     .init            = init,
diff --git a/libavfilter/f_zmq.c b/libavfilter/f_zmq.c
index 744c721305..774a890871 100644
--- a/libavfilter/f_zmq.c
+++ b/libavfilter/f_zmq.c
@@ -225,7 +225,7 @@ static const AVFilterPad zmq_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_zmq = {
+const AVFilter ff_vf_zmq = {
     .name        = "zmq",
     .description = NULL_IF_CONFIG_SMALL("Receive commands through ZMQ and broker them to filters."),
     .init        = init,
@@ -260,7 +260,7 @@ static const AVFilterPad azmq_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_azmq = {
+const AVFilter ff_af_azmq = {
     .name        = "azmq",
     .description = NULL_IF_CONFIG_SMALL("Receive commands through ZMQ and broker them to filters."),
     .init        = init,
diff --git a/libavfilter/fifo.c b/libavfilter/fifo.c
index 5b39e1afe7..e0996ba501 100644
--- a/libavfilter/fifo.c
+++ b/libavfilter/fifo.c
@@ -128,7 +128,7 @@ static const AVFilterPad avfilter_vf_fifo_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_fifo = {
+const AVFilter ff_vf_fifo = {
     .name        = "fifo",
     .description = NULL_IF_CONFIG_SMALL("Buffer input images and send them when they are requested."),
     .init        = init,
@@ -156,7 +156,7 @@ static const AVFilterPad avfilter_af_afifo_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_afifo = {
+const AVFilter ff_af_afifo = {
     .name        = "afifo",
     .description = NULL_IF_CONFIG_SMALL("Buffer input frames and send them when they are requested."),
     .init        = init,
diff --git a/libavfilter/setpts.c b/libavfilter/setpts.c
index 440a218924..ac98974312 100644
--- a/libavfilter/setpts.c
+++ b/libavfilter/setpts.c
@@ -290,7 +290,7 @@ static const AVFilterPad avfilter_vf_setpts_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_setpts = {
+const AVFilter ff_vf_setpts = {
     .name      = "setpts",
     .description = NULL_IF_CONFIG_SMALL("Set PTS for the output video frame."),
     .init      = init,
@@ -330,7 +330,7 @@ static const AVFilterPad asetpts_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_asetpts = {
+const AVFilter ff_af_asetpts = {
     .name        = "asetpts",
     .description = NULL_IF_CONFIG_SMALL("Set PTS for the output audio frame."),
     .init        = init,
diff --git a/libavfilter/settb.c b/libavfilter/settb.c
index dba52cff31..2f68e44c5b 100644
--- a/libavfilter/settb.c
+++ b/libavfilter/settb.c
@@ -179,7 +179,7 @@ static const AVFilterPad avfilter_vf_settb_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_settb = {
+const AVFilter ff_vf_settb = {
     .name        = "settb",
     .description = NULL_IF_CONFIG_SMALL("Set timebase for the video output link."),
     .priv_size   = sizeof(SetTBContext),
@@ -212,7 +212,7 @@ static const AVFilterPad avfilter_af_asettb_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_asettb = {
+const AVFilter ff_af_asettb = {
     .name        = "asettb",
     .description = NULL_IF_CONFIG_SMALL("Set timebase for the audio output link."),
     .priv_size   = sizeof(SetTBContext),
diff --git a/libavfilter/split.c b/libavfilter/split.c
index 622838d83d..da5f681af8 100644
--- a/libavfilter/split.c
+++ b/libavfilter/split.c
@@ -119,7 +119,7 @@ static const AVFilterPad avfilter_vf_split_inputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_split = {
+const AVFilter ff_vf_split = {
     .name        = "split",
     .description = NULL_IF_CONFIG_SMALL("Pass on the input to N video outputs."),
     .priv_size   = sizeof(SplitContext),
@@ -140,7 +140,7 @@ static const AVFilterPad avfilter_af_asplit_inputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_asplit = {
+const AVFilter ff_af_asplit = {
     .name        = "asplit",
     .description = NULL_IF_CONFIG_SMALL("Pass on the audio input to N audio outputs."),
     .priv_size   = sizeof(SplitContext),
diff --git a/libavfilter/src_movie.c b/libavfilter/src_movie.c
index e449e7e0c2..54f6738f9a 100644
--- a/libavfilter/src_movie.c
+++ b/libavfilter/src_movie.c
@@ -637,7 +637,7 @@ static int process_command(AVFilterContext *ctx, const char *cmd, const char *ar
 
 AVFILTER_DEFINE_CLASS(movie);
 
-AVFilter ff_avsrc_movie = {
+const AVFilter ff_avsrc_movie = {
     .name          = "movie",
     .description   = NULL_IF_CONFIG_SMALL("Read from a movie source."),
     .priv_size     = sizeof(MovieContext),
@@ -659,7 +659,7 @@ AVFilter ff_avsrc_movie = {
 #define amovie_options movie_options
 AVFILTER_DEFINE_CLASS(amovie);
 
-AVFilter ff_avsrc_amovie = {
+const AVFilter ff_avsrc_amovie = {
     .name          = "amovie",
     .description   = NULL_IF_CONFIG_SMALL("Read audio from a movie source."),
     .priv_size     = sizeof(MovieContext),
diff --git a/libavfilter/trim.c b/libavfilter/trim.c
index 889fe96b9b..4f842eb7ff 100644
--- a/libavfilter/trim.c
+++ b/libavfilter/trim.c
@@ -207,7 +207,7 @@ static const AVFilterPad trim_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_trim = {
+const AVFilter ff_vf_trim = {
     .name        = "trim",
     .description = NULL_IF_CONFIG_SMALL("Pick one continuous section from the input, drop the rest."),
     .init        = init,
@@ -362,7 +362,7 @@ static const AVFilterPad atrim_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_af_atrim = {
+const AVFilter ff_af_atrim = {
     .name        = "atrim",
     .description = NULL_IF_CONFIG_SMALL("Pick one continuous section from the input, drop the rest."),
     .init        = init,
diff --git a/libavfilter/vaf_spectrumsynth.c b/libavfilter/vaf_spectrumsynth.c
index 7347f84352..36fb48c630 100644
--- a/libavfilter/vaf_spectrumsynth.c
+++ b/libavfilter/vaf_spectrumsynth.c
@@ -529,7 +529,7 @@ static const AVFilterPad spectrumsynth_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vaf_spectrumsynth = {
+const AVFilter ff_vaf_spectrumsynth = {
     .name          = "spectrumsynth",
     .description   = NULL_IF_CONFIG_SMALL("Convert input spectrum videos to audio output."),
     .uninit        = uninit,
diff --git a/libavfilter/vf_addroi.c b/libavfilter/vf_addroi.c
index d6b83ee854..1d09f31879 100644
--- a/libavfilter/vf_addroi.c
+++ b/libavfilter/vf_addroi.c
@@ -255,7 +255,7 @@ static const AVFilterPad addroi_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_addroi = {
+const AVFilter ff_vf_addroi = {
     .name        = "addroi",
     .description = NULL_IF_CONFIG_SMALL("Add region of interest to frame."),
     .init        = addroi_init,
diff --git a/libavfilter/vf_alphamerge.c b/libavfilter/vf_alphamerge.c
index 69532d61c3..9b01db6605 100644
--- a/libavfilter/vf_alphamerge.c
+++ b/libavfilter/vf_alphamerge.c
@@ -188,7 +188,7 @@ static const AVOption alphamerge_options[] = {
 
 FRAMESYNC_DEFINE_CLASS(alphamerge, AlphaMergeContext, fs);
 
-AVFilter ff_vf_alphamerge = {
+const AVFilter ff_vf_alphamerge = {
     .name           = "alphamerge",
     .description    = NULL_IF_CONFIG_SMALL("Copy the luma value of the second "
                       "input into the alpha channel of the first input."),
diff --git a/libavfilter/vf_amplify.c b/libavfilter/vf_amplify.c
index 84d9765a4c..e9e0a90b41 100644
--- a/libavfilter/vf_amplify.c
+++ b/libavfilter/vf_amplify.c
@@ -313,7 +313,7 @@ static const AVFilterPad outputs[] = {
 
 AVFILTER_DEFINE_CLASS(amplify);
 
-AVFilter ff_vf_amplify = {
+const AVFilter ff_vf_amplify = {
     .name          = "amplify",
     .description   = NULL_IF_CONFIG_SMALL("Amplify changes between successive video frames."),
     .priv_size     = sizeof(AmplifyContext),
diff --git a/libavfilter/vf_aspect.c b/libavfilter/vf_aspect.c
index 70e7fedc97..f0467b5247 100644
--- a/libavfilter/vf_aspect.c
+++ b/libavfilter/vf_aspect.c
@@ -185,7 +185,7 @@ static const AVFilterPad avfilter_vf_setdar_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_setdar = {
+const AVFilter ff_vf_setdar = {
     .name        = "setdar",
     .description = NULL_IF_CONFIG_SMALL("Set the frame display aspect ratio."),
     .priv_size   = sizeof(AspectContext),
@@ -249,7 +249,7 @@ static const AVFilterPad avfilter_vf_setsar_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_setsar = {
+const AVFilter ff_vf_setsar = {
     .name        = "setsar",
     .description = NULL_IF_CONFIG_SMALL("Set the pixel sample aspect ratio."),
     .priv_size   = sizeof(AspectContext),
diff --git a/libavfilter/vf_atadenoise.c b/libavfilter/vf_atadenoise.c
index ccbda723f0..6b2f4a4e50 100644
--- a/libavfilter/vf_atadenoise.c
+++ b/libavfilter/vf_atadenoise.c
@@ -572,7 +572,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_atadenoise = {
+const AVFilter ff_vf_atadenoise = {
     .name          = "atadenoise",
     .description   = NULL_IF_CONFIG_SMALL("Apply an Adaptive Temporal Averaging Denoiser."),
     .priv_size     = sizeof(ATADenoiseContext),
diff --git a/libavfilter/vf_avgblur.c b/libavfilter/vf_avgblur.c
index 7fd65eabfc..361801e8fd 100644
--- a/libavfilter/vf_avgblur.c
+++ b/libavfilter/vf_avgblur.c
@@ -313,7 +313,7 @@ static const AVFilterPad avgblur_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_avgblur = {
+const AVFilter ff_vf_avgblur = {
     .name          = "avgblur",
     .description   = NULL_IF_CONFIG_SMALL("Apply Average Blur filter."),
     .priv_size     = sizeof(AverageBlurContext),
diff --git a/libavfilter/vf_avgblur_opencl.c b/libavfilter/vf_avgblur_opencl.c
index f0e5f01e04..3b9e56b879 100644
--- a/libavfilter/vf_avgblur_opencl.c
+++ b/libavfilter/vf_avgblur_opencl.c
@@ -340,7 +340,7 @@ static const AVOption avgblur_opencl_options[] = {
 AVFILTER_DEFINE_CLASS(avgblur_opencl);
 
 
-AVFilter ff_vf_avgblur_opencl = {
+const AVFilter ff_vf_avgblur_opencl = {
     .name           = "avgblur_opencl",
     .description    = NULL_IF_CONFIG_SMALL("Apply average blur filter"),
     .priv_size      = sizeof(AverageBlurOpenCLContext),
@@ -379,7 +379,7 @@ static const AVOption boxblur_opencl_options[] = {
 
 AVFILTER_DEFINE_CLASS(boxblur_opencl);
 
-AVFilter ff_vf_boxblur_opencl = {
+const AVFilter ff_vf_boxblur_opencl = {
     .name           = "boxblur_opencl",
     .description    = NULL_IF_CONFIG_SMALL("Apply boxblur filter to input video"),
     .priv_size      = sizeof(AverageBlurOpenCLContext),
diff --git a/libavfilter/vf_avgblur_vulkan.c b/libavfilter/vf_avgblur_vulkan.c
index 89763345d9..1e485061cd 100644
--- a/libavfilter/vf_avgblur_vulkan.c
+++ b/libavfilter/vf_avgblur_vulkan.c
@@ -398,7 +398,7 @@ static const AVFilterPad avgblur_vulkan_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_avgblur_vulkan = {
+const AVFilter ff_vf_avgblur_vulkan = {
     .name           = "avgblur_vulkan",
     .description    = NULL_IF_CONFIG_SMALL("Apply avgblur mask to input video"),
     .priv_size      = sizeof(AvgBlurVulkanContext),
diff --git a/libavfilter/vf_bbox.c b/libavfilter/vf_bbox.c
index acbb4ea16d..849e75646b 100644
--- a/libavfilter/vf_bbox.c
+++ b/libavfilter/vf_bbox.c
@@ -153,7 +153,7 @@ static const AVFilterPad bbox_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_bbox = {
+const AVFilter ff_vf_bbox = {
     .name          = "bbox",
     .description   = NULL_IF_CONFIG_SMALL("Compute bounding box for each frame."),
     .priv_size     = sizeof(BBoxContext),
diff --git a/libavfilter/vf_bilateral.c b/libavfilter/vf_bilateral.c
index 3eaf8dd009..7b9bd9737a 100644
--- a/libavfilter/vf_bilateral.c
+++ b/libavfilter/vf_bilateral.c
@@ -379,7 +379,7 @@ static const AVFilterPad bilateral_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_bilateral = {
+const AVFilter ff_vf_bilateral = {
     .name          = "bilateral",
     .description   = NULL_IF_CONFIG_SMALL("Apply Bilateral filter."),
     .priv_size     = sizeof(BilateralContext),
diff --git a/libavfilter/vf_bitplanenoise.c b/libavfilter/vf_bitplanenoise.c
index 94aa24abec..284c2966cf 100644
--- a/libavfilter/vf_bitplanenoise.c
+++ b/libavfilter/vf_bitplanenoise.c
@@ -214,7 +214,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_bitplanenoise = {
+const AVFilter ff_vf_bitplanenoise = {
     .name           = "bitplanenoise",
     .description    = NULL_IF_CONFIG_SMALL("Measure bit plane noise."),
     .priv_size      = sizeof(BPNContext),
diff --git a/libavfilter/vf_blackdetect.c b/libavfilter/vf_blackdetect.c
index 565a7545e0..9f6b293b54 100644
--- a/libavfilter/vf_blackdetect.c
+++ b/libavfilter/vf_blackdetect.c
@@ -258,7 +258,7 @@ static const AVFilterPad blackdetect_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_blackdetect = {
+const AVFilter ff_vf_blackdetect = {
     .name          = "blackdetect",
     .description   = NULL_IF_CONFIG_SMALL("Detect video intervals that are (almost) black."),
     .priv_size     = sizeof(BlackDetectContext),
diff --git a/libavfilter/vf_blackframe.c b/libavfilter/vf_blackframe.c
index 804965c42c..b82c044f3e 100644
--- a/libavfilter/vf_blackframe.c
+++ b/libavfilter/vf_blackframe.c
@@ -132,7 +132,7 @@ static const AVFilterPad avfilter_vf_blackframe_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_blackframe = {
+const AVFilter ff_vf_blackframe = {
     .name          = "blackframe",
     .description   = NULL_IF_CONFIG_SMALL("Detect frames that are (almost) black."),
     .priv_size     = sizeof(BlackFrameContext),
diff --git a/libavfilter/vf_blend.c b/libavfilter/vf_blend.c
index d12bfffbed..0b33107b79 100644
--- a/libavfilter/vf_blend.c
+++ b/libavfilter/vf_blend.c
@@ -906,7 +906,7 @@ static const AVFilterPad blend_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_blend = {
+const AVFilter ff_vf_blend = {
     .name          = "blend",
     .description   = NULL_IF_CONFIG_SMALL("Blend two video frames into each other."),
     .preinit       = blend_framesync_preinit,
@@ -968,7 +968,7 @@ static const AVFilterPad tblend_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_tblend = {
+const AVFilter ff_vf_tblend = {
     .name          = "tblend",
     .description   = NULL_IF_CONFIG_SMALL("Blend successive frames."),
     .priv_size     = sizeof(BlendContext),
diff --git a/libavfilter/vf_bm3d.c b/libavfilter/vf_bm3d.c
index 18d13b25ff..326b258616 100644
--- a/libavfilter/vf_bm3d.c
+++ b/libavfilter/vf_bm3d.c
@@ -1055,7 +1055,7 @@ static const AVFilterPad bm3d_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_bm3d = {
+const AVFilter ff_vf_bm3d = {
     .name          = "bm3d",
     .description   = NULL_IF_CONFIG_SMALL("Block-Matching 3D denoiser."),
     .priv_size     = sizeof(BM3DContext),
diff --git a/libavfilter/vf_boxblur.c b/libavfilter/vf_boxblur.c
index bde74084f0..bebbd4ef08 100644
--- a/libavfilter/vf_boxblur.c
+++ b/libavfilter/vf_boxblur.c
@@ -304,7 +304,7 @@ static const AVFilterPad avfilter_vf_boxblur_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_boxblur = {
+const AVFilter ff_vf_boxblur = {
     .name          = "boxblur",
     .description   = NULL_IF_CONFIG_SMALL("Blur the input."),
     .priv_size     = sizeof(BoxBlurContext),
diff --git a/libavfilter/vf_bwdif.c b/libavfilter/vf_bwdif.c
index b6aed7a450..faba945c7f 100644
--- a/libavfilter/vf_bwdif.c
+++ b/libavfilter/vf_bwdif.c
@@ -410,7 +410,7 @@ static const AVFilterPad avfilter_vf_bwdif_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_bwdif = {
+const AVFilter ff_vf_bwdif = {
     .name          = "bwdif",
     .description   = NULL_IF_CONFIG_SMALL("Deinterlace the input image."),
     .priv_size     = sizeof(BWDIFContext),
diff --git a/libavfilter/vf_cas.c b/libavfilter/vf_cas.c
index 7c32ed5f9b..c5a53adfe9 100644
--- a/libavfilter/vf_cas.c
+++ b/libavfilter/vf_cas.c
@@ -286,7 +286,7 @@ static const AVOption cas_options[] = {
 
 AVFILTER_DEFINE_CLASS(cas);
 
-AVFilter ff_vf_cas = {
+const AVFilter ff_vf_cas = {
     .name          = "cas",
     .description   = NULL_IF_CONFIG_SMALL("Contrast Adaptive Sharpen."),
     .priv_size     = sizeof(CASContext),
diff --git a/libavfilter/vf_chromaber_vulkan.c b/libavfilter/vf_chromaber_vulkan.c
index 12dfebb1fe..2f5bf7bbb9 100644
--- a/libavfilter/vf_chromaber_vulkan.c
+++ b/libavfilter/vf_chromaber_vulkan.c
@@ -333,7 +333,7 @@ static const AVFilterPad chromaber_vulkan_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_chromaber_vulkan = {
+const AVFilter ff_vf_chromaber_vulkan = {
     .name           = "chromaber_vulkan",
     .description    = NULL_IF_CONFIG_SMALL("Offset chroma of input video (chromatic aberration)"),
     .priv_size      = sizeof(ChromaticAberrationVulkanContext),
diff --git a/libavfilter/vf_chromakey.c b/libavfilter/vf_chromakey.c
index 4b1669d084..45d8e43c2c 100644
--- a/libavfilter/vf_chromakey.c
+++ b/libavfilter/vf_chromakey.c
@@ -398,7 +398,7 @@ static const AVOption chromakey_options[] = {
 
 AVFILTER_DEFINE_CLASS(chromakey);
 
-AVFilter ff_vf_chromakey = {
+const AVFilter ff_vf_chromakey = {
     .name          = "chromakey",
     .description   = NULL_IF_CONFIG_SMALL("Turns a certain color into transparency. Operates on YUV colors."),
     .priv_size     = sizeof(ChromakeyContext),
@@ -440,7 +440,7 @@ static const AVFilterPad chromahold_outputs[] = {
 
 AVFILTER_DEFINE_CLASS(chromahold);
 
-AVFilter ff_vf_chromahold = {
+const AVFilter ff_vf_chromahold = {
     .name          = "chromahold",
     .description   = NULL_IF_CONFIG_SMALL("Turns a certain color range into gray."),
     .priv_size     = sizeof(ChromakeyContext),
diff --git a/libavfilter/vf_chromanr.c b/libavfilter/vf_chromanr.c
index 06325309e3..66ef1587b6 100644
--- a/libavfilter/vf_chromanr.c
+++ b/libavfilter/vf_chromanr.c
@@ -262,7 +262,7 @@ static const AVFilterPad outputs[] = {
 
 AVFILTER_DEFINE_CLASS(chromanr);
 
-AVFilter ff_vf_chromanr = {
+const AVFilter ff_vf_chromanr = {
     .name          = "chromanr",
     .description   = NULL_IF_CONFIG_SMALL("Reduce chrominance noise."),
     .priv_size     = sizeof(ChromaNRContext),
diff --git a/libavfilter/vf_chromashift.c b/libavfilter/vf_chromashift.c
index 94de7a049e..3f172a8e2b 100644
--- a/libavfilter/vf_chromashift.c
+++ b/libavfilter/vf_chromashift.c
@@ -446,7 +446,7 @@ static const AVFilterPad outputs[] = {
 
 AVFILTER_DEFINE_CLASS(chromashift);
 
-AVFilter ff_vf_chromashift = {
+const AVFilter ff_vf_chromashift = {
     .name          = "chromashift",
     .description   = NULL_IF_CONFIG_SMALL("Shift chroma."),
     .priv_size     = sizeof(ChromaShiftContext),
@@ -475,7 +475,7 @@ static const AVOption rgbashift_options[] = {
 
 AVFILTER_DEFINE_CLASS(rgbashift);
 
-AVFilter ff_vf_rgbashift = {
+const AVFilter ff_vf_rgbashift = {
     .name          = "rgbashift",
     .description   = NULL_IF_CONFIG_SMALL("Shift RGBA."),
     .priv_size     = sizeof(ChromaShiftContext),
diff --git a/libavfilter/vf_ciescope.c b/libavfilter/vf_ciescope.c
index 719e66ad0f..b3b906f517 100644
--- a/libavfilter/vf_ciescope.c
+++ b/libavfilter/vf_ciescope.c
@@ -1503,7 +1503,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_ciescope = {
+const AVFilter ff_vf_ciescope = {
     .name          = "ciescope",
     .description   = NULL_IF_CONFIG_SMALL("Video CIE scope."),
     .priv_size     = sizeof(CiescopeContext),
diff --git a/libavfilter/vf_codecview.c b/libavfilter/vf_codecview.c
index 28ac2df72f..e3c613f10c 100644
--- a/libavfilter/vf_codecview.c
+++ b/libavfilter/vf_codecview.c
@@ -318,7 +318,7 @@ static const AVFilterPad codecview_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_codecview = {
+const AVFilter ff_vf_codecview = {
     .name          = "codecview",
     .description   = NULL_IF_CONFIG_SMALL("Visualize information about some codecs."),
     .priv_size     = sizeof(CodecViewContext),
diff --git a/libavfilter/vf_colorbalance.c b/libavfilter/vf_colorbalance.c
index 6dc1b28483..4e13ce97b9 100644
--- a/libavfilter/vf_colorbalance.c
+++ b/libavfilter/vf_colorbalance.c
@@ -439,7 +439,7 @@ static const AVFilterPad colorbalance_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_colorbalance = {
+const AVFilter ff_vf_colorbalance = {
     .name          = "colorbalance",
     .description   = NULL_IF_CONFIG_SMALL("Adjust the color balance."),
     .priv_size     = sizeof(ColorBalanceContext),
diff --git a/libavfilter/vf_colorchannelmixer.c b/libavfilter/vf_colorchannelmixer.c
index 9857a666ff..9a538ddf5f 100644
--- a/libavfilter/vf_colorchannelmixer.c
+++ b/libavfilter/vf_colorchannelmixer.c
@@ -799,7 +799,7 @@ static const AVFilterPad colorchannelmixer_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_colorchannelmixer = {
+const AVFilter ff_vf_colorchannelmixer = {
     .name          = "colorchannelmixer",
     .description   = NULL_IF_CONFIG_SMALL("Adjust colors by mixing color channels."),
     .priv_size     = sizeof(ColorChannelMixerContext),
diff --git a/libavfilter/vf_colorconstancy.c b/libavfilter/vf_colorconstancy.c
index eae62204b5..e44d9afa01 100644
--- a/libavfilter/vf_colorconstancy.c
+++ b/libavfilter/vf_colorconstancy.c
@@ -747,7 +747,7 @@ static const AVOption greyedge_options[] = {
 
 AVFILTER_DEFINE_CLASS(greyedge);
 
-AVFilter ff_vf_greyedge = {
+const AVFilter ff_vf_greyedge = {
     .name          = GREY_EDGE,
     .description   = NULL_IF_CONFIG_SMALL("Estimates scene illumination by grey edge assumption."),
     .priv_size     = sizeof(ColorConstancyContext),
diff --git a/libavfilter/vf_colorcontrast.c b/libavfilter/vf_colorcontrast.c
index 7206c954bf..b5b547b46f 100644
--- a/libavfilter/vf_colorcontrast.c
+++ b/libavfilter/vf_colorcontrast.c
@@ -395,7 +395,7 @@ static const AVOption colorcontrast_options[] = {
 
 AVFILTER_DEFINE_CLASS(colorcontrast);
 
-AVFilter ff_vf_colorcontrast = {
+const AVFilter ff_vf_colorcontrast = {
     .name          = "colorcontrast",
     .description   = NULL_IF_CONFIG_SMALL("Adjust color contrast between RGB components."),
     .priv_size     = sizeof(ColorContrastContext),
diff --git a/libavfilter/vf_colorcorrect.c b/libavfilter/vf_colorcorrect.c
index f998f02e30..13ef50ad1d 100644
--- a/libavfilter/vf_colorcorrect.c
+++ b/libavfilter/vf_colorcorrect.c
@@ -204,7 +204,7 @@ static const AVOption colorcorrect_options[] = {
 
 AVFILTER_DEFINE_CLASS(colorcorrect);
 
-AVFilter ff_vf_colorcorrect = {
+const AVFilter ff_vf_colorcorrect = {
     .name          = "colorcorrect",
     .description   = NULL_IF_CONFIG_SMALL("Adjust color white balance selectively for blacks and whites."),
     .priv_size     = sizeof(ColorCorrectContext),
diff --git a/libavfilter/vf_colorize.c b/libavfilter/vf_colorize.c
index e9d348201d..653832ab92 100644
--- a/libavfilter/vf_colorize.c
+++ b/libavfilter/vf_colorize.c
@@ -293,7 +293,7 @@ static const AVOption colorize_options[] = {
 
 AVFILTER_DEFINE_CLASS(colorize);
 
-AVFilter ff_vf_colorize = {
+const AVFilter ff_vf_colorize = {
     .name          = "colorize",
     .description   = NULL_IF_CONFIG_SMALL("Overlay a solid color on the video stream."),
     .priv_size     = sizeof(ColorizeContext),
diff --git a/libavfilter/vf_colorkey.c b/libavfilter/vf_colorkey.c
index 0ac847c633..e0b4372842 100644
--- a/libavfilter/vf_colorkey.c
+++ b/libavfilter/vf_colorkey.c
@@ -212,7 +212,7 @@ static const AVOption colorkey_options[] = {
 
 AVFILTER_DEFINE_CLASS(colorkey);
 
-AVFilter ff_vf_colorkey = {
+const AVFilter ff_vf_colorkey = {
     .name          = "colorkey",
     .description   = NULL_IF_CONFIG_SMALL("Turns a certain color into transparency. Operates on RGB colors."),
     .priv_size     = sizeof(ColorkeyContext),
@@ -237,7 +237,7 @@ static const AVOption colorhold_options[] = {
 
 AVFILTER_DEFINE_CLASS(colorhold);
 
-AVFilter ff_vf_colorhold = {
+const AVFilter ff_vf_colorhold = {
     .name          = "colorhold",
     .description   = NULL_IF_CONFIG_SMALL("Turns a certain color range into gray. Operates on RGB colors."),
     .priv_size     = sizeof(ColorkeyContext),
diff --git a/libavfilter/vf_colorkey_opencl.c b/libavfilter/vf_colorkey_opencl.c
index a76a1dcb7c..cd312ea53e 100644
--- a/libavfilter/vf_colorkey_opencl.c
+++ b/libavfilter/vf_colorkey_opencl.c
@@ -230,7 +230,7 @@ static const AVOption colorkey_opencl_options[] = {
 
 AVFILTER_DEFINE_CLASS(colorkey_opencl);
 
-AVFilter ff_vf_colorkey_opencl = {
+const AVFilter ff_vf_colorkey_opencl = {
     .name           = "colorkey_opencl",
     .description    = NULL_IF_CONFIG_SMALL("Turns a certain color into transparency. Operates on RGB colors."),
     .priv_size      = sizeof(ColorkeyOpenCLContext),
diff --git a/libavfilter/vf_colorlevels.c b/libavfilter/vf_colorlevels.c
index 9085e40974..8bc0d96df0 100644
--- a/libavfilter/vf_colorlevels.c
+++ b/libavfilter/vf_colorlevels.c
@@ -315,7 +315,7 @@ static const AVFilterPad colorlevels_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_colorlevels = {
+const AVFilter ff_vf_colorlevels = {
     .name          = "colorlevels",
     .description   = NULL_IF_CONFIG_SMALL("Adjust the color levels."),
     .priv_size     = sizeof(ColorLevelsContext),
diff --git a/libavfilter/vf_colormatrix.c b/libavfilter/vf_colormatrix.c
index 3a02e2b86e..c304f2dba8 100644
--- a/libavfilter/vf_colormatrix.c
+++ b/libavfilter/vf_colormatrix.c
@@ -507,7 +507,7 @@ static const AVFilterPad colormatrix_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_colormatrix = {
+const AVFilter ff_vf_colormatrix = {
     .name          = "colormatrix",
     .description   = NULL_IF_CONFIG_SMALL("Convert color matrix."),
     .priv_size     = sizeof(ColorMatrixContext),
diff --git a/libavfilter/vf_colorspace.c b/libavfilter/vf_colorspace.c
index 471669500b..65e072d137 100644
--- a/libavfilter/vf_colorspace.c
+++ b/libavfilter/vf_colorspace.c
@@ -1069,7 +1069,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_colorspace = {
+const AVFilter ff_vf_colorspace = {
     .name            = "colorspace",
     .description     = NULL_IF_CONFIG_SMALL("Convert between colorspaces."),
     .init            = init,
diff --git a/libavfilter/vf_colortemperature.c b/libavfilter/vf_colortemperature.c
index 7be5e796e6..1a4c9261f6 100644
--- a/libavfilter/vf_colortemperature.c
+++ b/libavfilter/vf_colortemperature.c
@@ -357,7 +357,7 @@ static const AVOption colortemperature_options[] = {
 
 AVFILTER_DEFINE_CLASS(colortemperature);
 
-AVFilter ff_vf_colortemperature = {
+const AVFilter ff_vf_colortemperature = {
     .name          = "colortemperature",
     .description   = NULL_IF_CONFIG_SMALL("Adjust color temperature of video."),
     .priv_size     = sizeof(ColorTemperatureContext),
diff --git a/libavfilter/vf_convolution.c b/libavfilter/vf_convolution.c
index 0b7356b320..c0fc7356bd 100644
--- a/libavfilter/vf_convolution.c
+++ b/libavfilter/vf_convolution.c
@@ -902,7 +902,7 @@ static const AVFilterPad convolution_outputs[] = {
 
 #if CONFIG_CONVOLUTION_FILTER
 
-AVFilter ff_vf_convolution = {
+const AVFilter ff_vf_convolution = {
     .name          = "convolution",
     .description   = NULL_IF_CONFIG_SMALL("Apply convolution filter."),
     .priv_size     = sizeof(ConvolutionContext),
@@ -931,7 +931,7 @@ static const AVOption prewitt_roberts_sobel_options[] = {
 #define prewitt_options prewitt_roberts_sobel_options
 AVFILTER_DEFINE_CLASS(prewitt);
 
-AVFilter ff_vf_prewitt = {
+const AVFilter ff_vf_prewitt = {
     .name          = "prewitt",
     .description   = NULL_IF_CONFIG_SMALL("Apply prewitt operator."),
     .priv_size     = sizeof(ConvolutionContext),
@@ -951,7 +951,7 @@ AVFilter ff_vf_prewitt = {
 #define sobel_options prewitt_roberts_sobel_options
 AVFILTER_DEFINE_CLASS(sobel);
 
-AVFilter ff_vf_sobel = {
+const AVFilter ff_vf_sobel = {
     .name          = "sobel",
     .description   = NULL_IF_CONFIG_SMALL("Apply sobel operator."),
     .priv_size     = sizeof(ConvolutionContext),
@@ -971,7 +971,7 @@ AVFilter ff_vf_sobel = {
 #define roberts_options prewitt_roberts_sobel_options
 AVFILTER_DEFINE_CLASS(roberts);
 
-AVFilter ff_vf_roberts = {
+const AVFilter ff_vf_roberts = {
     .name          = "roberts",
     .description   = NULL_IF_CONFIG_SMALL("Apply roberts cross operator."),
     .priv_size     = sizeof(ConvolutionContext),
@@ -991,7 +991,7 @@ AVFilter ff_vf_roberts = {
 #define kirsch_options prewitt_roberts_sobel_options
 AVFILTER_DEFINE_CLASS(kirsch);
 
-AVFilter ff_vf_kirsch = {
+const AVFilter ff_vf_kirsch = {
     .name          = "kirsch",
     .description   = NULL_IF_CONFIG_SMALL("Apply kirsch operator."),
     .priv_size     = sizeof(ConvolutionContext),
diff --git a/libavfilter/vf_convolution_opencl.c b/libavfilter/vf_convolution_opencl.c
index 00246b2e43..c6218d3cd6 100644
--- a/libavfilter/vf_convolution_opencl.c
+++ b/libavfilter/vf_convolution_opencl.c
@@ -362,7 +362,7 @@ static const AVOption convolution_opencl_options[] = {
 
 AVFILTER_DEFINE_CLASS(convolution_opencl);
 
-AVFilter ff_vf_convolution_opencl = {
+const AVFilter ff_vf_convolution_opencl = {
     .name           = "convolution_opencl",
     .description    = NULL_IF_CONFIG_SMALL("Apply convolution mask to input video"),
     .priv_size      = sizeof(ConvolutionOpenCLContext),
@@ -388,7 +388,7 @@ static const AVOption sobel_opencl_options[] = {
 
 AVFILTER_DEFINE_CLASS(sobel_opencl);
 
-AVFilter ff_vf_sobel_opencl = {
+const AVFilter ff_vf_sobel_opencl = {
     .name           = "sobel_opencl",
     .description    = NULL_IF_CONFIG_SMALL("Apply sobel operator"),
     .priv_size      = sizeof(ConvolutionOpenCLContext),
@@ -414,7 +414,7 @@ static const AVOption prewitt_opencl_options[] = {
 
 AVFILTER_DEFINE_CLASS(prewitt_opencl);
 
-AVFilter ff_vf_prewitt_opencl = {
+const AVFilter ff_vf_prewitt_opencl = {
     .name           = "prewitt_opencl",
     .description    = NULL_IF_CONFIG_SMALL("Apply prewitt operator"),
     .priv_size      = sizeof(ConvolutionOpenCLContext),
@@ -440,7 +440,7 @@ static const AVOption roberts_opencl_options[] = {
 
 AVFILTER_DEFINE_CLASS(roberts_opencl);
 
-AVFilter ff_vf_roberts_opencl = {
+const AVFilter ff_vf_roberts_opencl = {
     .name           = "roberts_opencl",
     .description    = NULL_IF_CONFIG_SMALL("Apply roberts operator"),
     .priv_size      = sizeof(ConvolutionOpenCLContext),
diff --git a/libavfilter/vf_convolve.c b/libavfilter/vf_convolve.c
index 90ec98715b..a0066bbd39 100644
--- a/libavfilter/vf_convolve.c
+++ b/libavfilter/vf_convolve.c
@@ -625,7 +625,7 @@ static const AVFilterPad convolve_outputs[] = {
 
 FRAMESYNC_DEFINE_CLASS(convolve, ConvolveContext, fs);
 
-AVFilter ff_vf_convolve = {
+const AVFilter ff_vf_convolve = {
     .name          = "convolve",
     .description   = NULL_IF_CONFIG_SMALL("Convolve first video stream with second video stream."),
     .preinit       = convolve_framesync_preinit,
@@ -655,7 +655,7 @@ static const AVOption deconvolve_options[] = {
 
 FRAMESYNC_DEFINE_CLASS(deconvolve, ConvolveContext, fs);
 
-AVFilter ff_vf_deconvolve = {
+const AVFilter ff_vf_deconvolve = {
     .name          = "deconvolve",
     .description   = NULL_IF_CONFIG_SMALL("Deconvolve first video stream with second video stream."),
     .preinit       = deconvolve_framesync_preinit,
diff --git a/libavfilter/vf_copy.c b/libavfilter/vf_copy.c
index 78bb5109e5..f50ac70c92 100644
--- a/libavfilter/vf_copy.c
+++ b/libavfilter/vf_copy.c
@@ -81,7 +81,7 @@ static const AVFilterPad avfilter_vf_copy_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_copy = {
+const AVFilter ff_vf_copy = {
     .name        = "copy",
     .description = NULL_IF_CONFIG_SMALL("Copy the input video unchanged to the output."),
     .inputs      = avfilter_vf_copy_inputs,
diff --git a/libavfilter/vf_coreimage.m b/libavfilter/vf_coreimage.m
index cbd67791bc..98f6386124 100644
--- a/libavfilter/vf_coreimage.m
+++ b/libavfilter/vf_coreimage.m
@@ -656,7 +656,7 @@ static const AVOption coreimage_options[] = {
 
 AVFILTER_DEFINE_CLASS(coreimage);
 
-AVFilter ff_vf_coreimage = {
+const AVFilter ff_vf_coreimage = {
     .name          = "coreimage",
     .description   = NULL_IF_CONFIG_SMALL("Video filtering using CoreImage API."),
     .init          = init,
@@ -677,7 +677,7 @@ static const AVOption coreimagesrc_options[] = {
 
 AVFILTER_DEFINE_CLASS(coreimagesrc);
 
-AVFilter ff_vsrc_coreimagesrc = {
+const AVFilter ff_vsrc_coreimagesrc = {
     .name          = "coreimagesrc",
     .description   = NULL_IF_CONFIG_SMALL("Video source using image generators of CoreImage API."),
     .init          = init_src,
diff --git a/libavfilter/vf_cover_rect.c b/libavfilter/vf_cover_rect.c
index 898debf09d..26a0fb3a4d 100644
--- a/libavfilter/vf_cover_rect.c
+++ b/libavfilter/vf_cover_rect.c
@@ -248,7 +248,7 @@ static const AVFilterPad cover_rect_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_cover_rect = {
+const AVFilter ff_vf_cover_rect = {
     .name            = "cover_rect",
     .description     = NULL_IF_CONFIG_SMALL("Find and cover a user specified object."),
     .priv_size       = sizeof(CoverContext),
diff --git a/libavfilter/vf_crop.c b/libavfilter/vf_crop.c
index dffb6dab5e..9cc9ec2844 100644
--- a/libavfilter/vf_crop.c
+++ b/libavfilter/vf_crop.c
@@ -392,7 +392,7 @@ static const AVFilterPad avfilter_vf_crop_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_crop = {
+const AVFilter ff_vf_crop = {
     .name            = "crop",
     .description     = NULL_IF_CONFIG_SMALL("Crop the input video."),
     .priv_size       = sizeof(CropContext),
diff --git a/libavfilter/vf_cropdetect.c b/libavfilter/vf_cropdetect.c
index 5ae87cad2d..deeb9e480a 100644
--- a/libavfilter/vf_cropdetect.c
+++ b/libavfilter/vf_cropdetect.c
@@ -274,7 +274,7 @@ static const AVFilterPad avfilter_vf_cropdetect_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_cropdetect = {
+const AVFilter ff_vf_cropdetect = {
     .name          = "cropdetect",
     .description   = NULL_IF_CONFIG_SMALL("Auto-detect crop size."),
     .priv_size     = sizeof(CropDetectContext),
diff --git a/libavfilter/vf_curves.c b/libavfilter/vf_curves.c
index 3524fef1ad..64cfea1527 100644
--- a/libavfilter/vf_curves.c
+++ b/libavfilter/vf_curves.c
@@ -813,7 +813,7 @@ static const AVFilterPad curves_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_curves = {
+const AVFilter ff_vf_curves = {
     .name          = "curves",
     .description   = NULL_IF_CONFIG_SMALL("Adjust components curves."),
     .priv_size     = sizeof(CurvesContext),
diff --git a/libavfilter/vf_datascope.c b/libavfilter/vf_datascope.c
index 88007c9265..3af22771b2 100644
--- a/libavfilter/vf_datascope.c
+++ b/libavfilter/vf_datascope.c
@@ -450,7 +450,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_datascope = {
+const AVFilter ff_vf_datascope = {
     .name          = "datascope",
     .description   = NULL_IF_CONFIG_SMALL("Video data analysis."),
     .priv_size     = sizeof(DatascopeContext),
@@ -739,7 +739,7 @@ static const AVFilterPad pixscope_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_pixscope = {
+const AVFilter ff_vf_pixscope = {
     .name          = "pixscope",
     .description   = NULL_IF_CONFIG_SMALL("Pixel data analysis."),
     .priv_size     = sizeof(PixscopeContext),
@@ -1145,7 +1145,7 @@ static const AVFilterPad oscilloscope_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_oscilloscope = {
+const AVFilter ff_vf_oscilloscope = {
     .name          = "oscilloscope",
     .description   = NULL_IF_CONFIG_SMALL("2D Video Oscilloscope."),
     .priv_size     = sizeof(OscilloscopeContext),
diff --git a/libavfilter/vf_dblur.c b/libavfilter/vf_dblur.c
index c4c37dec52..dcb6635c95 100644
--- a/libavfilter/vf_dblur.c
+++ b/libavfilter/vf_dblur.c
@@ -292,7 +292,7 @@ static const AVFilterPad dblur_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_dblur = {
+const AVFilter ff_vf_dblur = {
     .name          = "dblur",
     .description   = NULL_IF_CONFIG_SMALL("Apply Directional Blur filter."),
     .priv_size     = sizeof(DBlurContext),
diff --git a/libavfilter/vf_dctdnoiz.c b/libavfilter/vf_dctdnoiz.c
index a89f2631c8..63b1b29ea2 100644
--- a/libavfilter/vf_dctdnoiz.c
+++ b/libavfilter/vf_dctdnoiz.c
@@ -822,7 +822,7 @@ static const AVFilterPad dctdnoiz_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_dctdnoiz = {
+const AVFilter ff_vf_dctdnoiz = {
     .name          = "dctdnoiz",
     .description   = NULL_IF_CONFIG_SMALL("Denoise frames using 2D DCT."),
     .priv_size     = sizeof(DCTdnoizContext),
diff --git a/libavfilter/vf_deband.c b/libavfilter/vf_deband.c
index c05225d2b8..aa560bd9fb 100644
--- a/libavfilter/vf_deband.c
+++ b/libavfilter/vf_deband.c
@@ -471,7 +471,7 @@ static const AVFilterPad avfilter_vf_deband_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_deband = {
+const AVFilter ff_vf_deband = {
     .name          = "deband",
     .description   = NULL_IF_CONFIG_SMALL("Debands video."),
     .priv_size     = sizeof(DebandContext),
diff --git a/libavfilter/vf_deblock.c b/libavfilter/vf_deblock.c
index 0671a64548..2d91fe358b 100644
--- a/libavfilter/vf_deblock.c
+++ b/libavfilter/vf_deblock.c
@@ -415,7 +415,7 @@ static const AVFilterPad outputs[] = {
 
 AVFILTER_DEFINE_CLASS(deblock);
 
-AVFilter ff_vf_deblock = {
+const AVFilter ff_vf_deblock = {
     .name          = "deblock",
     .description   = NULL_IF_CONFIG_SMALL("Deblock video."),
     .priv_size     = sizeof(DeblockContext),
diff --git a/libavfilter/vf_decimate.c b/libavfilter/vf_decimate.c
index a76711f265..72ed349427 100644
--- a/libavfilter/vf_decimate.c
+++ b/libavfilter/vf_decimate.c
@@ -434,7 +434,7 @@ static const AVFilterPad decimate_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_decimate = {
+const AVFilter ff_vf_decimate = {
     .name          = "decimate",
     .description   = NULL_IF_CONFIG_SMALL("Decimate frames (post field matching filter)."),
     .init          = decimate_init,
diff --git a/libavfilter/vf_dedot.c b/libavfilter/vf_dedot.c
index 993ac8f74f..b79d4a51c4 100644
--- a/libavfilter/vf_dedot.c
+++ b/libavfilter/vf_dedot.c
@@ -401,7 +401,7 @@ static const AVFilterPad outputs[] = {
 
 AVFILTER_DEFINE_CLASS(dedot);
 
-AVFilter ff_vf_dedot = {
+const AVFilter ff_vf_dedot = {
     .name          = "dedot",
     .description   = NULL_IF_CONFIG_SMALL("Reduce cross-luminance and cross-color."),
     .priv_size     = sizeof(DedotContext),
diff --git a/libavfilter/vf_deflicker.c b/libavfilter/vf_deflicker.c
index 544672dd70..1ce8a482e8 100644
--- a/libavfilter/vf_deflicker.c
+++ b/libavfilter/vf_deflicker.c
@@ -466,7 +466,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_deflicker = {
+const AVFilter ff_vf_deflicker = {
     .name          = "deflicker",
     .description   = NULL_IF_CONFIG_SMALL("Remove temporal frame luminance variations."),
     .priv_size     = sizeof(DeflickerContext),
diff --git a/libavfilter/vf_deinterlace_qsv.c b/libavfilter/vf_deinterlace_qsv.c
index 34feb616ab..3c2d87c7c8 100644
--- a/libavfilter/vf_deinterlace_qsv.c
+++ b/libavfilter/vf_deinterlace_qsv.c
@@ -594,7 +594,7 @@ static const AVFilterPad qsvdeint_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_deinterlace_qsv = {
+const AVFilter ff_vf_deinterlace_qsv = {
     .name      = "deinterlace_qsv",
     .description = NULL_IF_CONFIG_SMALL("QuickSync video deinterlacing"),
 
diff --git a/libavfilter/vf_deinterlace_vaapi.c b/libavfilter/vf_deinterlace_vaapi.c
index 71809eb01a..0e645f50f2 100644
--- a/libavfilter/vf_deinterlace_vaapi.c
+++ b/libavfilter/vf_deinterlace_vaapi.c
@@ -383,7 +383,7 @@ static const AVFilterPad deint_vaapi_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_deinterlace_vaapi = {
+const AVFilter ff_vf_deinterlace_vaapi = {
     .name           = "deinterlace_vaapi",
     .description    = NULL_IF_CONFIG_SMALL("Deinterlacing of VAAPI surfaces"),
     .priv_size      = sizeof(DeintVAAPIContext),
diff --git a/libavfilter/vf_dejudder.c b/libavfilter/vf_dejudder.c
index 4705cb6121..5816f82322 100644
--- a/libavfilter/vf_dejudder.c
+++ b/libavfilter/vf_dejudder.c
@@ -175,7 +175,7 @@ static const AVFilterPad dejudder_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_dejudder = {
+const AVFilter ff_vf_dejudder = {
     .name        = "dejudder",
     .description = NULL_IF_CONFIG_SMALL("Remove judder produced by pullup."),
     .priv_size   = sizeof(DejudderContext),
diff --git a/libavfilter/vf_delogo.c b/libavfilter/vf_delogo.c
index 6069c30163..9838301702 100644
--- a/libavfilter/vf_delogo.c
+++ b/libavfilter/vf_delogo.c
@@ -398,7 +398,7 @@ static const AVFilterPad avfilter_vf_delogo_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_delogo = {
+const AVFilter ff_vf_delogo = {
     .name          = "delogo",
     .description   = NULL_IF_CONFIG_SMALL("Remove logo from input video."),
     .priv_size     = sizeof(DelogoContext),
diff --git a/libavfilter/vf_derain.c b/libavfilter/vf_derain.c
index 7814fc1e03..76c4ef414f 100644
--- a/libavfilter/vf_derain.c
+++ b/libavfilter/vf_derain.c
@@ -126,7 +126,7 @@ static const AVFilterPad derain_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_derain = {
+const AVFilter ff_vf_derain = {
     .name          = "derain",
     .description   = NULL_IF_CONFIG_SMALL("Apply derain filter to the input."),
     .priv_size     = sizeof(DRContext),
diff --git a/libavfilter/vf_deshake.c b/libavfilter/vf_deshake.c
index 8771399351..4ff6a94702 100644
--- a/libavfilter/vf_deshake.c
+++ b/libavfilter/vf_deshake.c
@@ -551,7 +551,7 @@ static const AVFilterPad deshake_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_deshake = {
+const AVFilter ff_vf_deshake = {
     .name          = "deshake",
     .description   = NULL_IF_CONFIG_SMALL("Stabilize shaky video."),
     .priv_size     = sizeof(DeshakeContext),
diff --git a/libavfilter/vf_deshake_opencl.c b/libavfilter/vf_deshake_opencl.c
index 4f1bb09362..2fd682003f 100644
--- a/libavfilter/vf_deshake_opencl.c
+++ b/libavfilter/vf_deshake_opencl.c
@@ -2187,7 +2187,7 @@ static const AVOption deshake_opencl_options[] = {
 
 AVFILTER_DEFINE_CLASS(deshake_opencl);
 
-AVFilter ff_vf_deshake_opencl = {
+const AVFilter ff_vf_deshake_opencl = {
     .name           = "deshake_opencl",
     .description    = NULL_IF_CONFIG_SMALL("Feature-point based video stabilization filter"),
     .priv_size      = sizeof(DeshakeOpenCLContext),
diff --git a/libavfilter/vf_despill.c b/libavfilter/vf_despill.c
index bf6c7ca2cb..e0990d7443 100644
--- a/libavfilter/vf_despill.c
+++ b/libavfilter/vf_despill.c
@@ -171,7 +171,7 @@ static const AVOption despill_options[] = {
 
 AVFILTER_DEFINE_CLASS(despill);
 
-AVFilter ff_vf_despill = {
+const AVFilter ff_vf_despill = {
     .name          = "despill",
     .description   = NULL_IF_CONFIG_SMALL("Despill video."),
     .priv_size     = sizeof(DespillContext),
diff --git a/libavfilter/vf_detelecine.c b/libavfilter/vf_detelecine.c
index f02f85d602..e345e3062a 100644
--- a/libavfilter/vf_detelecine.c
+++ b/libavfilter/vf_detelecine.c
@@ -372,7 +372,7 @@ static const AVFilterPad detelecine_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_detelecine = {
+const AVFilter ff_vf_detelecine = {
     .name          = "detelecine",
     .description   = NULL_IF_CONFIG_SMALL("Apply an inverse telecine pattern."),
     .priv_size     = sizeof(DetelecineContext),
diff --git a/libavfilter/vf_displace.c b/libavfilter/vf_displace.c
index e4c0330613..9c310e1740 100644
--- a/libavfilter/vf_displace.c
+++ b/libavfilter/vf_displace.c
@@ -400,7 +400,7 @@ static const AVFilterPad displace_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_displace = {
+const AVFilter ff_vf_displace = {
     .name          = "displace",
     .description   = NULL_IF_CONFIG_SMALL("Displace pixels."),
     .priv_size     = sizeof(DisplaceContext),
diff --git a/libavfilter/vf_dnn_detect.c b/libavfilter/vf_dnn_detect.c
index 2ae692d62a..1dbe4f29a4 100644
--- a/libavfilter/vf_dnn_detect.c
+++ b/libavfilter/vf_dnn_detect.c
@@ -407,7 +407,7 @@ static const AVFilterPad dnn_detect_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_dnn_detect = {
+const AVFilter ff_vf_dnn_detect = {
     .name          = "dnn_detect",
     .description   = NULL_IF_CONFIG_SMALL("Apply DNN detect filter to the input."),
     .priv_size     = sizeof(DnnDetectContext),
diff --git a/libavfilter/vf_dnn_processing.c b/libavfilter/vf_dnn_processing.c
index 88e95e8ae3..e05d59a649 100644
--- a/libavfilter/vf_dnn_processing.c
+++ b/libavfilter/vf_dnn_processing.c
@@ -444,7 +444,7 @@ static const AVFilterPad dnn_processing_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_dnn_processing = {
+const AVFilter ff_vf_dnn_processing = {
     .name          = "dnn_processing",
     .description   = NULL_IF_CONFIG_SMALL("Apply DNN processing filter to the input."),
     .priv_size     = sizeof(DnnProcessingContext),
diff --git a/libavfilter/vf_drawbox.c b/libavfilter/vf_drawbox.c
index 6151db4d22..2794fc2520 100644
--- a/libavfilter/vf_drawbox.c
+++ b/libavfilter/vf_drawbox.c
@@ -347,7 +347,7 @@ static const AVFilterPad drawbox_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_drawbox = {
+const AVFilter ff_vf_drawbox = {
     .name          = "drawbox",
     .description   = NULL_IF_CONFIG_SMALL("Draw a colored box on the input video."),
     .priv_size     = sizeof(DrawBoxContext),
@@ -481,7 +481,7 @@ static const AVFilterPad drawgrid_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_drawgrid = {
+const AVFilter ff_vf_drawgrid = {
     .name          = "drawgrid",
     .description   = NULL_IF_CONFIG_SMALL("Draw a colored grid on the input video."),
     .priv_size     = sizeof(DrawBoxContext),
diff --git a/libavfilter/vf_drawtext.c b/libavfilter/vf_drawtext.c
index 7b1000e5bd..7ea057b812 100644
--- a/libavfilter/vf_drawtext.c
+++ b/libavfilter/vf_drawtext.c
@@ -1565,7 +1565,7 @@ static const AVFilterPad avfilter_vf_drawtext_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_drawtext = {
+const AVFilter ff_vf_drawtext = {
     .name          = "drawtext",
     .description   = NULL_IF_CONFIG_SMALL("Draw text on top of video frames using libfreetype library."),
     .priv_size     = sizeof(DrawTextContext),
diff --git a/libavfilter/vf_edgedetect.c b/libavfilter/vf_edgedetect.c
index df8afbd532..e21d341fd2 100644
--- a/libavfilter/vf_edgedetect.c
+++ b/libavfilter/vf_edgedetect.c
@@ -431,7 +431,7 @@ static const AVFilterPad edgedetect_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_edgedetect = {
+const AVFilter ff_vf_edgedetect = {
     .name          = "edgedetect",
     .description   = NULL_IF_CONFIG_SMALL("Detect and draw edge."),
     .priv_size     = sizeof(EdgeDetectContext),
diff --git a/libavfilter/vf_elbg.c b/libavfilter/vf_elbg.c
index 835b1dfe33..008f470068 100644
--- a/libavfilter/vf_elbg.c
+++ b/libavfilter/vf_elbg.c
@@ -253,7 +253,7 @@ static const AVFilterPad elbg_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_elbg = {
+const AVFilter ff_vf_elbg = {
     .name          = "elbg",
     .description   = NULL_IF_CONFIG_SMALL("Apply posterize effect, using the ELBG algorithm."),
     .priv_size     = sizeof(ELBGContext),
diff --git a/libavfilter/vf_entropy.c b/libavfilter/vf_entropy.c
index c7361c84a1..32f4bac95d 100644
--- a/libavfilter/vf_entropy.c
+++ b/libavfilter/vf_entropy.c
@@ -193,7 +193,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_entropy = {
+const AVFilter ff_vf_entropy = {
     .name           = "entropy",
     .description    = NULL_IF_CONFIG_SMALL("Measure video frames entropy."),
     .priv_size      = sizeof(EntropyContext),
diff --git a/libavfilter/vf_epx.c b/libavfilter/vf_epx.c
index 65b8975c23..731ba821a8 100644
--- a/libavfilter/vf_epx.c
+++ b/libavfilter/vf_epx.c
@@ -275,7 +275,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_epx = {
+const AVFilter ff_vf_epx = {
     .name          = "epx",
     .description   = NULL_IF_CONFIG_SMALL("Scale the input using EPX algorithm."),
     .inputs        = inputs,
diff --git a/libavfilter/vf_eq.c b/libavfilter/vf_eq.c
index 114781fcaf..7d740d501a 100644
--- a/libavfilter/vf_eq.c
+++ b/libavfilter/vf_eq.c
@@ -377,7 +377,7 @@ static const AVOption eq_options[] = {
 
 AVFILTER_DEFINE_CLASS(eq);
 
-AVFilter ff_vf_eq = {
+const AVFilter ff_vf_eq = {
     .name            = "eq",
     .description     = NULL_IF_CONFIG_SMALL("Adjust brightness, contrast, gamma, and saturation."),
     .priv_size       = sizeof(EQContext),
diff --git a/libavfilter/vf_estdif.c b/libavfilter/vf_estdif.c
index abe90a1256..9dda604d3c 100644
--- a/libavfilter/vf_estdif.c
+++ b/libavfilter/vf_estdif.c
@@ -577,7 +577,7 @@ static const AVFilterPad estdif_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_estdif = {
+const AVFilter ff_vf_estdif = {
     .name          = "estdif",
     .description   = NULL_IF_CONFIG_SMALL("Apply Edge Slope Tracing deinterlace."),
     .priv_size     = sizeof(ESTDIFContext),
diff --git a/libavfilter/vf_exposure.c b/libavfilter/vf_exposure.c
index b7ad075630..5374a8396e 100644
--- a/libavfilter/vf_exposure.c
+++ b/libavfilter/vf_exposure.c
@@ -131,7 +131,7 @@ static const AVOption exposure_options[] = {
 
 AVFILTER_DEFINE_CLASS(exposure);
 
-AVFilter ff_vf_exposure = {
+const AVFilter ff_vf_exposure = {
     .name          = "exposure",
     .description   = NULL_IF_CONFIG_SMALL("Adjust exposure of the video stream."),
     .priv_size     = sizeof(ExposureContext),
diff --git a/libavfilter/vf_extractplanes.c b/libavfilter/vf_extractplanes.c
index 01ce4d1a3d..cede3d669e 100644
--- a/libavfilter/vf_extractplanes.c
+++ b/libavfilter/vf_extractplanes.c
@@ -379,7 +379,7 @@ static const AVFilterPad extractplanes_inputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_extractplanes = {
+const AVFilter ff_vf_extractplanes = {
     .name          = "extractplanes",
     .description   = NULL_IF_CONFIG_SMALL("Extract planes as grayscale frames."),
     .priv_size     = sizeof(ExtractPlanesContext),
@@ -403,7 +403,7 @@ static av_cold int init_alphaextract(AVFilterContext *ctx)
     return init(ctx);
 }
 
-AVFilter ff_vf_alphaextract = {
+const AVFilter ff_vf_alphaextract = {
     .name           = "alphaextract",
     .description    = NULL_IF_CONFIG_SMALL("Extract an alpha channel as a "
                       "grayscale image component."),
diff --git a/libavfilter/vf_fade.c b/libavfilter/vf_fade.c
index 10523fd18e..3c65b0f2ac 100644
--- a/libavfilter/vf_fade.c
+++ b/libavfilter/vf_fade.c
@@ -568,7 +568,7 @@ static const AVFilterPad avfilter_vf_fade_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_fade = {
+const AVFilter ff_vf_fade = {
     .name          = "fade",
     .description   = NULL_IF_CONFIG_SMALL("Fade in/out input video."),
     .init          = init,
diff --git a/libavfilter/vf_fftdnoiz.c b/libavfilter/vf_fftdnoiz.c
index 856d716be5..7f4a6d88cf 100644
--- a/libavfilter/vf_fftdnoiz.c
+++ b/libavfilter/vf_fftdnoiz.c
@@ -685,7 +685,7 @@ static const AVFilterPad fftdnoiz_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_fftdnoiz = {
+const AVFilter ff_vf_fftdnoiz = {
     .name          = "fftdnoiz",
     .description   = NULL_IF_CONFIG_SMALL("Denoise frames using 3D FFT."),
     .priv_size     = sizeof(FFTdnoizContext),
diff --git a/libavfilter/vf_fftfilt.c b/libavfilter/vf_fftfilt.c
index d091cd830d..bcef9ff7d2 100644
--- a/libavfilter/vf_fftfilt.c
+++ b/libavfilter/vf_fftfilt.c
@@ -428,7 +428,7 @@ static const AVFilterPad fftfilt_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_fftfilt = {
+const AVFilter ff_vf_fftfilt = {
     .name            = "fftfilt",
     .description     = NULL_IF_CONFIG_SMALL("Apply arbitrary expressions to pixels in frequency domain."),
     .priv_size       = sizeof(FFTFILTContext),
diff --git a/libavfilter/vf_field.c b/libavfilter/vf_field.c
index 2f4eb679ea..555e615d2e 100644
--- a/libavfilter/vf_field.c
+++ b/libavfilter/vf_field.c
@@ -101,7 +101,7 @@ static const AVFilterPad field_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_field = {
+const AVFilter ff_vf_field = {
     .name        = "field",
     .description = NULL_IF_CONFIG_SMALL("Extract a field from the input video."),
     .priv_size   = sizeof(FieldContext),
diff --git a/libavfilter/vf_fieldhint.c b/libavfilter/vf_fieldhint.c
index dcd08dabc3..a6c0237f02 100644
--- a/libavfilter/vf_fieldhint.c
+++ b/libavfilter/vf_fieldhint.c
@@ -296,7 +296,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_fieldhint = {
+const AVFilter ff_vf_fieldhint = {
     .name          = "fieldhint",
     .description   = NULL_IF_CONFIG_SMALL("Field matching using hints."),
     .priv_size     = sizeof(FieldHintContext),
diff --git a/libavfilter/vf_fieldmatch.c b/libavfilter/vf_fieldmatch.c
index 528f943172..9626737b40 100644
--- a/libavfilter/vf_fieldmatch.c
+++ b/libavfilter/vf_fieldmatch.c
@@ -1040,7 +1040,7 @@ static const AVFilterPad fieldmatch_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_fieldmatch = {
+const AVFilter ff_vf_fieldmatch = {
     .name           = "fieldmatch",
     .description    = NULL_IF_CONFIG_SMALL("Field matching for inverse telecine."),
     .query_formats  = query_formats,
diff --git a/libavfilter/vf_fieldorder.c b/libavfilter/vf_fieldorder.c
index 5d97dc58df..eefa417fb3 100644
--- a/libavfilter/vf_fieldorder.c
+++ b/libavfilter/vf_fieldorder.c
@@ -184,7 +184,7 @@ static const AVFilterPad avfilter_vf_fieldorder_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_fieldorder = {
+const AVFilter ff_vf_fieldorder = {
     .name          = "fieldorder",
     .description   = NULL_IF_CONFIG_SMALL("Set the field order."),
     .priv_size     = sizeof(FieldOrderContext),
diff --git a/libavfilter/vf_fillborders.c b/libavfilter/vf_fillborders.c
index d703cbe4b6..36b96f9e51 100644
--- a/libavfilter/vf_fillborders.c
+++ b/libavfilter/vf_fillborders.c
@@ -628,7 +628,7 @@ static const AVFilterPad fillborders_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_fillborders = {
+const AVFilter ff_vf_fillborders = {
     .name          = "fillborders",
     .description   = NULL_IF_CONFIG_SMALL("Fill borders of the input video."),
     .priv_size     = sizeof(FillBordersContext),
diff --git a/libavfilter/vf_find_rect.c b/libavfilter/vf_find_rect.c
index 5f3abf66c6..1a94655b6b 100644
--- a/libavfilter/vf_find_rect.c
+++ b/libavfilter/vf_find_rect.c
@@ -303,7 +303,7 @@ static const AVFilterPad foc_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_find_rect = {
+const AVFilter ff_vf_find_rect = {
     .name            = "find_rect",
     .description     = NULL_IF_CONFIG_SMALL("Find a user specified object."),
     .priv_size       = sizeof(FOCContext),
diff --git a/libavfilter/vf_floodfill.c b/libavfilter/vf_floodfill.c
index 11c614a089..3b17b04c61 100644
--- a/libavfilter/vf_floodfill.c
+++ b/libavfilter/vf_floodfill.c
@@ -420,7 +420,7 @@ static const AVOption floodfill_options[] = {
 
 AVFILTER_DEFINE_CLASS(floodfill);
 
-AVFilter ff_vf_floodfill = {
+const AVFilter ff_vf_floodfill = {
     .name          = "floodfill",
     .description   = NULL_IF_CONFIG_SMALL("Fill area with same color with another color."),
     .priv_size     = sizeof(FloodfillContext),
diff --git a/libavfilter/vf_format.c b/libavfilter/vf_format.c
index a57c99d797..960d4b0acf 100644
--- a/libavfilter/vf_format.c
+++ b/libavfilter/vf_format.c
@@ -166,7 +166,7 @@ static const AVFilterPad avfilter_vf_format_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_format = {
+const AVFilter ff_vf_format = {
     .name          = "format",
     .description   = NULL_IF_CONFIG_SMALL("Convert the input video to one of the specified pixel formats."),
 
@@ -205,7 +205,7 @@ static const AVFilterPad avfilter_vf_noformat_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_noformat = {
+const AVFilter ff_vf_noformat = {
     .name          = "noformat",
     .description   = NULL_IF_CONFIG_SMALL("Force libavfilter not to use any of the specified pixel formats for the input to the next filter."),
 
diff --git a/libavfilter/vf_fps.c b/libavfilter/vf_fps.c
index cf1e36726a..b7b2d6f2db 100644
--- a/libavfilter/vf_fps.c
+++ b/libavfilter/vf_fps.c
@@ -343,7 +343,7 @@ static const AVFilterPad avfilter_vf_fps_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_fps = {
+const AVFilter ff_vf_fps = {
     .name        = "fps",
     .description = NULL_IF_CONFIG_SMALL("Force constant framerate."),
     .init        = init,
diff --git a/libavfilter/vf_framepack.c b/libavfilter/vf_framepack.c
index 3da80cfeef..4fa9b4d144 100644
--- a/libavfilter/vf_framepack.c
+++ b/libavfilter/vf_framepack.c
@@ -469,7 +469,7 @@ static const AVFilterPad framepack_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_framepack = {
+const AVFilter ff_vf_framepack = {
     .name          = "framepack",
     .description   = NULL_IF_CONFIG_SMALL("Generate a frame packed stereoscopic video."),
     .priv_size     = sizeof(FramepackContext),
diff --git a/libavfilter/vf_framerate.c b/libavfilter/vf_framerate.c
index f5085705a4..6b509443a6 100644
--- a/libavfilter/vf_framerate.c
+++ b/libavfilter/vf_framerate.c
@@ -441,7 +441,7 @@ static const AVFilterPad framerate_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_framerate = {
+const AVFilter ff_vf_framerate = {
     .name          = "framerate",
     .description   = NULL_IF_CONFIG_SMALL("Upsamples or downsamples progressive source between specified frame rates."),
     .priv_size     = sizeof(FrameRateContext),
diff --git a/libavfilter/vf_framestep.c b/libavfilter/vf_framestep.c
index 8102e7c719..d61ce0dc56 100644
--- a/libavfilter/vf_framestep.c
+++ b/libavfilter/vf_framestep.c
@@ -89,7 +89,7 @@ static const AVFilterPad framestep_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_framestep = {
+const AVFilter ff_vf_framestep = {
     .name        = "framestep",
     .description = NULL_IF_CONFIG_SMALL("Select one frame every N frames."),
     .priv_size   = sizeof(FrameStepContext),
diff --git a/libavfilter/vf_freezedetect.c b/libavfilter/vf_freezedetect.c
index cc086afee6..d5978ae3aa 100644
--- a/libavfilter/vf_freezedetect.c
+++ b/libavfilter/vf_freezedetect.c
@@ -222,7 +222,7 @@ static const AVFilterPad freezedetect_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_freezedetect = {
+const AVFilter ff_vf_freezedetect = {
     .name          = "freezedetect",
     .description   = NULL_IF_CONFIG_SMALL("Detects frozen video input."),
     .priv_size     = sizeof(FreezeDetectContext),
diff --git a/libavfilter/vf_freezeframes.c b/libavfilter/vf_freezeframes.c
index b6cd5dba68..58ffd9dd33 100644
--- a/libavfilter/vf_freezeframes.c
+++ b/libavfilter/vf_freezeframes.c
@@ -155,7 +155,7 @@ static const AVFilterPad freezeframes_outputs[] = {
     { NULL },
 };
 
-AVFilter ff_vf_freezeframes = {
+const AVFilter ff_vf_freezeframes = {
     .name          = "freezeframes",
     .description   = NULL_IF_CONFIG_SMALL("Freeze video frames."),
     .priv_size     = sizeof(FreezeFramesContext),
diff --git a/libavfilter/vf_frei0r.c b/libavfilter/vf_frei0r.c
index 2ec4707d97..00e5ff2444 100644
--- a/libavfilter/vf_frei0r.c
+++ b/libavfilter/vf_frei0r.c
@@ -413,7 +413,7 @@ static const AVFilterPad avfilter_vf_frei0r_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_frei0r = {
+const AVFilter ff_vf_frei0r = {
     .name          = "frei0r",
     .description   = NULL_IF_CONFIG_SMALL("Apply a frei0r effect."),
     .query_formats = query_formats,
@@ -501,7 +501,7 @@ static const AVFilterPad avfilter_vsrc_frei0r_src_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vsrc_frei0r_src = {
+const AVFilter ff_vsrc_frei0r_src = {
     .name          = "frei0r_src",
     .description   = NULL_IF_CONFIG_SMALL("Generate a frei0r source."),
     .priv_size     = sizeof(Frei0rContext),
diff --git a/libavfilter/vf_fspp.c b/libavfilter/vf_fspp.c
index d70952a142..d14c05cb5e 100644
--- a/libavfilter/vf_fspp.c
+++ b/libavfilter/vf_fspp.c
@@ -668,7 +668,7 @@ static const AVFilterPad fspp_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_fspp = {
+const AVFilter ff_vf_fspp = {
     .name            = "fspp",
     .description     = NULL_IF_CONFIG_SMALL("Apply Fast Simple Post-processing filter."),
     .priv_size       = sizeof(FSPPContext),
diff --git a/libavfilter/vf_gblur.c b/libavfilter/vf_gblur.c
index 86c765b591..3f61275658 100644
--- a/libavfilter/vf_gblur.c
+++ b/libavfilter/vf_gblur.c
@@ -393,7 +393,7 @@ static const AVFilterPad gblur_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_gblur = {
+const AVFilter ff_vf_gblur = {
     .name          = "gblur",
     .description   = NULL_IF_CONFIG_SMALL("Apply Gaussian Blur filter."),
     .priv_size     = sizeof(GBlurContext),
diff --git a/libavfilter/vf_geq.c b/libavfilter/vf_geq.c
index 072cef3ca3..d9bb6ac256 100644
--- a/libavfilter/vf_geq.c
+++ b/libavfilter/vf_geq.c
@@ -492,7 +492,7 @@ static const AVFilterPad geq_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_geq = {
+const AVFilter ff_vf_geq = {
     .name          = "geq",
     .description   = NULL_IF_CONFIG_SMALL("Apply generic equation to each pixel."),
     .priv_size     = sizeof(GEQContext),
diff --git a/libavfilter/vf_gradfun.c b/libavfilter/vf_gradfun.c
index 28da37ff93..5284b1d745 100644
--- a/libavfilter/vf_gradfun.c
+++ b/libavfilter/vf_gradfun.c
@@ -252,7 +252,7 @@ static const AVFilterPad avfilter_vf_gradfun_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_gradfun = {
+const AVFilter ff_vf_gradfun = {
     .name          = "gradfun",
     .description   = NULL_IF_CONFIG_SMALL("Debands video quickly using gradients."),
     .priv_size     = sizeof(GradFunContext),
diff --git a/libavfilter/vf_hflip.c b/libavfilter/vf_hflip.c
index 8d7bd9b4db..2a0defda6c 100644
--- a/libavfilter/vf_hflip.c
+++ b/libavfilter/vf_hflip.c
@@ -245,7 +245,7 @@ static const AVFilterPad avfilter_vf_hflip_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_hflip = {
+const AVFilter ff_vf_hflip = {
     .name          = "hflip",
     .description   = NULL_IF_CONFIG_SMALL("Horizontally flip the input video."),
     .priv_size     = sizeof(FlipContext),
diff --git a/libavfilter/vf_histeq.c b/libavfilter/vf_histeq.c
index 2449e10dea..dea819e672 100644
--- a/libavfilter/vf_histeq.c
+++ b/libavfilter/vf_histeq.c
@@ -270,7 +270,7 @@ static const AVFilterPad histeq_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_histeq = {
+const AVFilter ff_vf_histeq = {
     .name          = "histeq",
     .description   = NULL_IF_CONFIG_SMALL("Apply global color histogram equalization."),
     .priv_size     = sizeof(HisteqContext),
diff --git a/libavfilter/vf_histogram.c b/libavfilter/vf_histogram.c
index ed6892bc8b..0862b2ae2a 100644
--- a/libavfilter/vf_histogram.c
+++ b/libavfilter/vf_histogram.c
@@ -503,7 +503,7 @@ static const AVFilterPad outputs[] = {
 
 #if CONFIG_HISTOGRAM_FILTER
 
-AVFilter ff_vf_histogram = {
+const AVFilter ff_vf_histogram = {
     .name          = "histogram",
     .description   = NULL_IF_CONFIG_SMALL("Compute and draw a histogram."),
     .priv_size     = sizeof(HistogramContext),
@@ -545,7 +545,7 @@ static const AVOption thistogram_options[] = {
 
 AVFILTER_DEFINE_CLASS(thistogram);
 
-AVFilter ff_vf_thistogram = {
+const AVFilter ff_vf_thistogram = {
     .name          = "thistogram",
     .description   = NULL_IF_CONFIG_SMALL("Compute and draw a temporal histogram."),
     .priv_size     = sizeof(HistogramContext),
diff --git a/libavfilter/vf_hqdn3d.c b/libavfilter/vf_hqdn3d.c
index 803f90c28c..8d71ae316d 100644
--- a/libavfilter/vf_hqdn3d.c
+++ b/libavfilter/vf_hqdn3d.c
@@ -398,7 +398,7 @@ static const AVFilterPad avfilter_vf_hqdn3d_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_hqdn3d = {
+const AVFilter ff_vf_hqdn3d = {
     .name          = "hqdn3d",
     .description   = NULL_IF_CONFIG_SMALL("Apply a High Quality 3D Denoiser."),
     .priv_size     = sizeof(HQDN3DContext),
diff --git a/libavfilter/vf_hqx.c b/libavfilter/vf_hqx.c
index 4f768c7a13..8b0d794b6e 100644
--- a/libavfilter/vf_hqx.c
+++ b/libavfilter/vf_hqx.c
@@ -553,7 +553,7 @@ static const AVFilterPad hqx_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_hqx = {
+const AVFilter ff_vf_hqx = {
     .name          = "hqx",
     .description   = NULL_IF_CONFIG_SMALL("Scale the input by 2, 3 or 4 using the hq*x magnification algorithm."),
     .priv_size     = sizeof(HQXContext),
diff --git a/libavfilter/vf_hue.c b/libavfilter/vf_hue.c
index 1499c05cbd..3d250dbe25 100644
--- a/libavfilter/vf_hue.c
+++ b/libavfilter/vf_hue.c
@@ -516,7 +516,7 @@ static const AVFilterPad hue_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_hue = {
+const AVFilter ff_vf_hue = {
     .name            = "hue",
     .description     = NULL_IF_CONFIG_SMALL("Adjust the hue and saturation of the input video."),
     .priv_size       = sizeof(HueContext),
diff --git a/libavfilter/vf_hwdownload.c b/libavfilter/vf_hwdownload.c
index c5c760afda..4a8fed0688 100644
--- a/libavfilter/vf_hwdownload.c
+++ b/libavfilter/vf_hwdownload.c
@@ -192,7 +192,7 @@ static const AVFilterPad hwdownload_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_hwdownload = {
+const AVFilter ff_vf_hwdownload = {
     .name          = "hwdownload",
     .description   = NULL_IF_CONFIG_SMALL("Download a hardware frame to a normal frame"),
     .uninit        = hwdownload_uninit,
diff --git a/libavfilter/vf_hwmap.c b/libavfilter/vf_hwmap.c
index a89f69cbec..d829b47b44 100644
--- a/libavfilter/vf_hwmap.c
+++ b/libavfilter/vf_hwmap.c
@@ -419,7 +419,7 @@ static const AVFilterPad hwmap_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_hwmap = {
+const AVFilter ff_vf_hwmap = {
     .name           = "hwmap",
     .description    = NULL_IF_CONFIG_SMALL("Map hardware frames"),
     .uninit         = hwmap_uninit,
diff --git a/libavfilter/vf_hwupload.c b/libavfilter/vf_hwupload.c
index 7f2aa90af3..8263829a39 100644
--- a/libavfilter/vf_hwupload.c
+++ b/libavfilter/vf_hwupload.c
@@ -250,7 +250,7 @@ static const AVFilterPad hwupload_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_hwupload = {
+const AVFilter ff_vf_hwupload = {
     .name          = "hwupload",
     .description   = NULL_IF_CONFIG_SMALL("Upload a normal frame to a hardware frame"),
     .uninit        = hwupload_uninit,
diff --git a/libavfilter/vf_hwupload_cuda.c b/libavfilter/vf_hwupload_cuda.c
index afc1b265ed..138949a5ed 100644
--- a/libavfilter/vf_hwupload_cuda.c
+++ b/libavfilter/vf_hwupload_cuda.c
@@ -183,7 +183,7 @@ static const AVFilterPad cudaupload_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_hwupload_cuda = {
+const AVFilter ff_vf_hwupload_cuda = {
     .name        = "hwupload_cuda",
     .description = NULL_IF_CONFIG_SMALL("Upload a system memory frame to a CUDA device."),
 
diff --git a/libavfilter/vf_hysteresis.c b/libavfilter/vf_hysteresis.c
index 48e9179f42..3732ed5c22 100644
--- a/libavfilter/vf_hysteresis.c
+++ b/libavfilter/vf_hysteresis.c
@@ -374,7 +374,7 @@ static const AVFilterPad hysteresis_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_hysteresis = {
+const AVFilter ff_vf_hysteresis = {
     .name          = "hysteresis",
     .description   = NULL_IF_CONFIG_SMALL("Grow first stream into second stream by connecting components."),
     .preinit       = hysteresis_framesync_preinit,
diff --git a/libavfilter/vf_identity.c b/libavfilter/vf_identity.c
index 60d02e328b..4e0a44d518 100644
--- a/libavfilter/vf_identity.c
+++ b/libavfilter/vf_identity.c
@@ -413,7 +413,7 @@ static const AVOption options[] = {
 #define identity_options options
 FRAMESYNC_DEFINE_CLASS(identity, IdentityContext, fs);
 
-AVFilter ff_vf_identity = {
+const AVFilter ff_vf_identity = {
     .name          = "identity",
     .description   = NULL_IF_CONFIG_SMALL("Calculate the Identity between two video streams."),
     .preinit       = identity_framesync_preinit,
@@ -435,7 +435,7 @@ AVFilter ff_vf_identity = {
 #define msad_options options
 FRAMESYNC_DEFINE_CLASS(msad, IdentityContext, fs);
 
-AVFilter ff_vf_msad = {
+const AVFilter ff_vf_msad = {
     .name          = "msad",
     .description   = NULL_IF_CONFIG_SMALL("Calculate the MSAD between two video streams."),
     .preinit       = msad_framesync_preinit,
diff --git a/libavfilter/vf_idet.c b/libavfilter/vf_idet.c
index 02ae2edcb9..eadc24a275 100644
--- a/libavfilter/vf_idet.c
+++ b/libavfilter/vf_idet.c
@@ -441,7 +441,7 @@ static const AVFilterPad idet_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_idet = {
+const AVFilter ff_vf_idet = {
     .name          = "idet",
     .description   = NULL_IF_CONFIG_SMALL("Interlace detect Filter."),
     .priv_size     = sizeof(IDETContext),
diff --git a/libavfilter/vf_il.c b/libavfilter/vf_il.c
index 46af57f96e..9b21f2e7a7 100644
--- a/libavfilter/vf_il.c
+++ b/libavfilter/vf_il.c
@@ -198,7 +198,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_il = {
+const AVFilter ff_vf_il = {
     .name          = "il",
     .description   = NULL_IF_CONFIG_SMALL("Deinterleave or interleave fields."),
     .priv_size     = sizeof(IlContext),
diff --git a/libavfilter/vf_kerndeint.c b/libavfilter/vf_kerndeint.c
index 057d15f9cb..a86407beb0 100644
--- a/libavfilter/vf_kerndeint.c
+++ b/libavfilter/vf_kerndeint.c
@@ -307,7 +307,7 @@ static const AVFilterPad kerndeint_outputs[] = {
 };
 
 
-AVFilter ff_vf_kerndeint = {
+const AVFilter ff_vf_kerndeint = {
     .name          = "kerndeint",
     .description   = NULL_IF_CONFIG_SMALL("Apply kernel deinterlacing to the input."),
     .priv_size     = sizeof(KerndeintContext),
diff --git a/libavfilter/vf_lagfun.c b/libavfilter/vf_lagfun.c
index 36b19b3f83..e147479671 100644
--- a/libavfilter/vf_lagfun.c
+++ b/libavfilter/vf_lagfun.c
@@ -219,7 +219,7 @@ static const AVFilterPad outputs[] = {
 
 AVFILTER_DEFINE_CLASS(lagfun);
 
-AVFilter ff_vf_lagfun = {
+const AVFilter ff_vf_lagfun = {
     .name          = "lagfun",
     .description   = NULL_IF_CONFIG_SMALL("Slowly update darker pixels."),
     .priv_size     = sizeof(LagfunContext),
diff --git a/libavfilter/vf_lenscorrection.c b/libavfilter/vf_lenscorrection.c
index 9386f795da..7bd008d3d8 100644
--- a/libavfilter/vf_lenscorrection.c
+++ b/libavfilter/vf_lenscorrection.c
@@ -357,7 +357,7 @@ static const AVFilterPad lenscorrection_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_lenscorrection = {
+const AVFilter ff_vf_lenscorrection = {
     .name          = "lenscorrection",
     .description   = NULL_IF_CONFIG_SMALL("Rectify the image by correcting for lens distortion."),
     .priv_size     = sizeof(LenscorrectionCtx),
diff --git a/libavfilter/vf_lensfun.c b/libavfilter/vf_lensfun.c
index 430daa941b..e9bb69187e 100644
--- a/libavfilter/vf_lensfun.c
+++ b/libavfilter/vf_lensfun.c
@@ -536,7 +536,7 @@ static const AVFilterPad lensfun_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_lensfun = {
+const AVFilter ff_vf_lensfun = {
     .name          = "lensfun",
     .description   = NULL_IF_CONFIG_SMALL("Apply correction to an image based on info derived from the lensfun database."),
     .priv_size     = sizeof(LensfunContext),
diff --git a/libavfilter/vf_libopencv.c b/libavfilter/vf_libopencv.c
index 8128030b8c..221a8ac4c2 100644
--- a/libavfilter/vf_libopencv.c
+++ b/libavfilter/vf_libopencv.c
@@ -427,7 +427,7 @@ static const AVFilterPad avfilter_vf_ocv_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_ocv = {
+const AVFilter ff_vf_ocv = {
     .name          = "ocv",
     .description   = NULL_IF_CONFIG_SMALL("Apply transform using libopencv."),
     .priv_size     = sizeof(OCVContext),
diff --git a/libavfilter/vf_libvmaf.c b/libavfilter/vf_libvmaf.c
index 4d49127efc..d2621c7a9f 100644
--- a/libavfilter/vf_libvmaf.c
+++ b/libavfilter/vf_libvmaf.c
@@ -365,7 +365,7 @@ static const AVFilterPad libvmaf_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_libvmaf = {
+const AVFilter ff_vf_libvmaf = {
     .name          = "libvmaf",
     .description   = NULL_IF_CONFIG_SMALL("Calculate the VMAF between two video streams."),
     .preinit       = libvmaf_framesync_preinit,
diff --git a/libavfilter/vf_limiter.c b/libavfilter/vf_limiter.c
index 1779c63944..04bfbb63d1 100644
--- a/libavfilter/vf_limiter.c
+++ b/libavfilter/vf_limiter.c
@@ -260,7 +260,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_limiter = {
+const AVFilter ff_vf_limiter = {
     .name          = "limiter",
     .description   = NULL_IF_CONFIG_SMALL("Limit pixels components to the specified range."),
     .priv_size     = sizeof(LimiterContext),
diff --git a/libavfilter/vf_lumakey.c b/libavfilter/vf_lumakey.c
index c182e9045b..3f98d5077d 100644
--- a/libavfilter/vf_lumakey.c
+++ b/libavfilter/vf_lumakey.c
@@ -205,7 +205,7 @@ static const AVOption lumakey_options[] = {
 
 AVFILTER_DEFINE_CLASS(lumakey);
 
-AVFilter ff_vf_lumakey = {
+const AVFilter ff_vf_lumakey = {
     .name          = "lumakey",
     .description   = NULL_IF_CONFIG_SMALL("Turns a certain luma into transparency."),
     .priv_size     = sizeof(LumakeyContext),
diff --git a/libavfilter/vf_lut.c b/libavfilter/vf_lut.c
index 1a94e1cf71..47c2416da7 100644
--- a/libavfilter/vf_lut.c
+++ b/libavfilter/vf_lut.c
@@ -593,7 +593,7 @@ static const AVFilterPad outputs[] = {
 };
 
 #define DEFINE_LUT_FILTER(name_, description_)                          \
-    AVFilter ff_vf_##name_ = {                                          \
+    const AVFilter ff_vf_##name_ = {                                    \
         .name          = #name_,                                        \
         .description   = NULL_IF_CONFIG_SMALL(description_),            \
         .priv_size     = sizeof(LutContext),                            \
diff --git a/libavfilter/vf_lut2.c b/libavfilter/vf_lut2.c
index 8de8e11fc0..658a0bfa56 100644
--- a/libavfilter/vf_lut2.c
+++ b/libavfilter/vf_lut2.c
@@ -560,7 +560,7 @@ static int process_command(AVFilterContext *ctx, const char *cmd, const char *ar
 
 FRAMESYNC_DEFINE_CLASS(lut2, LUT2Context, fs);
 
-AVFilter ff_vf_lut2 = {
+const AVFilter ff_vf_lut2 = {
     .name          = "lut2",
     .description   = NULL_IF_CONFIG_SMALL("Compute and apply a lookup table from two video inputs."),
     .preinit       = lut2_framesync_preinit,
@@ -652,7 +652,7 @@ static const AVFilterPad tlut2_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_tlut2 = {
+const AVFilter ff_vf_tlut2 = {
     .name          = "tlut2",
     .description   = NULL_IF_CONFIG_SMALL("Compute and apply a lookup table from two successive frames."),
     .priv_size     = sizeof(LUT2Context),
diff --git a/libavfilter/vf_lut3d.c b/libavfilter/vf_lut3d.c
index 8b1aeb75e7..c86585cf09 100644
--- a/libavfilter/vf_lut3d.c
+++ b/libavfilter/vf_lut3d.c
@@ -1353,7 +1353,7 @@ static const AVFilterPad lut3d_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_lut3d = {
+const AVFilter ff_vf_lut3d = {
     .name          = "lut3d",
     .description   = NULL_IF_CONFIG_SMALL("Adjust colors using a 3D LUT."),
     .priv_size     = sizeof(LUT3DContext),
@@ -1620,7 +1620,7 @@ static const AVFilterPad haldclut_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_haldclut = {
+const AVFilter ff_vf_haldclut = {
     .name          = "haldclut",
     .description   = NULL_IF_CONFIG_SMALL("Adjust colors using a Hald CLUT."),
     .priv_size     = sizeof(LUT3DContext),
@@ -2285,7 +2285,7 @@ static const AVFilterPad lut1d_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_lut1d = {
+const AVFilter ff_vf_lut1d = {
     .name          = "lut1d",
     .description   = NULL_IF_CONFIG_SMALL("Adjust colors using a 1D LUT."),
     .priv_size     = sizeof(LUT1DContext),
diff --git a/libavfilter/vf_maskedclamp.c b/libavfilter/vf_maskedclamp.c
index af2793b55d..050e3ae6e4 100644
--- a/libavfilter/vf_maskedclamp.c
+++ b/libavfilter/vf_maskedclamp.c
@@ -316,7 +316,7 @@ static const AVFilterPad maskedclamp_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_maskedclamp = {
+const AVFilter ff_vf_maskedclamp = {
     .name          = "maskedclamp",
     .description   = NULL_IF_CONFIG_SMALL("Clamp first stream with second stream and third stream."),
     .priv_size     = sizeof(MaskedClampContext),
diff --git a/libavfilter/vf_maskedmerge.c b/libavfilter/vf_maskedmerge.c
index 2f83fb5dc1..28ac0dd52d 100644
--- a/libavfilter/vf_maskedmerge.c
+++ b/libavfilter/vf_maskedmerge.c
@@ -317,7 +317,7 @@ static const AVFilterPad maskedmerge_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_maskedmerge = {
+const AVFilter ff_vf_maskedmerge = {
     .name          = "maskedmerge",
     .description   = NULL_IF_CONFIG_SMALL("Merge first stream with second stream using third stream as mask."),
     .priv_size     = sizeof(MaskedMergeContext),
diff --git a/libavfilter/vf_maskedminmax.c b/libavfilter/vf_maskedminmax.c
index 90140827a3..0d79fc177f 100644
--- a/libavfilter/vf_maskedminmax.c
+++ b/libavfilter/vf_maskedminmax.c
@@ -328,7 +328,7 @@ static const AVFilterPad maskedminmax_outputs[] = {
 #define maskedmin_options maskedminmax_options
 AVFILTER_DEFINE_CLASS(maskedmin);
 
-AVFilter ff_vf_maskedmin = {
+const AVFilter ff_vf_maskedmin = {
     .name          = "maskedmin",
     .description   = NULL_IF_CONFIG_SMALL("Apply filtering with minimum difference of two streams."),
     .priv_class    = &maskedmin_class,
@@ -346,7 +346,7 @@ AVFilter ff_vf_maskedmin = {
 #define maskedmax_options maskedminmax_options
 AVFILTER_DEFINE_CLASS(maskedmax);
 
-AVFilter ff_vf_maskedmax = {
+const AVFilter ff_vf_maskedmax = {
     .name          = "maskedmax",
     .description   = NULL_IF_CONFIG_SMALL("Apply filtering with maximum difference of two streams."),
     .priv_class    = &maskedmax_class,
diff --git a/libavfilter/vf_maskedthreshold.c b/libavfilter/vf_maskedthreshold.c
index 5a6ebb1a07..518ab54546 100644
--- a/libavfilter/vf_maskedthreshold.c
+++ b/libavfilter/vf_maskedthreshold.c
@@ -284,7 +284,7 @@ static const AVFilterPad maskedthreshold_outputs[] = {
 
 AVFILTER_DEFINE_CLASS(maskedthreshold);
 
-AVFilter ff_vf_maskedthreshold = {
+const AVFilter ff_vf_maskedthreshold = {
     .name          = "maskedthreshold",
     .description   = NULL_IF_CONFIG_SMALL("Pick pixels comparing absolute difference of two streams with threshold."),
     .priv_class    = &maskedthreshold_class,
diff --git a/libavfilter/vf_maskfun.c b/libavfilter/vf_maskfun.c
index 55a4c57c9d..0f3e3545b3 100644
--- a/libavfilter/vf_maskfun.c
+++ b/libavfilter/vf_maskfun.c
@@ -309,7 +309,7 @@ static const AVFilterPad maskfun_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_maskfun = {
+const AVFilter ff_vf_maskfun = {
     .name          = "maskfun",
     .description   = NULL_IF_CONFIG_SMALL("Create Mask."),
     .priv_size     = sizeof(MaskFunContext),
diff --git a/libavfilter/vf_mcdeint.c b/libavfilter/vf_mcdeint.c
index 1cad45cd4e..1a49829d5b 100644
--- a/libavfilter/vf_mcdeint.c
+++ b/libavfilter/vf_mcdeint.c
@@ -304,7 +304,7 @@ static const AVFilterPad mcdeint_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_mcdeint = {
+const AVFilter ff_vf_mcdeint = {
     .name          = "mcdeint",
     .description   = NULL_IF_CONFIG_SMALL("Apply motion compensating deinterlacing."),
     .priv_size     = sizeof(MCDeintContext),
diff --git a/libavfilter/vf_median.c b/libavfilter/vf_median.c
index 0189fabd07..4d8037df25 100644
--- a/libavfilter/vf_median.c
+++ b/libavfilter/vf_median.c
@@ -285,7 +285,7 @@ static const AVFilterPad median_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_median = {
+const AVFilter ff_vf_median = {
     .name          = "median",
     .description   = NULL_IF_CONFIG_SMALL("Apply Median filter."),
     .priv_size     = sizeof(MedianContext),
diff --git a/libavfilter/vf_mergeplanes.c b/libavfilter/vf_mergeplanes.c
index 22eb36a2e1..30888f62af 100644
--- a/libavfilter/vf_mergeplanes.c
+++ b/libavfilter/vf_mergeplanes.c
@@ -296,7 +296,7 @@ static const AVFilterPad mergeplanes_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_mergeplanes = {
+const AVFilter ff_vf_mergeplanes = {
     .name          = "mergeplanes",
     .description   = NULL_IF_CONFIG_SMALL("Merge planes."),
     .priv_size     = sizeof(MergePlanesContext),
diff --git a/libavfilter/vf_mestimate.c b/libavfilter/vf_mestimate.c
index 7ecfe7da60..daf7fde95f 100644
--- a/libavfilter/vf_mestimate.c
+++ b/libavfilter/vf_mestimate.c
@@ -365,7 +365,7 @@ static const AVFilterPad mestimate_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_mestimate = {
+const AVFilter ff_vf_mestimate = {
     .name          = "mestimate",
     .description   = NULL_IF_CONFIG_SMALL("Generate motion vectors."),
     .priv_size     = sizeof(MEContext),
diff --git a/libavfilter/vf_midequalizer.c b/libavfilter/vf_midequalizer.c
index 44c0bd751a..ba50fa0a82 100644
--- a/libavfilter/vf_midequalizer.c
+++ b/libavfilter/vf_midequalizer.c
@@ -375,7 +375,7 @@ static const AVFilterPad midequalizer_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_midequalizer = {
+const AVFilter ff_vf_midequalizer = {
     .name          = "midequalizer",
     .description   = NULL_IF_CONFIG_SMALL("Apply Midway Equalization."),
     .priv_size     = sizeof(MidEqualizerContext),
diff --git a/libavfilter/vf_minterpolate.c b/libavfilter/vf_minterpolate.c
index 969463f021..77462dbd5d 100644
--- a/libavfilter/vf_minterpolate.c
+++ b/libavfilter/vf_minterpolate.c
@@ -1258,7 +1258,7 @@ static const AVFilterPad minterpolate_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_minterpolate = {
+const AVFilter ff_vf_minterpolate = {
     .name          = "minterpolate",
     .description   = NULL_IF_CONFIG_SMALL("Frame rate conversion using Motion Interpolation."),
     .priv_size     = sizeof(MIContext),
diff --git a/libavfilter/vf_misc_vaapi.c b/libavfilter/vf_misc_vaapi.c
index 5814ff8c2e..08a0917258 100644
--- a/libavfilter/vf_misc_vaapi.c
+++ b/libavfilter/vf_misc_vaapi.c
@@ -236,7 +236,7 @@ static const AVFilterPad misc_vaapi_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_denoise_vaapi = {
+const AVFilter ff_vf_denoise_vaapi = {
     .name          = "denoise_vaapi",
     .description   = NULL_IF_CONFIG_SMALL("VAAPI VPP for de-noise"),
     .priv_size     = sizeof(DenoiseVAAPIContext),
@@ -249,7 +249,7 @@ AVFilter ff_vf_denoise_vaapi = {
     .flags_internal = FF_FILTER_FLAG_HWFRAME_AWARE,
 };
 
-AVFilter ff_vf_sharpness_vaapi = {
+const AVFilter ff_vf_sharpness_vaapi = {
     .name          = "sharpness_vaapi",
     .description   = NULL_IF_CONFIG_SMALL("VAAPI VPP for sharpness"),
     .priv_size     = sizeof(SharpnessVAAPIContext),
diff --git a/libavfilter/vf_mix.c b/libavfilter/vf_mix.c
index ee4d95791a..0ca60d5522 100644
--- a/libavfilter/vf_mix.c
+++ b/libavfilter/vf_mix.c
@@ -358,7 +358,7 @@ static const AVFilterPad outputs[] = {
 #if CONFIG_MIX_FILTER
 AVFILTER_DEFINE_CLASS(mix);
 
-AVFilter ff_vf_mix = {
+const AVFilter ff_vf_mix = {
     .name          = "mix",
     .description   = NULL_IF_CONFIG_SMALL("Mix video inputs."),
     .priv_size     = sizeof(MixContext),
@@ -435,7 +435,7 @@ static const AVFilterPad inputs[] = {
 
 AVFILTER_DEFINE_CLASS(tmix);
 
-AVFilter ff_vf_tmix = {
+const AVFilter ff_vf_tmix = {
     .name          = "tmix",
     .description   = NULL_IF_CONFIG_SMALL("Mix successive video frames."),
     .priv_size     = sizeof(MixContext),
diff --git a/libavfilter/vf_monochrome.c b/libavfilter/vf_monochrome.c
index 8faa068dbe..29e70f8c25 100644
--- a/libavfilter/vf_monochrome.c
+++ b/libavfilter/vf_monochrome.c
@@ -301,7 +301,7 @@ static const AVOption monochrome_options[] = {
 
 AVFILTER_DEFINE_CLASS(monochrome);
 
-AVFilter ff_vf_monochrome = {
+const AVFilter ff_vf_monochrome = {
     .name          = "monochrome",
     .description   = NULL_IF_CONFIG_SMALL("Convert video to gray using custom color filter."),
     .priv_size     = sizeof(MonochromeContext),
diff --git a/libavfilter/vf_mpdecimate.c b/libavfilter/vf_mpdecimate.c
index c9a9cb3a8e..53f5a56ef4 100644
--- a/libavfilter/vf_mpdecimate.c
+++ b/libavfilter/vf_mpdecimate.c
@@ -242,7 +242,7 @@ static const AVFilterPad mpdecimate_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_mpdecimate = {
+const AVFilter ff_vf_mpdecimate = {
     .name          = "mpdecimate",
     .description   = NULL_IF_CONFIG_SMALL("Remove near-duplicate frames."),
     .init          = init,
diff --git a/libavfilter/vf_neighbor.c b/libavfilter/vf_neighbor.c
index 9cd9001320..a2e9a51165 100644
--- a/libavfilter/vf_neighbor.c
+++ b/libavfilter/vf_neighbor.c
@@ -358,7 +358,7 @@ static const AVFilterPad neighbor_outputs[] = {
 #define DEFINE_NEIGHBOR_FILTER(name_, description_)          \
 AVFILTER_DEFINE_CLASS(name_);                                \
                                                              \
-AVFilter ff_vf_##name_ = {                                   \
+const AVFilter ff_vf_##name_ = {                                   \
     .name          = #name_,                                 \
     .description   = NULL_IF_CONFIG_SMALL(description_),     \
     .priv_size     = sizeof(NContext),                       \
diff --git a/libavfilter/vf_neighbor_opencl.c b/libavfilter/vf_neighbor_opencl.c
index fb40132d95..a41fd384a1 100644
--- a/libavfilter/vf_neighbor_opencl.c
+++ b/libavfilter/vf_neighbor_opencl.c
@@ -274,7 +274,7 @@ static const AVOption erosion_opencl_options[] = {
 
 AVFILTER_DEFINE_CLASS(erosion_opencl);
 
-AVFilter ff_vf_erosion_opencl = {
+const AVFilter ff_vf_erosion_opencl = {
     .name           = "erosion_opencl",
     .description    = NULL_IF_CONFIG_SMALL("Apply erosion effect"),
     .priv_size      = sizeof(NeighborOpenCLContext),
@@ -302,7 +302,7 @@ static const AVOption dilation_opencl_options[] = {
 
 AVFILTER_DEFINE_CLASS(dilation_opencl);
 
-AVFilter ff_vf_dilation_opencl = {
+const AVFilter ff_vf_dilation_opencl = {
     .name           = "dilation_opencl",
     .description    = NULL_IF_CONFIG_SMALL("Apply dilation effect"),
     .priv_size      = sizeof(NeighborOpenCLContext),
diff --git a/libavfilter/vf_nlmeans.c b/libavfilter/vf_nlmeans.c
index 06233b0dd4..7451bec4ae 100644
--- a/libavfilter/vf_nlmeans.c
+++ b/libavfilter/vf_nlmeans.c
@@ -577,7 +577,7 @@ static const AVFilterPad nlmeans_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_nlmeans = {
+const AVFilter ff_vf_nlmeans = {
     .name          = "nlmeans",
     .description   = NULL_IF_CONFIG_SMALL("Non-local means denoiser."),
     .priv_size     = sizeof(NLMeansContext),
diff --git a/libavfilter/vf_nlmeans_opencl.c b/libavfilter/vf_nlmeans_opencl.c
index e57b5e0873..0f16b2fe49 100644
--- a/libavfilter/vf_nlmeans_opencl.c
+++ b/libavfilter/vf_nlmeans_opencl.c
@@ -429,7 +429,7 @@ static const AVFilterPad nlmeans_opencl_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_nlmeans_opencl = {
+const AVFilter ff_vf_nlmeans_opencl = {
     .name           = "nlmeans_opencl",
     .description    = NULL_IF_CONFIG_SMALL("Non-local means denoiser through OpenCL"),
     .priv_size      = sizeof(NLMeansOpenCLContext),
diff --git a/libavfilter/vf_nnedi.c b/libavfilter/vf_nnedi.c
index b273c13944..6096e88812 100644
--- a/libavfilter/vf_nnedi.c
+++ b/libavfilter/vf_nnedi.c
@@ -1158,7 +1158,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_nnedi = {
+const AVFilter ff_vf_nnedi = {
     .name          = "nnedi",
     .description   = NULL_IF_CONFIG_SMALL("Apply neural network edge directed interpolation intra-only deinterlacer."),
     .priv_size     = sizeof(NNEDIContext),
diff --git a/libavfilter/vf_noise.c b/libavfilter/vf_noise.c
index abdf04708b..73e88063e9 100644
--- a/libavfilter/vf_noise.c
+++ b/libavfilter/vf_noise.c
@@ -337,7 +337,7 @@ static const AVFilterPad noise_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_noise = {
+const AVFilter ff_vf_noise = {
     .name          = "noise",
     .description   = NULL_IF_CONFIG_SMALL("Add noise."),
     .priv_size     = sizeof(NoiseContext),
diff --git a/libavfilter/vf_normalize.c b/libavfilter/vf_normalize.c
index 9675c8ac2c..3a2127ade3 100644
--- a/libavfilter/vf_normalize.c
+++ b/libavfilter/vf_normalize.c
@@ -530,7 +530,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_normalize = {
+const AVFilter ff_vf_normalize = {
     .name          = "normalize",
     .description   = NULL_IF_CONFIG_SMALL("Normalize RGB video."),
     .priv_size     = sizeof(NormalizeContext),
diff --git a/libavfilter/vf_null.c b/libavfilter/vf_null.c
index 2355615229..1f0e85e900 100644
--- a/libavfilter/vf_null.c
+++ b/libavfilter/vf_null.c
@@ -42,7 +42,7 @@ static const AVFilterPad avfilter_vf_null_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_null = {
+const AVFilter ff_vf_null = {
     .name        = "null",
     .description = NULL_IF_CONFIG_SMALL("Pass the source unchanged to the output."),
     .inputs      = avfilter_vf_null_inputs,
diff --git a/libavfilter/vf_ocr.c b/libavfilter/vf_ocr.c
index c7ccb4a84f..6de474025a 100644
--- a/libavfilter/vf_ocr.c
+++ b/libavfilter/vf_ocr.c
@@ -146,7 +146,7 @@ static const AVFilterPad ocr_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_ocr = {
+const AVFilter ff_vf_ocr = {
     .name          = "ocr",
     .description   = NULL_IF_CONFIG_SMALL("Optical Character Recognition."),
     .priv_size     = sizeof(OCRContext),
diff --git a/libavfilter/vf_overlay.c b/libavfilter/vf_overlay.c
index bda5970b82..9155de3736 100644
--- a/libavfilter/vf_overlay.c
+++ b/libavfilter/vf_overlay.c
@@ -1106,7 +1106,7 @@ static const AVFilterPad avfilter_vf_overlay_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_overlay = {
+const AVFilter ff_vf_overlay = {
     .name          = "overlay",
     .description   = NULL_IF_CONFIG_SMALL("Overlay a video source on top of the input."),
     .preinit       = overlay_framesync_preinit,
diff --git a/libavfilter/vf_overlay_cuda.c b/libavfilter/vf_overlay_cuda.c
index 34241c8e1b..b91ac9a713 100644
--- a/libavfilter/vf_overlay_cuda.c
+++ b/libavfilter/vf_overlay_cuda.c
@@ -435,7 +435,7 @@ static const AVFilterPad overlay_cuda_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_overlay_cuda = {
+const AVFilter ff_vf_overlay_cuda = {
     .name            = "overlay_cuda",
     .description     = NULL_IF_CONFIG_SMALL("Overlay one video on top of another using CUDA"),
     .priv_size       = sizeof(OverlayCUDAContext),
diff --git a/libavfilter/vf_overlay_opencl.c b/libavfilter/vf_overlay_opencl.c
index e9c853203b..8547bae278 100644
--- a/libavfilter/vf_overlay_opencl.c
+++ b/libavfilter/vf_overlay_opencl.c
@@ -313,7 +313,7 @@ static const AVFilterPad overlay_opencl_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_overlay_opencl = {
+const AVFilter ff_vf_overlay_opencl = {
     .name            = "overlay_opencl",
     .description     = NULL_IF_CONFIG_SMALL("Overlay one video on top of another"),
     .priv_size       = sizeof(OverlayOpenCLContext),
diff --git a/libavfilter/vf_overlay_qsv.c b/libavfilter/vf_overlay_qsv.c
index dd6c30f2a2..7a4afd77d4 100644
--- a/libavfilter/vf_overlay_qsv.c
+++ b/libavfilter/vf_overlay_qsv.c
@@ -416,7 +416,7 @@ static const AVFilterPad overlay_qsv_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_overlay_qsv = {
+const AVFilter ff_vf_overlay_qsv = {
     .name           = "overlay_qsv",
     .description    = NULL_IF_CONFIG_SMALL("Quick Sync Video overlay."),
     .priv_size      = sizeof(QSVOverlayContext),
diff --git a/libavfilter/vf_overlay_vulkan.c b/libavfilter/vf_overlay_vulkan.c
index 60ca85fd08..8dd3bd2092 100644
--- a/libavfilter/vf_overlay_vulkan.c
+++ b/libavfilter/vf_overlay_vulkan.c
@@ -475,7 +475,7 @@ static const AVFilterPad overlay_vulkan_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_overlay_vulkan = {
+const AVFilter ff_vf_overlay_vulkan = {
     .name           = "overlay_vulkan",
     .description    = NULL_IF_CONFIG_SMALL("Overlay a source on top of another"),
     .priv_size      = sizeof(OverlayVulkanContext),
diff --git a/libavfilter/vf_owdenoise.c b/libavfilter/vf_owdenoise.c
index 7dfe10f2f1..f16a06e3b8 100644
--- a/libavfilter/vf_owdenoise.c
+++ b/libavfilter/vf_owdenoise.c
@@ -365,7 +365,7 @@ static const AVFilterPad owdenoise_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_owdenoise = {
+const AVFilter ff_vf_owdenoise = {
     .name          = "owdenoise",
     .description   = NULL_IF_CONFIG_SMALL("Denoise using wavelets."),
     .priv_size     = sizeof(OWDenoiseContext),
diff --git a/libavfilter/vf_pad.c b/libavfilter/vf_pad.c
index 131f24807f..871f2930af 100644
--- a/libavfilter/vf_pad.c
+++ b/libavfilter/vf_pad.c
@@ -453,7 +453,7 @@ static const AVFilterPad avfilter_vf_pad_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_pad = {
+const AVFilter ff_vf_pad = {
     .name          = "pad",
     .description   = NULL_IF_CONFIG_SMALL("Pad the input video."),
     .priv_size     = sizeof(PadContext),
diff --git a/libavfilter/vf_pad_opencl.c b/libavfilter/vf_pad_opencl.c
index 1129c40c60..8155a96e03 100644
--- a/libavfilter/vf_pad_opencl.c
+++ b/libavfilter/vf_pad_opencl.c
@@ -383,7 +383,7 @@ static const AVOption pad_opencl_options[] = {
 
 AVFILTER_DEFINE_CLASS(pad_opencl);
 
-AVFilter ff_vf_pad_opencl = {
+const AVFilter ff_vf_pad_opencl = {
     .name           = "pad_opencl",
     .description    = NULL_IF_CONFIG_SMALL("Pad the input video."),
     .priv_size      = sizeof(PadOpenCLContext),
diff --git a/libavfilter/vf_palettegen.c b/libavfilter/vf_palettegen.c
index c49a6f1168..ef8bc181c5 100644
--- a/libavfilter/vf_palettegen.c
+++ b/libavfilter/vf_palettegen.c
@@ -570,7 +570,7 @@ static const AVFilterPad palettegen_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_palettegen = {
+const AVFilter ff_vf_palettegen = {
     .name          = "palettegen",
     .description   = NULL_IF_CONFIG_SMALL("Find the optimal palette for a given stream."),
     .priv_size     = sizeof(PaletteGenContext),
diff --git a/libavfilter/vf_paletteuse.c b/libavfilter/vf_paletteuse.c
index f4c7d60435..f07ef5d760 100644
--- a/libavfilter/vf_paletteuse.c
+++ b/libavfilter/vf_paletteuse.c
@@ -1134,7 +1134,7 @@ static const AVFilterPad paletteuse_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_paletteuse = {
+const AVFilter ff_vf_paletteuse = {
     .name          = "paletteuse",
     .description   = NULL_IF_CONFIG_SMALL("Use a palette to downsample an input video stream."),
     .priv_size     = sizeof(PaletteUseContext),
diff --git a/libavfilter/vf_perspective.c b/libavfilter/vf_perspective.c
index 92495097cc..a3fa080f21 100644
--- a/libavfilter/vf_perspective.c
+++ b/libavfilter/vf_perspective.c
@@ -511,7 +511,7 @@ static const AVFilterPad perspective_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_perspective = {
+const AVFilter ff_vf_perspective = {
     .name          = "perspective",
     .description   = NULL_IF_CONFIG_SMALL("Correct the perspective of video."),
     .priv_size     = sizeof(PerspectiveContext),
diff --git a/libavfilter/vf_phase.c b/libavfilter/vf_phase.c
index d4f580a609..556620d36c 100644
--- a/libavfilter/vf_phase.c
+++ b/libavfilter/vf_phase.c
@@ -235,7 +235,7 @@ static const AVFilterPad phase_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_phase = {
+const AVFilter ff_vf_phase = {
     .name          = "phase",
     .description   = NULL_IF_CONFIG_SMALL("Phase shift fields."),
     .priv_size     = sizeof(PhaseContext),
diff --git a/libavfilter/vf_photosensitivity.c b/libavfilter/vf_photosensitivity.c
index e05c187eeb..dd3d957bfa 100644
--- a/libavfilter/vf_photosensitivity.c
+++ b/libavfilter/vf_photosensitivity.c
@@ -329,7 +329,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_photosensitivity = {
+const AVFilter ff_vf_photosensitivity = {
     .name          = "photosensitivity",
     .description   = NULL_IF_CONFIG_SMALL("Filter out photosensitive epilepsy seizure-inducing flashes."),
     .priv_size     = sizeof(PhotosensitivityContext),
diff --git a/libavfilter/vf_pixdesctest.c b/libavfilter/vf_pixdesctest.c
index 066b8a0290..b56839d994 100644
--- a/libavfilter/vf_pixdesctest.c
+++ b/libavfilter/vf_pixdesctest.c
@@ -124,7 +124,7 @@ static const AVFilterPad avfilter_vf_pixdesctest_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_pixdesctest = {
+const AVFilter ff_vf_pixdesctest = {
     .name        = "pixdesctest",
     .description = NULL_IF_CONFIG_SMALL("Test pixel format definitions."),
     .priv_size   = sizeof(PixdescTestContext),
diff --git a/libavfilter/vf_pp.c b/libavfilter/vf_pp.c
index 19a0f9fc6e..5cd89932f8 100644
--- a/libavfilter/vf_pp.c
+++ b/libavfilter/vf_pp.c
@@ -191,7 +191,7 @@ static const AVFilterPad pp_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_pp = {
+const AVFilter ff_vf_pp = {
     .name            = "pp",
     .description     = NULL_IF_CONFIG_SMALL("Filter video using libpostproc."),
     .priv_size       = sizeof(PPFilterContext),
diff --git a/libavfilter/vf_pp7.c b/libavfilter/vf_pp7.c
index ade7feb0b2..c53a8716cb 100644
--- a/libavfilter/vf_pp7.c
+++ b/libavfilter/vf_pp7.c
@@ -402,7 +402,7 @@ static const AVFilterPad pp7_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_pp7 = {
+const AVFilter ff_vf_pp7 = {
     .name            = "pp7",
     .description     = NULL_IF_CONFIG_SMALL("Apply Postprocessing 7 filter."),
     .priv_size       = sizeof(PP7Context),
diff --git a/libavfilter/vf_premultiply.c b/libavfilter/vf_premultiply.c
index e051cadac0..b5d0ca6d67 100644
--- a/libavfilter/vf_premultiply.c
+++ b/libavfilter/vf_premultiply.c
@@ -824,7 +824,7 @@ static const AVFilterPad premultiply_outputs[] = {
 
 #if CONFIG_PREMULTIPLY_FILTER
 
-AVFilter ff_vf_premultiply = {
+const AVFilter ff_vf_premultiply = {
     .name          = "premultiply",
     .description   = NULL_IF_CONFIG_SMALL("PreMultiply first stream with first plane of second stream."),
     .priv_size     = sizeof(PreMultiplyContext),
@@ -847,7 +847,7 @@ AVFilter ff_vf_premultiply = {
 #define unpremultiply_options options
 AVFILTER_DEFINE_CLASS(unpremultiply);
 
-AVFilter ff_vf_unpremultiply = {
+const AVFilter ff_vf_unpremultiply = {
     .name          = "unpremultiply",
     .description   = NULL_IF_CONFIG_SMALL("UnPreMultiply first stream with first plane of second stream."),
     .priv_size     = sizeof(PreMultiplyContext),
diff --git a/libavfilter/vf_procamp_vaapi.c b/libavfilter/vf_procamp_vaapi.c
index 7342048583..9d0c813e6d 100644
--- a/libavfilter/vf_procamp_vaapi.c
+++ b/libavfilter/vf_procamp_vaapi.c
@@ -233,7 +233,7 @@ static const AVFilterPad procamp_vaapi_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_procamp_vaapi = {
+const AVFilter ff_vf_procamp_vaapi = {
     .name          = "procamp_vaapi",
     .description   = NULL_IF_CONFIG_SMALL("ProcAmp (color balance) adjustments for hue, saturation, brightness, contrast"),
     .priv_size     = sizeof(ProcampVAAPIContext),
diff --git a/libavfilter/vf_program_opencl.c b/libavfilter/vf_program_opencl.c
index ec25e931f5..4b38baeb3c 100644
--- a/libavfilter/vf_program_opencl.c
+++ b/libavfilter/vf_program_opencl.c
@@ -362,7 +362,7 @@ static const AVFilterPad program_opencl_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_program_opencl = {
+const AVFilter ff_vf_program_opencl = {
     .name           = "program_opencl",
     .description    = NULL_IF_CONFIG_SMALL("Filter video using an OpenCL program"),
     .priv_size      = sizeof(ProgramOpenCLContext),
@@ -415,7 +415,7 @@ static const AVFilterPad openclsrc_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vsrc_openclsrc = {
+const AVFilter ff_vsrc_openclsrc = {
     .name           = "openclsrc",
     .description    = NULL_IF_CONFIG_SMALL("Generate video using an OpenCL program"),
     .priv_size      = sizeof(ProgramOpenCLContext),
diff --git a/libavfilter/vf_pseudocolor.c b/libavfilter/vf_pseudocolor.c
index 6f67c02eb7..a6ea43e883 100644
--- a/libavfilter/vf_pseudocolor.c
+++ b/libavfilter/vf_pseudocolor.c
@@ -888,7 +888,7 @@ static av_cold void uninit(AVFilterContext *ctx)
 
 AVFILTER_DEFINE_CLASS(pseudocolor);
 
-AVFilter ff_vf_pseudocolor = {
+const AVFilter ff_vf_pseudocolor = {
     .name          = "pseudocolor",
     .description   = NULL_IF_CONFIG_SMALL("Make pseudocolored video frames."),
     .priv_size     = sizeof(PseudoColorContext),
diff --git a/libavfilter/vf_psnr.c b/libavfilter/vf_psnr.c
index 0d0c0f35aa..7117e26dce 100644
--- a/libavfilter/vf_psnr.c
+++ b/libavfilter/vf_psnr.c
@@ -467,7 +467,7 @@ static const AVFilterPad psnr_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_psnr = {
+const AVFilter ff_vf_psnr = {
     .name          = "psnr",
     .description   = NULL_IF_CONFIG_SMALL("Calculate the PSNR between two video streams."),
     .preinit       = psnr_framesync_preinit,
diff --git a/libavfilter/vf_pullup.c b/libavfilter/vf_pullup.c
index fa76caad03..00d3a8dc51 100644
--- a/libavfilter/vf_pullup.c
+++ b/libavfilter/vf_pullup.c
@@ -764,7 +764,7 @@ static const AVFilterPad pullup_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_pullup = {
+const AVFilter ff_vf_pullup = {
     .name          = "pullup",
     .description   = NULL_IF_CONFIG_SMALL("Pullup from field sequence to frames."),
     .priv_size     = sizeof(PullupContext),
diff --git a/libavfilter/vf_qp.c b/libavfilter/vf_qp.c
index e2d60fdbb5..c932d45a76 100644
--- a/libavfilter/vf_qp.c
+++ b/libavfilter/vf_qp.c
@@ -193,7 +193,7 @@ static const AVFilterPad qp_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_qp = {
+const AVFilter ff_vf_qp = {
     .name          = "qp",
     .description   = NULL_IF_CONFIG_SMALL("Change video quantization parameters."),
     .priv_size     = sizeof(QPContext),
diff --git a/libavfilter/vf_random.c b/libavfilter/vf_random.c
index e73a224cd8..5e4c30a3b5 100644
--- a/libavfilter/vf_random.c
+++ b/libavfilter/vf_random.c
@@ -139,7 +139,7 @@ static const AVFilterPad random_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_random = {
+const AVFilter ff_vf_random = {
     .name        = "random",
     .description = NULL_IF_CONFIG_SMALL("Return random frames."),
     .priv_size   = sizeof(RandomContext),
diff --git a/libavfilter/vf_readeia608.c b/libavfilter/vf_readeia608.c
index d4c3ca6e58..9558e938ab 100644
--- a/libavfilter/vf_readeia608.c
+++ b/libavfilter/vf_readeia608.c
@@ -556,7 +556,7 @@ static const AVFilterPad readeia608_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_readeia608 = {
+const AVFilter ff_vf_readeia608 = {
     .name          = "readeia608",
     .description   = NULL_IF_CONFIG_SMALL("Read EIA-608 Closed Caption codes from input video and write them to frame metadata."),
     .priv_size     = sizeof(ReadEIA608Context),
diff --git a/libavfilter/vf_readvitc.c b/libavfilter/vf_readvitc.c
index 7ef8cdae58..25cfa5f32d 100644
--- a/libavfilter/vf_readvitc.c
+++ b/libavfilter/vf_readvitc.c
@@ -246,7 +246,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_readvitc = {
+const AVFilter ff_vf_readvitc = {
     .name          = "readvitc",
     .description   = NULL_IF_CONFIG_SMALL("Read vertical interval timecode and write it to frame metadata."),
     .priv_size     = sizeof(ReadVitcContext),
diff --git a/libavfilter/vf_remap.c b/libavfilter/vf_remap.c
index 1896a268c9..5ab6199d71 100644
--- a/libavfilter/vf_remap.c
+++ b/libavfilter/vf_remap.c
@@ -398,7 +398,7 @@ static const AVFilterPad remap_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_remap = {
+const AVFilter ff_vf_remap = {
     .name          = "remap",
     .description   = NULL_IF_CONFIG_SMALL("Remap pixels."),
     .priv_size     = sizeof(RemapContext),
diff --git a/libavfilter/vf_removegrain.c b/libavfilter/vf_removegrain.c
index bc45076baa..75b3ec35bb 100644
--- a/libavfilter/vf_removegrain.c
+++ b/libavfilter/vf_removegrain.c
@@ -648,7 +648,7 @@ static const AVFilterPad removegrain_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_removegrain = {
+const AVFilter ff_vf_removegrain = {
     .name          = "removegrain",
     .description   = NULL_IF_CONFIG_SMALL("Remove grain."),
     .priv_size     = sizeof(RemoveGrainContext),
diff --git a/libavfilter/vf_removelogo.c b/libavfilter/vf_removelogo.c
index 4026bdd09a..4bb81a8a5b 100644
--- a/libavfilter/vf_removelogo.c
+++ b/libavfilter/vf_removelogo.c
@@ -573,7 +573,7 @@ static const AVFilterPad removelogo_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_removelogo = {
+const AVFilter ff_vf_removelogo = {
     .name          = "removelogo",
     .description   = NULL_IF_CONFIG_SMALL("Remove a TV logo based on a mask image."),
     .priv_size     = sizeof(RemovelogoContext),
diff --git a/libavfilter/vf_repeatfields.c b/libavfilter/vf_repeatfields.c
index 3ac432b5bc..1e2abd3a82 100644
--- a/libavfilter/vf_repeatfields.c
+++ b/libavfilter/vf_repeatfields.c
@@ -181,7 +181,7 @@ static const AVFilterPad repeatfields_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_repeatfields = {
+const AVFilter ff_vf_repeatfields = {
     .name          = "repeatfields",
     .description   = NULL_IF_CONFIG_SMALL("Hard repeat fields based on MPEG repeat field flag."),
     .priv_size     = sizeof(RepeatFieldsContext),
diff --git a/libavfilter/vf_rotate.c b/libavfilter/vf_rotate.c
index 65c6cc411a..f16207cbff 100644
--- a/libavfilter/vf_rotate.c
+++ b/libavfilter/vf_rotate.c
@@ -600,7 +600,7 @@ static const AVFilterPad rotate_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_rotate = {
+const AVFilter ff_vf_rotate = {
     .name          = "rotate",
     .description   = NULL_IF_CONFIG_SMALL("Rotate the input image."),
     .priv_size     = sizeof(RotContext),
diff --git a/libavfilter/vf_sab.c b/libavfilter/vf_sab.c
index 6f63654161..12fbe40655 100644
--- a/libavfilter/vf_sab.c
+++ b/libavfilter/vf_sab.c
@@ -323,7 +323,7 @@ static const AVFilterPad sab_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_sab = {
+const AVFilter ff_vf_sab = {
     .name          = "sab",
     .description   = NULL_IF_CONFIG_SMALL("Apply shape adaptive blur."),
     .priv_size     = sizeof(SabContext),
diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c
index 7f68a51913..d95a8ad48a 100644
--- a/libavfilter/vf_scale.c
+++ b/libavfilter/vf_scale.c
@@ -155,7 +155,7 @@ typedef struct ScaleContext {
 
 } ScaleContext;
 
-AVFilter ff_vf_scale2ref;
+const AVFilter ff_vf_scale2ref;
 
 static int config_props(AVFilterLink *outlink);
 
@@ -964,7 +964,7 @@ static const AVFilterPad avfilter_vf_scale_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_scale = {
+const AVFilter ff_vf_scale = {
     .name            = "scale",
     .description     = NULL_IF_CONFIG_SMALL("Scale the input video size and/or convert the image format."),
     .init_dict       = init_dict,
@@ -1016,7 +1016,7 @@ static const AVFilterPad avfilter_vf_scale2ref_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_scale2ref = {
+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."),
     .init_dict       = init_dict,
diff --git a/libavfilter/vf_scale_cuda.c b/libavfilter/vf_scale_cuda.c
index 99fef6b22b..d97c7df273 100644
--- a/libavfilter/vf_scale_cuda.c
+++ b/libavfilter/vf_scale_cuda.c
@@ -664,7 +664,7 @@ static const AVFilterPad cudascale_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_scale_cuda = {
+const AVFilter ff_vf_scale_cuda = {
     .name      = "scale_cuda",
     .description = NULL_IF_CONFIG_SMALL("GPU accelerated video resizer"),
 
diff --git a/libavfilter/vf_scale_npp.c b/libavfilter/vf_scale_npp.c
index 502ecfda94..8d2ad3aab7 100644
--- a/libavfilter/vf_scale_npp.c
+++ b/libavfilter/vf_scale_npp.c
@@ -591,7 +591,7 @@ static const AVFilterPad nppscale_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_scale_npp = {
+const AVFilter ff_vf_scale_npp = {
     .name      = "scale_npp",
     .description = NULL_IF_CONFIG_SMALL("NVIDIA Performance Primitives video "
                                         "scaling and format conversion"),
diff --git a/libavfilter/vf_scale_qsv.c b/libavfilter/vf_scale_qsv.c
index 2ac2373955..189223a58a 100644
--- a/libavfilter/vf_scale_qsv.c
+++ b/libavfilter/vf_scale_qsv.c
@@ -667,7 +667,7 @@ static const AVFilterPad qsvscale_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_scale_qsv = {
+const AVFilter ff_vf_scale_qsv = {
     .name      = "scale_qsv",
     .description = NULL_IF_CONFIG_SMALL("QuickSync video scaling and format conversion"),
 
diff --git a/libavfilter/vf_scale_vaapi.c b/libavfilter/vf_scale_vaapi.c
index b9a5eeff65..0f0c5440e9 100644
--- a/libavfilter/vf_scale_vaapi.c
+++ b/libavfilter/vf_scale_vaapi.c
@@ -283,7 +283,7 @@ static const AVFilterPad scale_vaapi_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_scale_vaapi = {
+const AVFilter ff_vf_scale_vaapi = {
     .name          = "scale_vaapi",
     .description   = NULL_IF_CONFIG_SMALL("Scale to/from VAAPI surfaces."),
     .priv_size     = sizeof(ScaleVAAPIContext),
diff --git a/libavfilter/vf_scale_vulkan.c b/libavfilter/vf_scale_vulkan.c
index 35ea2e1e5d..95503480ef 100644
--- a/libavfilter/vf_scale_vulkan.c
+++ b/libavfilter/vf_scale_vulkan.c
@@ -524,7 +524,7 @@ static const AVFilterPad scale_vulkan_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_scale_vulkan = {
+const AVFilter ff_vf_scale_vulkan = {
     .name           = "scale_vulkan",
     .description    = NULL_IF_CONFIG_SMALL("Scale Vulkan frames"),
     .priv_size      = sizeof(ScaleVulkanContext),
diff --git a/libavfilter/vf_scdet.c b/libavfilter/vf_scdet.c
index b91d91f1e1..3f7b7c5f25 100644
--- a/libavfilter/vf_scdet.c
+++ b/libavfilter/vf_scdet.c
@@ -211,7 +211,7 @@ static const AVFilterPad scdet_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_scdet = {
+const AVFilter ff_vf_scdet = {
     .name          = "scdet",
     .description   = NULL_IF_CONFIG_SMALL("Detect video scene change"),
     .priv_size     = sizeof(SCDetContext),
diff --git a/libavfilter/vf_scroll.c b/libavfilter/vf_scroll.c
index bb5907b1c0..4b7b45f52a 100644
--- a/libavfilter/vf_scroll.c
+++ b/libavfilter/vf_scroll.c
@@ -211,7 +211,7 @@ static const AVFilterPad scroll_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_scroll = {
+const AVFilter ff_vf_scroll = {
     .name          = "scroll",
     .description   = NULL_IF_CONFIG_SMALL("Scroll input video."),
     .priv_size     = sizeof(ScrollContext),
diff --git a/libavfilter/vf_selectivecolor.c b/libavfilter/vf_selectivecolor.c
index 9bd79a3e60..4733cc48f2 100644
--- a/libavfilter/vf_selectivecolor.c
+++ b/libavfilter/vf_selectivecolor.c
@@ -470,7 +470,7 @@ static const AVFilterPad selectivecolor_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_selectivecolor = {
+const AVFilter ff_vf_selectivecolor = {
     .name          = "selectivecolor",
     .description   = NULL_IF_CONFIG_SMALL("Apply CMYK adjustments to specific color ranges."),
     .priv_size     = sizeof(SelectiveColorContext),
diff --git a/libavfilter/vf_separatefields.c b/libavfilter/vf_separatefields.c
index 74ebd35bd1..c2c7352ad1 100644
--- a/libavfilter/vf_separatefields.c
+++ b/libavfilter/vf_separatefields.c
@@ -173,7 +173,7 @@ static const AVFilterPad separatefields_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_separatefields = {
+const AVFilter ff_vf_separatefields = {
     .name        = "separatefields",
     .description = NULL_IF_CONFIG_SMALL("Split input video frames into fields."),
     .priv_size   = sizeof(SeparateFieldsContext),
diff --git a/libavfilter/vf_setparams.c b/libavfilter/vf_setparams.c
index 689097fac0..0cb3af33ed 100644
--- a/libavfilter/vf_setparams.c
+++ b/libavfilter/vf_setparams.c
@@ -162,7 +162,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_setparams = {
+const AVFilter ff_vf_setparams = {
     .name        = "setparams",
     .description = NULL_IF_CONFIG_SMALL("Force field, or color property for the output video frame."),
     .priv_size   = sizeof(SetParamsContext),
@@ -200,7 +200,7 @@ static av_cold int init_setrange(AVFilterContext *ctx)
     return 0;
 }
 
-AVFilter ff_vf_setrange = {
+const AVFilter ff_vf_setrange = {
     .name        = "setrange",
     .description = NULL_IF_CONFIG_SMALL("Force color range for the output video frame."),
     .priv_size   = sizeof(SetParamsContext),
@@ -234,7 +234,7 @@ static av_cold int init_setfield(AVFilterContext *ctx)
     return 0;
 }
 
-AVFilter ff_vf_setfield = {
+const AVFilter ff_vf_setfield = {
     .name        = "setfield",
     .description = NULL_IF_CONFIG_SMALL("Force field for the output video frame."),
     .priv_size   = sizeof(SetParamsContext),
diff --git a/libavfilter/vf_shear.c b/libavfilter/vf_shear.c
index de298af94b..6b9db161d9 100644
--- a/libavfilter/vf_shear.c
+++ b/libavfilter/vf_shear.c
@@ -316,7 +316,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_shear = {
+const AVFilter ff_vf_shear = {
     .name            = "shear",
     .description     = NULL_IF_CONFIG_SMALL("Shear transform the input image."),
     .priv_size       = sizeof(ShearContext),
diff --git a/libavfilter/vf_showinfo.c b/libavfilter/vf_showinfo.c
index 2529cb2851..5e1c4dc2e3 100644
--- a/libavfilter/vf_showinfo.c
+++ b/libavfilter/vf_showinfo.c
@@ -602,7 +602,7 @@ static const AVFilterPad avfilter_vf_showinfo_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_showinfo = {
+const AVFilter ff_vf_showinfo = {
     .name        = "showinfo",
     .description = NULL_IF_CONFIG_SMALL("Show textual information for each video frame."),
     .inputs      = avfilter_vf_showinfo_inputs,
diff --git a/libavfilter/vf_showpalette.c b/libavfilter/vf_showpalette.c
index c0327acf5c..588fd2faab 100644
--- a/libavfilter/vf_showpalette.c
+++ b/libavfilter/vf_showpalette.c
@@ -113,7 +113,7 @@ static const AVFilterPad showpalette_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_showpalette = {
+const AVFilter ff_vf_showpalette = {
     .name          = "showpalette",
     .description   = NULL_IF_CONFIG_SMALL("Display frame palette."),
     .priv_size     = sizeof(ShowPaletteContext),
diff --git a/libavfilter/vf_shuffleframes.c b/libavfilter/vf_shuffleframes.c
index 1f780c7d49..6424e4ee2c 100644
--- a/libavfilter/vf_shuffleframes.c
+++ b/libavfilter/vf_shuffleframes.c
@@ -156,7 +156,7 @@ static const AVFilterPad shuffleframes_outputs[] = {
     { NULL },
 };
 
-AVFilter ff_vf_shuffleframes = {
+const AVFilter ff_vf_shuffleframes = {
     .name          = "shuffleframes",
     .description   = NULL_IF_CONFIG_SMALL("Shuffle video frames."),
     .priv_size     = sizeof(ShuffleFramesContext),
diff --git a/libavfilter/vf_shufflepixels.c b/libavfilter/vf_shufflepixels.c
index 463bb66bc8..b404eefe66 100644
--- a/libavfilter/vf_shufflepixels.c
+++ b/libavfilter/vf_shufflepixels.c
@@ -443,7 +443,7 @@ static const AVFilterPad shufflepixels_outputs[] = {
     { NULL },
 };
 
-AVFilter ff_vf_shufflepixels = {
+const AVFilter ff_vf_shufflepixels = {
     .name          = "shufflepixels",
     .description   = NULL_IF_CONFIG_SMALL("Shuffle video pixels."),
     .priv_size     = sizeof(ShufflePixelsContext),
diff --git a/libavfilter/vf_shuffleplanes.c b/libavfilter/vf_shuffleplanes.c
index c5a376d50b..d1e1d11074 100644
--- a/libavfilter/vf_shuffleplanes.c
+++ b/libavfilter/vf_shuffleplanes.c
@@ -162,7 +162,7 @@ static const AVFilterPad shuffleplanes_outputs[] = {
     { NULL },
 };
 
-AVFilter ff_vf_shuffleplanes = {
+const AVFilter ff_vf_shuffleplanes = {
     .name         = "shuffleplanes",
     .description  = NULL_IF_CONFIG_SMALL("Shuffle video planes."),
     .priv_size    = sizeof(ShufflePlanesContext),
diff --git a/libavfilter/vf_signalstats.c b/libavfilter/vf_signalstats.c
index 1331327bb3..6f0ff53029 100644
--- a/libavfilter/vf_signalstats.c
+++ b/libavfilter/vf_signalstats.c
@@ -1012,7 +1012,7 @@ static const AVFilterPad signalstats_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_signalstats = {
+const AVFilter ff_vf_signalstats = {
     .name          = "signalstats",
     .description   = "Generate statistics from video analysis.",
     .init          = init,
diff --git a/libavfilter/vf_signature.c b/libavfilter/vf_signature.c
index bf5973b867..a345ad6ebd 100644
--- a/libavfilter/vf_signature.c
+++ b/libavfilter/vf_signature.c
@@ -758,7 +758,7 @@ static const AVFilterPad signature_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_signature = {
+const AVFilter ff_vf_signature = {
     .name          = "signature",
     .description   = NULL_IF_CONFIG_SMALL("Calculate the MPEG-7 video signature"),
     .priv_size     = sizeof(SignatureContext),
diff --git a/libavfilter/vf_smartblur.c b/libavfilter/vf_smartblur.c
index 1955ac43d8..36ed72a12c 100644
--- a/libavfilter/vf_smartblur.c
+++ b/libavfilter/vf_smartblur.c
@@ -291,7 +291,7 @@ static const AVFilterPad smartblur_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_smartblur = {
+const AVFilter ff_vf_smartblur = {
     .name          = "smartblur",
     .description   = NULL_IF_CONFIG_SMALL("Blur the input video without impacting the outlines."),
     .priv_size     = sizeof(SmartblurContext),
diff --git a/libavfilter/vf_spp.c b/libavfilter/vf_spp.c
index c548d86d72..d93c4a5606 100644
--- a/libavfilter/vf_spp.c
+++ b/libavfilter/vf_spp.c
@@ -510,7 +510,7 @@ static const AVFilterPad spp_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_spp = {
+const AVFilter ff_vf_spp = {
     .name            = "spp",
     .description     = NULL_IF_CONFIG_SMALL("Apply a simple post processing filter."),
     .priv_size       = sizeof(SPPContext),
diff --git a/libavfilter/vf_sr.c b/libavfilter/vf_sr.c
index 45f941acdb..4360439ca6 100644
--- a/libavfilter/vf_sr.c
+++ b/libavfilter/vf_sr.c
@@ -193,7 +193,7 @@ static const AVFilterPad sr_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_sr = {
+const AVFilter ff_vf_sr = {
     .name          = "sr",
     .description   = NULL_IF_CONFIG_SMALL("Apply DNN-based image super resolution to the input."),
     .priv_size     = sizeof(SRContext),
diff --git a/libavfilter/vf_ssim.c b/libavfilter/vf_ssim.c
index ebb314c69f..e004b36e76 100644
--- a/libavfilter/vf_ssim.c
+++ b/libavfilter/vf_ssim.c
@@ -593,7 +593,7 @@ static const AVFilterPad ssim_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_ssim = {
+const AVFilter ff_vf_ssim = {
     .name          = "ssim",
     .description   = NULL_IF_CONFIG_SMALL("Calculate the SSIM between two video streams."),
     .preinit       = ssim_framesync_preinit,
diff --git a/libavfilter/vf_stack.c b/libavfilter/vf_stack.c
index 3d2b19a318..3368e25c9c 100644
--- a/libavfilter/vf_stack.c
+++ b/libavfilter/vf_stack.c
@@ -409,7 +409,7 @@ static const AVFilterPad outputs[] = {
 #define hstack_options stack_options
 AVFILTER_DEFINE_CLASS(hstack);
 
-AVFilter ff_vf_hstack = {
+const AVFilter ff_vf_hstack = {
     .name          = "hstack",
     .description   = NULL_IF_CONFIG_SMALL("Stack video inputs horizontally."),
     .priv_size     = sizeof(StackContext),
@@ -429,7 +429,7 @@ AVFilter ff_vf_hstack = {
 #define vstack_options stack_options
 AVFILTER_DEFINE_CLASS(vstack);
 
-AVFilter ff_vf_vstack = {
+const AVFilter ff_vf_vstack = {
     .name          = "vstack",
     .description   = NULL_IF_CONFIG_SMALL("Stack video inputs vertically."),
     .priv_size     = sizeof(StackContext),
@@ -456,7 +456,7 @@ static const AVOption xstack_options[] = {
 
 AVFILTER_DEFINE_CLASS(xstack);
 
-AVFilter ff_vf_xstack = {
+const AVFilter ff_vf_xstack = {
     .name          = "xstack",
     .description   = NULL_IF_CONFIG_SMALL("Stack video inputs into custom layout."),
     .priv_size     = sizeof(StackContext),
diff --git a/libavfilter/vf_stereo3d.c b/libavfilter/vf_stereo3d.c
index ff17b07c3d..ec7d410f76 100644
--- a/libavfilter/vf_stereo3d.c
+++ b/libavfilter/vf_stereo3d.c
@@ -1112,7 +1112,7 @@ static const AVFilterPad stereo3d_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_stereo3d = {
+const AVFilter ff_vf_stereo3d = {
     .name          = "stereo3d",
     .description   = NULL_IF_CONFIG_SMALL("Convert video stereoscopic 3D view."),
     .priv_size     = sizeof(Stereo3DContext),
diff --git a/libavfilter/vf_subtitles.c b/libavfilter/vf_subtitles.c
index de74afa2b7..493eb5f424 100644
--- a/libavfilter/vf_subtitles.c
+++ b/libavfilter/vf_subtitles.c
@@ -246,7 +246,7 @@ static av_cold int init_ass(AVFilterContext *ctx)
     return 0;
 }
 
-AVFilter ff_vf_ass = {
+const AVFilter ff_vf_ass = {
     .name          = "ass",
     .description   = NULL_IF_CONFIG_SMALL("Render ASS subtitles onto input video using the libass library."),
     .priv_size     = sizeof(AssContext),
@@ -480,7 +480,7 @@ end:
     return ret;
 }
 
-AVFilter ff_vf_subtitles = {
+const AVFilter ff_vf_subtitles = {
     .name          = "subtitles",
     .description   = NULL_IF_CONFIG_SMALL("Render text subtitles onto input video using the libass library."),
     .priv_size     = sizeof(AssContext),
diff --git a/libavfilter/vf_super2xsai.c b/libavfilter/vf_super2xsai.c
index d6c5f44c17..00e88eafe3 100644
--- a/libavfilter/vf_super2xsai.c
+++ b/libavfilter/vf_super2xsai.c
@@ -359,7 +359,7 @@ static const AVFilterPad super2xsai_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_super2xsai = {
+const AVFilter ff_vf_super2xsai = {
     .name          = "super2xsai",
     .description   = NULL_IF_CONFIG_SMALL("Scale the input by 2x using the Super2xSaI pixel art algorithm."),
     .priv_size     = sizeof(Super2xSaIContext),
diff --git a/libavfilter/vf_swaprect.c b/libavfilter/vf_swaprect.c
index 66bed161f4..3b96790798 100644
--- a/libavfilter/vf_swaprect.c
+++ b/libavfilter/vf_swaprect.c
@@ -243,7 +243,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_swaprect = {
+const AVFilter ff_vf_swaprect = {
     .name          = "swaprect",
     .description   = NULL_IF_CONFIG_SMALL("Swap 2 rectangular objects in video."),
     .priv_size     = sizeof(SwapRectContext),
diff --git a/libavfilter/vf_swapuv.c b/libavfilter/vf_swapuv.c
index 720e699c4a..34868eb0c9 100644
--- a/libavfilter/vf_swapuv.c
+++ b/libavfilter/vf_swapuv.c
@@ -111,7 +111,7 @@ static const AVFilterPad swapuv_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_swapuv = {
+const AVFilter ff_vf_swapuv = {
     .name          = "swapuv",
     .description   = NULL_IF_CONFIG_SMALL("Swap U and V components."),
     .query_formats = query_formats,
diff --git a/libavfilter/vf_telecine.c b/libavfilter/vf_telecine.c
index 6563b49725..52a3f2f353 100644
--- a/libavfilter/vf_telecine.c
+++ b/libavfilter/vf_telecine.c
@@ -287,7 +287,7 @@ static const AVFilterPad telecine_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_telecine = {
+const AVFilter ff_vf_telecine = {
     .name          = "telecine",
     .description   = NULL_IF_CONFIG_SMALL("Apply a telecine pattern."),
     .priv_size     = sizeof(TelecineContext),
diff --git a/libavfilter/vf_threshold.c b/libavfilter/vf_threshold.c
index 11623d394e..decfbf8564 100644
--- a/libavfilter/vf_threshold.c
+++ b/libavfilter/vf_threshold.c
@@ -354,7 +354,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_threshold = {
+const AVFilter ff_vf_threshold = {
     .name          = "threshold",
     .description   = NULL_IF_CONFIG_SMALL("Threshold first video stream using other video streams."),
     .priv_size     = sizeof(ThresholdContext),
diff --git a/libavfilter/vf_thumbnail.c b/libavfilter/vf_thumbnail.c
index e49b70c3b3..825e536e67 100644
--- a/libavfilter/vf_thumbnail.c
+++ b/libavfilter/vf_thumbnail.c
@@ -287,7 +287,7 @@ static const AVFilterPad thumbnail_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_thumbnail = {
+const AVFilter ff_vf_thumbnail = {
     .name          = "thumbnail",
     .description   = NULL_IF_CONFIG_SMALL("Select the most representative frame in a given sequence of consecutive frames."),
     .priv_size     = sizeof(ThumbContext),
diff --git a/libavfilter/vf_thumbnail_cuda.c b/libavfilter/vf_thumbnail_cuda.c
index 0c06815643..aab3ea8cc7 100644
--- a/libavfilter/vf_thumbnail_cuda.c
+++ b/libavfilter/vf_thumbnail_cuda.c
@@ -440,7 +440,7 @@ static const AVFilterPad thumbnail_cuda_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_thumbnail_cuda = {
+const AVFilter ff_vf_thumbnail_cuda = {
     .name          = "thumbnail_cuda",
     .description   = NULL_IF_CONFIG_SMALL("Select the most representative frame in a given sequence of consecutive frames."),
     .priv_size     = sizeof(ThumbnailCudaContext),
diff --git a/libavfilter/vf_tile.c b/libavfilter/vf_tile.c
index 7e421a9721..11392169e4 100644
--- a/libavfilter/vf_tile.c
+++ b/libavfilter/vf_tile.c
@@ -285,7 +285,7 @@ static const AVFilterPad tile_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_tile = {
+const AVFilter ff_vf_tile = {
     .name          = "tile",
     .description   = NULL_IF_CONFIG_SMALL("Tile several successive frames together."),
     .init          = init,
diff --git a/libavfilter/vf_tinterlace.c b/libavfilter/vf_tinterlace.c
index 542b66898e..40d8879871 100644
--- a/libavfilter/vf_tinterlace.c
+++ b/libavfilter/vf_tinterlace.c
@@ -555,7 +555,7 @@ static const AVFilterPad tinterlace_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_tinterlace = {
+const AVFilter ff_vf_tinterlace = {
     .name          = "tinterlace",
     .description   = NULL_IF_CONFIG_SMALL("Perform temporal field interlacing."),
     .priv_size     = sizeof(TInterlaceContext),
@@ -567,7 +567,7 @@ AVFilter ff_vf_tinterlace = {
 };
 
 
-AVFilter ff_vf_interlace = {
+const AVFilter ff_vf_interlace = {
     .name          = "interlace",
     .description   = NULL_IF_CONFIG_SMALL("Convert progressive video into interlaced."),
     .priv_size     = sizeof(TInterlaceContext),
diff --git a/libavfilter/vf_tmidequalizer.c b/libavfilter/vf_tmidequalizer.c
index 6e3f3ccce1..24e1d557e2 100644
--- a/libavfilter/vf_tmidequalizer.c
+++ b/libavfilter/vf_tmidequalizer.c
@@ -427,7 +427,7 @@ static const AVFilterPad tmidequalizer_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_tmidequalizer = {
+const AVFilter ff_vf_tmidequalizer = {
     .name          = "tmidequalizer",
     .description   = NULL_IF_CONFIG_SMALL("Apply Temporal Midway Equalization."),
     .priv_size     = sizeof(TMidEqualizerContext),
diff --git a/libavfilter/vf_tonemap.c b/libavfilter/vf_tonemap.c
index d1728c8513..4d04118eac 100644
--- a/libavfilter/vf_tonemap.c
+++ b/libavfilter/vf_tonemap.c
@@ -334,7 +334,7 @@ static const AVFilterPad tonemap_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_tonemap = {
+const AVFilter ff_vf_tonemap = {
     .name            = "tonemap",
     .description     = NULL_IF_CONFIG_SMALL("Conversion to/from different dynamic ranges."),
     .init            = init,
diff --git a/libavfilter/vf_tonemap_opencl.c b/libavfilter/vf_tonemap_opencl.c
index 2681ebd1b5..e85b3bb3ba 100644
--- a/libavfilter/vf_tonemap_opencl.c
+++ b/libavfilter/vf_tonemap_opencl.c
@@ -540,7 +540,7 @@ static const AVFilterPad tonemap_opencl_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_tonemap_opencl = {
+const AVFilter ff_vf_tonemap_opencl = {
     .name           = "tonemap_opencl",
     .description    = NULL_IF_CONFIG_SMALL("Perform HDR to SDR conversion with tonemapping."),
     .priv_size      = sizeof(TonemapOpenCLContext),
diff --git a/libavfilter/vf_tonemap_vaapi.c b/libavfilter/vf_tonemap_vaapi.c
index 2f41b90424..179f7d77b9 100644
--- a/libavfilter/vf_tonemap_vaapi.c
+++ b/libavfilter/vf_tonemap_vaapi.c
@@ -405,7 +405,7 @@ static const AVFilterPad tonemap_vaapi_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_tonemap_vaapi = {
+const AVFilter ff_vf_tonemap_vaapi = {
     .name           = "tonemap_vaapi",
     .description    = NULL_IF_CONFIG_SMALL("VAAPI VPP for tone-mapping"),
     .priv_size      = sizeof(HDRVAAPIContext),
diff --git a/libavfilter/vf_tpad.c b/libavfilter/vf_tpad.c
index 0cd65d3e7b..2d89537abd 100644
--- a/libavfilter/vf_tpad.c
+++ b/libavfilter/vf_tpad.c
@@ -205,7 +205,7 @@ static const AVFilterPad tpad_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_tpad = {
+const AVFilter ff_vf_tpad = {
     .name          = "tpad",
     .description   = NULL_IF_CONFIG_SMALL("Temporarily pad video frames."),
     .priv_size     = sizeof(TPadContext),
diff --git a/libavfilter/vf_transpose.c b/libavfilter/vf_transpose.c
index cb49c4a301..6affbed0a6 100644
--- a/libavfilter/vf_transpose.c
+++ b/libavfilter/vf_transpose.c
@@ -397,7 +397,7 @@ static const AVFilterPad avfilter_vf_transpose_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_transpose = {
+const AVFilter ff_vf_transpose = {
     .name          = "transpose",
     .description   = NULL_IF_CONFIG_SMALL("Transpose input video."),
     .priv_size     = sizeof(TransContext),
diff --git a/libavfilter/vf_transpose_npp.c b/libavfilter/vf_transpose_npp.c
index 3ea031667c..2a68a832ff 100644
--- a/libavfilter/vf_transpose_npp.c
+++ b/libavfilter/vf_transpose_npp.c
@@ -473,7 +473,7 @@ static const AVFilterPad npptranspose_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_transpose_npp = {
+const AVFilter ff_vf_transpose_npp = {
     .name           = "transpose_npp",
     .description    = NULL_IF_CONFIG_SMALL("NVIDIA Performance Primitives video transpose"),
     .init           = npptranspose_init,
diff --git a/libavfilter/vf_transpose_opencl.c b/libavfilter/vf_transpose_opencl.c
index dd678e91cd..f325d6633b 100644
--- a/libavfilter/vf_transpose_opencl.c
+++ b/libavfilter/vf_transpose_opencl.c
@@ -274,7 +274,7 @@ static const AVFilterPad transpose_opencl_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_transpose_opencl = {
+const AVFilter ff_vf_transpose_opencl = {
     .name           = "transpose_opencl",
     .description    = NULL_IF_CONFIG_SMALL("Transpose input video"),
     .priv_size      = sizeof(TransposeOpenCLContext),
diff --git a/libavfilter/vf_transpose_vaapi.c b/libavfilter/vf_transpose_vaapi.c
index a4c654266d..3b29767c8d 100644
--- a/libavfilter/vf_transpose_vaapi.c
+++ b/libavfilter/vf_transpose_vaapi.c
@@ -274,7 +274,7 @@ static const AVFilterPad transpose_vaapi_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_transpose_vaapi = {
+const AVFilter ff_vf_transpose_vaapi = {
     .name           = "transpose_vaapi",
     .description    = NULL_IF_CONFIG_SMALL("VAAPI VPP for transpose"),
     .priv_size      = sizeof(TransposeVAAPIContext),
diff --git a/libavfilter/vf_unsharp.c b/libavfilter/vf_unsharp.c
index 198dbbaa51..0bf72169a9 100644
--- a/libavfilter/vf_unsharp.c
+++ b/libavfilter/vf_unsharp.c
@@ -356,7 +356,7 @@ static const AVFilterPad avfilter_vf_unsharp_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_unsharp = {
+const AVFilter ff_vf_unsharp = {
     .name          = "unsharp",
     .description   = NULL_IF_CONFIG_SMALL("Sharpen or blur the input video."),
     .priv_size     = sizeof(UnsharpContext),
diff --git a/libavfilter/vf_unsharp_opencl.c b/libavfilter/vf_unsharp_opencl.c
index d76d1b1733..200350de9f 100644
--- a/libavfilter/vf_unsharp_opencl.c
+++ b/libavfilter/vf_unsharp_opencl.c
@@ -398,7 +398,7 @@ static const AVFilterPad unsharp_opencl_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_unsharp_opencl = {
+const AVFilter ff_vf_unsharp_opencl = {
     .name           = "unsharp_opencl",
     .description    = NULL_IF_CONFIG_SMALL("Apply unsharp mask to input video"),
     .priv_size      = sizeof(UnsharpOpenCLContext),
diff --git a/libavfilter/vf_untile.c b/libavfilter/vf_untile.c
index 154b92d08c..9035e819d4 100644
--- a/libavfilter/vf_untile.c
+++ b/libavfilter/vf_untile.c
@@ -184,7 +184,7 @@ static const AVFilterPad untile_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_untile = {
+const AVFilter ff_vf_untile = {
     .name          = "untile",
     .description   = NULL_IF_CONFIG_SMALL("Untile a frame into a sequence of frames."),
     .init          = init,
diff --git a/libavfilter/vf_uspp.c b/libavfilter/vf_uspp.c
index ba07181e74..b70d48e515 100644
--- a/libavfilter/vf_uspp.c
+++ b/libavfilter/vf_uspp.c
@@ -493,7 +493,7 @@ static const AVFilterPad uspp_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_uspp = {
+const AVFilter ff_vf_uspp = {
     .name            = "uspp",
     .description     = NULL_IF_CONFIG_SMALL("Apply Ultra Simple / Slow Post-processing filter."),
     .priv_size       = sizeof(USPPContext),
diff --git a/libavfilter/vf_v360.c b/libavfilter/vf_v360.c
index 053ea8868e..c47a4015e8 100644
--- a/libavfilter/vf_v360.c
+++ b/libavfilter/vf_v360.c
@@ -4857,7 +4857,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_v360 = {
+const AVFilter ff_vf_v360 = {
     .name          = "v360",
     .description   = NULL_IF_CONFIG_SMALL("Convert 360 projection of video."),
     .priv_size     = sizeof(V360Context),
diff --git a/libavfilter/vf_vaguedenoiser.c b/libavfilter/vf_vaguedenoiser.c
index b510cdd628..481fc774e5 100644
--- a/libavfilter/vf_vaguedenoiser.c
+++ b/libavfilter/vf_vaguedenoiser.c
@@ -610,7 +610,7 @@ static const AVFilterPad vaguedenoiser_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_vaguedenoiser = {
+const AVFilter ff_vf_vaguedenoiser = {
     .name          = "vaguedenoiser",
     .description   = NULL_IF_CONFIG_SMALL("Apply a Wavelet based Denoiser."),
     .priv_size     = sizeof(VagueDenoiserContext),
diff --git a/libavfilter/vf_vectorscope.c b/libavfilter/vf_vectorscope.c
index e51f8191fd..0669230890 100644
--- a/libavfilter/vf_vectorscope.c
+++ b/libavfilter/vf_vectorscope.c
@@ -1587,7 +1587,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_vectorscope = {
+const AVFilter ff_vf_vectorscope = {
     .name          = "vectorscope",
     .description   = NULL_IF_CONFIG_SMALL("Video vectorscope."),
     .priv_size     = sizeof(VectorscopeContext),
diff --git a/libavfilter/vf_vflip.c b/libavfilter/vf_vflip.c
index 1de3dc5dac..95a693a7e1 100644
--- a/libavfilter/vf_vflip.c
+++ b/libavfilter/vf_vflip.c
@@ -144,7 +144,7 @@ static const AVFilterPad avfilter_vf_vflip_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_vflip = {
+const AVFilter ff_vf_vflip = {
     .name        = "vflip",
     .description = NULL_IF_CONFIG_SMALL("Flip the input video vertically."),
     .priv_size   = sizeof(FlipContext),
diff --git a/libavfilter/vf_vfrdet.c b/libavfilter/vf_vfrdet.c
index abfa19cdcd..7e37036aef 100644
--- a/libavfilter/vf_vfrdet.c
+++ b/libavfilter/vf_vfrdet.c
@@ -104,7 +104,7 @@ static const AVFilterPad vfrdet_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_vfrdet = {
+const AVFilter ff_vf_vfrdet = {
     .name        = "vfrdet",
     .description = NULL_IF_CONFIG_SMALL("Variable frame rate detect filter."),
     .priv_size   = sizeof(VFRDETContext),
diff --git a/libavfilter/vf_vibrance.c b/libavfilter/vf_vibrance.c
index edea521b16..cca677ee78 100644
--- a/libavfilter/vf_vibrance.c
+++ b/libavfilter/vf_vibrance.c
@@ -378,7 +378,7 @@ static const AVOption vibrance_options[] = {
 
 AVFILTER_DEFINE_CLASS(vibrance);
 
-AVFilter ff_vf_vibrance = {
+const AVFilter ff_vf_vibrance = {
     .name          = "vibrance",
     .description   = NULL_IF_CONFIG_SMALL("Boost or alter saturation."),
     .priv_size     = sizeof(VibranceContext),
diff --git a/libavfilter/vf_vidstabdetect.c b/libavfilter/vf_vidstabdetect.c
index fd7ff3be24..475d0381bc 100644
--- a/libavfilter/vf_vidstabdetect.c
+++ b/libavfilter/vf_vidstabdetect.c
@@ -207,7 +207,7 @@ static const AVFilterPad avfilter_vf_vidstabdetect_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_vidstabdetect = {
+const AVFilter ff_vf_vidstabdetect = {
     .name          = "vidstabdetect",
     .description   = NULL_IF_CONFIG_SMALL("Extract relative transformations, "
                                           "pass 1 of 2 for stabilization "
diff --git a/libavfilter/vf_vidstabtransform.c b/libavfilter/vf_vidstabtransform.c
index d1ec1391cb..79e62c1f58 100644
--- a/libavfilter/vf_vidstabtransform.c
+++ b/libavfilter/vf_vidstabtransform.c
@@ -308,7 +308,7 @@ static const AVFilterPad avfilter_vf_vidstabtransform_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_vidstabtransform = {
+const AVFilter ff_vf_vidstabtransform = {
     .name          = "vidstabtransform",
     .description   = NULL_IF_CONFIG_SMALL("Transform the frames, "
                                           "pass 2 of 2 for stabilization "
diff --git a/libavfilter/vf_vif.c b/libavfilter/vf_vif.c
index 0248210643..a136d038fb 100644
--- a/libavfilter/vf_vif.c
+++ b/libavfilter/vf_vif.c
@@ -643,7 +643,7 @@ static const AVFilterPad vif_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_vif = {
+const AVFilter ff_vf_vif = {
     .name          = "vif",
     .description   = NULL_IF_CONFIG_SMALL("Calculate the VIF between two video streams."),
     .uninit        = uninit,
diff --git a/libavfilter/vf_vignette.c b/libavfilter/vf_vignette.c
index ecb04a9643..e5842b19da 100644
--- a/libavfilter/vf_vignette.c
+++ b/libavfilter/vf_vignette.c
@@ -342,7 +342,7 @@ static const AVFilterPad vignette_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_vignette = {
+const AVFilter ff_vf_vignette = {
     .name          = "vignette",
     .description   = NULL_IF_CONFIG_SMALL("Make or reverse a vignette effect."),
     .priv_size     = sizeof(VignetteContext),
diff --git a/libavfilter/vf_vmafmotion.c b/libavfilter/vf_vmafmotion.c
index 88d0b35095..2db4783d8d 100644
--- a/libavfilter/vf_vmafmotion.c
+++ b/libavfilter/vf_vmafmotion.c
@@ -355,7 +355,7 @@ static const AVFilterPad vmafmotion_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_vmafmotion = {
+const AVFilter ff_vf_vmafmotion = {
     .name          = "vmafmotion",
     .description   = NULL_IF_CONFIG_SMALL("Calculate the VMAF Motion score."),
     .init          = init,
diff --git a/libavfilter/vf_vpp_qsv.c b/libavfilter/vf_vpp_qsv.c
index d9c27ce43e..b9ab5c6490 100644
--- a/libavfilter/vf_vpp_qsv.c
+++ b/libavfilter/vf_vpp_qsv.c
@@ -591,7 +591,7 @@ static const AVFilterPad vpp_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_vpp_qsv = {
+const AVFilter ff_vf_vpp_qsv = {
     .name          = "vpp_qsv",
     .description   = NULL_IF_CONFIG_SMALL("Quick Sync Video VPP."),
     .priv_size     = sizeof(VPPContext),
diff --git a/libavfilter/vf_w3fdif.c b/libavfilter/vf_w3fdif.c
index 1a64b2b953..c13c17e3ed 100644
--- a/libavfilter/vf_w3fdif.c
+++ b/libavfilter/vf_w3fdif.c
@@ -615,7 +615,7 @@ static const AVFilterPad w3fdif_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_w3fdif = {
+const AVFilter ff_vf_w3fdif = {
     .name          = "w3fdif",
     .description   = NULL_IF_CONFIG_SMALL("Apply Martin Weston three field deinterlace."),
     .priv_size     = sizeof(W3FDIFContext),
diff --git a/libavfilter/vf_waveform.c b/libavfilter/vf_waveform.c
index 8191da2792..2fa1815d6c 100644
--- a/libavfilter/vf_waveform.c
+++ b/libavfilter/vf_waveform.c
@@ -3490,7 +3490,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_waveform = {
+const AVFilter ff_vf_waveform = {
     .name          = "waveform",
     .description   = NULL_IF_CONFIG_SMALL("Video waveform monitor."),
     .priv_size     = sizeof(WaveformContext),
diff --git a/libavfilter/vf_weave.c b/libavfilter/vf_weave.c
index 6139844b20..98b8d0bd06 100644
--- a/libavfilter/vf_weave.c
+++ b/libavfilter/vf_weave.c
@@ -190,7 +190,7 @@ static const AVFilterPad weave_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_weave = {
+const AVFilter ff_vf_weave = {
     .name          = "weave",
     .description   = NULL_IF_CONFIG_SMALL("Weave input video fields into frames."),
     .priv_size     = sizeof(WeaveContext),
@@ -215,7 +215,7 @@ static av_cold int init(AVFilterContext *ctx)
 #define doubleweave_options weave_options
 AVFILTER_DEFINE_CLASS(doubleweave);
 
-AVFilter ff_vf_doubleweave = {
+const AVFilter ff_vf_doubleweave = {
     .name          = "doubleweave",
     .description   = NULL_IF_CONFIG_SMALL("Weave input video fields into double number of frames."),
     .priv_size     = sizeof(WeaveContext),
diff --git a/libavfilter/vf_xbr.c b/libavfilter/vf_xbr.c
index a381be4553..7226c03783 100644
--- a/libavfilter/vf_xbr.c
+++ b/libavfilter/vf_xbr.c
@@ -425,7 +425,7 @@ static const AVFilterPad xbr_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_xbr = {
+const AVFilter ff_vf_xbr = {
     .name          = "xbr",
     .description   = NULL_IF_CONFIG_SMALL("Scale the input using xBR algorithm."),
     .inputs        = xbr_inputs,
diff --git a/libavfilter/vf_xfade.c b/libavfilter/vf_xfade.c
index cb4fae21d9..2e075cfb9a 100644
--- a/libavfilter/vf_xfade.c
+++ b/libavfilter/vf_xfade.c
@@ -1956,7 +1956,7 @@ static const AVFilterPad xfade_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_xfade = {
+const AVFilter ff_vf_xfade = {
     .name          = "xfade",
     .description   = NULL_IF_CONFIG_SMALL("Cross fade one video with another video."),
     .priv_size     = sizeof(XFadeContext),
diff --git a/libavfilter/vf_xfade_opencl.c b/libavfilter/vf_xfade_opencl.c
index 4736043147..23c084546d 100644
--- a/libavfilter/vf_xfade_opencl.c
+++ b/libavfilter/vf_xfade_opencl.c
@@ -424,7 +424,7 @@ static const AVFilterPad xfade_opencl_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_xfade_opencl = {
+const AVFilter ff_vf_xfade_opencl = {
     .name            = "xfade_opencl",
     .description     = NULL_IF_CONFIG_SMALL("Cross fade one video with another video."),
     .priv_size       = sizeof(XFadeOpenCLContext),
diff --git a/libavfilter/vf_xmedian.c b/libavfilter/vf_xmedian.c
index 8b6dd69709..168a5944db 100644
--- a/libavfilter/vf_xmedian.c
+++ b/libavfilter/vf_xmedian.c
@@ -391,7 +391,7 @@ static const AVFilterPad outputs[] = {
 #if CONFIG_XMEDIAN_FILTER
 FRAMESYNC_DEFINE_CLASS(xmedian, XMedianContext, fs);
 
-AVFilter ff_vf_xmedian = {
+const AVFilter ff_vf_xmedian = {
     .name          = "xmedian",
     .description   = NULL_IF_CONFIG_SMALL("Pick median pixels from several video inputs."),
     .priv_size     = sizeof(XMedianContext),
@@ -475,7 +475,7 @@ static const AVFilterPad tmedian_outputs[] = {
 
 AVFILTER_DEFINE_CLASS(tmedian);
 
-AVFilter ff_vf_tmedian = {
+const AVFilter ff_vf_tmedian = {
     .name          = "tmedian",
     .description   = NULL_IF_CONFIG_SMALL("Pick median pixels from successive frames."),
     .priv_size     = sizeof(XMedianContext),
diff --git a/libavfilter/vf_yadif.c b/libavfilter/vf_yadif.c
index 43dea67add..a6942a2aa2 100644
--- a/libavfilter/vf_yadif.c
+++ b/libavfilter/vf_yadif.c
@@ -351,7 +351,7 @@ static const AVFilterPad avfilter_vf_yadif_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_yadif = {
+const AVFilter ff_vf_yadif = {
     .name          = "yadif",
     .description   = NULL_IF_CONFIG_SMALL("Deinterlace the input image."),
     .priv_size     = sizeof(YADIFContext),
diff --git a/libavfilter/vf_yadif_cuda.c b/libavfilter/vf_yadif_cuda.c
index 3841c5f0d4..4e41c8b554 100644
--- a/libavfilter/vf_yadif_cuda.c
+++ b/libavfilter/vf_yadif_cuda.c
@@ -373,7 +373,7 @@ static const AVFilterPad deint_cuda_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_yadif_cuda = {
+const AVFilter ff_vf_yadif_cuda = {
     .name           = "yadif_cuda",
     .description    = NULL_IF_CONFIG_SMALL("Deinterlace CUDA frames"),
     .priv_size      = sizeof(DeintCUDAContext),
diff --git a/libavfilter/vf_yaepblur.c b/libavfilter/vf_yaepblur.c
index 7c9aa7a1f4..3380f7112a 100644
--- a/libavfilter/vf_yaepblur.c
+++ b/libavfilter/vf_yaepblur.c
@@ -335,7 +335,7 @@ static const AVOption yaepblur_options[] = {
 
 AVFILTER_DEFINE_CLASS(yaepblur);
 
-AVFilter ff_vf_yaepblur = {
+const AVFilter ff_vf_yaepblur = {
     .name            = "yaepblur",
     .description     = NULL_IF_CONFIG_SMALL("Yet another edge preserving blur filter."),
     .priv_size       = sizeof(YAEPContext),
diff --git a/libavfilter/vf_zoompan.c b/libavfilter/vf_zoompan.c
index d9d53decf4..e18ebb4f11 100644
--- a/libavfilter/vf_zoompan.c
+++ b/libavfilter/vf_zoompan.c
@@ -377,7 +377,7 @@ static const AVFilterPad outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_zoompan = {
+const AVFilter ff_vf_zoompan = {
     .name          = "zoompan",
     .description   = NULL_IF_CONFIG_SMALL("Apply Zoom & Pan effect."),
     .priv_size     = sizeof(ZPContext),
diff --git a/libavfilter/vf_zscale.c b/libavfilter/vf_zscale.c
index c18a161ab4..f77aa720c4 100644
--- a/libavfilter/vf_zscale.c
+++ b/libavfilter/vf_zscale.c
@@ -927,7 +927,7 @@ static const AVFilterPad avfilter_vf_zscale_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vf_zscale = {
+const AVFilter ff_vf_zscale = {
     .name            = "zscale",
     .description     = NULL_IF_CONFIG_SMALL("Apply resizing, colorspace and bit depth conversion."),
     .init_dict       = init_dict,
diff --git a/libavfilter/vsink_nullsink.c b/libavfilter/vsink_nullsink.c
index 060a5a371f..1c796b7cb8 100644
--- a/libavfilter/vsink_nullsink.c
+++ b/libavfilter/vsink_nullsink.c
@@ -35,7 +35,7 @@ static const AVFilterPad avfilter_vsink_nullsink_inputs[] = {
     { NULL },
 };
 
-AVFilter ff_vsink_nullsink = {
+const AVFilter ff_vsink_nullsink = {
     .name        = "nullsink",
     .description = NULL_IF_CONFIG_SMALL("Do absolutely nothing with the input video."),
     .priv_size   = 0,
diff --git a/libavfilter/vsrc_cellauto.c b/libavfilter/vsrc_cellauto.c
index 6fd812c54f..250c88c8da 100644
--- a/libavfilter/vsrc_cellauto.c
+++ b/libavfilter/vsrc_cellauto.c
@@ -327,7 +327,7 @@ static const AVFilterPad cellauto_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vsrc_cellauto = {
+const AVFilter ff_vsrc_cellauto = {
     .name          = "cellauto",
     .description   = NULL_IF_CONFIG_SMALL("Create pattern generated by an elementary cellular automaton."),
     .priv_size     = sizeof(CellAutoContext),
diff --git a/libavfilter/vsrc_gradients.c b/libavfilter/vsrc_gradients.c
index b05ad5bf9a..904baf1360 100644
--- a/libavfilter/vsrc_gradients.c
+++ b/libavfilter/vsrc_gradients.c
@@ -298,7 +298,7 @@ static const AVFilterPad gradients_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vsrc_gradients = {
+const AVFilter ff_vsrc_gradients = {
     .name          = "gradients",
     .description   = NULL_IF_CONFIG_SMALL("Draw a gradients."),
     .priv_size     = sizeof(GradientsContext),
diff --git a/libavfilter/vsrc_life.c b/libavfilter/vsrc_life.c
index 6218eb1ae6..ca12f294b8 100644
--- a/libavfilter/vsrc_life.c
+++ b/libavfilter/vsrc_life.c
@@ -441,7 +441,7 @@ static const AVFilterPad life_outputs[] = {
     { NULL}
 };
 
-AVFilter ff_vsrc_life = {
+const AVFilter ff_vsrc_life = {
     .name          = "life",
     .description   = NULL_IF_CONFIG_SMALL("Create life."),
     .priv_size     = sizeof(LifeContext),
diff --git a/libavfilter/vsrc_mandelbrot.c b/libavfilter/vsrc_mandelbrot.c
index 761c915103..88c14f0d48 100644
--- a/libavfilter/vsrc_mandelbrot.c
+++ b/libavfilter/vsrc_mandelbrot.c
@@ -419,7 +419,7 @@ static const AVFilterPad mandelbrot_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vsrc_mandelbrot = {
+const AVFilter ff_vsrc_mandelbrot = {
     .name          = "mandelbrot",
     .description   = NULL_IF_CONFIG_SMALL("Render a Mandelbrot fractal."),
     .priv_size     = sizeof(MBContext),
diff --git a/libavfilter/vsrc_mptestsrc.c b/libavfilter/vsrc_mptestsrc.c
index 2ea736b0b2..8aa75a24ac 100644
--- a/libavfilter/vsrc_mptestsrc.c
+++ b/libavfilter/vsrc_mptestsrc.c
@@ -357,7 +357,7 @@ static const AVFilterPad mptestsrc_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vsrc_mptestsrc = {
+const AVFilter ff_vsrc_mptestsrc = {
     .name          = "mptestsrc",
     .description   = NULL_IF_CONFIG_SMALL("Generate various test pattern."),
     .priv_size     = sizeof(MPTestContext),
diff --git a/libavfilter/vsrc_sierpinski.c b/libavfilter/vsrc_sierpinski.c
index 49d4cdfa95..7db4852892 100644
--- a/libavfilter/vsrc_sierpinski.c
+++ b/libavfilter/vsrc_sierpinski.c
@@ -223,7 +223,7 @@ static const AVFilterPad sierpinski_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vsrc_sierpinski = {
+const AVFilter ff_vsrc_sierpinski = {
     .name          = "sierpinski",
     .description   = NULL_IF_CONFIG_SMALL("Render a Sierpinski fractal."),
     .priv_size     = sizeof(SierpinskiContext),
diff --git a/libavfilter/vsrc_testsrc.c b/libavfilter/vsrc_testsrc.c
index 7899c843c8..0ced726f5e 100644
--- a/libavfilter/vsrc_testsrc.c
+++ b/libavfilter/vsrc_testsrc.c
@@ -266,7 +266,7 @@ static const AVFilterPad color_outputs[] = {
     {  NULL }
 };
 
-AVFilter ff_vsrc_color = {
+const AVFilter ff_vsrc_color = {
     .name            = "color",
     .description     = NULL_IF_CONFIG_SMALL("Provide an uniformly colored input."),
     .priv_class      = &color_class,
@@ -400,7 +400,7 @@ static const AVFilterPad haldclutsrc_outputs[] = {
     {  NULL }
 };
 
-AVFilter ff_vsrc_haldclutsrc = {
+const AVFilter ff_vsrc_haldclutsrc = {
     .name          = "haldclutsrc",
     .description   = NULL_IF_CONFIG_SMALL("Provide an identity Hald CLUT."),
     .priv_class    = &haldclutsrc_class,
@@ -438,7 +438,7 @@ static const AVFilterPad nullsrc_outputs[] = {
     { NULL },
 };
 
-AVFilter ff_vsrc_nullsrc = {
+const AVFilter ff_vsrc_nullsrc = {
     .name        = "nullsrc",
     .description = NULL_IF_CONFIG_SMALL("Null video source, return unprocessed video frames."),
     .init        = nullsrc_init,
@@ -674,7 +674,7 @@ static const AVFilterPad avfilter_vsrc_testsrc_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vsrc_testsrc = {
+const AVFilter ff_vsrc_testsrc = {
     .name          = "testsrc",
     .description   = NULL_IF_CONFIG_SMALL("Generate test pattern."),
     .priv_size     = sizeof(TestSourceContext),
@@ -947,7 +947,7 @@ static const AVFilterPad avfilter_vsrc_testsrc2_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vsrc_testsrc2 = {
+const AVFilter ff_vsrc_testsrc2 = {
     .name          = "testsrc2",
     .description   = NULL_IF_CONFIG_SMALL("Generate another test pattern."),
     .priv_size     = sizeof(TestSourceContext),
@@ -1122,7 +1122,7 @@ static const AVFilterPad avfilter_vsrc_rgbtestsrc_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vsrc_rgbtestsrc = {
+const AVFilter ff_vsrc_rgbtestsrc = {
     .name          = "rgbtestsrc",
     .description   = NULL_IF_CONFIG_SMALL("Generate RGB test pattern."),
     .priv_size     = sizeof(TestSourceContext),
@@ -1298,7 +1298,7 @@ static const AVFilterPad avfilter_vsrc_yuvtestsrc_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vsrc_yuvtestsrc = {
+const AVFilter ff_vsrc_yuvtestsrc = {
     .name          = "yuvtestsrc",
     .description   = NULL_IF_CONFIG_SMALL("Generate YUV test pattern."),
     .priv_size     = sizeof(TestSourceContext),
@@ -1475,7 +1475,7 @@ static av_cold int pal75bars_init(AVFilterContext *ctx)
     return init(ctx);
 }
 
-AVFilter ff_vsrc_pal75bars = {
+const AVFilter ff_vsrc_pal75bars = {
     .name          = "pal75bars",
     .description   = NULL_IF_CONFIG_SMALL("Generate PAL 75% color bars."),
     .priv_size     = sizeof(TestSourceContext),
@@ -1522,7 +1522,7 @@ static av_cold int pal100bars_init(AVFilterContext *ctx)
     return init(ctx);
 }
 
-AVFilter ff_vsrc_pal100bars = {
+const AVFilter ff_vsrc_pal100bars = {
     .name          = "pal100bars",
     .description   = NULL_IF_CONFIG_SMALL("Generate PAL 100% color bars."),
     .priv_size     = sizeof(TestSourceContext),
@@ -1590,7 +1590,7 @@ static av_cold int smptebars_init(AVFilterContext *ctx)
     return init(ctx);
 }
 
-AVFilter ff_vsrc_smptebars = {
+const AVFilter ff_vsrc_smptebars = {
     .name          = "smptebars",
     .description   = NULL_IF_CONFIG_SMALL("Generate SMPTE color bars."),
     .priv_size     = sizeof(TestSourceContext),
@@ -1696,7 +1696,7 @@ static av_cold int smptehdbars_init(AVFilterContext *ctx)
     return init(ctx);
 }
 
-AVFilter ff_vsrc_smptehdbars = {
+const AVFilter ff_vsrc_smptehdbars = {
     .name          = "smptehdbars",
     .description   = NULL_IF_CONFIG_SMALL("Generate SMPTE HD color bars."),
     .priv_size     = sizeof(TestSourceContext),
@@ -1774,7 +1774,7 @@ static const AVFilterPad avfilter_vsrc_allyuv_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vsrc_allyuv = {
+const AVFilter ff_vsrc_allyuv = {
     .name          = "allyuv",
     .description   = NULL_IF_CONFIG_SMALL("Generate all yuv colors."),
     .priv_size     = sizeof(TestSourceContext),
@@ -1851,7 +1851,7 @@ static const AVFilterPad avfilter_vsrc_allrgb_outputs[] = {
     { NULL }
 };
 
-AVFilter ff_vsrc_allrgb = {
+const AVFilter ff_vsrc_allrgb = {
     .name          = "allrgb",
     .description   = NULL_IF_CONFIG_SMALL("Generate all RGB colors."),
     .priv_size     = sizeof(TestSourceContext),
