lkml.org 
[lkml]   [2020]   [Nov]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v5 01/10] media: v4l: Add packed YUV444 24bpp pixel format
    Date
    From: Mirela Rabulea <mirela.rabulea@nxp.com>

    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.

    Signed-off-by: Mirela Rabulea <mirela.rabulea@nxp.com>
    Reviewed-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
    ---
    Changes in v5:
    Added <Reviewed-by>

    .../media/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/userspace-api/media/v4l/pixfmt-packed-yuv.rst b/Documentation/userspace-api/media/v4l/pixfmt-packed-yuv.rst
    index 84262208dd1c..7b340bf5695d 100644
    --- a/Documentation/userspace-api/media/v4l/pixfmt-packed-yuv.rst
    +++ b/Documentation/userspace-api/media/v4l/pixfmt-packed-yuv.rst
    @@ -10,7 +10,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
    @@ -150,6 +151,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 f0f6906a879d..366b76690432 100644
    --- a/drivers/media/v4l2-core/v4l2-ioctl.c
    +++ b/drivers/media/v4l2-core/v4l2-ioctl.c
    @@ -1304,6 +1304,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 927075fa9099..9973b5f76c76 100644
    --- a/include/uapi/linux/videodev2.h
    +++ b/include/uapi/linux/videodev2.h
    @@ -590,6 +590,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.17.1
    \
     
     \ /
      Last update: 2020-11-12 06:35    [W:4.198 / U:0.620 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site