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× 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 */
>
next prev parent 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).