Re: [PATCH] media: imx: utils: Default colorspace to SRGB

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux