From 49726a922fd2b358feb7753488d415180da5121c Mon Sep 17 00:00:00 2001 From: James Almer Date: Sat, 1 Feb 2025 21:52:53 -0300 Subject: [PATCH] avfilter/vf_scale: remove global side data when it no longer applies after scaling Signed-off-by: James Almer --- libavfilter/vf_scale.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c index 14ce1fbbd8..72618ec331 100644 --- a/libavfilter/vf_scale.c +++ b/libavfilter/vf_scale.c @@ -684,6 +684,16 @@ static int config_props(AVFilterLink *outlink) flags_val); av_freep(&flags_val); + if (inlink->w != outlink->w || inlink->h != outlink->h) { + av_frame_side_data_remove_by_props(&outlink->side_data, &outlink->nb_side_data, + AV_SIDE_DATA_PROP_SIZE_DEPENDENT); + } + + if (scale->in_primaries != scale->out_primaries || scale->in_transfer != scale->out_transfer) { + av_frame_side_data_remove_by_props(&outlink->side_data, &outlink->nb_side_data, + AV_SIDE_DATA_PROP_COLOR_DEPENDENT); + } + if (!IS_SCALE2REF(ctx)) { ff_framesync_uninit(&scale->fs); ret = ff_framesync_init(&scale->fs, ctx, ctx->nb_inputs);