mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
[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: Sakari Ailus <sakari.ailus@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
6016af82ea
commit
8c9d236ec6
4 changed files with 108 additions and 0 deletions
|
@ -3599,4 +3599,90 @@ interface and may change in the future.</para>
|
||||||
to <xref linkend="itu-t81"/>, <xref linkend="jfif"/>,
|
to <xref linkend="itu-t81"/>, <xref linkend="jfif"/>,
|
||||||
<xref linkend="w3c-jpeg-jfif"/>.</para>
|
<xref linkend="w3c-jpeg-jfif"/>.</para>
|
||||||
</section>
|
</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>
|
</section>
|
||||||
|
|
|
@ -272,6 +272,12 @@ These controls are described in <xref
|
||||||
These controls are described in <xref
|
These controls are described in <xref
|
||||||
linkend="jpeg-controls" />.</entry>
|
linkend="jpeg-controls" />.</entry>
|
||||||
</row>
|
</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>
|
</tbody>
|
||||||
</tgroup>
|
</tgroup>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -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_COMPRESSION_QUALITY: return "Compression Quality";
|
||||||
case V4L2_CID_JPEG_ACTIVE_MARKER: return "Active Markers";
|
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:
|
default:
|
||||||
return NULL;
|
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_FM_TX_CLASS:
|
||||||
case V4L2_CID_FLASH_CLASS:
|
case V4L2_CID_FLASH_CLASS:
|
||||||
case V4L2_CID_JPEG_CLASS:
|
case V4L2_CID_JPEG_CLASS:
|
||||||
|
case V4L2_CID_IMAGE_SOURCE_CLASS:
|
||||||
*type = V4L2_CTRL_TYPE_CTRL_CLASS;
|
*type = V4L2_CTRL_TYPE_CTRL_CLASS;
|
||||||
/* You can neither read not write these */
|
/* You can neither read not write these */
|
||||||
*flags |= V4L2_CTRL_FLAG_READ_ONLY | V4L2_CTRL_FLAG_WRITE_ONLY;
|
*flags |= V4L2_CTRL_FLAG_READ_ONLY | V4L2_CTRL_FLAG_WRITE_ONLY;
|
||||||
|
|
|
@ -1139,6 +1139,7 @@ struct v4l2_ext_controls {
|
||||||
#define V4L2_CTRL_CLASS_FM_TX 0x009b0000 /* FM Modulator control class */
|
#define V4L2_CTRL_CLASS_FM_TX 0x009b0000 /* FM Modulator control class */
|
||||||
#define V4L2_CTRL_CLASS_FLASH 0x009c0000 /* Camera flash controls */
|
#define V4L2_CTRL_CLASS_FLASH 0x009c0000 /* Camera flash controls */
|
||||||
#define V4L2_CTRL_CLASS_JPEG 0x009d0000 /* JPEG-compression 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_ID_MASK (0x0fffffff)
|
||||||
#define V4L2_CTRL_ID2CLASS(id) ((id) & 0x0fff0000UL)
|
#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_DQT (1 << 17)
|
||||||
#define V4L2_JPEG_ACTIVE_MARKER_DHT (1 << 18)
|
#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
|
* T U N I N G
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue