[PATCH v3 3/4] gpu: ipu-v3: ipu-ic: Add support for BT.709 encoding

Steve Longerbeam slongerbeam at gmail.com
Sat Feb 9 01:31:10 UTC 2019



On 2/8/19 4:20 PM, Tim Harvey wrote:
> On Fri, Feb 8, 2019 at 11:28 AM Steve Longerbeam <slongerbeam at gmail.com> wrote:
>>          if (inf == outf)
>>                  params = &ic_csc_identity;
>>          else if (inf == IPUV3_COLORSPACE_YUV)
>> -               params = &ic_csc_ycbcr2rgb_bt601;
>> +               params = &ic_csc_ycbcr2rgb;
>
> Steve,
>
> compile issue...
>
> params = params_yuv2rgb;
>
>>          else
>> -               params = &ic_csc_rgb2ycbcr_bt601;
>> +               params = &ic_csc_rgb2ycbcr;
> params = params_rgb2yuv;

Wow, did I not even compile test that? Must be my head cold :-/
Sending v4.

>
> But, I'm still failing when using the mem2mem element (gst-launch-1.0
> v4l2src device=/dev/video4 ! v4l2video8convert
> output-io-mode=dmabuf-import ! fbdevsink) with 'Unsupported YCbCr
> encoding' because of inf=IPU_COLORSPACE_YCBCR outf=IPU_COLORSPACE_RGB
> and a seemingly unset encoding being passed in.
>
> It looks like maybe something in the mem2mem driver isn't defaulting
> encoding. The call path is (v4l2_m2m_streamon -> device_run ->
> ipu_image_convert_queue -> convert_start -> ipu_ic_task_init_rsc ->
> init_csc).

Looking at v7 of the mem2mem driver, it will set ycbcr_enc at the output 
side to V4L2_YCBCR_ENC_DEFAULT if colorspace is default. So colorspace 
will need to be set to something non-default in addition to setting 
ycbcr_enc, at the output side. I don't know whether gstreamer 
v4l2videoNconvertelement will do this, but you could hack the driver for 
now to get around it, and let Philipp know this may need a workaround in 
mem2mem for v8.

Steve


More information about the devel mailing list