summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNiklas Haas <[email protected]>2024-01-12 09:14:01 +0100
committerNiklas Haas <[email protected]>2024-02-13 19:30:14 +0100
commit2303bf32327b94c25e1cbd78f87a32de05d48bc6 (patch)
tree356b81dc752fc37a7a427bb08246472ef19c7945
parent99d33cc661fbd04e8657831b818042b11f1862a2 (diff)
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.
-rw-r--r--libavfilter/buffersrc.c5
-rw-r--r--tests/ref/fate/rgb24-mkv4
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