aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2014-05-21 21:07:55 -0400
committerMauro Carvalho Chehab <m.chehab@samsung.com>2014-07-17 11:44:45 -0400
commit977ff0e4fb3460df9f3dd27de92d60786be28645 (patch)
tree0dbf5b8daac3e4e5adf1bef26419ddc5f5986dfb
parent0d5e8c4313c83dc2d60519a219d517a13ba8a432 (diff)
[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. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
-rw-r--r--Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml415
-rw-r--r--include/uapi/linux/videodev2.h8
2 files changed, 403 insertions, 20 deletions
diff --git a/Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml b/Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml
index e1c4f8b4c0b3..5f1602fe5494 100644
--- a/Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml
+++ b/Documentation/DocBook/media/v4l/pixfmt-packed-rgb.xml
@@ -130,9 +130,9 @@ colorspace <constant>V4L2_COLORSPACE_SRGB</constant>.</para>
130 <entry>b<subscript>1</subscript></entry> 130 <entry>b<subscript>1</subscript></entry>
131 <entry>b<subscript>0</subscript></entry> 131 <entry>b<subscript>0</subscript></entry>
132 </row> 132 </row>
133 <row id="V4L2-PIX-FMT-RGB444"> 133 <row id="V4L2-PIX-FMT-ARGB444">
134 <entry><constant>V4L2_PIX_FMT_RGB444</constant></entry> 134 <entry><constant>V4L2_PIX_FMT_ARGB444</constant></entry>
135 <entry>'R444'</entry> 135 <entry>'AR12'</entry>
136 <entry></entry> 136 <entry></entry>
137 <entry>g<subscript>3</subscript></entry> 137 <entry>g<subscript>3</subscript></entry>
138 <entry>g<subscript>2</subscript></entry> 138 <entry>g<subscript>2</subscript></entry>
@@ -152,9 +152,31 @@ colorspace <constant>V4L2_COLORSPACE_SRGB</constant>.</para>
152 <entry>r<subscript>1</subscript></entry> 152 <entry>r<subscript>1</subscript></entry>
153 <entry>r<subscript>0</subscript></entry> 153 <entry>r<subscript>0</subscript></entry>
154 </row> 154 </row>
155 <row id="V4L2-PIX-FMT-RGB555"> 155 <row id="V4L2-PIX-FMT-XRGB444">
156 <entry><constant>V4L2_PIX_FMT_RGB555</constant></entry> 156 <entry><constant>V4L2_PIX_FMT_XRGB444</constant></entry>
157 <entry>'RGBO'</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>
158 <entry></entry> 180 <entry></entry>
159 <entry>g<subscript>2</subscript></entry> 181 <entry>g<subscript>2</subscript></entry>
160 <entry>g<subscript>1</subscript></entry> 182 <entry>g<subscript>1</subscript></entry>
@@ -174,6 +196,28 @@ colorspace <constant>V4L2_COLORSPACE_SRGB</constant>.</para>
174 <entry>g<subscript>4</subscript></entry> 196 <entry>g<subscript>4</subscript></entry>
175 <entry>g<subscript>3</subscript></entry> 197 <entry>g<subscript>3</subscript></entry>
176 </row> 198 </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>
177 <row id="V4L2-PIX-FMT-RGB565"> 221 <row id="V4L2-PIX-FMT-RGB565">
178 <entry><constant>V4L2_PIX_FMT_RGB565</constant></entry> 222 <entry><constant>V4L2_PIX_FMT_RGB565</constant></entry>
179 <entry>'RGBP'</entry> 223 <entry>'RGBP'</entry>
@@ -341,9 +385,9 @@ colorspace <constant>V4L2_COLORSPACE_SRGB</constant>.</para>
341 <entry>b<subscript>1</subscript></entry> 385 <entry>b<subscript>1</subscript></entry>
342 <entry>b<subscript>0</subscript></entry> 386 <entry>b<subscript>0</subscript></entry>
343 </row> 387 </row>
344 <row id="V4L2-PIX-FMT-BGR32"> 388 <row id="V4L2-PIX-FMT-ABGR32">
345 <entry><constant>V4L2_PIX_FMT_BGR32</constant></entry> 389 <entry><constant>V4L2_PIX_FMT_ABGR32</constant></entry>
346 <entry>'BGR4'</entry> 390 <entry>'AR24'</entry>
347 <entry></entry> 391 <entry></entry>
348 <entry>b<subscript>7</subscript></entry> 392 <entry>b<subscript>7</subscript></entry>
349 <entry>b<subscript>6</subscript></entry> 393 <entry>b<subscript>6</subscript></entry>
@@ -381,9 +425,49 @@ colorspace <constant>V4L2_COLORSPACE_SRGB</constant>.</para>
381 <entry>a<subscript>1</subscript></entry> 425 <entry>a<subscript>1</subscript></entry>
382 <entry>a<subscript>0</subscript></entry> 426 <entry>a<subscript>0</subscript></entry>
383 </row> 427 </row>
384 <row id="V4L2-PIX-FMT-RGB32"> 428 <row id="V4L2-PIX-FMT-XBGR32">
385 <entry><constant>V4L2_PIX_FMT_RGB32</constant></entry> 429 <entry><constant>V4L2_PIX_FMT_XBGR32</constant></entry>
386 <entry>'RGB4'</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>
387 <entry></entry> 471 <entry></entry>
388 <entry>a<subscript>7</subscript></entry> 472 <entry>a<subscript>7</subscript></entry>
389 <entry>a<subscript>6</subscript></entry> 473 <entry>a<subscript>6</subscript></entry>
@@ -421,18 +505,76 @@ colorspace <constant>V4L2_COLORSPACE_SRGB</constant>.</para>
421 <entry>b<subscript>1</subscript></entry> 505 <entry>b<subscript>1</subscript></entry>
422 <entry>b<subscript>0</subscript></entry> 506 <entry>b<subscript>0</subscript></entry>
423 </row> 507 </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>
424 </tbody> 548 </tbody>
425 </tgroup> 549 </tgroup>
426 </table> 550 </table>
427 551
428 <para>Bit 7 is the most significant bit. The value of the a = alpha 552 <para>Bit 7 is the most significant bit.</para>
429bits is undefined when reading from the driver, ignored when writing 553
430to the driver, except when alpha blending has been negotiated for a 554 <para>The usage and value of the alpha bits (a) in the ARGB and ABGR formats
431<link linkend="overlay">Video Overlay</link> or <link linkend="osd"> 555 (collectively referred to as alpha formats) depend on the device type and
432Video Output Overlay</link> or when the alpha component has been configured 556 hardware operation. <link linkend="capture">Capture</link> devices
433for a <link linkend="capture">Video Capture</link> by means of <link 557 (including capture queues of mem-to-mem devices) fill the alpha component in
434linkend="v4l2-alpha-component"> <constant>V4L2_CID_ALPHA_COMPONENT 558 memory. When the device outputs an alpha channel the alpha component will
435</constant> </link> control.</para> 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>
436 578
437 <example> 579 <example>
438 <title><constant>V4L2_PIX_FMT_BGR24</constant> 4 &times; 4 pixel 580 <title><constant>V4L2_PIX_FMT_BGR24</constant> 4 &times; 4 pixel
@@ -512,6 +654,239 @@ image</title>
512 </formalpara> 654 </formalpara>
513 </example> 655 </example>
514 656
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
515 <para>A test utility to determine which RGB formats a driver 890 <para>A test utility to determine which RGB formats a driver
516actually supports is available from the LinuxTV v4l-dvb repository. 891actually supports is available from the LinuxTV v4l-dvb repository.
517See &v4l-dvb; for access instructions.</para> 892See &v4l-dvb; for access instructions.</para>
diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
index 1477abebd35b..a498d8b58679 100644
--- a/include/uapi/linux/videodev2.h
+++ b/include/uapi/linux/videodev2.h
@@ -294,7 +294,11 @@ struct v4l2_pix_format {
294/* RGB formats */ 294/* RGB formats */
295#define V4L2_PIX_FMT_RGB332 v4l2_fourcc('R', 'G', 'B', '1') /* 8 RGB-3-3-2 */ 295#define V4L2_PIX_FMT_RGB332 v4l2_fourcc('R', 'G', 'B', '1') /* 8 RGB-3-3-2 */
296#define V4L2_PIX_FMT_RGB444 v4l2_fourcc('R', '4', '4', '4') /* 16 xxxxrrrr ggggbbbb */ 296#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 */
297#define V4L2_PIX_FMT_RGB555 v4l2_fourcc('R', 'G', 'B', 'O') /* 16 RGB-5-5-5 */ 299#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 */
298#define V4L2_PIX_FMT_RGB565 v4l2_fourcc('R', 'G', 'B', 'P') /* 16 RGB-5-6-5 */ 302#define V4L2_PIX_FMT_RGB565 v4l2_fourcc('R', 'G', 'B', 'P') /* 16 RGB-5-6-5 */
299#define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R', 'G', 'B', 'Q') /* 16 RGB-5-5-5 BE */ 303#define V4L2_PIX_FMT_RGB555X v4l2_fourcc('R', 'G', 'B', 'Q') /* 16 RGB-5-5-5 BE */
300#define V4L2_PIX_FMT_RGB565X v4l2_fourcc('R', 'G', 'B', 'R') /* 16 RGB-5-6-5 BE */ 304#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 {
302#define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B', 'G', 'R', '3') /* 24 BGR-8-8-8 */ 306#define V4L2_PIX_FMT_BGR24 v4l2_fourcc('B', 'G', 'R', '3') /* 24 BGR-8-8-8 */
303#define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R', 'G', 'B', '3') /* 24 RGB-8-8-8 */ 307#define V4L2_PIX_FMT_RGB24 v4l2_fourcc('R', 'G', 'B', '3') /* 24 RGB-8-8-8 */
304#define V4L2_PIX_FMT_BGR32 v4l2_fourcc('B', 'G', 'R', '4') /* 32 BGR-8-8-8-8 */ 308#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 */
305#define V4L2_PIX_FMT_RGB32 v4l2_fourcc('R', 'G', 'B', '4') /* 32 RGB-8-8-8-8 */ 311#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 */
306 314
307/* Grey formats */ 315/* Grey formats */
308#define V4L2_PIX_FMT_GREY v4l2_fourcc('G', 'R', 'E', 'Y') /* 8 Greyscale */ 316#define V4L2_PIX_FMT_GREY v4l2_fourcc('G', 'R', 'E', 'Y') /* 8 Greyscale */