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

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

[media] v4l: Add 12 bits bayer pixel formats



Add FCCs for the following pixel formats:

- V4L2_PIX_FMT_SBGGR12
- V4L2_PIX_FMT_SGBRG12
- V4L2_PIX_FMT_SGRBG12
- V4L2_PIX_FMT_SRGGB12

Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Acked-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 7140c557
Loading
Loading
Loading
Loading
+90 −0
Original line number Diff line number Diff line
    <refentry>
      <refmeta>
	<refentrytitle>V4L2_PIX_FMT_SRGGB12 ('RG12'),
	 V4L2_PIX_FMT_SGRBG12 ('BA12'),
	 V4L2_PIX_FMT_SGBRG12 ('GB12'),
	 V4L2_PIX_FMT_SBGGR12 ('BG12'),
	 </refentrytitle>
	&manvol;
      </refmeta>
      <refnamediv>
	<refname id="V4L2-PIX-FMT-SRGGB12"><constant>V4L2_PIX_FMT_SRGGB12</constant></refname>
	<refname id="V4L2-PIX-FMT-SGRBG12"><constant>V4L2_PIX_FMT_SGRBG12</constant></refname>
	<refname id="V4L2-PIX-FMT-SGBRG12"><constant>V4L2_PIX_FMT_SGBRG12</constant></refname>
	<refname id="V4L2-PIX-FMT-SBGGR12"><constant>V4L2_PIX_FMT_SBGGR12</constant></refname>
	<refpurpose>12-bit Bayer formats expanded to 16 bits</refpurpose>
      </refnamediv>
      <refsect1>
	<title>Description</title>

	<para>The following four pixel formats are raw sRGB / Bayer formats with
12 bits per colour. Each colour component is stored in a 16-bit word, with 6
unused high bits filled with zeros. Each n-pixel row contains n/2 green samples
and n/2 blue or red samples, with alternating red and blue rows. Bytes are
stored in memory in little endian order. They are conventionally described
as GRGR... BGBG..., RGRG... GBGB..., etc. Below is an example of one of these
formats</para>

    <example>
      <title><constant>V4L2_PIX_FMT_SBGGR12</constant> 4 &times; 4
pixel image</title>

      <formalpara>
	<title>Byte Order.</title>
	<para>Each cell is one byte, high 6 bits in high bytes are 0.
	  <informaltable frame="none">
	    <tgroup cols="5" align="center">
	      <colspec align="left" colwidth="2*" />
	      <tbody valign="top">
		<row>
		  <entry>start&nbsp;+&nbsp;0:</entry>
		  <entry>B<subscript>00low</subscript></entry>
		  <entry>B<subscript>00high</subscript></entry>
		  <entry>G<subscript>01low</subscript></entry>
		  <entry>G<subscript>01high</subscript></entry>
		  <entry>B<subscript>02low</subscript></entry>
		  <entry>B<subscript>02high</subscript></entry>
		  <entry>G<subscript>03low</subscript></entry>
		  <entry>G<subscript>03high</subscript></entry>
		</row>
		<row>
		  <entry>start&nbsp;+&nbsp;8:</entry>
		  <entry>G<subscript>10low</subscript></entry>
		  <entry>G<subscript>10high</subscript></entry>
		  <entry>R<subscript>11low</subscript></entry>
		  <entry>R<subscript>11high</subscript></entry>
		  <entry>G<subscript>12low</subscript></entry>
		  <entry>G<subscript>12high</subscript></entry>
		  <entry>R<subscript>13low</subscript></entry>
		  <entry>R<subscript>13high</subscript></entry>
		</row>
		<row>
		  <entry>start&nbsp;+&nbsp;16:</entry>
		  <entry>B<subscript>20low</subscript></entry>
		  <entry>B<subscript>20high</subscript></entry>
		  <entry>G<subscript>21low</subscript></entry>
		  <entry>G<subscript>21high</subscript></entry>
		  <entry>B<subscript>22low</subscript></entry>
		  <entry>B<subscript>22high</subscript></entry>
		  <entry>G<subscript>23low</subscript></entry>
		  <entry>G<subscript>23high</subscript></entry>
		</row>
		<row>
		  <entry>start&nbsp;+&nbsp;24:</entry>
		  <entry>G<subscript>30low</subscript></entry>
		  <entry>G<subscript>30high</subscript></entry>
		  <entry>R<subscript>31low</subscript></entry>
		  <entry>R<subscript>31high</subscript></entry>
		  <entry>G<subscript>32low</subscript></entry>
		  <entry>G<subscript>32high</subscript></entry>
		  <entry>R<subscript>33low</subscript></entry>
		  <entry>R<subscript>33high</subscript></entry>
		</row>
	      </tbody>
	    </tgroup>
	  </informaltable>
	</para>
      </formalpara>
    </example>
  </refsect1>
</refentry>
+4 −0
Original line number Diff line number Diff line
@@ -355,6 +355,10 @@ struct v4l2_pix_format {
#define V4L2_PIX_FMT_SGBRG10 v4l2_fourcc('G', 'B', '1', '0') /* 10  GBGB.. RGRG.. */
#define V4L2_PIX_FMT_SGRBG10 v4l2_fourcc('B', 'A', '1', '0') /* 10  GRGR.. BGBG.. */
#define V4L2_PIX_FMT_SRGGB10 v4l2_fourcc('R', 'G', '1', '0') /* 10  RGRG.. GBGB.. */
#define V4L2_PIX_FMT_SBGGR12 v4l2_fourcc('B', 'G', '1', '2') /* 12  BGBG.. GRGR.. */
#define V4L2_PIX_FMT_SGBRG12 v4l2_fourcc('G', 'B', '1', '2') /* 12  GBGB.. RGRG.. */
#define V4L2_PIX_FMT_SGRBG12 v4l2_fourcc('B', 'A', '1', '2') /* 12  GRGR.. BGBG.. */
#define V4L2_PIX_FMT_SRGGB12 v4l2_fourcc('R', 'G', '1', '2') /* 12  RGRG.. GBGB.. */
	/* 10bit raw bayer DPCM compressed to 8 bits */
#define V4L2_PIX_FMT_SGRBG10DPCM8 v4l2_fourcc('B', 'D', '1', '0')
	/*