v4l2object: Only use BT2020_12 for BT2020 v4l2 colorspace

BT2020_12 is not represented in V4L2, so drivers providing full colority
for BT2020 will set V4L2_XFER_FUNC_709 transfer function. To fix the
issue, we bump this to BT2020_12 if the resoltion is 4K, but we should
only do that if the colorspace is BT2020 to start with, otherwise it's
not possible to use normal BT709 for 4K 8bit formats.
This commit is contained in:
Nicolas Dufresne 2018-04-08 20:42:16 -04:00
parent dd1c5aed65
commit ebf8a6d0c0

View file

@ -2083,7 +2083,7 @@ gst_v4l2_object_get_colorspace (struct v4l2_format *fmt,
switch (transfer) {
case V4L2_XFER_FUNC_709:
if (fmt->fmt.pix.height >= 2160)
if (colorspace == V4L2_COLORSPACE_BT2020 && fmt->fmt.pix.height >= 2160)
cinfo->transfer = GST_VIDEO_TRANSFER_BT2020_12;
else
cinfo->transfer = GST_VIDEO_TRANSFER_BT709;