diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c index b5af59bdb7..8ffd7e30e6 100644 --- a/sys/v4l2/gstv4l2object.c +++ b/sys/v4l2/gstv4l2object.c @@ -3406,6 +3406,16 @@ gst_v4l2_video_colorimetry_matches (const GstVideoColorimetry * cinfo, 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;