diff mbox series

[FFmpeg-devel,6/6] avfilter/vf_lut*: strip color volume metadata

Message ID 20240426122803.19967-6-ffmpeg@haasn.xyz
State New
Headers show
Series [FFmpeg-devel,1/6] avutil/frame: add av_frame_remove_side_data_changed | expand

Checks

Context Check Description
yinshiyou/configure_loongarch64 warning Failed to apply patch

Commit Message

Niklas Haas April 26, 2024, 12:28 p.m. UTC
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(+)
diff mbox series

Patch

diff --git a/libavfilter/vf_lut.c b/libavfilter/vf_lut.c
index 01df8f287d..89884dd315 100644
--- a/libavfilter/vf_lut.c
+++ b/libavfilter/vf_lut.c
@@ -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
diff --git a/libavfilter/vf_lut2.c b/libavfilter/vf_lut2.c
index 1f0661a0f5..123bfb2e17 100644
--- a/libavfilter/vf_lut2.c
+++ b/libavfilter/vf_lut2.c
@@ -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;
diff --git a/libavfilter/vf_lut3d.c b/libavfilter/vf_lut3d.c
index b3ddd3e69f..84c1405b26 100644
--- a/libavfilter/vf_lut3d.c
+++ b/libavfilter/vf_lut3d.c
@@ -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,