mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-13 01:08:50 +00:00
[media] v4l: Add YUV 4:2:2 and YUV 4:4:4 tri-planar non-contiguous formats
The formats use three planes through the multiplanar API, allowing for non-contiguous planes in memory. Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com> Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
9662111253
commit
d65fae92f9
166
Documentation/DocBook/media/v4l/pixfmt-yuv422m.xml
Normal file
166
Documentation/DocBook/media/v4l/pixfmt-yuv422m.xml
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
<refentry>
|
||||||
|
<refmeta>
|
||||||
|
<refentrytitle>V4L2_PIX_FMT_YUV422M ('YM16'), V4L2_PIX_FMT_YVU422M ('YM61')</refentrytitle>
|
||||||
|
&manvol;
|
||||||
|
</refmeta>
|
||||||
|
<refnamediv>
|
||||||
|
<refname id="V4L2-PIX-FMT-YUV422M"><constant>V4L2_PIX_FMT_YUV422M</constant></refname>
|
||||||
|
<refname id="V4L2-PIX-FMT-YVU422M"><constant>V4L2_PIX_FMT_YVU422M</constant></refname>
|
||||||
|
<refpurpose>Planar formats with ½ horizontal resolution, also
|
||||||
|
known as YUV and YVU 4:2:2</refpurpose>
|
||||||
|
</refnamediv>
|
||||||
|
|
||||||
|
<refsect1>
|
||||||
|
<title>Description</title>
|
||||||
|
|
||||||
|
<para>This is a multi-planar format, as opposed to a packed format.
|
||||||
|
The three components are separated into three sub-images or planes.</para>
|
||||||
|
|
||||||
|
<para>The Y plane is first. The Y plane has one byte per pixel.
|
||||||
|
For <constant>V4L2_PIX_FMT_YUV422M</constant> the Cb data
|
||||||
|
constitutes the second plane which is half the width of the Y plane (and of the
|
||||||
|
image). Each Cb belongs to two pixels. For example,
|
||||||
|
Cb<subscript>0</subscript> belongs to Y'<subscript>00</subscript>,
|
||||||
|
Y'<subscript>01</subscript>. The Cr data, just like the Cb plane, is
|
||||||
|
in the third plane. </para>
|
||||||
|
|
||||||
|
<para><constant>V4L2_PIX_FMT_YVU422M</constant> is the same except
|
||||||
|
the Cr data is stored in the second plane and the Cb data in the third plane.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>If the Y plane has pad bytes after each row, then the Cb
|
||||||
|
and Cr planes have half as many pad bytes after their rows. In other
|
||||||
|
words, two Cx rows (including padding) is exactly as long as one Y row
|
||||||
|
(including padding).</para>
|
||||||
|
|
||||||
|
<para><constant>V4L2_PIX_FMT_YUV422M</constant> and
|
||||||
|
<constant>V4L2_PIX_FMT_YVU422M</constant> are intended to be
|
||||||
|
used only in drivers and applications that support the multi-planar API,
|
||||||
|
described in <xref linkend="planar-apis"/>. </para>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
<title><constant>V4L2_PIX_FMT_YUV422M</constant> 4 × 4
|
||||||
|
pixel image</title>
|
||||||
|
|
||||||
|
<formalpara>
|
||||||
|
<title>Byte Order.</title>
|
||||||
|
<para>Each cell is one byte.
|
||||||
|
<informaltable frame="none">
|
||||||
|
<tgroup cols="5" align="center">
|
||||||
|
<colspec align="left" colwidth="2*" />
|
||||||
|
<tbody valign="top">
|
||||||
|
<row>
|
||||||
|
<entry>start0 + 0:</entry>
|
||||||
|
<entry>Y'<subscript>00</subscript></entry>
|
||||||
|
<entry>Y'<subscript>01</subscript></entry>
|
||||||
|
<entry>Y'<subscript>02</subscript></entry>
|
||||||
|
<entry>Y'<subscript>03</subscript></entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>start0 + 4:</entry>
|
||||||
|
<entry>Y'<subscript>10</subscript></entry>
|
||||||
|
<entry>Y'<subscript>11</subscript></entry>
|
||||||
|
<entry>Y'<subscript>12</subscript></entry>
|
||||||
|
<entry>Y'<subscript>13</subscript></entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>start0 + 8:</entry>
|
||||||
|
<entry>Y'<subscript>20</subscript></entry>
|
||||||
|
<entry>Y'<subscript>21</subscript></entry>
|
||||||
|
<entry>Y'<subscript>22</subscript></entry>
|
||||||
|
<entry>Y'<subscript>23</subscript></entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>start0 + 12:</entry>
|
||||||
|
<entry>Y'<subscript>30</subscript></entry>
|
||||||
|
<entry>Y'<subscript>31</subscript></entry>
|
||||||
|
<entry>Y'<subscript>32</subscript></entry>
|
||||||
|
<entry>Y'<subscript>33</subscript></entry>
|
||||||
|
</row>
|
||||||
|
<row><entry></entry></row>
|
||||||
|
<row>
|
||||||
|
<entry>start1 + 0:</entry>
|
||||||
|
<entry>Cb<subscript>00</subscript></entry>
|
||||||
|
<entry>Cb<subscript>01</subscript></entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>start1 + 2:</entry>
|
||||||
|
<entry>Cb<subscript>10</subscript></entry>
|
||||||
|
<entry>Cb<subscript>11</subscript></entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>start1 + 4:</entry>
|
||||||
|
<entry>Cb<subscript>20</subscript></entry>
|
||||||
|
<entry>Cb<subscript>21</subscript></entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>start1 + 6:</entry>
|
||||||
|
<entry>Cb<subscript>30</subscript></entry>
|
||||||
|
<entry>Cb<subscript>31</subscript></entry>
|
||||||
|
</row>
|
||||||
|
<row><entry></entry></row>
|
||||||
|
<row>
|
||||||
|
<entry>start2 + 0:</entry>
|
||||||
|
<entry>Cr<subscript>00</subscript></entry>
|
||||||
|
<entry>Cr<subscript>01</subscript></entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>start2 + 2:</entry>
|
||||||
|
<entry>Cr<subscript>10</subscript></entry>
|
||||||
|
<entry>Cr<subscript>11</subscript></entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>start2 + 4:</entry>
|
||||||
|
<entry>Cr<subscript>20</subscript></entry>
|
||||||
|
<entry>Cr<subscript>21</subscript></entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>start2 + 6:</entry>
|
||||||
|
<entry>Cr<subscript>30</subscript></entry>
|
||||||
|
<entry>Cr<subscript>31</subscript></entry>
|
||||||
|
</row>
|
||||||
|
</tbody>
|
||||||
|
</tgroup>
|
||||||
|
</informaltable>
|
||||||
|
</para>
|
||||||
|
</formalpara>
|
||||||
|
|
||||||
|
<formalpara>
|
||||||
|
<title>Color Sample Location.</title>
|
||||||
|
<para>
|
||||||
|
<informaltable frame="none">
|
||||||
|
<tgroup cols="7" align="center">
|
||||||
|
<tbody valign="top">
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>0</entry><entry></entry><entry>1</entry><entry></entry>
|
||||||
|
<entry>2</entry><entry></entry><entry>3</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>0</entry>
|
||||||
|
<entry>Y</entry><entry>C</entry><entry>Y</entry><entry></entry>
|
||||||
|
<entry>Y</entry><entry>C</entry><entry>Y</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>1</entry>
|
||||||
|
<entry>Y</entry><entry>C</entry><entry>Y</entry><entry></entry>
|
||||||
|
<entry>Y</entry><entry>C</entry><entry>Y</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>2</entry>
|
||||||
|
<entry>Y</entry><entry>C</entry><entry>Y</entry><entry></entry>
|
||||||
|
<entry>Y</entry><entry>C</entry><entry>Y</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>3</entry>
|
||||||
|
<entry>Y</entry><entry>C</entry><entry>Y</entry><entry></entry>
|
||||||
|
<entry>Y</entry><entry>C</entry><entry>Y</entry>
|
||||||
|
</row>
|
||||||
|
</tbody>
|
||||||
|
</tgroup>
|
||||||
|
</informaltable>
|
||||||
|
</para>
|
||||||
|
</formalpara>
|
||||||
|
</example>
|
||||||
|
</refsect1>
|
||||||
|
</refentry>
|
177
Documentation/DocBook/media/v4l/pixfmt-yuv444m.xml
Normal file
177
Documentation/DocBook/media/v4l/pixfmt-yuv444m.xml
Normal file
@ -0,0 +1,177 @@
|
|||||||
|
<refentry>
|
||||||
|
<refmeta>
|
||||||
|
<refentrytitle>V4L2_PIX_FMT_YUV444M ('YM24'), V4L2_PIX_FMT_YVU444M ('YM42')</refentrytitle>
|
||||||
|
&manvol;
|
||||||
|
</refmeta>
|
||||||
|
<refnamediv>
|
||||||
|
<refname id="V4L2-PIX-FMT-YUV444M"><constant>V4L2_PIX_FMT_YUV444M</constant></refname>
|
||||||
|
<refname id="V4L2-PIX-FMT-YVU444M"><constant>V4L2_PIX_FMT_YVU444M</constant></refname>
|
||||||
|
<refpurpose>Planar formats with full horizontal resolution, also
|
||||||
|
known as YUV and YVU 4:4:4</refpurpose>
|
||||||
|
</refnamediv>
|
||||||
|
|
||||||
|
<refsect1>
|
||||||
|
<title>Description</title>
|
||||||
|
|
||||||
|
<para>This is a multi-planar format, as opposed to a packed format.
|
||||||
|
The three components are separated into three sub-images or planes.</para>
|
||||||
|
|
||||||
|
<para>The Y plane is first. The Y plane has one byte per pixel.
|
||||||
|
For <constant>V4L2_PIX_FMT_YUV444M</constant> the Cb data
|
||||||
|
constitutes the second plane which is the same width and height as the Y plane
|
||||||
|
(and as the image). The Cr data, just like the Cb plane, is in the third plane.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para><constant>V4L2_PIX_FMT_YVU444M</constant> is the same except
|
||||||
|
the Cr data is stored in the second plane and the Cb data in the third plane.
|
||||||
|
</para>
|
||||||
|
<para>If the Y plane has pad bytes after each row, then the Cb
|
||||||
|
and Cr planes have the same number of pad bytes after their rows.</para>
|
||||||
|
|
||||||
|
<para><constant>V4L2_PIX_FMT_YUV444M</constant> and
|
||||||
|
<constant>V4L2_PIX_FMT_YUV444M</constant> are intended to be
|
||||||
|
used only in drivers and applications that support the multi-planar API,
|
||||||
|
described in <xref linkend="planar-apis"/>. </para>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
<title><constant>V4L2_PIX_FMT_YUV444M</constant> 4 × 4
|
||||||
|
pixel image</title>
|
||||||
|
|
||||||
|
<formalpara>
|
||||||
|
<title>Byte Order.</title>
|
||||||
|
<para>Each cell is one byte.
|
||||||
|
<informaltable frame="none">
|
||||||
|
<tgroup cols="5" align="center">
|
||||||
|
<colspec align="left" colwidth="2*" />
|
||||||
|
<tbody valign="top">
|
||||||
|
<row>
|
||||||
|
<entry>start0 + 0:</entry>
|
||||||
|
<entry>Y'<subscript>00</subscript></entry>
|
||||||
|
<entry>Y'<subscript>01</subscript></entry>
|
||||||
|
<entry>Y'<subscript>02</subscript></entry>
|
||||||
|
<entry>Y'<subscript>03</subscript></entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>start0 + 4:</entry>
|
||||||
|
<entry>Y'<subscript>10</subscript></entry>
|
||||||
|
<entry>Y'<subscript>11</subscript></entry>
|
||||||
|
<entry>Y'<subscript>12</subscript></entry>
|
||||||
|
<entry>Y'<subscript>13</subscript></entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>start0 + 8:</entry>
|
||||||
|
<entry>Y'<subscript>20</subscript></entry>
|
||||||
|
<entry>Y'<subscript>21</subscript></entry>
|
||||||
|
<entry>Y'<subscript>22</subscript></entry>
|
||||||
|
<entry>Y'<subscript>23</subscript></entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>start0 + 12:</entry>
|
||||||
|
<entry>Y'<subscript>30</subscript></entry>
|
||||||
|
<entry>Y'<subscript>31</subscript></entry>
|
||||||
|
<entry>Y'<subscript>32</subscript></entry>
|
||||||
|
<entry>Y'<subscript>33</subscript></entry>
|
||||||
|
</row>
|
||||||
|
<row><entry></entry></row>
|
||||||
|
<row>
|
||||||
|
<entry>start1 + 0:</entry>
|
||||||
|
<entry>Cb<subscript>00</subscript></entry>
|
||||||
|
<entry>Cb<subscript>01</subscript></entry>
|
||||||
|
<entry>Cb<subscript>02</subscript></entry>
|
||||||
|
<entry>Cb<subscript>03</subscript></entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>start1 + 4:</entry>
|
||||||
|
<entry>Cb<subscript>10</subscript></entry>
|
||||||
|
<entry>Cb<subscript>11</subscript></entry>
|
||||||
|
<entry>Cb<subscript>12</subscript></entry>
|
||||||
|
<entry>Cb<subscript>13</subscript></entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>start1 + 8:</entry>
|
||||||
|
<entry>Cb<subscript>20</subscript></entry>
|
||||||
|
<entry>Cb<subscript>21</subscript></entry>
|
||||||
|
<entry>Cb<subscript>22</subscript></entry>
|
||||||
|
<entry>Cb<subscript>23</subscript></entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>start1 + 12:</entry>
|
||||||
|
<entry>Cb<subscript>20</subscript></entry>
|
||||||
|
<entry>Cb<subscript>21</subscript></entry>
|
||||||
|
<entry>Cb<subscript>32</subscript></entry>
|
||||||
|
<entry>Cb<subscript>33</subscript></entry>
|
||||||
|
</row>
|
||||||
|
<row><entry></entry></row>
|
||||||
|
<row>
|
||||||
|
<entry>start2 + 0:</entry>
|
||||||
|
<entry>Cr<subscript>00</subscript></entry>
|
||||||
|
<entry>Cr<subscript>01</subscript></entry>
|
||||||
|
<entry>Cr<subscript>02</subscript></entry>
|
||||||
|
<entry>Cr<subscript>03</subscript></entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>start2 + 4:</entry>
|
||||||
|
<entry>Cr<subscript>10</subscript></entry>
|
||||||
|
<entry>Cr<subscript>11</subscript></entry>
|
||||||
|
<entry>Cr<subscript>12</subscript></entry>
|
||||||
|
<entry>Cr<subscript>13</subscript></entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>start2 + 8:</entry>
|
||||||
|
<entry>Cr<subscript>20</subscript></entry>
|
||||||
|
<entry>Cr<subscript>21</subscript></entry>
|
||||||
|
<entry>Cr<subscript>22</subscript></entry>
|
||||||
|
<entry>Cr<subscript>23</subscript></entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>start2 + 12:</entry>
|
||||||
|
<entry>Cr<subscript>30</subscript></entry>
|
||||||
|
<entry>Cr<subscript>31</subscript></entry>
|
||||||
|
<entry>Cr<subscript>32</subscript></entry>
|
||||||
|
<entry>Cr<subscript>33</subscript></entry>
|
||||||
|
</row>
|
||||||
|
</tbody>
|
||||||
|
</tgroup>
|
||||||
|
</informaltable>
|
||||||
|
</para>
|
||||||
|
</formalpara>
|
||||||
|
|
||||||
|
<formalpara>
|
||||||
|
<title>Color Sample Location.</title>
|
||||||
|
<para>
|
||||||
|
<informaltable frame="none">
|
||||||
|
<tgroup cols="7" align="center">
|
||||||
|
<tbody valign="top">
|
||||||
|
<row>
|
||||||
|
<entry></entry>
|
||||||
|
<entry>0</entry><entry></entry><entry>1</entry><entry></entry>
|
||||||
|
<entry>2</entry><entry></entry><entry>3</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>0</entry>
|
||||||
|
<entry>YC</entry><entry></entry><entry>YC</entry><entry></entry>
|
||||||
|
<entry>YC</entry><entry></entry><entry>YC</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>1</entry>
|
||||||
|
<entry>YC</entry><entry></entry><entry>YC</entry><entry></entry>
|
||||||
|
<entry>YC</entry><entry></entry><entry>YC</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>2</entry>
|
||||||
|
<entry>YC</entry><entry></entry><entry>YC</entry><entry></entry>
|
||||||
|
<entry>YC</entry><entry></entry><entry>YC</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>3</entry>
|
||||||
|
<entry>YC</entry><entry></entry><entry>YC</entry><entry></entry>
|
||||||
|
<entry>YC</entry><entry></entry><entry>YC</entry>
|
||||||
|
</row>
|
||||||
|
</tbody>
|
||||||
|
</tgroup>
|
||||||
|
</informaltable>
|
||||||
|
</para>
|
||||||
|
</formalpara>
|
||||||
|
</example>
|
||||||
|
</refsect1>
|
||||||
|
</refentry>
|
@ -1628,6 +1628,8 @@ information.</para>
|
|||||||
&sub-y41p;
|
&sub-y41p;
|
||||||
&sub-yuv420;
|
&sub-yuv420;
|
||||||
&sub-yuv420m;
|
&sub-yuv420m;
|
||||||
|
&sub-yuv422m;
|
||||||
|
&sub-yuv444m;
|
||||||
&sub-yuv410;
|
&sub-yuv410;
|
||||||
&sub-yuv422p;
|
&sub-yuv422p;
|
||||||
&sub-yuv411p;
|
&sub-yuv411p;
|
||||||
|
@ -1191,6 +1191,10 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt)
|
|||||||
case V4L2_PIX_FMT_NV12MT_16X16: descr = "Y/CbCr 4:2:0 (16x16 MB, N-C)"; break;
|
case V4L2_PIX_FMT_NV12MT_16X16: descr = "Y/CbCr 4:2:0 (16x16 MB, N-C)"; break;
|
||||||
case V4L2_PIX_FMT_YUV420M: descr = "Planar YUV 4:2:0 (N-C)"; break;
|
case V4L2_PIX_FMT_YUV420M: descr = "Planar YUV 4:2:0 (N-C)"; break;
|
||||||
case V4L2_PIX_FMT_YVU420M: descr = "Planar YVU 4:2:0 (N-C)"; break;
|
case V4L2_PIX_FMT_YVU420M: descr = "Planar YVU 4:2:0 (N-C)"; break;
|
||||||
|
case V4L2_PIX_FMT_YUV422M: descr = "Planar YUV 4:2:2 (N-C)"; break;
|
||||||
|
case V4L2_PIX_FMT_YVU422M: descr = "Planar YVU 4:2:2 (N-C)"; break;
|
||||||
|
case V4L2_PIX_FMT_YUV444M: descr = "Planar YUV 4:4:4 (N-C)"; break;
|
||||||
|
case V4L2_PIX_FMT_YVU444M: descr = "Planar YVU 4:4:4 (N-C)"; break;
|
||||||
case V4L2_PIX_FMT_SBGGR8: descr = "8-bit Bayer BGBG/GRGR"; break;
|
case V4L2_PIX_FMT_SBGGR8: descr = "8-bit Bayer BGBG/GRGR"; break;
|
||||||
case V4L2_PIX_FMT_SGBRG8: descr = "8-bit Bayer GBGB/RGRG"; break;
|
case V4L2_PIX_FMT_SGBRG8: descr = "8-bit Bayer GBGB/RGRG"; break;
|
||||||
case V4L2_PIX_FMT_SGRBG8: descr = "8-bit Bayer GRGR/BGBG"; break;
|
case V4L2_PIX_FMT_SGRBG8: descr = "8-bit Bayer GRGR/BGBG"; break;
|
||||||
|
@ -546,6 +546,10 @@ struct v4l2_pix_format {
|
|||||||
/* three non contiguous planes - Y, Cb, Cr */
|
/* three non contiguous planes - Y, Cb, Cr */
|
||||||
#define V4L2_PIX_FMT_YUV420M v4l2_fourcc('Y', 'M', '1', '2') /* 12 YUV420 planar */
|
#define V4L2_PIX_FMT_YUV420M v4l2_fourcc('Y', 'M', '1', '2') /* 12 YUV420 planar */
|
||||||
#define V4L2_PIX_FMT_YVU420M v4l2_fourcc('Y', 'M', '2', '1') /* 12 YVU420 planar */
|
#define V4L2_PIX_FMT_YVU420M v4l2_fourcc('Y', 'M', '2', '1') /* 12 YVU420 planar */
|
||||||
|
#define V4L2_PIX_FMT_YUV422M v4l2_fourcc('Y', 'M', '1', '6') /* 16 YUV422 planar */
|
||||||
|
#define V4L2_PIX_FMT_YVU422M v4l2_fourcc('Y', 'M', '6', '1') /* 16 YVU422 planar */
|
||||||
|
#define V4L2_PIX_FMT_YUV444M v4l2_fourcc('Y', 'M', '2', '4') /* 24 YUV444 planar */
|
||||||
|
#define V4L2_PIX_FMT_YVU444M v4l2_fourcc('Y', 'M', '4', '2') /* 24 YVU444 planar */
|
||||||
|
|
||||||
/* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */
|
/* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */
|
||||||
#define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1') /* 8 BGBG.. GRGR.. */
|
#define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1') /* 8 BGBG.. GRGR.. */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user