From: fduncanh Date: Mon, 25 Jul 2022 03:44:10 +0000 (-0400) Subject: v4l2object.c: add support for Apple's full-range bt709 colorspace variant X-Git-Tag: 1.22.0~1223 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=197b72f32afa245f472a017fd07f82aefe4ea7c2;p=platform%2Fupstream%2Fgstreamer.git v4l2object.c: add support for Apple's full-range bt709 colorspace variant Part-of: --- diff --git a/subprojects/gst-plugins-good/sys/v4l2/gstv4l2object.c b/subprojects/gst-plugins-good/sys/v4l2/gstv4l2object.c index 0c4ee90..4e6aaf9 100644 --- a/subprojects/gst-plugins-good/sys/v4l2/gstv4l2object.c +++ b/subprojects/gst-plugins-good/sys/v4l2/gstv4l2object.c @@ -2443,6 +2443,20 @@ gst_v4l2_object_add_colorspace (GstV4l2Object * v4l2object, GstStructure * s, if (colorspace == req_cspace) { if (gst_v4l2_object_get_colorspace (v4l2object, &fmt, &cinfo)) gst_v4l2_object_fill_colorimetry_list (&list, &cinfo); + if (colorspace == V4L2_COLORSPACE_REC709) { + /* support for full-range variants of colorspaces V4L2_COLORSPACE_REC709 + * (such as Apple's full-range bt709 variant 1:3:5:1) */ + struct v4l2_format alt_fmt; + memcpy (&alt_fmt, &fmt, sizeof (alt_fmt)); + + if (V4L2_TYPE_IS_MULTIPLANAR (v4l2object->type)) + alt_fmt.fmt.pix_mp.quantization = V4L2_QUANTIZATION_FULL_RANGE; + else + alt_fmt.fmt.pix.quantization = V4L2_QUANTIZATION_FULL_RANGE; + + if (gst_v4l2_object_get_colorspace (v4l2object, &alt_fmt, &cinfo)) + gst_v4l2_object_fill_colorimetry_list (&list, &cinfo); + } } } }