Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fcc0d3db authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Mauro Carvalho Chehab
Browse files

[media] v4l: Add ARGB555X and XRGB555X pixel formats



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.

Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent de8eae36
Loading
Loading
Loading
Loading
+47 −3
Original line number Original line Diff line number Diff line
@@ -237,9 +237,9 @@ for a pixel lie next to each other in memory.</para>
	    <entry>g<subscript>4</subscript></entry>
	    <entry>g<subscript>4</subscript></entry>
	    <entry>g<subscript>3</subscript></entry>
	    <entry>g<subscript>3</subscript></entry>
	  </row>
	  </row>
	  <row id="V4L2-PIX-FMT-RGB555X">
	  <row id="V4L2-PIX-FMT-ARGB555X">
	    <entry><constant>V4L2_PIX_FMT_RGB555X</constant></entry>
	    <entry><constant>V4L2_PIX_FMT_ARGB555X</constant></entry>
	    <entry>'RGBQ'</entry>
	    <entry>'AR15' | (1 &lt;&lt; 31)</entry>
	    <entry></entry>
	    <entry></entry>
	    <entry>a</entry>
	    <entry>a</entry>
	    <entry>r<subscript>4</subscript></entry>
	    <entry>r<subscript>4</subscript></entry>
@@ -259,6 +259,28 @@ for a pixel lie next to each other in memory.</para>
	    <entry>b<subscript>1</subscript></entry>
	    <entry>b<subscript>1</subscript></entry>
	    <entry>b<subscript>0</subscript></entry>
	    <entry>b<subscript>0</subscript></entry>
	  </row>
	  </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">
	  <row id="V4L2-PIX-FMT-RGB565X">
	    <entry><constant>V4L2_PIX_FMT_RGB565X</constant></entry>
	    <entry><constant>V4L2_PIX_FMT_RGB565X</constant></entry>
	    <entry>'RGBR'</entry>
	    <entry>'RGBR'</entry>
@@ -800,6 +822,28 @@ image</title>
	    <entry>g<subscript>4</subscript></entry>
	    <entry>g<subscript>4</subscript></entry>
	    <entry>g<subscript>3</subscript></entry>
	    <entry>g<subscript>3</subscript></entry>
	  </row>
	  </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">
	  <row id="V4L2-PIX-FMT-BGR32">
	    <entry><constant>V4L2_PIX_FMT_BGR32</constant></entry>
	    <entry><constant>V4L2_PIX_FMT_BGR32</constant></entry>
	    <entry>'BGR4'</entry>
	    <entry>'BGR4'</entry>
+3 −0
Original line number Original line Diff line number Diff line
@@ -79,6 +79,7 @@
/*  Four-character-code (FOURCC) */
/*  Four-character-code (FOURCC) */
#define v4l2_fourcc(a, b, c, d)\
#define v4l2_fourcc(a, b, c, d)\
	((__u32)(a) | ((__u32)(b) << 8) | ((__u32)(c) << 16) | ((__u32)(d) << 24))
	((__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
 *	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_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_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_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_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_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     */
#define V4L2_PIX_FMT_BGR24   v4l2_fourcc('B', 'G', 'R', '3') /* 24  BGR-8-8-8     */