From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mauro Carvalho Chehab Date: Fri, 11 Nov 2011 18:41:53 +0000 Subject: Re: [PATCH v3 2/3] v4l: Add V4L2_PIX_FMT_NV24 and V4L2_PIX_FMT_NV42 Message-Id: <4EBD6C71.4040604@redhat.com> List-Id: References: <1314789501-824-1-git-send-email-laurent.pinchart@ideasonboard.com> <1314789501-824-3-git-send-email-laurent.pinchart@ideasonboard.com> In-Reply-To: <1314789501-824-3-git-send-email-laurent.pinchart@ideasonboard.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Laurent Pinchart Cc: linux-fbdev@vger.kernel.org, linux-media@vger.kernel.org, magnus.damm@gmail.com Em 31-08-2011 08:18, Laurent Pinchart escreveu: > NV24 and NV42 are planar YCbCr 4:4:4 and YCrCb 4:4:4 formats with a > luma plane followed by an interleaved chroma plane. > > Signed-off-by: Laurent Pinchart Acked-by: Mauro Carvalho Chehab > --- > Documentation/DocBook/media/v4l/pixfmt-nv24.xml | 129 +++++++++++++++++++++++ > Documentation/DocBook/media/v4l/pixfmt.xml | 1 + > include/linux/videodev2.h | 2 + > 3 files changed, 132 insertions(+), 0 deletions(-) > create mode 100644 Documentation/DocBook/media/v4l/pixfmt-nv24.xml > > diff --git a/Documentation/DocBook/media/v4l/pixfmt-nv24.xml b/Documentation/DocBook/media/v4l/pixfmt-nv24.xml > new file mode 100644 > index 0000000..939c803 > --- /dev/null > +++ b/Documentation/DocBook/media/v4l/pixfmt-nv24.xml > @@ -0,0 +1,129 @@ > + > + > + V4L2_PIX_FMT_NV24 ('NV24'), V4L2_PIX_FMT_NV42 ('NV42') > + &manvol; > + > + > + V4L2_PIX_FMT_NV24 > + V4L2_PIX_FMT_NV42 > + Formats with full horizontal and vertical > +chroma resolutions, also known as YUV 4:4:4. One luminance and one > +chrominance plane with alternating chroma samples as opposed to > +V4L2_PIX_FMT_YVU420 > + > + > + Description > + > + These are two-plane versions of the YUV 4:4:4 format. The three > + components are separated into two sub-images or planes. The Y plane is > + first, with each Y sample stored in one byte per pixel. For > + V4L2_PIX_FMT_NV24, a combined CbCr plane > + immediately follows the Y plane in memory. The CbCr plane has the same > + width and height, in pixels, as the Y plane (and the image). Each line > + contains one CbCr pair per pixel, with each Cb and Cr sample stored in > + one byte. V4L2_PIX_FMT_NV42 is the same except that > + the Cb and Cr samples are swapped, the CrCb plane starts with a Cr > + sample. > + > + If the Y plane has pad bytes after each row, then the CbCr plane > + has twice as many pad bytes after its rows. > + > + > + <constant>V4L2_PIX_FMT_NV24</constant> 4 × 4 > +pixel image > + > + > + Byte Order. > + Each cell is one byte. > + > + > + > + > + > + start + 0: > + Y'00 > + Y'01 > + Y'02 > + Y'03 > + > + > + start + 4: > + Y'10 > + Y'11 > + Y'12 > + Y'13 > + > + > + start + 8: > + Y'20 > + Y'21 > + Y'22 > + Y'23 > + > + > + start + 12: > + Y'30 > + Y'31 > + Y'32 > + Y'33 > + > + > + start + 16: > + Cb00 > + Cr00 > + Cb01 > + Cr01 > + Cb02 > + Cr02 > + Cb03 > + Cr03 > + > + > + start + 24: > + Cb10 > + Cr10 > + Cb11 > + Cr11 > + Cb12 > + Cr12 > + Cb13 > + Cr13 > + > + > + start + 32: > + Cb20 > + Cr20 > + Cb21 > + Cr21 > + Cb22 > + Cr22 > + Cb23 > + Cr23 > + > + > + start + 40: > + Cb30 > + Cr30 > + Cb31 > + Cr31 > + Cb32 > + Cr32 > + Cb33 > + Cr33 > + > + > + > + > + > + > + > + > + > + > + > diff --git a/Documentation/DocBook/media/v4l/pixfmt.xml b/Documentation/DocBook/media/v4l/pixfmt.xml > index 2ff6b77..aef4615 100644 > --- a/Documentation/DocBook/media/v4l/pixfmt.xml > +++ b/Documentation/DocBook/media/v4l/pixfmt.xml > @@ -714,6 +714,7 @@ information. > &sub-nv12m; > &sub-nv12mt; > &sub-nv16; > + &sub-nv24; > &sub-m420; > > > diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h > index fca24cc..8225163 100644 > --- a/include/linux/videodev2.h > +++ b/include/linux/videodev2.h > @@ -343,6 +343,8 @@ struct v4l2_pix_format { > #define V4L2_PIX_FMT_NV21 v4l2_fourcc('N', 'V', '2', '1') /* 12 Y/CrCb 4:2:0 */ > #define V4L2_PIX_FMT_NV16 v4l2_fourcc('N', 'V', '1', '6') /* 16 Y/CbCr 4:2:2 */ > #define V4L2_PIX_FMT_NV61 v4l2_fourcc('N', 'V', '6', '1') /* 16 Y/CrCb 4:2:2 */ > +#define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4') /* 24 Y/CbCr 4:4:4 */ > +#define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2') /* 24 Y/CrCb 4:4:4 */ > > /* two non contiguous planes - one Y, one Cr + Cb interleaved */ > #define V4L2_PIX_FMT_NV12M v4l2_fourcc('N', 'M', '1', '2') /* 12 Y/CbCr 4:2:0 */