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:
committed by
michaelni
parent
05a2f2029d
commit
58892c922e
@@ -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 */
|
||||
|
||||
|
||||
@@ -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 */
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
|
||||
@@ -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 */
|
||||
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user