From e49e0198f15ebe7e2c96b57011299d8bf6273a6c Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Wed, 7 Dec 2022 12:28:55 -0300 Subject: [PATCH] h264parse: Avoid setting wrong colorimetry info if the stream doesn't contain it Part-of: --- .../gst/videoparsers/gsth264parse.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/subprojects/gst-plugins-bad/gst/videoparsers/gsth264parse.c b/subprojects/gst-plugins-bad/gst/videoparsers/gsth264parse.c index 2ecc7fabc3..e08e3f00f5 100644 --- a/subprojects/gst-plugins-bad/gst/videoparsers/gsth264parse.c +++ b/subprojects/gst-plugins-bad/gst/videoparsers/gsth264parse.c @@ -2146,16 +2146,20 @@ gst_h264_parse_update_src_caps (GstH264Parse * h264parse, GstCaps * caps) GstVideoColorimetry ci = { 0, }; gchar *old_colorimetry = NULL; - if (vui->video_full_range_flag) - ci.range = GST_VIDEO_COLOR_RANGE_0_255; - else - ci.range = GST_VIDEO_COLOR_RANGE_16_235; - ci.matrix = gst_video_color_matrix_from_iso (vui->matrix_coefficients); ci.transfer = gst_video_transfer_function_from_iso (vui->transfer_characteristics); ci.primaries = gst_video_color_primaries_from_iso (vui->colour_primaries); + if (ci.matrix != GST_VIDEO_COLOR_MATRIX_UNKNOWN + && ci.transfer != GST_VIDEO_TRANSFER_UNKNOWN + && ci.primaries != GST_VIDEO_COLOR_PRIMARIES_UNKNOWN) { + if (vui->video_full_range_flag) + ci.range = GST_VIDEO_COLOR_RANGE_0_255; + else + ci.range = GST_VIDEO_COLOR_RANGE_16_235; + } + old_colorimetry = gst_video_colorimetry_to_string (&h264parse->parsed_colorimetry); colorimetry = gst_video_colorimetry_to_string (&ci);