linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Hans Verkuil <hverkuil-cisco@xs4all.nl>
To: Sakari Ailus <sakari.ailus@linux.intel.com>, linux-media@vger.kernel.org
Subject: Re: [PATCH v2 1/1] v4l: Documentation: Raw Bayer formats are not RGB formats
Date: Tue, 13 Aug 2019 15:42:15 +0200	[thread overview]
Message-ID: <ecc13f2e-a466-3a82-7669-6d33f9c81beb@xs4all.nl> (raw)
In-Reply-To: <20190813133232.5075-1-sakari.ailus@linux.intel.com>

On 8/13/19 3:32 PM, Sakari Ailus wrote:
> The raw Bayer formats have been listed under the label of RGB formats but
> in fact they're quite different. The latter are readily usable as such
> whereas the former require quite bit of image processing before useful.
> 
> Split them into RGB and raw Bayer formats.
> 
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>

Acked-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>

Thanks!

	Hans

> ---
> since v1:
> 
> - Add description for raw Bayer formats
> 
> - Fix reference clash (rename _pixfmt-rgb to _pixfmt-bayer in
>   pixfmt-bayer.rst)
> 
> - Remove _rgb-formats: and refer to _pixfmt-rgb: instead. Same for
>   _rgb-formats-deprecated.
> 
>  Documentation/media/uapi/v4l/control.rst      |    2 +-
>  Documentation/media/uapi/v4l/hist-v4l2.rst    |    2 +-
>  .../v4l/{pixfmt-rgb.rst => pixfmt-bayer.rst}  |   18 +-
>  .../media/uapi/v4l/pixfmt-packed-rgb.rst      | 1306 -----------------
>  Documentation/media/uapi/v4l/pixfmt-rgb.rst   | 1302 +++++++++++++++-
>  Documentation/media/uapi/v4l/pixfmt-v4l2.rst  |    2 +-
>  Documentation/media/uapi/v4l/pixfmt.rst       |    1 +
>  7 files changed, 1305 insertions(+), 1328 deletions(-)
>  copy Documentation/media/uapi/v4l/{pixfmt-rgb.rst => pixfmt-bayer.rst} (60%)
>  delete mode 100644 Documentation/media/uapi/v4l/pixfmt-packed-rgb.rst
> 
> diff --git a/Documentation/media/uapi/v4l/control.rst b/Documentation/media/uapi/v4l/control.rst
> index 71417bba028c6..ef62e088ff7ae 100644
> --- a/Documentation/media/uapi/v4l/control.rst
> +++ b/Documentation/media/uapi/v4l/control.rst
> @@ -295,7 +295,7 @@ Control IDs
>      Sets the alpha color component. When a capture device (or capture
>      queue of a mem-to-mem device) produces a frame format that includes
>      an alpha component (e.g.
> -    :ref:`packed RGB image formats <rgb-formats>`) and the alpha value
> +    :ref:`packed RGB image formats <pixfmt-rgb>`) and the alpha value
>      is not defined by the device or the mem-to-mem input data this
>      control lets you select the alpha component value of all pixels.
>      When an output device (or output queue of a mem-to-mem device)
> diff --git a/Documentation/media/uapi/v4l/hist-v4l2.rst b/Documentation/media/uapi/v4l/hist-v4l2.rst
> index 7d8e9efbeb1ed..9e097f34cb743 100644
> --- a/Documentation/media/uapi/v4l/hist-v4l2.rst
> +++ b/Documentation/media/uapi/v4l/hist-v4l2.rst
> @@ -900,7 +900,7 @@ V4L2 in Linux 2.6.19
>     :ref:`VIDIOC_ENUM_FRAMEINTERVALS`
>     were added.
>  
> -3. A new pixel format ``V4L2_PIX_FMT_RGB444`` (:ref:`rgb-formats`) was
> +3. A new pixel format ``V4L2_PIX_FMT_RGB444`` (:ref:`pixfmt-rgb`) was
>     added.
>  
>  
> diff --git a/Documentation/media/uapi/v4l/pixfmt-rgb.rst b/Documentation/media/uapi/v4l/pixfmt-bayer.rst
> similarity index 60%
> copy from Documentation/media/uapi/v4l/pixfmt-rgb.rst
> copy to Documentation/media/uapi/v4l/pixfmt-bayer.rst
> index 48ab800248352..cfa2f4e3e1142 100644
> --- a/Documentation/media/uapi/v4l/pixfmt-rgb.rst
> +++ b/Documentation/media/uapi/v4l/pixfmt-bayer.rst
> @@ -7,17 +7,25 @@
>  ..
>  .. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections
>  
> -.. _pixfmt-rgb:
> +.. _pixfmt-bayer:
>  
> -***********
> -RGB Formats
> -***********
> +*****************
> +Raw Bayer Formats
> +*****************
> +
> +Description
> +===========
> +
> +The raw Bayer formats are used by image sensors before much if any processing is
> +performed on the image. The formats contain green, red and blue components, with
> +alternating lines of red and green, and blue and green pixels in different
> +orders. See also `the Wikipedia article on Bayer filter
> +<https://en.wikipedia.org/wiki/Bayer_filter>`__.
>  
>  
>  .. toctree::
>      :maxdepth: 1
>  
> -    pixfmt-packed-rgb
>      pixfmt-srggb8
>      pixfmt-srggb10
>      pixfmt-srggb10p
> diff --git a/Documentation/media/uapi/v4l/pixfmt-packed-rgb.rst b/Documentation/media/uapi/v4l/pixfmt-packed-rgb.rst
> deleted file mode 100644
> index 738bb14c0ee28..0000000000000
> --- a/Documentation/media/uapi/v4l/pixfmt-packed-rgb.rst
> +++ /dev/null
> @@ -1,1306 +0,0 @@
> -.. Permission is granted to copy, distribute and/or modify this
> -.. document under the terms of the GNU Free Documentation License,
> -.. Version 1.1 or any later version published by the Free Software
> -.. Foundation, with no Invariant Sections, no Front-Cover Texts
> -.. and no Back-Cover Texts. A copy of the license is included at
> -.. Documentation/media/uapi/fdl-appendix.rst.
> -..
> -.. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections
> -
> -.. _packed-rgb:
> -
> -******************
> -Packed RGB formats
> -******************
> -
> -Description
> -===========
> -
> -These formats are designed to match the pixel formats of typical PC
> -graphics frame buffers. They occupy 8, 16, 24 or 32 bits per pixel.
> -These are all packed-pixel formats, meaning all the data for a pixel lie
> -next to each other in memory.
> -
> -.. raw:: latex
> -
> -    \begingroup
> -    \tiny
> -    \setlength{\tabcolsep}{2pt}
> -
> -.. tabularcolumns:: |p{2.8cm}|p{2.0cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|
> -
> -
> -.. _rgb-formats:
> -
> -.. flat-table:: Packed RGB Image Formats
> -    :header-rows:  2
> -    :stub-columns: 0
> -
> -    * - Identifier
> -      - Code
> -      - :cspan:`7` Byte 0 in memory
> -      - :cspan:`7` Byte 1
> -      - :cspan:`7` Byte 2
> -      - :cspan:`7` Byte 3
> -    * -
> -      -
> -      - 7
> -      - 6
> -      - 5
> -      - 4
> -      - 3
> -      - 2
> -      - 1
> -      - 0
> -
> -      - 7
> -      - 6
> -      - 5
> -      - 4
> -      - 3
> -      - 2
> -      - 1
> -      - 0
> -
> -      - 7
> -      - 6
> -      - 5
> -      - 4
> -      - 3
> -      - 2
> -      - 1
> -      - 0
> -
> -      - 7
> -      - 6
> -      - 5
> -      - 4
> -      - 3
> -      - 2
> -      - 1
> -      - 0
> -    * .. _V4L2-PIX-FMT-RGB332:
> -
> -      - ``V4L2_PIX_FMT_RGB332``
> -      - 'RGB1'
> -
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -      -
> -    * .. _V4L2-PIX-FMT-ARGB444:
> -
> -      - ``V4L2_PIX_FMT_ARGB444``
> -      - 'AR12'
> -
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -
> -      - a\ :sub:`3`
> -      - a\ :sub:`2`
> -      - a\ :sub:`1`
> -      - a\ :sub:`0`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -      -
> -    * .. _V4L2-PIX-FMT-XRGB444:
> -
> -      - ``V4L2_PIX_FMT_XRGB444``
> -      - 'XR12'
> -
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -
> -      -
> -      -
> -      -
> -      -
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -      -
> -    * .. _V4L2-PIX-FMT-RGBA444:
> -
> -      - ``V4L2_PIX_FMT_RGBA444``
> -      - 'RA12'
> -
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -      - a\ :sub:`3`
> -      - a\ :sub:`2`
> -      - a\ :sub:`1`
> -      - a\ :sub:`0`
> -
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      -
> -    * .. _V4L2-PIX-FMT-RGBX444:
> -
> -      - ``V4L2_PIX_FMT_RGBX444``
> -      - 'RX12'
> -
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -      -
> -      -
> -      -
> -      -
> -
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      -
> -    * .. _V4L2-PIX-FMT-ABGR444:
> -
> -      - ``V4L2_PIX_FMT_ABGR444``
> -      - 'AB12'
> -
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -
> -      - a\ :sub:`3`
> -      - a\ :sub:`2`
> -      - a\ :sub:`1`
> -      - a\ :sub:`0`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -      -
> -    * .. _V4L2-PIX-FMT-XBGR444:
> -
> -      - ``V4L2_PIX_FMT_XBGR444``
> -      - 'XB12'
> -
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -
> -      -
> -      -
> -      -
> -      -
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -      -
> -    * .. _V4L2-PIX-FMT-BGRA444:
> -
> -      - ``V4L2_PIX_FMT_BGRA444``
> -      - 'BA12'
> -
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -      - a\ :sub:`3`
> -      - a\ :sub:`2`
> -      - a\ :sub:`1`
> -      - a\ :sub:`0`
> -
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      -
> -    * .. _V4L2-PIX-FMT-BGRX444:
> -
> -      - ``V4L2_PIX_FMT_BGRX444``
> -      - 'BX12'
> -
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -      -
> -      -
> -      -
> -      -
> -
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      -
> -    * .. _V4L2-PIX-FMT-ARGB555:
> -
> -      - ``V4L2_PIX_FMT_ARGB555``
> -      - 'AR15'
> -
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -
> -      - a
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -      -
> -    * .. _V4L2-PIX-FMT-XRGB555:
> -
> -      - ``V4L2_PIX_FMT_XRGB555``
> -      - 'XR15'
> -
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -
> -      -
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -      -
> -    * .. _V4L2-PIX-FMT-RGBA555:
> -
> -      - ``V4L2_PIX_FMT_RGBA555``
> -      - 'RA15'
> -
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -      - a
> -
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      -
> -    * .. _V4L2-PIX-FMT-RGBX555:
> -
> -      - ``V4L2_PIX_FMT_RGBX555``
> -      - 'RX15'
> -
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -      -
> -
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      -
> -    * .. _V4L2-PIX-FMT-ABGR555:
> -
> -      - ``V4L2_PIX_FMT_ABGR555``
> -      - 'AB15'
> -
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -
> -      - a
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -      -
> -    * .. _V4L2-PIX-FMT-XBGR555:
> -
> -      - ``V4L2_PIX_FMT_XBGR555``
> -      - 'XB15'
> -
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -
> -      -
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -      -
> -    * .. _V4L2-PIX-FMT-BGRA555:
> -
> -      - ``V4L2_PIX_FMT_BGRA555``
> -      - 'BA15'
> -
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -      - a
> -
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      -
> -    * .. _V4L2-PIX-FMT-BGRX555:
> -
> -      - ``V4L2_PIX_FMT_BGRX555``
> -      - 'BX15'
> -
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -      -
> -
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      -
> -    * .. _V4L2-PIX-FMT-RGB565:
> -
> -      - ``V4L2_PIX_FMT_RGB565``
> -      - 'RGBP'
> -
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -      - g\ :sub:`5`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -      -
> -    * .. _V4L2-PIX-FMT-ARGB555X:
> -
> -      - ``V4L2_PIX_FMT_ARGB555X``
> -      - 'AR15' | (1 << 31)
> -
> -      - a
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -      -
> -    * .. _V4L2-PIX-FMT-XRGB555X:
> -
> -      - ``V4L2_PIX_FMT_XRGB555X``
> -      - 'XR15' | (1 << 31)
> -
> -      -
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -      -
> -    * .. _V4L2-PIX-FMT-RGB565X:
> -
> -      - ``V4L2_PIX_FMT_RGB565X``
> -      - 'RGBR'
> -
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -      - g\ :sub:`5`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -      -
> -    * .. _V4L2-PIX-FMT-BGR24:
> -
> -      - ``V4L2_PIX_FMT_BGR24``
> -      - 'BGR3'
> -
> -      - b\ :sub:`7`
> -      - b\ :sub:`6`
> -      - b\ :sub:`5`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -
> -      - g\ :sub:`7`
> -      - g\ :sub:`6`
> -      - g\ :sub:`5`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -
> -      - r\ :sub:`7`
> -      - r\ :sub:`6`
> -      - r\ :sub:`5`
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -      -
> -    * .. _V4L2-PIX-FMT-RGB24:
> -
> -      - ``V4L2_PIX_FMT_RGB24``
> -      - 'RGB3'
> -
> -      - r\ :sub:`7`
> -      - r\ :sub:`6`
> -      - r\ :sub:`5`
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -
> -      - g\ :sub:`7`
> -      - g\ :sub:`6`
> -      - g\ :sub:`5`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -
> -      - b\ :sub:`7`
> -      - b\ :sub:`6`
> -      - b\ :sub:`5`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -      -
> -    * .. _V4L2-PIX-FMT-BGR666:
> -
> -      - ``V4L2_PIX_FMT_BGR666``
> -      - 'BGRH'
> -
> -      - b\ :sub:`5`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -      - g\ :sub:`5`
> -      - g\ :sub:`4`
> -
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      - r\ :sub:`5`
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -      -
> -      -
> -      -
> -      -
> -      -
> -      -
> -
> -      -
> -      -
> -      -
> -      -
> -      -
> -      -
> -      -
> -      -
> -    * .. _V4L2-PIX-FMT-ABGR32:
> -
> -      - ``V4L2_PIX_FMT_ABGR32``
> -      - 'AR24'
> -
> -      - b\ :sub:`7`
> -      - b\ :sub:`6`
> -      - b\ :sub:`5`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -
> -      - g\ :sub:`7`
> -      - g\ :sub:`6`
> -      - g\ :sub:`5`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -
> -      - r\ :sub:`7`
> -      - r\ :sub:`6`
> -      - r\ :sub:`5`
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -
> -      - a\ :sub:`7`
> -      - a\ :sub:`6`
> -      - a\ :sub:`5`
> -      - a\ :sub:`4`
> -      - a\ :sub:`3`
> -      - a\ :sub:`2`
> -      - a\ :sub:`1`
> -      - a\ :sub:`0`
> -    * .. _V4L2-PIX-FMT-XBGR32:
> -
> -      - ``V4L2_PIX_FMT_XBGR32``
> -      - 'XR24'
> -
> -      - b\ :sub:`7`
> -      - b\ :sub:`6`
> -      - b\ :sub:`5`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -
> -      - g\ :sub:`7`
> -      - g\ :sub:`6`
> -      - g\ :sub:`5`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -
> -      - r\ :sub:`7`
> -      - r\ :sub:`6`
> -      - r\ :sub:`5`
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -
> -      -
> -      -
> -      -
> -      -
> -      -
> -      -
> -      -
> -      -
> -    * .. _V4L2-PIX-FMT-BGRA32:
> -
> -      - ``V4L2_PIX_FMT_BGRA32``
> -      - 'RA24'
> -
> -      - a\ :sub:`7`
> -      - a\ :sub:`6`
> -      - a\ :sub:`5`
> -      - a\ :sub:`4`
> -      - a\ :sub:`3`
> -      - a\ :sub:`2`
> -      - a\ :sub:`1`
> -      - a\ :sub:`0`
> -
> -      - b\ :sub:`7`
> -      - b\ :sub:`6`
> -      - b\ :sub:`5`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -
> -      - g\ :sub:`7`
> -      - g\ :sub:`6`
> -      - g\ :sub:`5`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -
> -      - r\ :sub:`7`
> -      - r\ :sub:`6`
> -      - r\ :sub:`5`
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -    * .. _V4L2-PIX-FMT-BGRX32:
> -
> -      - ``V4L2_PIX_FMT_BGRX32``
> -      - 'RX24'
> -
> -      -
> -      -
> -      -
> -      -
> -      -
> -      -
> -      -
> -      -
> -
> -      - b\ :sub:`7`
> -      - b\ :sub:`6`
> -      - b\ :sub:`5`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -
> -      - g\ :sub:`7`
> -      - g\ :sub:`6`
> -      - g\ :sub:`5`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -
> -      - r\ :sub:`7`
> -      - r\ :sub:`6`
> -      - r\ :sub:`5`
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -    * .. _V4L2-PIX-FMT-RGBA32:
> -
> -      - ``V4L2_PIX_FMT_RGBA32``
> -      - 'AB24'
> -
> -      - r\ :sub:`7`
> -      - r\ :sub:`6`
> -      - r\ :sub:`5`
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -
> -      - g\ :sub:`7`
> -      - g\ :sub:`6`
> -      - g\ :sub:`5`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -
> -      - b\ :sub:`7`
> -      - b\ :sub:`6`
> -      - b\ :sub:`5`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -
> -      - a\ :sub:`7`
> -      - a\ :sub:`6`
> -      - a\ :sub:`5`
> -      - a\ :sub:`4`
> -      - a\ :sub:`3`
> -      - a\ :sub:`2`
> -      - a\ :sub:`1`
> -      - a\ :sub:`0`
> -    * .. _V4L2-PIX-FMT-RGBX32:
> -
> -      - ``V4L2_PIX_FMT_RGBX32``
> -      - 'XB24'
> -
> -      - r\ :sub:`7`
> -      - r\ :sub:`6`
> -      - r\ :sub:`5`
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -
> -      - g\ :sub:`7`
> -      - g\ :sub:`6`
> -      - g\ :sub:`5`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -
> -      - b\ :sub:`7`
> -      - b\ :sub:`6`
> -      - b\ :sub:`5`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -
> -      -
> -      -
> -      -
> -      -
> -      -
> -      -
> -      -
> -      -
> -    * .. _V4L2-PIX-FMT-ARGB32:
> -
> -      - ``V4L2_PIX_FMT_ARGB32``
> -      - 'BA24'
> -
> -      - a\ :sub:`7`
> -      - a\ :sub:`6`
> -      - a\ :sub:`5`
> -      - a\ :sub:`4`
> -      - a\ :sub:`3`
> -      - a\ :sub:`2`
> -      - a\ :sub:`1`
> -      - a\ :sub:`0`
> -
> -      - r\ :sub:`7`
> -      - r\ :sub:`6`
> -      - r\ :sub:`5`
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -
> -      - g\ :sub:`7`
> -      - g\ :sub:`6`
> -      - g\ :sub:`5`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -
> -      - b\ :sub:`7`
> -      - b\ :sub:`6`
> -      - b\ :sub:`5`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -    * .. _V4L2-PIX-FMT-XRGB32:
> -
> -      - ``V4L2_PIX_FMT_XRGB32``
> -      - 'BX24'
> -
> -      -
> -      -
> -      -
> -      -
> -      -
> -      -
> -      -
> -      -
> -
> -      - r\ :sub:`7`
> -      - r\ :sub:`6`
> -      - r\ :sub:`5`
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -
> -      - g\ :sub:`7`
> -      - g\ :sub:`6`
> -      - g\ :sub:`5`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -
> -      - b\ :sub:`7`
> -      - b\ :sub:`6`
> -      - b\ :sub:`5`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -
> -.. raw:: latex
> -
> -    \endgroup
> -
> -.. note:: Bit 7 is the most significant bit.
> -
> -The usage and value of the alpha bits (a) in the ARGB and ABGR formats
> -(collectively referred to as alpha formats) depend on the device type
> -and hardware operation. :ref:`Capture <capture>` devices (including
> -capture queues of mem-to-mem devices) fill the alpha component in
> -memory. When the device outputs an alpha channel the alpha component
> -will have a meaningful value. Otherwise, when the device doesn't output
> -an alpha channel but can set the alpha bit to a user-configurable value,
> -the :ref:`V4L2_CID_ALPHA_COMPONENT <v4l2-alpha-component>` control
> -is used to specify that alpha value, and the alpha component of all
> -pixels will be set to the value specified by that control. Otherwise a
> -corresponding format without an alpha component (XRGB or XBGR) must be
> -used instead of an alpha format.
> -
> -:ref:`Output <output>` devices (including output queues of mem-to-mem
> -devices and :ref:`video output overlay <osd>` devices) read the alpha
> -component from memory. When the device processes the alpha channel the
> -alpha component must be filled with meaningful values by applications.
> -Otherwise a corresponding format without an alpha component (XRGB or
> -XBGR) must be used instead of an alpha format.
> -
> -The XRGB and XBGR formats contain undefined bits (-). Applications,
> -devices and drivers must ignore those bits, for both
> -:ref:`capture` and :ref:`output` devices.
> -
> -**Byte Order.**
> -Each cell is one byte.
> -
> -
> -.. raw:: latex
> -
> -    \small
> -
> -.. tabularcolumns:: |p{3.1cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|
> -
> -.. flat-table:: RGB byte order
> -    :header-rows:  0
> -    :stub-columns: 0
> -    :widths:       11 3 3 3 3 3 3 3 3 3 3 3 3
> -
> -    * - start + 0:
> -      - B\ :sub:`00`
> -      - G\ :sub:`00`
> -      - R\ :sub:`00`
> -      - B\ :sub:`01`
> -      - G\ :sub:`01`
> -      - R\ :sub:`01`
> -      - B\ :sub:`02`
> -      - G\ :sub:`02`
> -      - R\ :sub:`02`
> -      - B\ :sub:`03`
> -      - G\ :sub:`03`
> -      - R\ :sub:`03`
> -    * - start + 12:
> -      - B\ :sub:`10`
> -      - G\ :sub:`10`
> -      - R\ :sub:`10`
> -      - B\ :sub:`11`
> -      - G\ :sub:`11`
> -      - R\ :sub:`11`
> -      - B\ :sub:`12`
> -      - G\ :sub:`12`
> -      - R\ :sub:`12`
> -      - B\ :sub:`13`
> -      - G\ :sub:`13`
> -      - R\ :sub:`13`
> -    * - start + 24:
> -      - B\ :sub:`20`
> -      - G\ :sub:`20`
> -      - R\ :sub:`20`
> -      - B\ :sub:`21`
> -      - G\ :sub:`21`
> -      - R\ :sub:`21`
> -      - B\ :sub:`22`
> -      - G\ :sub:`22`
> -      - R\ :sub:`22`
> -      - B\ :sub:`23`
> -      - G\ :sub:`23`
> -      - R\ :sub:`23`
> -    * - start + 36:
> -      - B\ :sub:`30`
> -      - G\ :sub:`30`
> -      - R\ :sub:`30`
> -      - B\ :sub:`31`
> -      - G\ :sub:`31`
> -      - R\ :sub:`31`
> -      - B\ :sub:`32`
> -      - G\ :sub:`32`
> -      - R\ :sub:`32`
> -      - B\ :sub:`33`
> -      - G\ :sub:`33`
> -      - R\ :sub:`33`
> -
> -.. raw:: latex
> -
> -    \normalsize
> -
> -Formats defined in :ref:`rgb-formats-deprecated` are deprecated and
> -must not be used by new drivers. They are documented here for reference.
> -The meaning of their alpha bits ``(a)`` are ill-defined and interpreted as in
> -either the corresponding ARGB or XRGB format, depending on the driver.
> -
> -
> -.. raw:: latex
> -
> -    \begingroup
> -    \tiny
> -    \setlength{\tabcolsep}{2pt}
> -
> -.. tabularcolumns:: |p{2.6cm}|p{0.70cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|
> -
> -.. _rgb-formats-deprecated:
> -
> -.. flat-table:: Deprecated Packed RGB Image Formats
> -    :header-rows:  2
> -    :stub-columns: 0
> -
> -    * - Identifier
> -      - Code
> -      - :cspan:`7` Byte 0 in memory
> -
> -      - :cspan:`7` Byte 1
> -
> -      - :cspan:`7` Byte 2
> -
> -      - :cspan:`7` Byte 3
> -    * -
> -      -
> -      - 7
> -      - 6
> -      - 5
> -      - 4
> -      - 3
> -      - 2
> -      - 1
> -      - 0
> -
> -      - 7
> -      - 6
> -      - 5
> -      - 4
> -      - 3
> -      - 2
> -      - 1
> -      - 0
> -
> -      - 7
> -      - 6
> -      - 5
> -      - 4
> -      - 3
> -      - 2
> -      - 1
> -      - 0
> -
> -      - 7
> -      - 6
> -      - 5
> -      - 4
> -      - 3
> -      - 2
> -      - 1
> -      - 0
> -    * .. _V4L2-PIX-FMT-RGB444:
> -
> -      - ``V4L2_PIX_FMT_RGB444``
> -      - 'R444'
> -
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -
> -      - a\ :sub:`3`
> -      - a\ :sub:`2`
> -      - a\ :sub:`1`
> -      - a\ :sub:`0`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -      -
> -    * .. _V4L2-PIX-FMT-RGB555:
> -
> -      - ``V4L2_PIX_FMT_RGB555``
> -      - 'RGBO'
> -
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -
> -      - a
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -      -
> -    * .. _V4L2-PIX-FMT-RGB555X:
> -
> -      - ``V4L2_PIX_FMT_RGB555X``
> -      - 'RGBQ'
> -
> -      - a
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -      -
> -    * .. _V4L2-PIX-FMT-BGR32:
> -
> -      - ``V4L2_PIX_FMT_BGR32``
> -      - 'BGR4'
> -
> -      - b\ :sub:`7`
> -      - b\ :sub:`6`
> -      - b\ :sub:`5`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -
> -      - g\ :sub:`7`
> -      - g\ :sub:`6`
> -      - g\ :sub:`5`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -
> -      - r\ :sub:`7`
> -      - r\ :sub:`6`
> -      - r\ :sub:`5`
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -
> -      - a\ :sub:`7`
> -      - a\ :sub:`6`
> -      - a\ :sub:`5`
> -      - a\ :sub:`4`
> -      - a\ :sub:`3`
> -      - a\ :sub:`2`
> -      - a\ :sub:`1`
> -      - a\ :sub:`0`
> -    * .. _V4L2-PIX-FMT-RGB32:
> -
> -      - ``V4L2_PIX_FMT_RGB32``
> -      - 'RGB4'
> -
> -      - a\ :sub:`7`
> -      - a\ :sub:`6`
> -      - a\ :sub:`5`
> -      - a\ :sub:`4`
> -      - a\ :sub:`3`
> -      - a\ :sub:`2`
> -      - a\ :sub:`1`
> -      - a\ :sub:`0`
> -
> -      - r\ :sub:`7`
> -      - r\ :sub:`6`
> -      - r\ :sub:`5`
> -      - r\ :sub:`4`
> -      - r\ :sub:`3`
> -      - r\ :sub:`2`
> -      - r\ :sub:`1`
> -      - r\ :sub:`0`
> -
> -      - g\ :sub:`7`
> -      - g\ :sub:`6`
> -      - g\ :sub:`5`
> -      - g\ :sub:`4`
> -      - g\ :sub:`3`
> -      - g\ :sub:`2`
> -      - g\ :sub:`1`
> -      - g\ :sub:`0`
> -
> -      - b\ :sub:`7`
> -      - b\ :sub:`6`
> -      - b\ :sub:`5`
> -      - b\ :sub:`4`
> -      - b\ :sub:`3`
> -      - b\ :sub:`2`
> -      - b\ :sub:`1`
> -      - b\ :sub:`0`
> -
> -.. raw:: latex
> -
> -    \endgroup
> -
> -A test utility to determine which RGB formats a driver actually supports
> -is available from the LinuxTV v4l-dvb repository. See
> -`https://linuxtv.org/repo/ <https://linuxtv.org/repo/>`__ for access
> -instructions.
> diff --git a/Documentation/media/uapi/v4l/pixfmt-rgb.rst b/Documentation/media/uapi/v4l/pixfmt-rgb.rst
> index 48ab800248352..4ce305cc45da2 100644
> --- a/Documentation/media/uapi/v4l/pixfmt-rgb.rst
> +++ b/Documentation/media/uapi/v4l/pixfmt-rgb.rst
> @@ -13,18 +13,1292 @@
>  RGB Formats
>  ***********
>  
> +Description
> +===========
>  
> -.. toctree::
> -    :maxdepth: 1
> -
> -    pixfmt-packed-rgb
> -    pixfmt-srggb8
> -    pixfmt-srggb10
> -    pixfmt-srggb10p
> -    pixfmt-srggb10alaw8
> -    pixfmt-srggb10dpcm8
> -    pixfmt-srggb10-ipu3
> -    pixfmt-srggb12
> -    pixfmt-srggb12p
> -    pixfmt-srggb14p
> -    pixfmt-srggb16
> +These formats are designed to match the pixel formats of typical PC
> +graphics frame buffers. They occupy 8, 16, 24 or 32 bits per pixel.
> +These are all packed-pixel formats, meaning all the data for a pixel lie
> +next to each other in memory.
> +
> +.. raw:: latex
> +
> +    \begingroup
> +    \tiny
> +    \setlength{\tabcolsep}{2pt}
> +
> +.. tabularcolumns:: |p{2.8cm}|p{2.0cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|
> +
> +
> +.. flat-table:: RGB Image Formats
> +    :header-rows:  2
> +    :stub-columns: 0
> +
> +    * - Identifier
> +      - Code
> +      - :cspan:`7` Byte 0 in memory
> +      - :cspan:`7` Byte 1
> +      - :cspan:`7` Byte 2
> +      - :cspan:`7` Byte 3
> +    * -
> +      -
> +      - 7
> +      - 6
> +      - 5
> +      - 4
> +      - 3
> +      - 2
> +      - 1
> +      - 0
> +
> +      - 7
> +      - 6
> +      - 5
> +      - 4
> +      - 3
> +      - 2
> +      - 1
> +      - 0
> +
> +      - 7
> +      - 6
> +      - 5
> +      - 4
> +      - 3
> +      - 2
> +      - 1
> +      - 0
> +
> +      - 7
> +      - 6
> +      - 5
> +      - 4
> +      - 3
> +      - 2
> +      - 1
> +      - 0
> +    * .. _V4L2-PIX-FMT-RGB332:
> +
> +      - ``V4L2_PIX_FMT_RGB332``
> +      - 'RGB1'
> +
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +      -
> +    * .. _V4L2-PIX-FMT-ARGB444:
> +
> +      - ``V4L2_PIX_FMT_ARGB444``
> +      - 'AR12'
> +
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +
> +      - a\ :sub:`3`
> +      - a\ :sub:`2`
> +      - a\ :sub:`1`
> +      - a\ :sub:`0`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +      -
> +    * .. _V4L2-PIX-FMT-XRGB444:
> +
> +      - ``V4L2_PIX_FMT_XRGB444``
> +      - 'XR12'
> +
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +
> +      -
> +      -
> +      -
> +      -
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +      -
> +    * .. _V4L2-PIX-FMT-RGBA444:
> +
> +      - ``V4L2_PIX_FMT_RGBA444``
> +      - 'RA12'
> +
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +      - a\ :sub:`3`
> +      - a\ :sub:`2`
> +      - a\ :sub:`1`
> +      - a\ :sub:`0`
> +
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      -
> +    * .. _V4L2-PIX-FMT-RGBX444:
> +
> +      - ``V4L2_PIX_FMT_RGBX444``
> +      - 'RX12'
> +
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +      -
> +      -
> +      -
> +      -
> +
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      -
> +    * .. _V4L2-PIX-FMT-ABGR444:
> +
> +      - ``V4L2_PIX_FMT_ABGR444``
> +      - 'AB12'
> +
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +
> +      - a\ :sub:`3`
> +      - a\ :sub:`2`
> +      - a\ :sub:`1`
> +      - a\ :sub:`0`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +      -
> +    * .. _V4L2-PIX-FMT-XBGR444:
> +
> +      - ``V4L2_PIX_FMT_XBGR444``
> +      - 'XB12'
> +
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +
> +      -
> +      -
> +      -
> +      -
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +      -
> +    * .. _V4L2-PIX-FMT-BGRA444:
> +
> +      - ``V4L2_PIX_FMT_BGRA444``
> +      - 'BA12'
> +
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +      - a\ :sub:`3`
> +      - a\ :sub:`2`
> +      - a\ :sub:`1`
> +      - a\ :sub:`0`
> +
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      -
> +    * .. _V4L2-PIX-FMT-BGRX444:
> +
> +      - ``V4L2_PIX_FMT_BGRX444``
> +      - 'BX12'
> +
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +      -
> +      -
> +      -
> +      -
> +
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      -
> +    * .. _V4L2-PIX-FMT-ARGB555:
> +
> +      - ``V4L2_PIX_FMT_ARGB555``
> +      - 'AR15'
> +
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +
> +      - a
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +      -
> +    * .. _V4L2-PIX-FMT-XRGB555:
> +
> +      - ``V4L2_PIX_FMT_XRGB555``
> +      - 'XR15'
> +
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +
> +      -
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +      -
> +    * .. _V4L2-PIX-FMT-RGBA555:
> +
> +      - ``V4L2_PIX_FMT_RGBA555``
> +      - 'RA15'
> +
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +      - a
> +
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      -
> +    * .. _V4L2-PIX-FMT-RGBX555:
> +
> +      - ``V4L2_PIX_FMT_RGBX555``
> +      - 'RX15'
> +
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +      -
> +
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      -
> +    * .. _V4L2-PIX-FMT-ABGR555:
> +
> +      - ``V4L2_PIX_FMT_ABGR555``
> +      - 'AB15'
> +
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +
> +      - a
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +      -
> +    * .. _V4L2-PIX-FMT-XBGR555:
> +
> +      - ``V4L2_PIX_FMT_XBGR555``
> +      - 'XB15'
> +
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +
> +      -
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +      -
> +    * .. _V4L2-PIX-FMT-BGRA555:
> +
> +      - ``V4L2_PIX_FMT_BGRA555``
> +      - 'BA15'
> +
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +      - a
> +
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      -
> +    * .. _V4L2-PIX-FMT-BGRX555:
> +
> +      - ``V4L2_PIX_FMT_BGRX555``
> +      - 'BX15'
> +
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +      -
> +
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      -
> +    * .. _V4L2-PIX-FMT-RGB565:
> +
> +      - ``V4L2_PIX_FMT_RGB565``
> +      - 'RGBP'
> +
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +      - g\ :sub:`5`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +      -
> +    * .. _V4L2-PIX-FMT-ARGB555X:
> +
> +      - ``V4L2_PIX_FMT_ARGB555X``
> +      - 'AR15' | (1 << 31)
> +
> +      - a
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +      -
> +    * .. _V4L2-PIX-FMT-XRGB555X:
> +
> +      - ``V4L2_PIX_FMT_XRGB555X``
> +      - 'XR15' | (1 << 31)
> +
> +      -
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +      -
> +    * .. _V4L2-PIX-FMT-RGB565X:
> +
> +      - ``V4L2_PIX_FMT_RGB565X``
> +      - 'RGBR'
> +
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +      - g\ :sub:`5`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +      -
> +    * .. _V4L2-PIX-FMT-BGR24:
> +
> +      - ``V4L2_PIX_FMT_BGR24``
> +      - 'BGR3'
> +
> +      - b\ :sub:`7`
> +      - b\ :sub:`6`
> +      - b\ :sub:`5`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +
> +      - g\ :sub:`7`
> +      - g\ :sub:`6`
> +      - g\ :sub:`5`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +
> +      - r\ :sub:`7`
> +      - r\ :sub:`6`
> +      - r\ :sub:`5`
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +      -
> +    * .. _V4L2-PIX-FMT-RGB24:
> +
> +      - ``V4L2_PIX_FMT_RGB24``
> +      - 'RGB3'
> +
> +      - r\ :sub:`7`
> +      - r\ :sub:`6`
> +      - r\ :sub:`5`
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +
> +      - g\ :sub:`7`
> +      - g\ :sub:`6`
> +      - g\ :sub:`5`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +
> +      - b\ :sub:`7`
> +      - b\ :sub:`6`
> +      - b\ :sub:`5`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +      -
> +    * .. _V4L2-PIX-FMT-BGR666:
> +
> +      - ``V4L2_PIX_FMT_BGR666``
> +      - 'BGRH'
> +
> +      - b\ :sub:`5`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +      - g\ :sub:`5`
> +      - g\ :sub:`4`
> +
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      - r\ :sub:`5`
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +      -
> +      -
> +      -
> +      -
> +      -
> +      -
> +
> +      -
> +      -
> +      -
> +      -
> +      -
> +      -
> +      -
> +      -
> +    * .. _V4L2-PIX-FMT-ABGR32:
> +
> +      - ``V4L2_PIX_FMT_ABGR32``
> +      - 'AR24'
> +
> +      - b\ :sub:`7`
> +      - b\ :sub:`6`
> +      - b\ :sub:`5`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +
> +      - g\ :sub:`7`
> +      - g\ :sub:`6`
> +      - g\ :sub:`5`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +
> +      - r\ :sub:`7`
> +      - r\ :sub:`6`
> +      - r\ :sub:`5`
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +
> +      - a\ :sub:`7`
> +      - a\ :sub:`6`
> +      - a\ :sub:`5`
> +      - a\ :sub:`4`
> +      - a\ :sub:`3`
> +      - a\ :sub:`2`
> +      - a\ :sub:`1`
> +      - a\ :sub:`0`
> +    * .. _V4L2-PIX-FMT-XBGR32:
> +
> +      - ``V4L2_PIX_FMT_XBGR32``
> +      - 'XR24'
> +
> +      - b\ :sub:`7`
> +      - b\ :sub:`6`
> +      - b\ :sub:`5`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +
> +      - g\ :sub:`7`
> +      - g\ :sub:`6`
> +      - g\ :sub:`5`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +
> +      - r\ :sub:`7`
> +      - r\ :sub:`6`
> +      - r\ :sub:`5`
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +
> +      -
> +      -
> +      -
> +      -
> +      -
> +      -
> +      -
> +      -
> +    * .. _V4L2-PIX-FMT-BGRA32:
> +
> +      - ``V4L2_PIX_FMT_BGRA32``
> +      - 'RA24'
> +
> +      - a\ :sub:`7`
> +      - a\ :sub:`6`
> +      - a\ :sub:`5`
> +      - a\ :sub:`4`
> +      - a\ :sub:`3`
> +      - a\ :sub:`2`
> +      - a\ :sub:`1`
> +      - a\ :sub:`0`
> +
> +      - b\ :sub:`7`
> +      - b\ :sub:`6`
> +      - b\ :sub:`5`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +
> +      - g\ :sub:`7`
> +      - g\ :sub:`6`
> +      - g\ :sub:`5`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +
> +      - r\ :sub:`7`
> +      - r\ :sub:`6`
> +      - r\ :sub:`5`
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +    * .. _V4L2-PIX-FMT-BGRX32:
> +
> +      - ``V4L2_PIX_FMT_BGRX32``
> +      - 'RX24'
> +
> +      -
> +      -
> +      -
> +      -
> +      -
> +      -
> +      -
> +      -
> +
> +      - b\ :sub:`7`
> +      - b\ :sub:`6`
> +      - b\ :sub:`5`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +
> +      - g\ :sub:`7`
> +      - g\ :sub:`6`
> +      - g\ :sub:`5`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +
> +      - r\ :sub:`7`
> +      - r\ :sub:`6`
> +      - r\ :sub:`5`
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +    * .. _V4L2-PIX-FMT-RGBA32:
> +
> +      - ``V4L2_PIX_FMT_RGBA32``
> +      - 'AB24'
> +
> +      - r\ :sub:`7`
> +      - r\ :sub:`6`
> +      - r\ :sub:`5`
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +
> +      - g\ :sub:`7`
> +      - g\ :sub:`6`
> +      - g\ :sub:`5`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +
> +      - b\ :sub:`7`
> +      - b\ :sub:`6`
> +      - b\ :sub:`5`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +
> +      - a\ :sub:`7`
> +      - a\ :sub:`6`
> +      - a\ :sub:`5`
> +      - a\ :sub:`4`
> +      - a\ :sub:`3`
> +      - a\ :sub:`2`
> +      - a\ :sub:`1`
> +      - a\ :sub:`0`
> +    * .. _V4L2-PIX-FMT-RGBX32:
> +
> +      - ``V4L2_PIX_FMT_RGBX32``
> +      - 'XB24'
> +
> +      - r\ :sub:`7`
> +      - r\ :sub:`6`
> +      - r\ :sub:`5`
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +
> +      - g\ :sub:`7`
> +      - g\ :sub:`6`
> +      - g\ :sub:`5`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +
> +      - b\ :sub:`7`
> +      - b\ :sub:`6`
> +      - b\ :sub:`5`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +
> +      -
> +      -
> +      -
> +      -
> +      -
> +      -
> +      -
> +      -
> +    * .. _V4L2-PIX-FMT-ARGB32:
> +
> +      - ``V4L2_PIX_FMT_ARGB32``
> +      - 'BA24'
> +
> +      - a\ :sub:`7`
> +      - a\ :sub:`6`
> +      - a\ :sub:`5`
> +      - a\ :sub:`4`
> +      - a\ :sub:`3`
> +      - a\ :sub:`2`
> +      - a\ :sub:`1`
> +      - a\ :sub:`0`
> +
> +      - r\ :sub:`7`
> +      - r\ :sub:`6`
> +      - r\ :sub:`5`
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +
> +      - g\ :sub:`7`
> +      - g\ :sub:`6`
> +      - g\ :sub:`5`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +
> +      - b\ :sub:`7`
> +      - b\ :sub:`6`
> +      - b\ :sub:`5`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +    * .. _V4L2-PIX-FMT-XRGB32:
> +
> +      - ``V4L2_PIX_FMT_XRGB32``
> +      - 'BX24'
> +
> +      -
> +      -
> +      -
> +      -
> +      -
> +      -
> +      -
> +      -
> +
> +      - r\ :sub:`7`
> +      - r\ :sub:`6`
> +      - r\ :sub:`5`
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +
> +      - g\ :sub:`7`
> +      - g\ :sub:`6`
> +      - g\ :sub:`5`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +
> +      - b\ :sub:`7`
> +      - b\ :sub:`6`
> +      - b\ :sub:`5`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +
> +.. raw:: latex
> +
> +    \endgroup
> +
> +.. note:: Bit 7 is the most significant bit.
> +
> +The usage and value of the alpha bits (a) in the ARGB and ABGR formats
> +(collectively referred to as alpha formats) depend on the device type
> +and hardware operation. :ref:`Capture <capture>` devices (including
> +capture queues of mem-to-mem devices) fill the alpha component in
> +memory. When the device outputs an alpha channel the alpha component
> +will have a meaningful value. Otherwise, when the device doesn't output
> +an alpha channel but can set the alpha bit to a user-configurable value,
> +the :ref:`V4L2_CID_ALPHA_COMPONENT <v4l2-alpha-component>` control
> +is used to specify that alpha value, and the alpha component of all
> +pixels will be set to the value specified by that control. Otherwise a
> +corresponding format without an alpha component (XRGB or XBGR) must be
> +used instead of an alpha format.
> +
> +:ref:`Output <output>` devices (including output queues of mem-to-mem
> +devices and :ref:`video output overlay <osd>` devices) read the alpha
> +component from memory. When the device processes the alpha channel the
> +alpha component must be filled with meaningful values by applications.
> +Otherwise a corresponding format without an alpha component (XRGB or
> +XBGR) must be used instead of an alpha format.
> +
> +The XRGB and XBGR formats contain undefined bits (-). Applications,
> +devices and drivers must ignore those bits, for both
> +:ref:`capture` and :ref:`output` devices.
> +
> +**Byte Order.**
> +Each cell is one byte.
> +
> +
> +.. raw:: latex
> +
> +    \small
> +
> +.. tabularcolumns:: |p{3.1cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|p{0.8cm}|
> +
> +.. flat-table:: RGB byte order
> +    :header-rows:  0
> +    :stub-columns: 0
> +    :widths:       11 3 3 3 3 3 3 3 3 3 3 3 3
> +
> +    * - start + 0:
> +      - B\ :sub:`00`
> +      - G\ :sub:`00`
> +      - R\ :sub:`00`
> +      - B\ :sub:`01`
> +      - G\ :sub:`01`
> +      - R\ :sub:`01`
> +      - B\ :sub:`02`
> +      - G\ :sub:`02`
> +      - R\ :sub:`02`
> +      - B\ :sub:`03`
> +      - G\ :sub:`03`
> +      - R\ :sub:`03`
> +    * - start + 12:
> +      - B\ :sub:`10`
> +      - G\ :sub:`10`
> +      - R\ :sub:`10`
> +      - B\ :sub:`11`
> +      - G\ :sub:`11`
> +      - R\ :sub:`11`
> +      - B\ :sub:`12`
> +      - G\ :sub:`12`
> +      - R\ :sub:`12`
> +      - B\ :sub:`13`
> +      - G\ :sub:`13`
> +      - R\ :sub:`13`
> +    * - start + 24:
> +      - B\ :sub:`20`
> +      - G\ :sub:`20`
> +      - R\ :sub:`20`
> +      - B\ :sub:`21`
> +      - G\ :sub:`21`
> +      - R\ :sub:`21`
> +      - B\ :sub:`22`
> +      - G\ :sub:`22`
> +      - R\ :sub:`22`
> +      - B\ :sub:`23`
> +      - G\ :sub:`23`
> +      - R\ :sub:`23`
> +    * - start + 36:
> +      - B\ :sub:`30`
> +      - G\ :sub:`30`
> +      - R\ :sub:`30`
> +      - B\ :sub:`31`
> +      - G\ :sub:`31`
> +      - R\ :sub:`31`
> +      - B\ :sub:`32`
> +      - G\ :sub:`32`
> +      - R\ :sub:`32`
> +      - B\ :sub:`33`
> +      - G\ :sub:`33`
> +      - R\ :sub:`33`
> +
> +.. raw:: latex
> +
> +    \normalsize
> +
> +Formats defined in :ref:`pixfmt-rgb-deprecated` are deprecated and
> +must not be used by new drivers. They are documented here for reference.
> +The meaning of their alpha bits ``(a)`` are ill-defined and interpreted as in
> +either the corresponding ARGB or XRGB format, depending on the driver.
> +
> +
> +.. raw:: latex
> +
> +    \begingroup
> +    \tiny
> +    \setlength{\tabcolsep}{2pt}
> +
> +.. tabularcolumns:: |p{2.6cm}|p{0.70cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|
> +
> +.. _pixfmt-rgb-deprecated:
> +
> +.. flat-table:: Deprecated Packed RGB Image Formats
> +    :header-rows:  2
> +    :stub-columns: 0
> +
> +    * - Identifier
> +      - Code
> +      - :cspan:`7` Byte 0 in memory
> +
> +      - :cspan:`7` Byte 1
> +
> +      - :cspan:`7` Byte 2
> +
> +      - :cspan:`7` Byte 3
> +    * -
> +      -
> +      - 7
> +      - 6
> +      - 5
> +      - 4
> +      - 3
> +      - 2
> +      - 1
> +      - 0
> +
> +      - 7
> +      - 6
> +      - 5
> +      - 4
> +      - 3
> +      - 2
> +      - 1
> +      - 0
> +
> +      - 7
> +      - 6
> +      - 5
> +      - 4
> +      - 3
> +      - 2
> +      - 1
> +      - 0
> +
> +      - 7
> +      - 6
> +      - 5
> +      - 4
> +      - 3
> +      - 2
> +      - 1
> +      - 0
> +    * .. _V4L2-PIX-FMT-RGB444:
> +
> +      - ``V4L2_PIX_FMT_RGB444``
> +      - 'R444'
> +
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +
> +      - a\ :sub:`3`
> +      - a\ :sub:`2`
> +      - a\ :sub:`1`
> +      - a\ :sub:`0`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +      -
> +    * .. _V4L2-PIX-FMT-RGB555:
> +
> +      - ``V4L2_PIX_FMT_RGB555``
> +      - 'RGBO'
> +
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +
> +      - a
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +      -
> +    * .. _V4L2-PIX-FMT-RGB555X:
> +
> +      - ``V4L2_PIX_FMT_RGB555X``
> +      - 'RGBQ'
> +
> +      - a
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +      -
> +    * .. _V4L2-PIX-FMT-BGR32:
> +
> +      - ``V4L2_PIX_FMT_BGR32``
> +      - 'BGR4'
> +
> +      - b\ :sub:`7`
> +      - b\ :sub:`6`
> +      - b\ :sub:`5`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +
> +      - g\ :sub:`7`
> +      - g\ :sub:`6`
> +      - g\ :sub:`5`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +
> +      - r\ :sub:`7`
> +      - r\ :sub:`6`
> +      - r\ :sub:`5`
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +
> +      - a\ :sub:`7`
> +      - a\ :sub:`6`
> +      - a\ :sub:`5`
> +      - a\ :sub:`4`
> +      - a\ :sub:`3`
> +      - a\ :sub:`2`
> +      - a\ :sub:`1`
> +      - a\ :sub:`0`
> +    * .. _V4L2-PIX-FMT-RGB32:
> +
> +      - ``V4L2_PIX_FMT_RGB32``
> +      - 'RGB4'
> +
> +      - a\ :sub:`7`
> +      - a\ :sub:`6`
> +      - a\ :sub:`5`
> +      - a\ :sub:`4`
> +      - a\ :sub:`3`
> +      - a\ :sub:`2`
> +      - a\ :sub:`1`
> +      - a\ :sub:`0`
> +
> +      - r\ :sub:`7`
> +      - r\ :sub:`6`
> +      - r\ :sub:`5`
> +      - r\ :sub:`4`
> +      - r\ :sub:`3`
> +      - r\ :sub:`2`
> +      - r\ :sub:`1`
> +      - r\ :sub:`0`
> +
> +      - g\ :sub:`7`
> +      - g\ :sub:`6`
> +      - g\ :sub:`5`
> +      - g\ :sub:`4`
> +      - g\ :sub:`3`
> +      - g\ :sub:`2`
> +      - g\ :sub:`1`
> +      - g\ :sub:`0`
> +
> +      - b\ :sub:`7`
> +      - b\ :sub:`6`
> +      - b\ :sub:`5`
> +      - b\ :sub:`4`
> +      - b\ :sub:`3`
> +      - b\ :sub:`2`
> +      - b\ :sub:`1`
> +      - b\ :sub:`0`
> +
> +.. raw:: latex
> +
> +    \endgroup
> +
> +A test utility to determine which RGB formats a driver actually supports
> +is available from the LinuxTV v4l-dvb repository. See
> +`https://linuxtv.org/repo/ <https://linuxtv.org/repo/>`__ for access
> +instructions.
> diff --git a/Documentation/media/uapi/v4l/pixfmt-v4l2.rst b/Documentation/media/uapi/v4l/pixfmt-v4l2.rst
> index da6da2ef139a8..500916f751953 100644
> --- a/Documentation/media/uapi/v4l/pixfmt-v4l2.rst
> +++ b/Documentation/media/uapi/v4l/pixfmt-v4l2.rst
> @@ -44,7 +44,7 @@ Single-planar format structure
>        - The pixel format or type of compression, set by the application.
>  	This is a little endian
>  	:ref:`four character code <v4l2-fourcc>`. V4L2 defines standard
> -	RGB formats in :ref:`rgb-formats`, YUV formats in
> +	RGB formats in :ref:`pixfmt-rgb`, YUV formats in
>  	:ref:`yuv-formats`, and reserved codes in
>  	:ref:`reserved-formats`
>      * - __u32
> diff --git a/Documentation/media/uapi/v4l/pixfmt.rst b/Documentation/media/uapi/v4l/pixfmt.rst
> index 29be001796dbc..a7d4cd43a298f 100644
> --- a/Documentation/media/uapi/v4l/pixfmt.rst
> +++ b/Documentation/media/uapi/v4l/pixfmt.rst
> @@ -31,6 +31,7 @@ see also :ref:`VIDIOC_G_FBUF <VIDIOC_G_FBUF>`.)
>      pixfmt-intro
>      pixfmt-indexed
>      pixfmt-rgb
> +    pixfmt-bayer
>      yuv-formats
>      hsv-formats
>      depth-formats
> 


      reply	other threads:[~2019-08-13 13:42 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-13 13:32 [PATCH v2 1/1] v4l: Documentation: Raw Bayer formats are not RGB formats Sakari Ailus
2019-08-13 13:42 ` Hans Verkuil [this message]

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=ecc13f2e-a466-3a82-7669-6d33f9c81beb@xs4all.nl \
    --to=hverkuil-cisco@xs4all.nl \
    --cc=linux-media@vger.kernel.org \
    --cc=sakari.ailus@linux.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 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).