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

Commit 8c9d236e authored by Sakari Ailus's avatar Sakari Ailus Committed by Mauro Carvalho Chehab
Browse files

[media] v4l: Image source control class



Add image source control class. This control class is intended to contain
low level controls which deal with control of the image capture process ---
the A/D converter in image sensors, for example.

Signed-off-by: default avatarSakari Ailus <sakari.ailus@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 6016af82
Loading
Loading
Loading
Loading
+86 −0
Original line number Diff line number Diff line
@@ -3599,4 +3599,90 @@ interface and may change in the future.</para>
      to <xref linkend="itu-t81"/>, <xref linkend="jfif"/>,
      <xref linkend="w3c-jpeg-jfif"/>.</para>
    </section>

    <section id="image-source-controls">
      <title>Image Source Control Reference</title>

      <note>
	<title>Experimental</title>

	<para>This is an <link
	linkend="experimental">experimental</link> interface and may
	change in the future.</para>
      </note>

      <para>
	The Image Source control class is intended for low-level
	control of image source devices such as image sensors. The
	devices feature an analogue to digital converter and a bus
	transmitter to transmit the image data out of the device.
      </para>

      <table pgwide="1" frame="none" id="image-source-control-id">
      <title>Image Source Control IDs</title>

      <tgroup cols="4">
	<colspec colname="c1" colwidth="1*" />
	<colspec colname="c2" colwidth="6*" />
	<colspec colname="c3" colwidth="2*" />
	<colspec colname="c4" colwidth="6*" />
	<spanspec namest="c1" nameend="c2" spanname="id" />
	<spanspec namest="c2" nameend="c4" spanname="descr" />
	<thead>
	  <row>
	    <entry spanname="id" align="left">ID</entry>
	    <entry align="left">Type</entry>
	  </row><row rowsep="1"><entry spanname="descr" align="left">Description</entry>
	  </row>
	</thead>
	<tbody valign="top">
	  <row><entry></entry></row>
	  <row>
	    <entry spanname="id"><constant>V4L2_CID_IMAGE_SOURCE_CLASS</constant></entry>
	    <entry>class</entry>
	  </row>
	  <row>
	    <entry spanname="descr">The IMAGE_SOURCE class descriptor.</entry>
	  </row>
	  <row>
	    <entry spanname="id"><constant>V4L2_CID_VBLANK</constant></entry>
	    <entry>integer</entry>
	  </row>
	  <row>
	    <entry spanname="descr">Vertical blanking. The idle period
	    after every frame during which no image data is produced.
	    The unit of vertical blanking is a line. Every line has
	    length of the image width plus horizontal blanking at the
	    pixel rate defined by
	    <constant>V4L2_CID_PIXEL_RATE</constant> control in the
	    same sub-device.</entry>
	  </row>
	  <row>
	    <entry spanname="id"><constant>V4L2_CID_HBLANK</constant></entry>
	    <entry>integer</entry>
	  </row>
	  <row>
	    <entry spanname="descr">Horizontal blanking. The idle
	    period after every line of image data during which no
	    image data is produced. The unit of horizontal blanking is
	    pixels.</entry>
	  </row>
	  <row>
	    <entry spanname="id"><constant>V4L2_CID_ANALOGUE_GAIN</constant></entry>
	    <entry>integer</entry>
	  </row>
	  <row>
	    <entry spanname="descr">Analogue gain is gain affecting
	    all colour components in the pixel matrix. The gain
	    operation is performed in the analogue domain before A/D
	    conversion.
	    </entry>
	  </row>
	  <row><entry></entry></row>
	</tbody>
      </tgroup>
      </table>

    </section>

</section>
+6 −0
Original line number Diff line number Diff line
@@ -272,6 +272,12 @@ These controls are described in <xref
These controls are described in <xref
		linkend="jpeg-controls" />.</entry>
	  </row>
	  <row>
	    <entry><constant>V4L2_CTRL_CLASS_IMAGE_SOURCE</constant></entry>
	    <entry>0x9e0000</entry> <entry>The class containing image
	    source controls. These controls are described in <xref
	    linkend="image-source-controls" />.</entry>
	  </row>
	</tbody>
      </tgroup>
    </table>
+7 −0
Original line number Diff line number Diff line
@@ -644,6 +644,12 @@ const char *v4l2_ctrl_get_name(u32 id)
	case V4L2_CID_JPEG_COMPRESSION_QUALITY:	return "Compression Quality";
	case V4L2_CID_JPEG_ACTIVE_MARKER:	return "Active Markers";

	/* Image source controls */
	case V4L2_CID_IMAGE_SOURCE_CLASS:	return "Image Source Controls";
	case V4L2_CID_VBLANK:			return "Vertical Blanking";
	case V4L2_CID_HBLANK:			return "Horizontal Blanking";
	case V4L2_CID_ANALOGUE_GAIN:		return "Analogue Gain";

	default:
		return NULL;
	}
@@ -745,6 +751,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
	case V4L2_CID_FM_TX_CLASS:
	case V4L2_CID_FLASH_CLASS:
	case V4L2_CID_JPEG_CLASS:
	case V4L2_CID_IMAGE_SOURCE_CLASS:
		*type = V4L2_CTRL_TYPE_CTRL_CLASS;
		/* You can neither read not write these */
		*flags |= V4L2_CTRL_FLAG_READ_ONLY | V4L2_CTRL_FLAG_WRITE_ONLY;
+9 −0
Original line number Diff line number Diff line
@@ -1139,6 +1139,7 @@ struct v4l2_ext_controls {
#define V4L2_CTRL_CLASS_FM_TX 0x009b0000	/* FM Modulator control class */
#define V4L2_CTRL_CLASS_FLASH 0x009c0000	/* Camera flash controls */
#define V4L2_CTRL_CLASS_JPEG 0x009d0000		/* JPEG-compression controls */
#define V4L2_CTRL_CLASS_IMAGE_SOURCE 0x009e0000	/* Image source controls */

#define V4L2_CTRL_ID_MASK      	  (0x0fffffff)
#define V4L2_CTRL_ID2CLASS(id)    ((id) & 0x0fff0000UL)
@@ -1788,6 +1789,14 @@ enum v4l2_jpeg_chroma_subsampling {
#define	V4L2_JPEG_ACTIVE_MARKER_DQT		(1 << 17)
#define	V4L2_JPEG_ACTIVE_MARKER_DHT		(1 << 18)

/* Image source controls */
#define V4L2_CID_IMAGE_SOURCE_CLASS_BASE	(V4L2_CTRL_CLASS_IMAGE_SOURCE | 0x900)
#define V4L2_CID_IMAGE_SOURCE_CLASS		(V4L2_CTRL_CLASS_IMAGE_SOURCE | 1)

#define V4L2_CID_VBLANK				(V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 1)
#define V4L2_CID_HBLANK				(V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 2)
#define V4L2_CID_ANALOGUE_GAIN			(V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 3)

/*
 *	T U N I N G
 */