Some streams have unknown colorimetry in caps, but v4l2object sets
default values for each primaries. It will cause check colorimetry
fail when do gst_v4l2_video_colorimetry_matches().
To fix this, need to keep the unknown colorimetry in caps same as
the default value set by v4l2object.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/923>
if (!gst_video_info_from_caps (&info, caps))
return FALSE;
+ /* if colorimetry in caps is unknown, use the default one */
+ if (info.colorimetry.primaries == GST_VIDEO_COLOR_PRIMARIES_UNKNOWN)
+ info.colorimetry.primaries = cinfo->primaries;
+ if (info.colorimetry.range == GST_VIDEO_COLOR_RANGE_UNKNOWN)
+ info.colorimetry.range = cinfo->range;
+ if (info.colorimetry.matrix == GST_VIDEO_COLOR_MATRIX_UNKNOWN)
+ info.colorimetry.matrix = cinfo->matrix;
+ if (info.colorimetry.transfer == GST_VIDEO_TRANSFER_UNKNOWN)
+ info.colorimetry.transfer = cinfo->transfer;
+
if (gst_video_colorimetry_is_equal (&info.colorimetry, cinfo))
return TRUE;