On 07/21/2014 10:37 PM, Laurent Pinchart wrote:
> The existing RGB555X pixel format is ill-defined in respect to its alpha
> bit and its meaning is driver dependent. Create new standard ARGB555X
> and XRGB555X variants with clearly defined meanings and make the
> existing variant deprecated.
> 
> The new pixel formats 4CC values have been selected to match the DRM
> 4CCs for the same in-memory formats.

Acked-by: Hans Verkuil <hans.verk...@cisco.com>

But: I've double-checked your chosen fourcc's for the RGB32 formats, and I see
you made a mistake in the docbook (the videodev2.h header is OK): the fourcc
for the ARGB32 should be 'BA24' instead of 'AX24'. You might want to fix that
up at the same time.

Regards,

        Hans

> 
> Signed-off-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
> ---
>  .../DocBook/media/v4l/pixfmt-packed-rgb.xml        | 50 
> ++++++++++++++++++++--
>  include/uapi/linux/videodev2.h                     |  3 ++
>  2 files changed, 50 insertions(+), 3 deletions(-)
> 
> Hello,
> 
> These two formats where missing from commit 977ff0e4fb3460df ("v4l: Add ARGB
> and XRGB pixel formats"). By popular request, here they are.
> 
> I've decided to reuse the DRM 4CC values to ease future compatibility, but as
> DRM makes big-endian 4CCs by OR'ing the little-endian 4CC with (1 << 31), I'll
> be flexible if values are frowned upon.
> 
> diff --git a/Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml 
> b/Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml
> index 5f1602f..32feac9 100644
> --- a/Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml
> +++ b/Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml
> @@ -240,9 +240,9 @@ colorspace 
> <constant>V4L2_COLORSPACE_SRGB</constant>.</para>
>           <entry>g<subscript>4</subscript></entry>
>           <entry>g<subscript>3</subscript></entry>
>         </row>
> -       <row id="V4L2-PIX-FMT-RGB555X">
> -         <entry><constant>V4L2_PIX_FMT_RGB555X</constant></entry>
> -         <entry>'RGBQ'</entry>
> +       <row id="V4L2-PIX-FMT-ARGB555X">
> +         <entry><constant>V4L2_PIX_FMT_ARGB555X</constant></entry>
> +         <entry>'AR15' | (1 &lt;&lt; 31)</entry>
>           <entry></entry>
>           <entry>a</entry>
>           <entry>r<subscript>4</subscript></entry>
> @@ -262,6 +262,28 @@ colorspace 
> <constant>V4L2_COLORSPACE_SRGB</constant>.</para>
>           <entry>b<subscript>1</subscript></entry>
>           <entry>b<subscript>0</subscript></entry>
>         </row>
> +       <row id="V4L2-PIX-FMT-XRGB555X">
> +         <entry><constant>V4L2_PIX_FMT_XRGB555X</constant></entry>
> +         <entry>'XR15' | (1 &lt;&lt; 31)</entry>
> +         <entry></entry>
> +         <entry>-</entry>
> +         <entry>r<subscript>4</subscript></entry>
> +         <entry>r<subscript>3</subscript></entry>
> +         <entry>r<subscript>2</subscript></entry>
> +         <entry>r<subscript>1</subscript></entry>
> +         <entry>r<subscript>0</subscript></entry>
> +         <entry>g<subscript>4</subscript></entry>
> +         <entry>g<subscript>3</subscript></entry>
> +         <entry></entry>
> +         <entry>g<subscript>2</subscript></entry>
> +         <entry>g<subscript>1</subscript></entry>
> +         <entry>g<subscript>0</subscript></entry>
> +         <entry>b<subscript>4</subscript></entry>
> +         <entry>b<subscript>3</subscript></entry>
> +         <entry>b<subscript>2</subscript></entry>
> +         <entry>b<subscript>1</subscript></entry>
> +         <entry>b<subscript>0</subscript></entry>
> +       </row>
>         <row id="V4L2-PIX-FMT-RGB565X">
>           <entry><constant>V4L2_PIX_FMT_RGB565X</constant></entry>
>           <entry>'RGBR'</entry>
> @@ -803,6 +825,28 @@ image</title>
>           <entry>g<subscript>4</subscript></entry>
>           <entry>g<subscript>3</subscript></entry>
>         </row>
> +       <row id="V4L2-PIX-FMT-RGB555X">
> +         <entry><constant>V4L2_PIX_FMT_RGB555X</constant></entry>
> +         <entry>'RGBQ'</entry>
> +         <entry></entry>
> +         <entry>a</entry>
> +         <entry>r<subscript>4</subscript></entry>
> +         <entry>r<subscript>3</subscript></entry>
> +         <entry>r<subscript>2</subscript></entry>
> +         <entry>r<subscript>1</subscript></entry>
> +         <entry>r<subscript>0</subscript></entry>
> +         <entry>g<subscript>4</subscript></entry>
> +         <entry>g<subscript>3</subscript></entry>
> +         <entry></entry>
> +         <entry>g<subscript>2</subscript></entry>
> +         <entry>g<subscript>1</subscript></entry>
> +         <entry>g<subscript>0</subscript></entry>
> +         <entry>b<subscript>4</subscript></entry>
> +         <entry>b<subscript>3</subscript></entry>
> +         <entry>b<subscript>2</subscript></entry>
> +         <entry>b<subscript>1</subscript></entry>
> +         <entry>b<subscript>0</subscript></entry>
> +       </row>
>         <row id="V4L2-PIX-FMT-BGR32">
>           <entry><constant>V4L2_PIX_FMT_BGR32</constant></entry>
>           <entry>'BGR4'</entry>
> diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
> index 1f1a65c..8ccaa0a 100644
> --- a/include/uapi/linux/videodev2.h
> +++ b/include/uapi/linux/videodev2.h
> @@ -79,6 +79,7 @@
>  /*  Four-character-code (FOURCC) */
>  #define v4l2_fourcc(a, b, c, d)\
>       ((__u32)(a) | ((__u32)(b) << 8) | ((__u32)(c) << 16) | ((__u32)(d) << 
> 24))
> +#define v4l2_fourcc_be(a, b, c, d)   (v4l2_fourcc(a, b, c, d) | (1 << 31))
>  
>  /*
>   *   E N U M S
> @@ -307,6 +308,8 @@ struct v4l2_pix_format {
>  #define V4L2_PIX_FMT_XRGB555 v4l2_fourcc('X', 'R', '1', '5') /* 16  
> XRGB-1-5-5-5  */
>  #define V4L2_PIX_FMT_RGB565  v4l2_fourcc('R', 'G', 'B', 'P') /* 16  
> RGB-5-6-5     */
>  #define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R', 'G', 'B', 'Q') /* 16  
> RGB-5-5-5 BE  */
> +#define V4L2_PIX_FMT_ARGB555X v4l2_fourcc_be('A', 'R', '1', '5') /* 16  
> ARGB-5-5-5 BE */
> +#define V4L2_PIX_FMT_XRGB555X v4l2_fourcc_be('X', 'R', '1', '5') /* 16  
> XRGB-5-5-5 BE */
>  #define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R') /* 16  
> RGB-5-6-5 BE  */
>  #define V4L2_PIX_FMT_BGR666  v4l2_fourcc('B', 'G', 'R', 'H') /* 18  
> BGR-6-6-6          */
>  #define V4L2_PIX_FMT_BGR24   v4l2_fourcc('B', 'G', 'R', '3') /* 24  
> BGR-8-8-8     */
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to