Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 306272
b: refs/heads/master
c: c643ee1
h: refs/heads/master
v: v3
  • Loading branch information
Sakari Ailus authored and Mauro Carvalho Chehab committed May 14, 2012
1 parent 5e1735c commit 6d0fb73
Show file tree
Hide file tree
Showing 5 changed files with 110 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 8c9d236ec64f1f1e7764385e7b5eae88eec7c02b
refs/heads/master: c643ee135190389e03cffd80e762c9c71dc9a165
82 changes: 82 additions & 0 deletions trunk/Documentation/DocBook/media/v4l/controls.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3685,4 +3685,86 @@ interface and may change in the future.</para>

</section>

<section id="image-process-controls">
<title>Image Process 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 processing functions. Unlike
<constant>V4L2_CID_IMAGE_SOURCE_CLASS</constant>, the controls in
this class affect processing the image, and do not control capturing
of it.
</para>

<table pgwide="1" frame="none" id="image-process-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_PROC_CLASS</constant></entry>
<entry>class</entry>
</row>
<row>
<entry spanname="descr">The IMAGE_PROC class descriptor.</entry>
</row>
<row>
<entry spanname="id"><constant>V4L2_CID_LINK_FREQ</constant></entry>
<entry>integer menu</entry>
</row>
<row>
<entry spanname="descr">Data bus frequency. Together with the
media bus pixel code, bus type (clock cycles per sample), the
data bus frequency defines the pixel rate
(<constant>V4L2_CID_PIXEL_RATE</constant>) in the
pixel array (or possibly elsewhere, if the device is not an
image sensor). The frame rate can be calculated from the pixel
clock, image width and height and horizontal and vertical
blanking. While the pixel rate control may be defined elsewhere
than in the subdev containing the pixel array, the frame rate
cannot be obtained from that information. This is because only
on the pixel array it can be assumed that the vertical and
horizontal blanking information is exact: no other blanking is
allowed in the pixel array. The selection of frame rate is
performed by selecting the desired horizontal and vertical
blanking. The unit of this control is Hz. </entry>
</row>
<row>
<entry spanname="id"><constant>V4L2_CID_PIXEL_RATE</constant></entry>
<entry>64-bit integer</entry>
</row>
<row>
<entry spanname="descr">Pixel rate in the source pads of
the subdev. This control is read-only and its unit is
pixels / second.
</entry>
</row>
<row><entry></entry></row>
</tbody>
</tgroup>
</table>

</section>
</section>
6 changes: 6 additions & 0 deletions trunk/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,12 @@ These controls are described in <xref
source controls. These controls are described in <xref
linkend="image-source-controls" />.</entry>
</row>
<row>
<entry><constant>V4L2_CTRL_CLASS_IMAGE_PROC</constant></entry>
<entry>0x9f0000</entry> <entry>The class containing image
processing controls. These controls are described in <xref
linkend="image-process-controls" />.</entry>
</row>
</tbody>
</tgroup>
</table>
Expand Down
14 changes: 13 additions & 1 deletion trunk/drivers/media/video/v4l2-ctrls.c
Original file line number Diff line number Diff line change
Expand Up @@ -650,6 +650,11 @@ const char *v4l2_ctrl_get_name(u32 id)
case V4L2_CID_HBLANK: return "Horizontal Blanking";
case V4L2_CID_ANALOGUE_GAIN: return "Analogue Gain";

/* Image processing controls */
case V4L2_CID_IMAGE_PROC_CLASS: return "Image Processing Controls";
case V4L2_CID_LINK_FREQ: return "Link Frequency";
case V4L2_CID_PIXEL_RATE: return "Pixel Rate";

default:
return NULL;
}
Expand Down Expand Up @@ -741,6 +746,9 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
case V4L2_CID_JPEG_CHROMA_SUBSAMPLING:
*type = V4L2_CTRL_TYPE_MENU;
break;
case V4L2_CID_LINK_FREQ:
*type = V4L2_CTRL_TYPE_INTEGER_MENU;
break;
case V4L2_CID_RDS_TX_PS_NAME:
case V4L2_CID_RDS_TX_RADIO_TEXT:
*type = V4L2_CTRL_TYPE_STRING;
Expand All @@ -752,6 +760,7 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
case V4L2_CID_FLASH_CLASS:
case V4L2_CID_JPEG_CLASS:
case V4L2_CID_IMAGE_SOURCE_CLASS:
case V4L2_CID_IMAGE_PROC_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;
Expand All @@ -775,8 +784,11 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type,
break;
case V4L2_CID_MPEG_VIDEO_DEC_FRAME:
case V4L2_CID_MPEG_VIDEO_DEC_PTS:
*flags |= V4L2_CTRL_FLAG_VOLATILE;
/* Fall through */
case V4L2_CID_PIXEL_RATE:
*type = V4L2_CTRL_TYPE_INTEGER64;
*flags |= V4L2_CTRL_FLAG_READ_ONLY | V4L2_CTRL_FLAG_VOLATILE;
*flags |= V4L2_CTRL_FLAG_READ_ONLY;
*min = *max = *step = *def = 0;
break;
default:
Expand Down
8 changes: 8 additions & 0 deletions trunk/include/linux/videodev2.h
Original file line number Diff line number Diff line change
Expand Up @@ -1140,6 +1140,7 @@ struct v4l2_ext_controls {
#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_CLASS_IMAGE_PROC 0x009f0000 /* Image processing controls */

#define V4L2_CTRL_ID_MASK (0x0fffffff)
#define V4L2_CTRL_ID2CLASS(id) ((id) & 0x0fff0000UL)
Expand Down Expand Up @@ -1797,6 +1798,13 @@ enum v4l2_jpeg_chroma_subsampling {
#define V4L2_CID_HBLANK (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 2)
#define V4L2_CID_ANALOGUE_GAIN (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 3)

/* Image processing controls */
#define V4L2_CID_IMAGE_PROC_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_PROC | 0x900)
#define V4L2_CID_IMAGE_PROC_CLASS (V4L2_CTRL_CLASS_IMAGE_PROC | 1)

#define V4L2_CID_LINK_FREQ (V4L2_CID_IMAGE_PROC_CLASS_BASE + 1)
#define V4L2_CID_PIXEL_RATE (V4L2_CID_IMAGE_PROC_CLASS_BASE + 2)

/*
* T U N I N G
*/
Expand Down

0 comments on commit 6d0fb73

Please sign in to comment.