aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml')
-rw-r--r--Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml51
1 files changed, 43 insertions, 8 deletions
diff --git a/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml b/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml
index e9f6735c0823..c5bdbfcc42b3 100644
--- a/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml
+++ b/Documentation/DocBook/media/v4l/vidioc-g-ext-ctrls.xml
@@ -72,23 +72,30 @@ initialize the <structfield>id</structfield>,
72<structfield>size</structfield> and <structfield>reserved2</structfield> fields 72<structfield>size</structfield> and <structfield>reserved2</structfield> fields
73of each &v4l2-ext-control; and call the 73of each &v4l2-ext-control; and call the
74<constant>VIDIOC_G_EXT_CTRLS</constant> ioctl. String controls controls 74<constant>VIDIOC_G_EXT_CTRLS</constant> ioctl. String controls controls
75must also set the <structfield>string</structfield> field.</para> 75must also set the <structfield>string</structfield> field. Controls
76of compound types (<constant>V4L2_CTRL_FLAG_HAS_PAYLOAD</constant> is set)
77must set the <structfield>ptr</structfield> field.</para>
76 78
77 <para>If the <structfield>size</structfield> is too small to 79 <para>If the <structfield>size</structfield> is too small to
78receive the control result (only relevant for pointer-type controls 80receive the control result (only relevant for pointer-type controls
79like strings), then the driver will set <structfield>size</structfield> 81like strings), then the driver will set <structfield>size</structfield>
80to a valid value and return an &ENOSPC;. You should re-allocate the 82to a valid value and return an &ENOSPC;. You should re-allocate the
81string memory to this new size and try again. It is possible that the 83memory to this new size and try again. For the string type it is possible that
82same issue occurs again if the string has grown in the meantime. It is 84the same issue occurs again if the string has grown in the meantime. It is
83recommended to call &VIDIOC-QUERYCTRL; first and use 85recommended to call &VIDIOC-QUERYCTRL; first and use
84<structfield>maximum</structfield>+1 as the new <structfield>size</structfield> 86<structfield>maximum</structfield>+1 as the new <structfield>size</structfield>
85value. It is guaranteed that that is sufficient memory. 87value. It is guaranteed that that is sufficient memory.
86</para> 88</para>
87 89
90 <para>N-dimensional arrays are set and retrieved row-by-row. You cannot set a partial
91array, all elements have to be set or retrieved. The total size is calculated
92as <structfield>elems</structfield> * <structfield>elem_size</structfield>.
93These values can be obtained by calling &VIDIOC-QUERY-EXT-CTRL;.</para>
94
88 <para>To change the value of a set of controls applications 95 <para>To change the value of a set of controls applications
89initialize the <structfield>id</structfield>, <structfield>size</structfield>, 96initialize the <structfield>id</structfield>, <structfield>size</structfield>,
90<structfield>reserved2</structfield> and 97<structfield>reserved2</structfield> and
91<structfield>value/string</structfield> fields of each &v4l2-ext-control; and 98<structfield>value/value64/string/ptr</structfield> fields of each &v4l2-ext-control; and
92call the <constant>VIDIOC_S_EXT_CTRLS</constant> ioctl. The controls 99call the <constant>VIDIOC_S_EXT_CTRLS</constant> ioctl. The controls
93will only be set if <emphasis>all</emphasis> control values are 100will only be set if <emphasis>all</emphasis> control values are
94valid.</para> 101valid.</para>
@@ -96,7 +103,7 @@ valid.</para>
96 <para>To check if a set of controls have correct values applications 103 <para>To check if a set of controls have correct values applications
97initialize the <structfield>id</structfield>, <structfield>size</structfield>, 104initialize the <structfield>id</structfield>, <structfield>size</structfield>,
98<structfield>reserved2</structfield> and 105<structfield>reserved2</structfield> and
99<structfield>value/string</structfield> fields of each &v4l2-ext-control; and 106<structfield>value/value64/string/ptr</structfield> fields of each &v4l2-ext-control; and
100call the <constant>VIDIOC_TRY_EXT_CTRLS</constant> ioctl. It is up to 107call the <constant>VIDIOC_TRY_EXT_CTRLS</constant> ioctl. It is up to
101the driver whether wrong values are automatically adjusted to a valid 108the driver whether wrong values are automatically adjusted to a valid
102value or if an error is returned.</para> 109value or if an error is returned.</para>
@@ -158,19 +165,47 @@ applications must set the array to zero.</entry>
158 <entry></entry> 165 <entry></entry>
159 <entry>__s32</entry> 166 <entry>__s32</entry>
160 <entry><structfield>value</structfield></entry> 167 <entry><structfield>value</structfield></entry>
161 <entry>New value or current value.</entry> 168 <entry>New value or current value. Valid if this control is not of
169type <constant>V4L2_CTRL_TYPE_INTEGER64</constant> and
170<constant>V4L2_CTRL_FLAG_HAS_PAYLOAD</constant> is not set.</entry>
162 </row> 171 </row>
163 <row> 172 <row>
164 <entry></entry> 173 <entry></entry>
165 <entry>__s64</entry> 174 <entry>__s64</entry>
166 <entry><structfield>value64</structfield></entry> 175 <entry><structfield>value64</structfield></entry>
167 <entry>New value or current value.</entry> 176 <entry>New value or current value. Valid if this control is of
177type <constant>V4L2_CTRL_TYPE_INTEGER64</constant> and
178<constant>V4L2_CTRL_FLAG_HAS_PAYLOAD</constant> is not set.</entry>
168 </row> 179 </row>
169 <row> 180 <row>
170 <entry></entry> 181 <entry></entry>
171 <entry>char *</entry> 182 <entry>char *</entry>
172 <entry><structfield>string</structfield></entry> 183 <entry><structfield>string</structfield></entry>
173 <entry>A pointer to a string.</entry> 184 <entry>A pointer to a string. Valid if this control is of
185type <constant>V4L2_CTRL_TYPE_STRING</constant>.</entry>
186 </row>
187 <row>
188 <entry></entry>
189 <entry>__u8 *</entry>
190 <entry><structfield>p_u8</structfield></entry>
191 <entry>A pointer to a matrix control of unsigned 8-bit values.
192Valid if this control is of type <constant>V4L2_CTRL_TYPE_U8</constant>.</entry>
193 </row>
194 <row>
195 <entry></entry>
196 <entry>__u16 *</entry>
197 <entry><structfield>p_u16</structfield></entry>
198 <entry>A pointer to a matrix control of unsigned 16-bit values.
199Valid if this control is of type <constant>V4L2_CTRL_TYPE_U16</constant>.</entry>
200 </row>
201 <row>
202 <entry></entry>
203 <entry>void *</entry>
204 <entry><structfield>ptr</structfield></entry>
205 <entry>A pointer to a compound type which can be an N-dimensional array and/or a
206compound type (the control's type is >= <constant>V4L2_CTRL_COMPOUND_TYPES</constant>).
207Valid if <constant>V4L2_CTRL_FLAG_HAS_PAYLOAD</constant> is set for this control.
208</entry>
174 </row> 209 </row>
175 </tbody> 210 </tbody>
176 </tgroup> 211 </tgroup>