1
0
mirror of https://git.ffmpeg.org/ffmpeg.git synced 2026-10-24 02:09:03 +03:00

avfilter: declare the filters that carry no frame parameter state as handling changes

These filters never access pixel data based on the size or format of
their input link, so frames that change size or
format after the graph was configured pass through them unharmed.
Marking them keeps the common -reinit_filter 0 chains working.

Found during triage of the security report RqgTntCAW2qN.
This commit is contained in:
Michael Niedermayer
2026-09-29 04:41:06 +02:00
committed by michaelni
parent 05a2f2029d
commit 58892c922e
27 changed files with 30 additions and 0 deletions

View File

@@ -110,6 +110,7 @@ const FFFilter ff_vf_bench = {
.init = init,
FILTER_INPUTS(bench_inputs),
FILTER_OUTPUTS(ff_video_default_filterpad),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};
#endif /* CONFIG_BENCH_FILTER */

View File

@@ -108,6 +108,7 @@ const FFFilter ff_vf_cue = {
FILTER_INPUTS(ff_video_default_filterpad),
FILTER_OUTPUTS(ff_video_default_filterpad),
.activate = activate,
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};
#endif /* CONFIG_CUE_FILTER */

View File

@@ -111,6 +111,7 @@ const FFFilter ff_vf_latency = {
.activate = activate,
FILTER_INPUTS(ff_video_default_filterpad),
FILTER_OUTPUTS(ff_video_default_filterpad),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};
#endif // CONFIG_LATENCY_FILTER

View File

@@ -466,5 +466,6 @@ const FFFilter ff_vf_loop = {
.activate = activate,
FILTER_INPUTS(ff_video_default_filterpad),
FILTER_OUTPUTS(ff_video_default_filterpad),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};
#endif /* CONFIG_LOOP_FILTER */

View File

@@ -410,5 +410,6 @@ const FFFilter ff_vf_metadata = {
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(ff_video_default_filterpad),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};
#endif /* CONFIG_METADATA_FILTER */

View File

@@ -160,5 +160,6 @@ const FFFilter ff_vf_perms = {
FILTER_INPUTS(perms_inputs),
FILTER_OUTPUTS(ff_video_default_filterpad),
.process_command = ff_filter_process_command,
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};
#endif /* CONFIG_PERMS_FILTER */

View File

@@ -96,6 +96,7 @@ const FFFilter ff_vf_realtime = {
FILTER_INPUTS(avfilter_vf_realtime_inputs),
FILTER_OUTPUTS(ff_video_default_filterpad),
.process_command = ff_filter_process_command,
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};
#endif /* CONFIG_REALTIME_FILTER */

View File

@@ -155,6 +155,7 @@ const FFFilter ff_vf_reverse = {
.uninit = uninit,
FILTER_INPUTS(reverse_inputs),
FILTER_OUTPUTS(reverse_outputs),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};
#endif /* CONFIG_REVERSE_FILTER */

View File

@@ -299,6 +299,7 @@ const FFFilter ff_vf_segment = {
.priv_size = sizeof(SegmentContext),
.activate = activate,
FILTER_INPUTS(segment_inputs),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};
#endif // CONFIG_SEGMENT_FILTER

View File

@@ -610,6 +610,7 @@ const FFFilter ff_vf_sendcmd = {
.priv_size = sizeof(SendCmdContext),
FILTER_INPUTS(sendcmd_inputs),
FILTER_OUTPUTS(ff_video_default_filterpad),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};
#endif

View File

@@ -220,5 +220,6 @@ const FFFilter ff_vf_sidedata = {
.init = init,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};
#endif /* CONFIG_SIDEDATA_FILTER */

View File

@@ -350,6 +350,7 @@ const FFFilter ff_vf_setpts = {
FILTER_INPUTS(avfilter_vf_setpts_inputs),
FILTER_OUTPUTS(outputs_video),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};
#endif /* CONFIG_SETPTS_FILTER */

View File

@@ -181,6 +181,7 @@ const FFFilter ff_vf_settb = {
FILTER_INPUTS(ff_video_default_filterpad),
FILTER_OUTPUTS(avfilter_vf_settb_outputs),
.activate = activate,
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};
#endif /* CONFIG_SETTB_FILTER */

View File

@@ -133,6 +133,7 @@ const FFFilter ff_vf_split = {
.init = split_init,
.activate = activate,
FILTER_INPUTS(ff_video_default_filterpad),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};
const FFFilter ff_af_asplit = {

View File

@@ -358,6 +358,7 @@ const FFFilter ff_vf_trim = {
.priv_size = sizeof(TrimContext),
FILTER_INPUTS(trim_inputs),
FILTER_OUTPUTS(ff_video_default_filterpad),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};
#endif // CONFIG_TRIM_FILTER

View File

@@ -195,6 +195,7 @@ const FFFilter ff_vf_setdar = {
.priv_size = sizeof(AspectContext),
FILTER_INPUTS(aspect_inputs),
FILTER_OUTPUTS(avfilter_vf_setdar_outputs),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};
#endif /* CONFIG_SETDAR_FILTER */
@@ -250,6 +251,7 @@ const FFFilter ff_vf_setsar = {
.priv_size = sizeof(AspectContext),
FILTER_INPUTS(aspect_inputs),
FILTER_OUTPUTS(avfilter_vf_setsar_outputs),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};
#endif /* CONFIG_SETSAR_FILTER */

View File

@@ -95,4 +95,5 @@ const FFFilter ff_vf_ccrepack = {
.priv_size = sizeof(CCRepackContext),
FILTER_INPUTS(avfilter_vf_ccrepack_inputs),
FILTER_OUTPUTS(ff_video_default_filterpad),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};

View File

@@ -183,4 +183,5 @@ const FFFilter ff_vf_dejudder = {
FILTER_OUTPUTS(dejudder_outputs),
.init = dejudder_init,
.uninit = dejudder_uninit,
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};

View File

@@ -416,4 +416,5 @@ const FFFilter ff_vf_fps = {
.activate = activate,
FILTER_INPUTS(ff_video_default_filterpad),
FILTER_OUTPUTS(avfilter_vf_fps_outputs),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};

View File

@@ -98,4 +98,5 @@ const FFFilter ff_vf_framestep = {
.priv_size = sizeof(FrameStepContext),
FILTER_INPUTS(framestep_inputs),
FILTER_OUTPUTS(framestep_outputs),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};

View File

@@ -300,4 +300,5 @@ const FFFilter ff_vf_fsync = {
.formats_state = FF_FILTER_FORMATS_PASSTHROUGH,
FILTER_INPUTS(ff_video_default_filterpad),
FILTER_OUTPUTS(fsync_outputs),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};

View File

@@ -150,4 +150,5 @@ const FFFilter ff_vf_random = {
.uninit = uninit,
FILTER_INPUTS(random_inputs),
FILTER_OUTPUTS(random_outputs),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};

View File

@@ -234,6 +234,7 @@ const FFFilter ff_vf_setparams = {
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(ff_video_default_filterpad),
FILTER_QUERY_FUNC2(query_formats),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};
#if CONFIG_SETRANGE_FILTER
@@ -277,6 +278,7 @@ const FFFilter ff_vf_setrange = {
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(ff_video_default_filterpad),
FILTER_QUERY_FUNC2(query_formats),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};
#endif /* CONFIG_SETRANGE_FILTER */
@@ -314,5 +316,6 @@ const FFFilter ff_vf_setfield = {
.init = init_setfield,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(ff_video_default_filterpad),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};
#endif /* CONFIG_SETFIELD_FILTER */

View File

@@ -157,4 +157,5 @@ const FFFilter ff_vf_shuffleframes = {
.uninit = uninit,
FILTER_INPUTS(shuffleframes_inputs),
FILTER_OUTPUTS(ff_video_default_filterpad),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};

View File

@@ -250,4 +250,5 @@ const FFFilter ff_vf_tpad = {
FILTER_INPUTS(tpad_inputs),
FILTER_OUTPUTS(ff_video_default_filterpad),
FILTER_QUERY_FUNC2(query_formats),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};

View File

@@ -106,4 +106,5 @@ const FFFilter ff_vf_vfrdet = {
.uninit = uninit,
FILTER_INPUTS(vfrdet_inputs),
FILTER_OUTPUTS(ff_video_default_filterpad),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};

View File

@@ -40,4 +40,5 @@ const FFFilter ff_vsink_nullsink = {
.p.outputs = NULL,
.priv_size = 0,
FILTER_INPUTS(avfilter_vsink_nullsink_inputs),
.flags_internal = FF_FILTER_FLAG_DYNAMIC_FRAME_PARAMS,
};