[FFmpeg-cvslog] avfilter/vf_lut*: strip color volume metadata

Niklas Haas git at videolan.org
Mon Dec 23 15:23:36 EET 2024


ffmpeg | branch: master | Niklas Haas <git at haasn.dev> | Fri Apr 26 13:19:26 2024 +0200| [d23f443dfcad65c7abff728f7835d5fb78654393] | committer: Niklas Haas

avfilter/vf_lut*: strip color volume metadata

These filters, in general, will apply some arbitrary color volume
transformation. Strip corresponding metadata to be conservative/safe.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=d23f443dfcad65c7abff728f7835d5fb78654393
---

 libavfilter/vf_lut.c   | 3 +++
 libavfilter/vf_lut2.c  | 2 ++
 libavfilter/vf_lut3d.c | 3 +++
 3 files changed, 8 insertions(+)

diff --git a/libavfilter/vf_lut.c b/libavfilter/vf_lut.c
index af7172dc01..c227ebc45c 100644
--- a/libavfilter/vf_lut.c
+++ b/libavfilter/vf_lut.c
@@ -539,6 +539,9 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in)
         av_frame_copy_props(out, in);
     }
 
+    av_frame_side_data_remove_by_props(&out->side_data, &out->nb_side_data,
+                                       AV_SIDE_DATA_PROP_COLOR_DEPENDENT);
+
     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 88b45f45e5..2bbdd0a288 100644
--- a/libavfilter/vf_lut2.c
+++ b/libavfilter/vf_lut2.c
@@ -619,6 +619,8 @@ static int tlut2_filter_frame(AVFilterLink *inlink, AVFrame *frame)
             }
 
             av_frame_copy_props(out, frame);
+            av_frame_side_data_remove_by_props(&out->side_data, &out->nb_side_data,
+                                               AV_SIDE_DATA_PROP_COLOR_DEPENDENT);
 
             td.out  = out;
             td.srcx = frame;
diff --git a/libavfilter/vf_lut3d.c b/libavfilter/vf_lut3d.c
index 46955b99a5..3c2a8812e8 100644
--- a/libavfilter/vf_lut3d.c
+++ b/libavfilter/vf_lut3d.c
@@ -1178,6 +1178,9 @@ static AVFrame *apply_lut(AVFilterLink *inlink, AVFrame *in)
         av_frame_copy_props(out, in);
     }
 
+    av_frame_side_data_remove_by_props(&out->side_data, &out->nb_side_data,
+                                       AV_SIDE_DATA_PROP_COLOR_DEPENDENT);
+
     td.in  = in;
     td.out = out;
     ff_filter_execute(ctx, lut3d->interp, &td, NULL,



More information about the ffmpeg-cvslog mailing list