media: sun6i-csi: fix colorspace in sun6i_video_try_fmt()
authorMikhail Rudenko <mike.rudenko@gmail.com>
Sat, 5 Feb 2022 23:33:31 +0000 (02:33 +0300)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Tue, 22 Feb 2022 08:41:12 +0000 (09:41 +0100)
With gstreamer 1.19.3 all attempts to capture video in YUV formats on
our Allwinner H3-based custom board with an ov5640 sensor result in
pipeline crashes with the following messages:

Device '/dev/video0' does not support 2:0:0:0 colorimetry
Additional debug info:
Device wants 2:0:0:0 colorimetry

Fix this by setting the correct colorspace in sun6i_video_try_fmt().

Signed-off-by: Mikhail Rudenko <mike.rudenko@gmail.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/media/platform/sunxi/sun6i-csi/sun6i_video.c

index 607a8d3..682c265 100644 (file)
@@ -368,7 +368,11 @@ static int sun6i_video_try_fmt(struct sun6i_video *video,
        if (pixfmt->field == V4L2_FIELD_ANY)
                pixfmt->field = V4L2_FIELD_NONE;
 
-       pixfmt->colorspace = V4L2_COLORSPACE_RAW;
+       if (pixfmt->pixelformat == V4L2_PIX_FMT_JPEG)
+               pixfmt->colorspace = V4L2_COLORSPACE_JPEG;
+       else
+               pixfmt->colorspace = V4L2_COLORSPACE_SRGB;
+
        pixfmt->ycbcr_enc = V4L2_YCBCR_ENC_DEFAULT;
        pixfmt->quantization = V4L2_QUANTIZATION_DEFAULT;
        pixfmt->xfer_func = V4L2_XFER_FUNC_DEFAULT;