[FFmpeg-cvslog] avfilter/vf_scale: strip metadata when changing colorspace

Niklas Haas git at videolan.org
Mon Dec 23 13:44:43 EET 2024


ffmpeg | branch: master | Niklas Haas <git at haasn.dev> | Sun Dec  1 12:19:27 2024 +0100| [01ce9d796300be815351579fe6cb343c732e36f4] | committer: Niklas Haas

avfilter/vf_scale: strip metadata when changing colorspace

This is no longer relevant after a change in color space.

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

 libavfilter/vf_scale.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c
index 77697f3f6a..566bf11cda 100644
--- a/libavfilter/vf_scale.c
+++ b/libavfilter/vf_scale.c
@@ -868,6 +868,18 @@ scale:
     if (scale->out_transfer != -1)
         out->color_trc = scale->out_transfer;
 
+    if (in->color_primaries != out->color_primaries ||
+        in->color_trc != out->color_trc)
+    {
+        av_frame_remove_side_data(out, AV_FRAME_DATA_MASTERING_DISPLAY_METADATA);
+        av_frame_remove_side_data(out, AV_FRAME_DATA_DYNAMIC_HDR_PLUS);
+        av_frame_remove_side_data(out, AV_FRAME_DATA_DYNAMIC_HDR_VIVID);
+        av_frame_remove_side_data(out, AV_FRAME_DATA_CONTENT_LIGHT_LEVEL);
+        av_frame_remove_side_data(out, AV_FRAME_DATA_ICC_PROFILE);
+        av_frame_remove_side_data(out, AV_FRAME_DATA_DOVI_METADATA);
+        av_frame_remove_side_data(out, AV_FRAME_DATA_DOVI_RPU_BUFFER);
+    }
+
     av_reduce(&out->sample_aspect_ratio.num, &out->sample_aspect_ratio.den,
               (int64_t)in->sample_aspect_ratio.num * outlink->h * link->w,
               (int64_t)in->sample_aspect_ratio.den * outlink->w * link->h,



More information about the ffmpeg-cvslog mailing list