History

[media] v4l: Add ARGB and XRGB pixel formats

The existing RGB pixel formats are ill-defined in respect to their alpha bits and their meaning is driver dependent. Create new standard ARGB and XRGB variants with clearly defined meanings and make the existing variants deprecated. The new pixel formats 4CC values have been selected to match the DRM 4CCs for the same in-memory formats.

Laurent Pinchart committed 12 years ago

Commit 977ff0e1 parent 0d5e8c42 files · +403 −20Browse files

Unified · Split

2 files
  1. Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml +395 −20
  2. include/uapi/linux/videodev2.h +8 −0
Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml+395−20
@@ -130,9 +130,9 @@ colorspace <constant>V4L2_COLORSPACE_SRGB</constant>.</para> · 129 unmodified lines
130130 <entry>b<subscript>1</subscript></entry>
131131 <entry>b<subscript>0</subscript></entry>
132132 </row>
133− <row id="V4L2-PIX-FMT-RGB444">
134− <entry><constant>V4L2_PIX_FMT_RGB444</constant></entry>
135− <entry>'R444'</entry>
133+ <row id="V4L2-PIX-FMT-ARGB444">
134+ <entry><constant>V4L2_PIX_FMT_ARGB444</constant></entry>
135+ <entry>'AR12'</entry>
136136 <entry></entry>
137137 <entry>g<subscript>3</subscript></entry>
138138 <entry>g<subscript>2</subscript></entry>
@@ -152,9 +152,31 @@ colorspace <constant>V4L2_COLORSPACE_SRGB</constant>.</para> · 13 unmodified lines
152152 <entry>r<subscript>1</subscript></entry>
153153 <entry>r<subscript>0</subscript></entry>
154154 </row>
155− <row id="V4L2-PIX-FMT-RGB555">
156− <entry><constant>V4L2_PIX_FMT_RGB555</constant></entry>
157− <entry>'RGBO'</entry>
155+ <row id="V4L2-PIX-FMT-XRGB444">
156+ <entry><constant>V4L2_PIX_FMT_XRGB444</constant></entry>
157+ <entry>'XR12'</entry>
158+ <entry></entry>
159+ <entry>g<subscript>3</subscript></entry>
160+ <entry>g<subscript>2</subscript></entry>
161+ <entry>g<subscript>1</subscript></entry>
162+ <entry>g<subscript>0</subscript></entry>
163+ <entry>b<subscript>3</subscript></entry>
164+ <entry>b<subscript>2</subscript></entry>
165+ <entry>b<subscript>1</subscript></entry>
166+ <entry>b<subscript>0</subscript></entry>
167+ <entry></entry>
168+ <entry>-</entry>
169+ <entry>-</entry>
170+ <entry>-</entry>
171+ <entry>-</entry>
172+ <entry>r<subscript>3</subscript></entry>
173+ <entry>r<subscript>2</subscript></entry>
174+ <entry>r<subscript>1</subscript></entry>
175+ <entry>r<subscript>0</subscript></entry>
176+ </row>
177+ <row id="V4L2-PIX-FMT-ARGB555">
178+ <entry><constant>V4L2_PIX_FMT_ARGB555</constant></entry>
179+ <entry>'AR15'</entry>
158180 <entry></entry>
159181 <entry>g<subscript>2</subscript></entry>
160182 <entry>g<subscript>1</subscript></entry>
@@ -174,6 +196,28 @@ colorspace <constant>V4L2_COLORSPACE_SRGB</constant>.</para> · 13 unmodified lines
174196 <entry>g<subscript>4</subscript></entry>
175197 <entry>g<subscript>3</subscript></entry>
176198 </row>
199+ <row id="V4L2-PIX-FMT-XRGB555">
200+ <entry><constant>V4L2_PIX_FMT_XRGB555</constant></entry>
201+ <entry>'XR15'</entry>
202+ <entry></entry>
203+ <entry>g<subscript>2</subscript></entry>
204+ <entry>g<subscript>1</subscript></entry>
205+ <entry>g<subscript>0</subscript></entry>
206+ <entry>b<subscript>4</subscript></entry>
207+ <entry>b<subscript>3</subscript></entry>
208+ <entry>b<subscript>2</subscript></entry>
209+ <entry>b<subscript>1</subscript></entry>
210+ <entry>b<subscript>0</subscript></entry>
211+ <entry></entry>
212+ <entry>-</entry>
213+ <entry>r<subscript>4</subscript></entry>
214+ <entry>r<subscript>3</subscript></entry>
215+ <entry>r<subscript>2</subscript></entry>
216+ <entry>r<subscript>1</subscript></entry>
217+ <entry>r<subscript>0</subscript></entry>
218+ <entry>g<subscript>4</subscript></entry>
219+ <entry>g<subscript>3</subscript></entry>
220+ </row>
177221 <row id="V4L2-PIX-FMT-RGB565">
178222 <entry><constant>V4L2_PIX_FMT_RGB565</constant></entry>
179223 <entry>'RGBP'</entry>
@@ -341,9 +385,9 @@ colorspace <constant>V4L2_COLORSPACE_SRGB</constant>.</para> · 161 unmodified lines
341385 <entry>b<subscript>1</subscript></entry>
342386 <entry>b<subscript>0</subscript></entry>
343387 </row>
344− <row id="V4L2-PIX-FMT-BGR32">
345− <entry><constant>V4L2_PIX_FMT_BGR32</constant></entry>
346− <entry>'BGR4'</entry>
388+ <row id="V4L2-PIX-FMT-ABGR32">
389+ <entry><constant>V4L2_PIX_FMT_ABGR32</constant></entry>
390+ <entry>'AR24'</entry>
347391 <entry></entry>
348392 <entry>b<subscript>7</subscript></entry>
349393 <entry>b<subscript>6</subscript></entry>
@@ -381,9 +425,49 @@ colorspace <constant>V4L2_COLORSPACE_SRGB</constant>.</para> · 31 unmodified lines
381425 <entry>a<subscript>1</subscript></entry>
382426 <entry>a<subscript>0</subscript></entry>
383427 </row>
384− <row id="V4L2-PIX-FMT-RGB32">
385− <entry><constant>V4L2_PIX_FMT_RGB32</constant></entry>
386− <entry>'RGB4'</entry>
428+ <row id="V4L2-PIX-FMT-XBGR32">
429+ <entry><constant>V4L2_PIX_FMT_XBGR32</constant></entry>
430+ <entry>'XR24'</entry>
431+ <entry></entry>
432+ <entry>b<subscript>7</subscript></entry>
433+ <entry>b<subscript>6</subscript></entry>
434+ <entry>b<subscript>5</subscript></entry>
435+ <entry>b<subscript>4</subscript></entry>
436+ <entry>b<subscript>3</subscript></entry>
437+ <entry>b<subscript>2</subscript></entry>
438+ <entry>b<subscript>1</subscript></entry>
439+ <entry>b<subscript>0</subscript></entry>
440+ <entry></entry>
441+ <entry>g<subscript>7</subscript></entry>
442+ <entry>g<subscript>6</subscript></entry>
443+ <entry>g<subscript>5</subscript></entry>
444+ <entry>g<subscript>4</subscript></entry>
445+ <entry>g<subscript>3</subscript></entry>
446+ <entry>g<subscript>2</subscript></entry>
447+ <entry>g<subscript>1</subscript></entry>
448+ <entry>g<subscript>0</subscript></entry>
449+ <entry></entry>
450+ <entry>r<subscript>7</subscript></entry>
451+ <entry>r<subscript>6</subscript></entry>
452+ <entry>r<subscript>5</subscript></entry>
453+ <entry>r<subscript>4</subscript></entry>
454+ <entry>r<subscript>3</subscript></entry>
455+ <entry>r<subscript>2</subscript></entry>
456+ <entry>r<subscript>1</subscript></entry>
457+ <entry>r<subscript>0</subscript></entry>
458+ <entry></entry>
459+ <entry>-</entry>
460+ <entry>-</entry>
461+ <entry>-</entry>
462+ <entry>-</entry>
463+ <entry>-</entry>
464+ <entry>-</entry>
465+ <entry>-</entry>
466+ <entry>-</entry>
467+ </row>
468+ <row id="V4L2-PIX-FMT-ARGB32">
469+ <entry><constant>V4L2_PIX_FMT_ARGB32</constant></entry>
470+ <entry>'AX24'</entry>
387471 <entry></entry>
388472 <entry>a<subscript>7</subscript></entry>
389473 <entry>a<subscript>6</subscript></entry>
@@ -421,18 +505,76 @@ colorspace <constant>V4L2_COLORSPACE_SRGB</constant>.</para> · 31 unmodified lines
421505 <entry>b<subscript>1</subscript></entry>
422506 <entry>b<subscript>0</subscript></entry>
423507 </row>
508+ <row id="V4L2-PIX-FMT-XRGB32">
509+ <entry><constant>V4L2_PIX_FMT_XRGB32</constant></entry>
510+ <entry>'BX24'</entry>
511+ <entry></entry>
512+ <entry>-</entry>
513+ <entry>-</entry>
514+ <entry>-</entry>
515+ <entry>-</entry>
516+ <entry>-</entry>
517+ <entry>-</entry>
518+ <entry>-</entry>
519+ <entry>-</entry>
520+ <entry></entry>
521+ <entry>r<subscript>7</subscript></entry>
522+ <entry>r<subscript>6</subscript></entry>
523+ <entry>r<subscript>5</subscript></entry>
524+ <entry>r<subscript>4</subscript></entry>
525+ <entry>r<subscript>3</subscript></entry>
526+ <entry>r<subscript>2</subscript></entry>
527+ <entry>r<subscript>1</subscript></entry>
528+ <entry>r<subscript>0</subscript></entry>
529+ <entry></entry>
530+ <entry>g<subscript>7</subscript></entry>
531+ <entry>g<subscript>6</subscript></entry>
532+ <entry>g<subscript>5</subscript></entry>
533+ <entry>g<subscript>4</subscript></entry>
534+ <entry>g<subscript>3</subscript></entry>
535+ <entry>g<subscript>2</subscript></entry>
536+ <entry>g<subscript>1</subscript></entry>
537+ <entry>g<subscript>0</subscript></entry>
538+ <entry></entry>
539+ <entry>b<subscript>7</subscript></entry>
540+ <entry>b<subscript>6</subscript></entry>
541+ <entry>b<subscript>5</subscript></entry>
542+ <entry>b<subscript>4</subscript></entry>
543+ <entry>b<subscript>3</subscript></entry>
544+ <entry>b<subscript>2</subscript></entry>
545+ <entry>b<subscript>1</subscript></entry>
546+ <entry>b<subscript>0</subscript></entry>
547+ </row>
424548 </tbody>
425549 </tgroup>
426550 </table>
427551
428− <para>Bit 7 is the most significant bit. The value of the a = alpha
429−bits is undefined when reading from the driver, ignored when writing
430−to the driver, except when alpha blending has been negotiated for a
431−<link linkend="overlay">Video Overlay</link> or <link linkend="osd">
432−Video Output Overlay</link> or when the alpha component has been configured
433−for a <link linkend="capture">Video Capture</link> by means of <link
434−linkend="v4l2-alpha-component"> <constant>V4L2_CID_ALPHA_COMPONENT
435−</constant> </link> control.</para>
552+ <para>Bit 7 is the most significant bit.</para>
553+
554+ <para>The usage and value of the alpha bits (a) in the ARGB and ABGR formats
555+ (collectively referred to as alpha formats) depend on the device type and
556+ hardware operation. <link linkend="capture">Capture</link> devices
557+ (including capture queues of mem-to-mem devices) fill the alpha component in
558+ memory. When the device outputs an alpha channel the alpha component will
559+ have a meaningful value. Otherwise, when the device doesn't output an alpha
560+ channel but can set the alpha bit to a user-configurable value, the <link
561+ linkend="v4l2-alpha-component"><constant>V4L2_CID_ALPHA_COMPONENT</constant>
562+ </link> control is used to specify that alpha value, and the alpha component
563+ of all pixels will be set to the value specified by that control. Otherwise
564+ a corresponding format without an alpha component (XRGB or XBGR) must be
565+ used instead of an alpha format.</para>
566+
567+ <para><link linkend="output">Output</link> devices (including output queues
568+ of mem-to-mem devices and <link linkend="osd">video output overlay</link>
569+ devices) read the alpha component from memory. When the device processes the
570+ alpha channel the alpha component must be filled with meaningful values by
571+ applications. Otherwise a corresponding format without an alpha component
572+ (XRGB or XBGR) must be used instead of an alpha format.</para>
573+
574+ <para>The XRGB and XBGR formats contain undefined bits (-). Applications,
575+ devices and drivers must ignore those bits, for both <link
576+ linkend="capture">capture</link> and <link linkend="output">output</link>
577+ devices.</para>
436578
437579 <example>
438580 <title><constant>V4L2_PIX_FMT_BGR24</constant> 4 &times; 4 pixel
@@ -512,6 +654,239 @@ image</title> · 73 unmodified lines
512654 </formalpara>
513655 </example>
514656
657+ <para>Formats defined in <xref linkend="rgb-formats-deprecated"/> are
658+ deprecated and must not be used by new drivers. They are documented here for
659+ reference. The meaning of their alpha bits (a) is ill-defined and
660+ interpreted as in either the corresponding ARGB or XRGB format, depending on
661+ the driver.</para>
662+
663+ <table pgwide="1" frame="none" id="rgb-formats-deprecated">
664+ <title>Deprecated Packed RGB Image Formats</title>
665+ <tgroup cols="37" align="center">
666+ <colspec colname="id" align="left" />
667+ <colspec colname="fourcc" />
668+ <colspec colname="bit" />
669+
670+ <colspec colnum="4" colname="b07" align="center" />
671+ <colspec colnum="5" colname="b06" align="center" />
672+ <colspec colnum="6" colname="b05" align="center" />
673+ <colspec colnum="7" colname="b04" align="center" />
674+ <colspec colnum="8" colname="b03" align="center" />
675+ <colspec colnum="9" colname="b02" align="center" />
676+ <colspec colnum="10" colname="b01" align="center" />
677+ <colspec colnum="11" colname="b00" align="center" />
678+
679+ <colspec colnum="13" colname="b17" align="center" />
680+ <colspec colnum="14" colname="b16" align="center" />
681+ <colspec colnum="15" colname="b15" align="center" />
682+ <colspec colnum="16" colname="b14" align="center" />
683+ <colspec colnum="17" colname="b13" align="center" />
684+ <colspec colnum="18" colname="b12" align="center" />
685+ <colspec colnum="19" colname="b11" align="center" />
686+ <colspec colnum="20" colname="b10" align="center" />
687+
688+ <colspec colnum="22" colname="b27" align="center" />
689+ <colspec colnum="23" colname="b26" align="center" />
690+ <colspec colnum="24" colname="b25" align="center" />
691+ <colspec colnum="25" colname="b24" align="center" />
692+ <colspec colnum="26" colname="b23" align="center" />
693+ <colspec colnum="27" colname="b22" align="center" />
694+ <colspec colnum="28" colname="b21" align="center" />
695+ <colspec colnum="29" colname="b20" align="center" />
696+
697+ <colspec colnum="31" colname="b37" align="center" />
698+ <colspec colnum="32" colname="b36" align="center" />
699+ <colspec colnum="33" colname="b35" align="center" />
700+ <colspec colnum="34" colname="b34" align="center" />
701+ <colspec colnum="35" colname="b33" align="center" />
702+ <colspec colnum="36" colname="b32" align="center" />
703+ <colspec colnum="37" colname="b31" align="center" />
704+ <colspec colnum="38" colname="b30" align="center" />
705+
706+ <spanspec namest="b07" nameend="b00" spanname="b0" />
707+ <spanspec namest="b17" nameend="b10" spanname="b1" />
708+ <spanspec namest="b27" nameend="b20" spanname="b2" />
709+ <spanspec namest="b37" nameend="b30" spanname="b3" />
710+ <thead>
711+ <row>
712+ <entry>Identifier</entry>
713+ <entry>Code</entry>
714+ <entry>&nbsp;</entry>
715+ <entry spanname="b0">Byte&nbsp;0 in memory</entry>
716+ <entry spanname="b1">Byte&nbsp;1</entry>
717+ <entry spanname="b2">Byte&nbsp;2</entry>
718+ <entry spanname="b3">Byte&nbsp;3</entry>
719+ </row>
720+ <row>
721+ <entry>&nbsp;</entry>
722+ <entry>&nbsp;</entry>
723+ <entry>Bit</entry>
724+ <entry>7</entry>
725+ <entry>6</entry>
726+ <entry>5</entry>
727+ <entry>4</entry>
728+ <entry>3</entry>
729+ <entry>2</entry>
730+ <entry>1</entry>
731+ <entry>0</entry>
732+ <entry>&nbsp;</entry>
733+ <entry>7</entry>
734+ <entry>6</entry>
735+ <entry>5</entry>
736+ <entry>4</entry>
737+ <entry>3</entry>
738+ <entry>2</entry>
739+ <entry>1</entry>
740+ <entry>0</entry>
741+ <entry>&nbsp;</entry>
742+ <entry>7</entry>
743+ <entry>6</entry>
744+ <entry>5</entry>
745+ <entry>4</entry>
746+ <entry>3</entry>
747+ <entry>2</entry>
748+ <entry>1</entry>
749+ <entry>0</entry>
750+ <entry>&nbsp;</entry>
751+ <entry>7</entry>
752+ <entry>6</entry>
753+ <entry>5</entry>
754+ <entry>4</entry>
755+ <entry>3</entry>
756+ <entry>2</entry>
757+ <entry>1</entry>
758+ <entry>0</entry>
759+ </row>
760+ </thead>
761+ <tbody>
762+ <row id="V4L2-PIX-FMT-RGB444">
763+ <entry><constant>V4L2_PIX_FMT_RGB444</constant></entry>
764+ <entry>'R444'</entry>
765+ <entry></entry>
766+ <entry>g<subscript>3</subscript></entry>
767+ <entry>g<subscript>2</subscript></entry>
768+ <entry>g<subscript>1</subscript></entry>
769+ <entry>g<subscript>0</subscript></entry>
770+ <entry>b<subscript>3</subscript></entry>
771+ <entry>b<subscript>2</subscript></entry>
772+ <entry>b<subscript>1</subscript></entry>
773+ <entry>b<subscript>0</subscript></entry>
774+ <entry></entry>
775+ <entry>a<subscript>3</subscript></entry>
776+ <entry>a<subscript>2</subscript></entry>
777+ <entry>a<subscript>1</subscript></entry>
778+ <entry>a<subscript>0</subscript></entry>
779+ <entry>r<subscript>3</subscript></entry>
780+ <entry>r<subscript>2</subscript></entry>
781+ <entry>r<subscript>1</subscript></entry>
782+ <entry>r<subscript>0</subscript></entry>
783+ </row>
784+ <row id="V4L2-PIX-FMT-RGB555">
785+ <entry><constant>V4L2_PIX_FMT_RGB555</constant></entry>
786+ <entry>'RGBO'</entry>
787+ <entry></entry>
788+ <entry>g<subscript>2</subscript></entry>
789+ <entry>g<subscript>1</subscript></entry>
790+ <entry>g<subscript>0</subscript></entry>
791+ <entry>b<subscript>4</subscript></entry>
792+ <entry>b<subscript>3</subscript></entry>
793+ <entry>b<subscript>2</subscript></entry>
794+ <entry>b<subscript>1</subscript></entry>
795+ <entry>b<subscript>0</subscript></entry>
796+ <entry></entry>
797+ <entry>a</entry>
798+ <entry>r<subscript>4</subscript></entry>
799+ <entry>r<subscript>3</subscript></entry>
800+ <entry>r<subscript>2</subscript></entry>
801+ <entry>r<subscript>1</subscript></entry>
802+ <entry>r<subscript>0</subscript></entry>
803+ <entry>g<subscript>4</subscript></entry>
804+ <entry>g<subscript>3</subscript></entry>
805+ </row>
806+ <row id="V4L2-PIX-FMT-BGR32">
807+ <entry><constant>V4L2_PIX_FMT_BGR32</constant></entry>
808+ <entry>'BGR4'</entry>
809+ <entry></entry>
810+ <entry>b<subscript>7</subscript></entry>
811+ <entry>b<subscript>6</subscript></entry>
812+ <entry>b<subscript>5</subscript></entry>
813+ <entry>b<subscript>4</subscript></entry>
814+ <entry>b<subscript>3</subscript></entry>
815+ <entry>b<subscript>2</subscript></entry>
816+ <entry>b<subscript>1</subscript></entry>
817+ <entry>b<subscript>0</subscript></entry>
818+ <entry></entry>
819+ <entry>g<subscript>7</subscript></entry>
820+ <entry>g<subscript>6</subscript></entry>
821+ <entry>g<subscript>5</subscript></entry>
822+ <entry>g<subscript>4</subscript></entry>
823+ <entry>g<subscript>3</subscript></entry>
824+ <entry>g<subscript>2</subscript></entry>
825+ <entry>g<subscript>1</subscript></entry>
826+ <entry>g<subscript>0</subscript></entry>
827+ <entry></entry>
828+ <entry>r<subscript>7</subscript></entry>
829+ <entry>r<subscript>6</subscript></entry>
830+ <entry>r<subscript>5</subscript></entry>
831+ <entry>r<subscript>4</subscript></entry>
832+ <entry>r<subscript>3</subscript></entry>
833+ <entry>r<subscript>2</subscript></entry>
834+ <entry>r<subscript>1</subscript></entry>
835+ <entry>r<subscript>0</subscript></entry>
836+ <entry></entry>
837+ <entry>a<subscript>7</subscript></entry>
838+ <entry>a<subscript>6</subscript></entry>
839+ <entry>a<subscript>5</subscript></entry>
840+ <entry>a<subscript>4</subscript></entry>
841+ <entry>a<subscript>3</subscript></entry>
842+ <entry>a<subscript>2</subscript></entry>
843+ <entry>a<subscript>1</subscript></entry>
844+ <entry>a<subscript>0</subscript></entry>
845+ </row>
846+ <row id="V4L2-PIX-FMT-RGB32">
847+ <entry><constant>V4L2_PIX_FMT_RGB32</constant></entry>
848+ <entry>'RGB4'</entry>
849+ <entry></entry>
850+ <entry>a<subscript>7</subscript></entry>
851+ <entry>a<subscript>6</subscript></entry>
852+ <entry>a<subscript>5</subscript></entry>
853+ <entry>a<subscript>4</subscript></entry>
854+ <entry>a<subscript>3</subscript></entry>
855+ <entry>a<subscript>2</subscript></entry>
856+ <entry>a<subscript>1</subscript></entry>
857+ <entry>a<subscript>0</subscript></entry>
858+ <entry></entry>
859+ <entry>r<subscript>7</subscript></entry>
860+ <entry>r<subscript>6</subscript></entry>
861+ <entry>r<subscript>5</subscript></entry>
862+ <entry>r<subscript>4</subscript></entry>
863+ <entry>r<subscript>3</subscript></entry>
864+ <entry>r<subscript>2</subscript></entry>
865+ <entry>r<subscript>1</subscript></entry>
866+ <entry>r<subscript>0</subscript></entry>
867+ <entry></entry>
868+ <entry>g<subscript>7</subscript></entry>
869+ <entry>g<subscript>6</subscript></entry>
870+ <entry>g<subscript>5</subscript></entry>
871+ <entry>g<subscript>4</subscript></entry>
872+ <entry>g<subscript>3</subscript></entry>
873+ <entry>g<subscript>2</subscript></entry>
874+ <entry>g<subscript>1</subscript></entry>
875+ <entry>g<subscript>0</subscript></entry>
876+ <entry></entry>
877+ <entry>b<subscript>7</subscript></entry>
878+ <entry>b<subscript>6</subscript></entry>
879+ <entry>b<subscript>5</subscript></entry>
880+ <entry>b<subscript>4</subscript></entry>
881+ <entry>b<subscript>3</subscript></entry>
882+ <entry>b<subscript>2</subscript></entry>
883+ <entry>b<subscript>1</subscript></entry>
884+ <entry>b<subscript>0</subscript></entry>
885+ </row>
886+ </tbody>
887+ </tgroup>
888+ </table>
889+
515890 <para>A test utility to determine which RGB formats a driver
516891 actually supports is available from the LinuxTV v4l-dvb repository.
517892 See &v4l-dvb; for access instructions.</para>
include/uapi/linux/videodev2.h+8−0
@@ -294,7 +294,11 @@ struct v4l2_pix_format { · 293 unmodified lines
294294 /* RGB formats */
295295 #define V4L2_PIX_FMT_RGB332 v4l2_fourcc('R', 'G', 'B', '1') /* 8 RGB-3-3-2 */
296296 #define V4L2_PIX_FMT_RGB444 v4l2_fourcc('R', '4', '4', '4') /* 16 xxxxrrrr ggggbbbb */
297+#define V4L2_PIX_FMT_ARGB444 v4l2_fourcc('A', 'R', '1', '2') /* 16 aaaarrrr ggggbbbb */
298+#define V4L2_PIX_FMT_XRGB444 v4l2_fourcc('X', 'R', '1', '2') /* 16 xxxxrrrr ggggbbbb */
297299 #define V4L2_PIX_FMT_RGB555 v4l2_fourcc('R', 'G', 'B', 'O') /* 16 RGB-5-5-5 */
300+#define V4L2_PIX_FMT_ARGB555 v4l2_fourcc('A', 'R', '1', '5') /* 16 ARGB-1-5-5-5 */
301+#define V4L2_PIX_FMT_XRGB555 v4l2_fourcc('X', 'R', '1', '5') /* 16 XRGB-1-5-5-5 */
298302 #define V4L2_PIX_FMT_RGB565 v4l2_fourcc('R', 'G', 'B', 'P') /* 16 RGB-5-6-5 */
299303 #define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R', 'G', 'B', 'Q') /* 16 RGB-5-5-5 BE */
300304 #define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R') /* 16 RGB-5-6-5 BE */
@@ -302,7 +306,11 @@ struct v4l2_pix_format { · 1 unmodified line
302306 #define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B', 'G', 'R', '3') /* 24 BGR-8-8-8 */
303307 #define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R', 'G', 'B', '3') /* 24 RGB-8-8-8 */
304308 #define V4L2_PIX_FMT_BGR32 v4l2_fourcc('B', 'G', 'R', '4') /* 32 BGR-8-8-8-8 */
309+#define V4L2_PIX_FMT_ABGR32 v4l2_fourcc('A', 'R', '2', '4') /* 32 BGRA-8-8-8-8 */
310+#define V4L2_PIX_FMT_XBGR32 v4l2_fourcc('X', 'R', '2', '4') /* 32 BGRX-8-8-8-8 */
305311 #define V4L2_PIX_FMT_RGB32 v4l2_fourcc('R', 'G', 'B', '4') /* 32 RGB-8-8-8-8 */
312+#define V4L2_PIX_FMT_ARGB32 v4l2_fourcc('B', 'A', '2', '4') /* 32 ARGB-8-8-8-8 */
313+#define V4L2_PIX_FMT_XRGB32 v4l2_fourcc('B', 'X', '2', '4') /* 32 XRGB-8-8-8-8 */
306314
307315 /* Grey formats */
308316 #define V4L2_PIX_FMT_GREY v4l2_fourcc('G', 'R', 'E', 'Y') /* 8 Greyscale */