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

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

 



On 16/04/2020 19:10, Steve Longerbeam wrote:
> 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.

Ah yes, that's true. Sorry for the noise.

Regards,

	Hans

> 
> 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