[FFmpeg-cvslog] avfilter/buffersrc: promote unspecified color metadata

Niklas Haas git at videolan.org
Tue Feb 13 20:44:21 EET 2024


ffmpeg | branch: master | Niklas Haas <git at haasn.dev> | Fri Jan 12 09:14:01 2024 +0100| [2303bf32327b94c25e1cbd78f87a32de05d48bc6] | committer: Niklas Haas

avfilter/buffersrc: promote unspecified color metadata

Currently, this only affects untagged RGB/XYZ/Gray, which get forced to
their corresponding metadata before entering the filter graph. The main
justification for this change, however, is the planned ability to add
automatic promotion of unspecified yuv to mpeg range yuv.

Notably, this change will never allow accidentally cross-promoting
unspecified to jpeg or to a specific YUV matrix, since that is still
bound by the constraints of YUV range negotiation as set up by
query_formats.

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

 libavfilter/buffersrc.c  | 5 +++++
 tests/ref/fate/rgb24-mkv | 4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/libavfilter/buffersrc.c b/libavfilter/buffersrc.c
index 6e450ff6b7..93fadab65f 100644
--- a/libavfilter/buffersrc.c
+++ b/libavfilter/buffersrc.c
@@ -291,6 +291,11 @@ FF_DISABLE_DEPRECATION_WARNINGS
 FF_ENABLE_DEPRECATION_WARNINGS
 #endif
 
+    if (copy->colorspace == AVCOL_SPC_UNSPECIFIED)
+        copy->colorspace = ctx->outputs[0]->colorspace;
+    if (copy->color_range == AVCOL_RANGE_UNSPECIFIED)
+        copy->color_range = ctx->outputs[0]->color_range;
+
     ret = ff_filter_frame(ctx->outputs[0], copy);
     if (ret < 0)
         return ret;
diff --git a/tests/ref/fate/rgb24-mkv b/tests/ref/fate/rgb24-mkv
index 99234f1052..1cbed136dd 100644
--- a/tests/ref/fate/rgb24-mkv
+++ b/tests/ref/fate/rgb24-mkv
@@ -1,5 +1,5 @@
-e181dc84058c3584598333dabd110123 *tests/data/fate/rgb24-mkv.matroska
-58225 tests/data/fate/rgb24-mkv.matroska
+7d767e8238c674ecfa80458cb281c09e *tests/data/fate/rgb24-mkv.matroska
+58236 tests/data/fate/rgb24-mkv.matroska
 #tb 0: 1/10
 #media_type 0: video
 #codec_id 0: rawvideo



More information about the ffmpeg-cvslog mailing list