aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2025-02-01 21:52:53 -0300
committerJames Almer <jamrial@gmail.com>2025-02-03 11:05:59 -0300
commit49726a922fd2b358feb7753488d415180da5121c (patch)
tree4c92ff1a466b47d18103d30967a93376b01e440c
parentdb7ff135744d171bfc6adc7d4af065f9d853233f (diff)
downloadffmpeg-49726a922fd2b358feb7753488d415180da5121c.tar.gz
avfilter/vf_scale: remove global side data when it no longer applies after scaling
Signed-off-by: James Almer <jamrial@gmail.com>
-rw-r--r--libavfilter/vf_scale.c10
1 files changed, 10 insertions, 0 deletions
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);