@@ -537,6 +537,8 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
av_frame_copy_props(out, in);
}
+ av_frame_remove_side_data_changed(out, AV_FRAME_CHANGED_COLOR_VOLUME);
+
if (s->is_rgb && s->is_16bit && !s->is_planar) {
/* packed, 16-bit */
PACKED_THREAD_DATA
@@ -610,6 +610,7 @@ static int tlut2_filter_frame(AVFilterLink *inlink, AVFrame *frame)
}
av_frame_copy_props(out, frame);
+ av_frame_remove_side_data_changed(out, AV_FRAME_CHANGED_COLOR_VOLUME);
td.out = out;
td.srcx = frame;
@@ -1175,6 +1175,8 @@ static AVFrame *apply_lut(AVFilterLink *inlink, AVFrame *in)
av_frame_copy_props(out, in);
}
+ av_frame_remove_side_data_changed(out, AV_FRAME_CHANGED_COLOR_VOLUME);
+
td.in = in;
td.out = out;
ff_filter_execute(ctx, lut3d->interp, &td, NULL,
From: Niklas Haas <git@haasn.dev> These filters, in general, will apply some arbitrary color volume transformation. Strip corresponding metadata to be conservative/safe. --- libavfilter/vf_lut.c | 2 ++ libavfilter/vf_lut2.c | 1 + libavfilter/vf_lut3d.c | 2 ++ 3 files changed, 5 insertions(+)