linux-sh.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sylwester Nawrocki <sylvester.nawrocki@gmail.com>
To: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Cc: linux-media@vger.kernel.org, linux-sh@vger.kernel.org,
	Hans Verkuil <hverkuil@xs4all.nl>,
	Sakari Ailus <sakari.ailus@iki.fi>
Subject: Re: [PATCH v2 4/5] v4l: Add V4L2_PIX_FMT_NV16M and V4L2_PIX_FMT_NV61M formats
Date: Wed, 24 Jul 2013 21:23:32 +0000	[thread overview]
Message-ID: <51F045D4.4050705@gmail.com> (raw)
In-Reply-To: <1374072882-14598-5-git-send-email-laurent.pinchart+renesas@ideasonboard.com>

Hi Laurent,

On 07/17/2013 04:54 PM, Laurent Pinchart wrote:
> NV16M and NV61M are planar YCbCr 4:2:2 and YCrCb 4:2:2 formats with a
> luma plane followed by an interleaved chroma plane. The planes are not
> required to be contiguous in memory, and the formats can only be used
> with the multi-planar formats API.
>
> Signed-off-by: Laurent Pinchart<laurent.pinchart+renesas@ideasonboard.com>

Looks good,

Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>	

Thanks,
Sylwester
> ---
>   Documentation/DocBook/media/v4l/pixfmt-nv16m.xml | 170 +++++++++++++++++++++++
>   Documentation/DocBook/media/v4l/pixfmt.xml       |   1 +
>   include/uapi/linux/videodev2.h                   |   2 +
>   3 files changed, 173 insertions(+)
>   create mode 100644 Documentation/DocBook/media/v4l/pixfmt-nv16m.xml
>
> diff --git a/Documentation/DocBook/media/v4l/pixfmt-nv16m.xml b/Documentation/DocBook/media/v4l/pixfmt-nv16m.xml
> new file mode 100644
> index 0000000..84a8bb3
> --- /dev/null
> +++ b/Documentation/DocBook/media/v4l/pixfmt-nv16m.xml
> @@ -0,0 +1,170 @@
> +<refentry>
> +<refmeta>
> +	<refentrytitle>V4L2_PIX_FMT_NV16M ('NM16'), V4L2_PIX_FMT_NV61M ('NM61')</refentrytitle>
> +	&manvol;
> +</refmeta>
> +<refnamediv>
> +	<refname id="V4L2-PIX-FMT-NV16M"><constant>V4L2_PIX_FMT_NV16M</constant></refname>
> +	<refname id="V4L2-PIX-FMT-NV61M"><constant>V4L2_PIX_FMT_NV61M</constant></refname>
> +	<refpurpose>Variation of<constant>V4L2_PIX_FMT_NV16</constant>  and<constant>V4L2_PIX_FMT_NV61</constant>  with planes
> +	  non contiguous in memory.</refpurpose>
> +</refnamediv>
> +<refsect1>
> +	<title>Description</title>
> +
> +	<para>This is a multi-planar, two-plane version of the YUV 4:2:0 format.
> +The three components are separated into two sub-images or planes.
> +<constant>V4L2_PIX_FMT_NV16M</constant>  differs from<constant>V4L2_PIX_FMT_NV16
> +</constant>  in that the two planes are non-contiguous in memory, i.e. the chroma
> +plane do not necessarily immediately follows the luma plane.
> +The luminance data occupies the first plane. The Y plane has one byte per pixel.
> +In the second plane there is a chrominance data with alternating chroma samples.
> +The CbCr plane is the same width and height, in bytes, as the Y plane.
> +Each CbCr pair belongs to four pixels. For example,
> +Cb<subscript>0</subscript>/Cr<subscript>0</subscript>  belongs to
> +Y'<subscript>00</subscript>, Y'<subscript>01</subscript>,
> +Y'<subscript>10</subscript>, Y'<subscript>11</subscript>.
> +<constant>V4L2_PIX_FMT_NV61M</constant>  is the same as<constant>V4L2_PIX_FMT_NV16M</constant>
> +except the Cb and Cr bytes are swapped, the CrCb plane starts with a Cr byte.</para>
> +
> +	<para><constant>V4L2_PIX_FMT_NV16M</constant>  is intended to be
> +used only in drivers and applications that support the multi-planar API,
> +described in<xref linkend="planar-apis"/>.</para>
> +
> +	<example>
> +	<title><constant>V4L2_PIX_FMT_NV16M</constant>  4&times; 4 pixel image</title>
> +
> +	<formalpara>
> +	<title>Byte Order.</title>
> +	<para>Each cell is one byte.
> +		<informaltable frame="none">
> +		<tgroup cols="5" align="center">
> +		<colspec align="left" colwidth="2*" />
> +		<tbody valign="top">
> +		<row>
> +		<entry>start0&nbsp;+&nbsp;0:</entry>
> +		<entry>Y'<subscript>00</subscript></entry>
> +		<entry>Y'<subscript>01</subscript></entry>
> +		<entry>Y'<subscript>02</subscript></entry>
> +		<entry>Y'<subscript>03</subscript></entry>
> +		</row>
> +		<row>
> +		<entry>start0&nbsp;+&nbsp;4:</entry>
> +		<entry>Y'<subscript>10</subscript></entry>
> +		<entry>Y'<subscript>11</subscript></entry>
> +		<entry>Y'<subscript>12</subscript></entry>
> +		<entry>Y'<subscript>13</subscript></entry>
> +		</row>
> +		<row>
> +		<entry>start0&nbsp;+&nbsp;8:</entry>
> +		<entry>Y'<subscript>20</subscript></entry>
> +		<entry>Y'<subscript>21</subscript></entry>
> +		<entry>Y'<subscript>22</subscript></entry>
> +		<entry>Y'<subscript>23</subscript></entry>
> +		</row>
> +		<row>
> +		<entry>start0&nbsp;+&nbsp;12:</entry>
> +		<entry>Y'<subscript>30</subscript></entry>
> +		<entry>Y'<subscript>31</subscript></entry>
> +		<entry>Y'<subscript>32</subscript></entry>
> +		<entry>Y'<subscript>33</subscript></entry>
> +		</row>
> +		<row>
> +		<entry></entry>
> +		</row>
> +		<row>
> +		<entry>start1&nbsp;+&nbsp;0:</entry>
> +		<entry>Cb<subscript>00</subscript></entry>
> +		<entry>Cr<subscript>00</subscript></entry>
> +		<entry>Cb<subscript>02</subscript></entry>
> +		<entry>Cr<subscript>02</subscript></entry>
> +		</row>
> +		<row>
> +		<entry>start1&nbsp;+&nbsp;4:</entry>
> +		<entry>Cb<subscript>10</subscript></entry>
> +		<entry>Cr<subscript>10</subscript></entry>
> +		<entry>Cb<subscript>12</subscript></entry>
> +		<entry>Cr<subscript>12</subscript></entry>
> +		</row>
> +		<row>
> +		<entry>start1&nbsp;+&nbsp;8:</entry>
> +		<entry>Cb<subscript>20</subscript></entry>
> +		<entry>Cr<subscript>20</subscript></entry>
> +		<entry>Cb<subscript>22</subscript></entry>
> +		<entry>Cr<subscript>22</subscript></entry>
> +		</row>
> +		<row>
> +		<entry>start1&nbsp;+&nbsp;12:</entry>
> +		<entry>Cb<subscript>30</subscript></entry>
> +		<entry>Cr<subscript>30</subscript></entry>
> +		<entry>Cb<subscript>32</subscript></entry>
> +		<entry>Cr<subscript>32</subscript></entry>
> +		</row>
> +		</tbody>
> +		</tgroup>
> +		</informaltable>
> +	</para>
> +	</formalpara>
> +
> +	<formalpara>
> +	<title>Color Sample Location.</title>
> +	<para>
> +		<informaltable frame="none">
> +		<tgroup cols="7" align="center">
> +		<tbody valign="top">
> +		<row>
> +		<entry></entry>
> +		<entry>0</entry><entry></entry><entry>1</entry><entry></entry>
> +		<entry>2</entry><entry></entry><entry>3</entry>
> +		</row>
> +		<row>
> +		<entry>0</entry>
> +		<entry>Y</entry><entry></entry><entry>Y</entry><entry></entry>
> +		<entry>Y</entry><entry></entry><entry>Y</entry>
> +		</row>
> +		<row>
> +		<entry></entry>
> +		<entry></entry><entry>C</entry><entry></entry><entry></entry>
> +		<entry></entry><entry>C</entry><entry></entry>
> +		</row>
> +		<row>
> +		<entry>1</entry>
> +		<entry>Y</entry><entry></entry><entry>Y</entry><entry></entry>
> +		<entry>Y</entry><entry></entry><entry>Y</entry>
> +		</row>
> +		<row>
> +		<entry></entry>
> +		<entry></entry><entry>C</entry><entry></entry><entry></entry>
> +		<entry></entry><entry>C</entry><entry></entry>
> +		</row>
> +		<row>
> +		<entry></entry>
> +		</row>
> +		<row>
> +		<entry>2</entry>
> +		<entry>Y</entry><entry></entry><entry>Y</entry><entry></entry>
> +		<entry>Y</entry><entry></entry><entry>Y</entry>
> +		</row>
> +		<row>
> +		<entry></entry>
> +		<entry></entry><entry>C</entry><entry></entry><entry></entry>
> +		<entry></entry><entry>C</entry><entry></entry>
> +		</row>
> +		<row>
> +		<entry>3</entry>
> +		<entry>Y</entry><entry></entry><entry>Y</entry><entry></entry>
> +		<entry>Y</entry><entry></entry><entry>Y</entry>
> +		</row>
> +		<row>
> +		<entry></entry>
> +		<entry></entry><entry>C</entry><entry></entry><entry></entry>
> +		<entry></entry><entry>C</entry><entry></entry>
> +		</row>
> +		</tbody>
> +		</tgroup>
> +		</informaltable>
> +	</para>
> +	</formalpara>
> +	</example>
> +</refsect1>
> +</refentry>
> diff --git a/Documentation/DocBook/media/v4l/pixfmt.xml b/Documentation/DocBook/media/v4l/pixfmt.xml
> index 99b8d2a..16db350 100644
> --- a/Documentation/DocBook/media/v4l/pixfmt.xml
> +++ b/Documentation/DocBook/media/v4l/pixfmt.xml
> @@ -718,6 +718,7 @@ information.</para>
>       &sub-nv12m;
>       &sub-nv12mt;
>       &sub-nv16;
> +&sub-nv16m;
>       &sub-nv24;
>       &sub-m420;
>     </section>
> diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
> index 95ef455..fec0c20 100644
> --- a/include/uapi/linux/videodev2.h
> +++ b/include/uapi/linux/videodev2.h
> @@ -348,6 +348,8 @@ struct v4l2_pix_format {
>   /* 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  */
>   #define V4L2_PIX_FMT_NV21M   v4l2_fourcc('N', 'M', '2', '1') /* 21  Y/CrCb 4:2:0  */
> +#define V4L2_PIX_FMT_NV16M   v4l2_fourcc('N', 'M', '1', '6') /* 16  Y/CbCr 4:2:2  */
> +#define V4L2_PIX_FMT_NV61M   v4l2_fourcc('N', 'M', '6', '1') /* 16  Y/CrCb 4:2:2  */
>   #define V4L2_PIX_FMT_NV12MT  v4l2_fourcc('T', 'M', '1', '2') /* 12  Y/CbCr 4:2:0 64x32 macroblocks */
>   #define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12  Y/CbCr 4:2:0 16x16 macroblocks */
>

  reply	other threads:[~2013-07-24 21:23 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-17 14:54 [PATCH v2 0/5] Renesas VSP1 driver Laurent Pinchart
2013-07-17 14:54 ` [PATCH v2 1/5] media: Fix circular graph traversal Laurent Pinchart
2013-07-17 19:47   ` Sakari Ailus
2013-07-17 23:06     ` Laurent Pinchart
2013-07-18 10:22       ` Sakari Ailus
2013-07-24 14:09         ` Laurent Pinchart
2013-07-17 14:54 ` [PATCH v2 2/5] v4l: Fix V4L2_MBUS_FMT_YUV10_1X30 media bus pixel code value Laurent Pinchart
2013-07-17 14:54 ` [PATCH v2 3/5] v4l: Add media format codes for ARGB8888 and AYUV8888 on 32-bit busses Laurent Pinchart
2013-07-24 21:26   ` Sylwester Nawrocki
2013-07-25 11:44     ` Laurent Pinchart
2013-07-17 14:54 ` [PATCH v2 4/5] v4l: Add V4L2_PIX_FMT_NV16M and V4L2_PIX_FMT_NV61M formats Laurent Pinchart
2013-07-24 21:23   ` Sylwester Nawrocki [this message]
     [not found] ` <1374072882-14598-6-git-send-email-laurent.pinchart+renesas@ideasonboard.com>
2013-07-24 10:38   ` [PATCH v2 5/5] v4l: Renesas R-Car VSP1 driver Katsuya MATSUBARA
2013-07-24 15:05     ` Laurent Pinchart
2013-07-24 22:48   ` Sakari Ailus
2013-07-25 11:46     ` Laurent Pinchart
2013-07-25 13:43       ` Sakari Ailus
2013-07-31 15:13         ` Laurent Pinchart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51F045D4.4050705@gmail.com \
    --to=sylvester.nawrocki@gmail.com \
    --cc=hverkuil@xs4all.nl \
    --cc=laurent.pinchart+renesas@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=sakari.ailus@iki.fi \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).