From: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
To: Mirela Rabulea <mirela.rabulea@nxp.com>
Cc: mchehab@kernel.org, hverkuil-cisco@xs4all.nl,
vivek.kasireddy@intel.com, sakari.ailus@linux.intel.com,
s.nawrocki@samsung.com, niklas.soderlund+renesas@ragnatech.se,
ezequiel@collabora.com, boris.brezillon@collabora.com,
robert.chiras@nxp.com, linux-media@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-imx@nxp.com
Subject: Re: [PATCH] media: v4l: Add packed YUV444 24bpp pixel format
Date: Thu, 11 Jul 2019 10:18:08 +0200 [thread overview]
Message-ID: <20190711081808.GA15389@aptenodytes> (raw)
In-Reply-To: <1562166911-27454-1-git-send-email-mirela.rabulea@nxp.com>
Hi,
On Wed 03 Jul 19, 18:15, Mirela Rabulea wrote:
> The added format is V4L2_PIX_FMT_YUV24, this is a packed
> YUV 4:4:4 format, with 8 bits for each component, 24 bits
> per sample.
>
> This format is used by the i.MX 8QuadMax and i.MX 8DualXPlus/8QuadXPlus
> JPEG encoder/decoder.
So this format is not aligned to 32-bit words at all and we can expect
to see cases where a single 32-bit word contains data for two pixels?
Nothing wrong with that, just checking whether I understood this right :)
Cheers,
Paul
> Signed-off-by: Mirela Rabulea <mirela.rabulea@nxp.com>
> ---
> Documentation/media/uapi/v4l/pixfmt-packed-yuv.rst | 37 +++++++++++++++++++++-
> drivers/media/v4l2-core/v4l2-ioctl.c | 1 +
> include/uapi/linux/videodev2.h | 1 +
> 3 files changed, 38 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/media/uapi/v4l/pixfmt-packed-yuv.rst b/Documentation/media/uapi/v4l/pixfmt-packed-yuv.rst
> index 41b60fa..5750ff6 100644
> --- a/Documentation/media/uapi/v4l/pixfmt-packed-yuv.rst
> +++ b/Documentation/media/uapi/v4l/pixfmt-packed-yuv.rst
> @@ -17,7 +17,8 @@ Description
> ===========
>
> Similar to the packed RGB formats these formats store the Y, Cb and Cr
> -component of each pixel in one 16 or 32 bit word.
> +component of each pixel next to each other in memory. They occupy 16, 24 or 32
> +bits per pixel.
>
>
> .. raw:: latex
> @@ -157,6 +158,40 @@ component of each pixel in one 16 or 32 bit word.
>
> - :cspan:`15`
>
> + * .. _V4L2-PIX-FMT-YUV24:
> +
> + - ``V4L2_PIX_FMT_YUV24``
> + - 'YUV3'
> +
> + - Y'\ :sub:`7`
> + - Y'\ :sub:`6`
> + - Y'\ :sub:`5`
> + - Y'\ :sub:`4`
> + - Y'\ :sub:`3`
> + - Y'\ :sub:`2`
> + - Y'\ :sub:`1`
> + - Y'\ :sub:`0`
> +
> + - Cb\ :sub:`7`
> + - Cb\ :sub:`6`
> + - Cb\ :sub:`5`
> + - Cb\ :sub:`4`
> + - Cb\ :sub:`3`
> + - Cb\ :sub:`2`
> + - Cb\ :sub:`1`
> + - Cb\ :sub:`0`
> +
> + - Cr\ :sub:`7`
> + - Cr\ :sub:`6`
> + - Cr\ :sub:`5`
> + - Cr\ :sub:`4`
> + - Cr\ :sub:`3`
> + - Cr\ :sub:`2`
> + - Cr\ :sub:`1`
> + - Cr\ :sub:`0`
> +
> + - :cspan:`7`
> +
> * .. _V4L2-PIX-FMT-YUV32:
>
> - ``V4L2_PIX_FMT_YUV32``
> diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
> index b1f4b99..9bb6579 100644
> --- a/drivers/media/v4l2-core/v4l2-ioctl.c
> +++ b/drivers/media/v4l2-core/v4l2-ioctl.c
> @@ -1215,6 +1215,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt)
> case V4L2_PIX_FMT_YUV444: descr = "16-bit A/XYUV 4-4-4-4"; break;
> case V4L2_PIX_FMT_YUV555: descr = "16-bit A/XYUV 1-5-5-5"; break;
> case V4L2_PIX_FMT_YUV565: descr = "16-bit YUV 5-6-5"; break;
> + case V4L2_PIX_FMT_YUV24: descr = "24-bit YUV 4:4:4 8-8-8"; break;
> case V4L2_PIX_FMT_YUV32: descr = "32-bit A/XYUV 8-8-8-8"; break;
> case V4L2_PIX_FMT_AYUV32: descr = "32-bit AYUV 8-8-8-8"; break;
> case V4L2_PIX_FMT_XYUV32: descr = "32-bit XYUV 8-8-8-8"; break;
> diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
> index 9d9705c..752dd33 100644
> --- a/include/uapi/linux/videodev2.h
> +++ b/include/uapi/linux/videodev2.h
> @@ -577,6 +577,7 @@ struct v4l2_pix_format {
> #define V4L2_PIX_FMT_YUV444 v4l2_fourcc('Y', '4', '4', '4') /* 16 xxxxyyyy uuuuvvvv */
> #define V4L2_PIX_FMT_YUV555 v4l2_fourcc('Y', 'U', 'V', 'O') /* 16 YUV-5-5-5 */
> #define V4L2_PIX_FMT_YUV565 v4l2_fourcc('Y', 'U', 'V', 'P') /* 16 YUV-5-6-5 */
> +#define V4L2_PIX_FMT_YUV24 v4l2_fourcc('Y', 'U', 'V', '3') /* 24 YUV-8-8-8 */
> #define V4L2_PIX_FMT_YUV32 v4l2_fourcc('Y', 'U', 'V', '4') /* 32 YUV-8-8-8-8 */
> #define V4L2_PIX_FMT_AYUV32 v4l2_fourcc('A', 'Y', 'U', 'V') /* 32 AYUV-8-8-8-8 */
> #define V4L2_PIX_FMT_XYUV32 v4l2_fourcc('X', 'Y', 'U', 'V') /* 32 XYUV-8-8-8-8 */
> --
> 2.7.4
>
--
Paul Kocialkowski, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com
next prev parent reply other threads:[~2019-07-11 8:23 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-03 15:15 [PATCH] media: v4l: Add packed YUV444 24bpp pixel format Mirela Rabulea
2019-07-03 15:15 ` Mirela Rabulea
2019-07-11 8:18 ` Paul Kocialkowski [this message]
2019-07-11 13:57 ` Mirela Rabulea
2019-07-12 9:21 ` paul.kocialkowski
2019-07-12 13:02 ` [EXT] " Mirela Rabulea
2019-08-13 6:54 ` Hans Verkuil
2019-08-22 15:00 ` Mirela Rabulea
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=20190711081808.GA15389@aptenodytes \
--to=paul.kocialkowski@bootlin.com \
--cc=boris.brezillon@collabora.com \
--cc=ezequiel@collabora.com \
--cc=hverkuil-cisco@xs4all.nl \
--cc=linux-imx@nxp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=mirela.rabulea@nxp.com \
--cc=niklas.soderlund+renesas@ragnatech.se \
--cc=robert.chiras@nxp.com \
--cc=s.nawrocki@samsung.com \
--cc=sakari.ailus@linux.intel.com \
--cc=vivek.kasireddy@intel.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.