Re: [PATCH] media: v4l2-tpg: Fix the memory layout of AYUV buffers

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

 



On Thu, 31 Jan 2019 14:36:42 +0100
Hans Verkuil <hverkuil@xxxxxxxxx> wrote:

Hi Hans,

> Hi Vivek,
> 
> On 1/29/19 3:32 AM, Vivek Kasireddy wrote:
> > From: "Kasireddy, Vivek" <vivek.kasireddy@xxxxxxxxx>
> > 
> > The memory layout of AYUV buffers (V4L2_PIX_FMT_YUV32) should be
> > similar to V4L2_PIX_FMT_ABGR32 instead of V4L2_PIX_FMT_ARGB32.
> > 
> > While displaying the packed AYUV buffers generated by the Vivid
> > driver using v4l2-tpg on Weston, it was observed that these AYUV
> > images were not getting displayed correctly. Changing the memory
> > layout makes them display as expected.  
> 
> Our YUV32 fourcc is defined as follows:
> 
> https://hverkuil.home.xs4all.nl/spec/uapi/v4l/pixfmt-packed-yuv.html
> 
> As far as I see the format that the TPG generates is according to the
> V4L2 spec.

I looked into the above link, and I am now wondering whether YUV32 is
the same as the format referred to as AYUV here or not:

https://docs.microsoft.com/en-us/windows/desktop/medfound/recommended-8-bit-yuv-formats-for-video-rendering#ayuv

If YUV32 is not the same as AYUV, should I send another patch adding a
new format named AYUV with the reversed memory layout?

> 
> Philipp, can you check the YUV32 format that the imx-pxp driver uses?
> Is that according to our spec?
> 
> At some point we probably want to add a VUY32 format which is what
> Weston expects, but we certainly cannot change what the TPG generates
> for YUV32 since that is correct.
Weston does not know much about the details of pixel formats and
instead relies on the Mesa i965 DRI driver to do the heavy lifting.
And, this driver implemented AYUV support looking at the above Microsoft
link. Also, is the description of V4l pixel formats mentioned in the
below link accurate:
https://afrantzis.com/pixel-format-guide/v4l2.html

Thanks,
Vivek

> 
> Regards,
> 
> 	Hans
> 
> > 
> > Signed-off-by: Vivek Kasireddy <vivek.kasireddy@xxxxxxxxx>
> > ---
> >  drivers/media/common/v4l2-tpg/v4l2-tpg-core.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c
> > b/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c index
> > d9a590ae7545..825667f67c92 100644 ---
> > a/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c +++
> > b/drivers/media/common/v4l2-tpg/v4l2-tpg-core.c @@ -1269,7 +1269,6
> > @@ static void gen_twopix(struct tpg_data *tpg, case
> > V4L2_PIX_FMT_HSV32: alpha = 0;
> >  		/* fall through */
> > -	case V4L2_PIX_FMT_YUV32:
> >  	case V4L2_PIX_FMT_ARGB32:
> >  		buf[0][offset] = alpha;
> >  		buf[0][offset + 1] = r_y_h;
> > @@ -1280,6 +1279,7 @@ static void gen_twopix(struct tpg_data *tpg,
> >  	case V4L2_PIX_FMT_XBGR32:
> >  		alpha = 0;
> >  		/* fall through */
> > +	case V4L2_PIX_FMT_YUV32:
> >  	case V4L2_PIX_FMT_ABGR32:
> >  		buf[0][offset] = b_v;
> >  		buf[0][offset + 1] = g_u_s;
> >   
> 




[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