Hi Hans,
On 4/16/20 3:52 AM, Hans Verkuil wrote:
Hi Steve,
On 25/03/2020 18:34, Steve Longerbeam wrote:
The function init_mbus_colorimetry() is used to initialize the imx
subdevice mbus colorimetry to some sane defaults when the subdevice is
registered. Currently it guesses at a colorspace based on the passed
mbus pixel format. If the format is RGB, it chooses colorspace
V4L2_COLORSPACE_SRGB, and if the format is YUV, it chooses
V4L2_COLORSPACE_SMPTE170M.
While that might be a good guess, it's not necessarily true that a RGB
pixel format encoding uses a SRGB colorspace, or that a YUV encoding
uses a SMPTE170M colorspace. Instead of making this dubious guess,
just default the colorspace to SRGB.
Reported-by: Hans Verkuil <hverkuil@xxxxxxxxx>
Signed-off-by: Steve Longerbeam <slongerbeam@xxxxxxxxx>
---
drivers/staging/media/imx/imx-media-utils.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/staging/media/imx/imx-media-utils.c b/drivers/staging/media/imx/imx-media-utils.c
index fae981698c49..8344675bfd05 100644
--- a/drivers/staging/media/imx/imx-media-utils.c
+++ b/drivers/staging/media/imx/imx-media-utils.c
@@ -236,8 +236,7 @@ static const struct imx_media_pixfmt ipu_rgb_formats[] = {
static void init_mbus_colorimetry(struct v4l2_mbus_framefmt *mbus,
const struct imx_media_pixfmt *fmt)
{
- mbus->colorspace = (fmt->cs == IPUV3_COLORSPACE_RGB) ?
- V4L2_COLORSPACE_SRGB : V4L2_COLORSPACE_SMPTE170M;
+ mbus->colorspace = V4L2_COLORSPACE_SRGB;
mbus->xfer_func = V4L2_MAP_XFER_FUNC_DEFAULT(mbus->colorspace);
mbus->ycbcr_enc = V4L2_MAP_YCBCR_ENC_DEFAULT(mbus->colorspace);
mbus->quantization =
The quantization is probably wrong as well since it checks fmt->cs.
The first argument should just be 'true'.
I don't think so. The default quantization depends in part on whether
the pixel format is RGB or YUV, which is the reason for passing boolean
(fmt->cs == IPUV3_COLORSPACE_RGB) as the first argument.
I realize "fmt->cs" is a misnomer, but it is borrowing from earlier
misnomers, i.e. the 'enum ipu_color_space' enumerations. Fixing those
names would touch lots of imx driver code.
In any case, this patch no longer applies after the imx utils patch series.
Ok, I'll re-submit after the utils patch series is merged.
Steve