Lines Matching +full:step +full:- +full:up

1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
13 VIDIOC_G_EXT_CTRLS - VIDIOC_S_EXT_CTRLS - VIDIOC_TRY_EXT_CTRLS - Get or set the value of several co…
44 :ref:`ctrl-class`) and all controls in the control array must belong
61 relevant for pointer-type controls like strings), then the driver will
63 should re-allocate the memory to this new size and try again. For the
70 N-dimensional arrays are set and retrieved row-by-row. You cannot set a
85 :ref:`VIDIOC_TRY_EXT_CTRLS <VIDIOC_G_EXT_CTRLS>` ioctl. It is up to the driver whether wrong
97 If ``request_fd`` is set to a not-yet-queued :ref:`request <media-request-api>`
118 were set/get. Only low-level errors (e. g. a failed i2c command) can
127 .. flat-table:: struct v4l2_ext_control
128 :header-rows: 0
129 :stub-columns: 0
132 * - __u32
133 - ``id``
134 - Identifies the control, set by the application.
135 * - __u32
136 - ``size``
137 - The total size in bytes of the payload of this control. This is
151 * - __u32
152 - ``reserved2``\ [1]
153 - Reserved for future extensions. Drivers and applications must set
155 * - union {
156 - (anonymous)
157 * - __s32
158 - ``value``
159 - New value or current value. Valid if this control is not of type
162 * - __s64
163 - ``value64``
164 - New value or current value. Valid if this control is of type
167 * - char *
168 - ``string``
169 - A pointer to a string. Valid if this control is of type
171 * - __u8 *
172 - ``p_u8``
173 - A pointer to a matrix control of unsigned 8-bit values. Valid if
175 * - __u16 *
176 - ``p_u16``
177 - A pointer to a matrix control of unsigned 16-bit values. Valid if
179 * - __u32 *
180 - ``p_u32``
181 - A pointer to a matrix control of unsigned 32-bit values. Valid if
183 * - :c:type:`v4l2_area` *
184 - ``p_area``
185 - A pointer to a struct :c:type:`v4l2_area`. Valid if this control is
187 * - void *
188 - ``ptr``
189 - A pointer to a compound type which can be an N-dimensional array
193 * - }
194 -
202 .. flat-table:: struct v4l2_ext_controls
203 :header-rows: 0
204 :stub-columns: 0
207 * - union {
208 - (anonymous)
209 * - __u32
210 - ``ctrl_class``
211 - The control class to which all controls belong, see
212 :ref:`ctrl-class`. Drivers that use a kernel framework for
218 * - __u32
219 - ``which``
220 - Which value of the control to get/set/try.
235 (see :ref:`ctrl-class`). In that case all controls have to
243 * - }
244 -
245 * - __u32
246 - ``count``
247 - The number of controls in the controls array. May also be zero.
248 * - __u32
249 - ``error_idx``
250 - Set by the driver in case of an error. If the error is associated
253 control, or the validation step failed (see below), then
258 step takes place: this checks if all controls in the list are
259 valid controls, if no attempt is made to write to a read-only
260 control or read from a write-only control, and any other up-front
262 validations done during this step are driver dependent since some
264 it impossible to do those checks up-front. However, drivers should
265 make a best-effort to do as many up-front checks as possible.
268 inconsistent state due to easy-to-avoid problems. But it leads to
270 came from the validation step (meaning that the hardware was not
276 unfortunate side-effect that it is not possible to see which
279 ``error_idx`` is less than ``count`` and only the controls up to
280 ``error_idx-1`` were read or written correctly, and the state of
284 also no need to handle the validation step in this special way, so
286 validation step instead of to ``count``. This means that if
289 actual control that failed the validation step. Unfortunately,
291 * - __s32
292 - ``request_fd``
293 - File descriptor of the request to be used by this operation. Only
298 * - __u32
299 - ``reserved``\ [1]
300 - Reserved for future extensions.
303 * - struct :c:type:`v4l2_ext_control` *
304 - ``controls``
305 - Pointer to an array of ``count`` v4l2_ext_control structures.
311 .. _ctrl-class:
313 .. flat-table:: Control classes
314 :header-rows: 0
315 :stub-columns: 0
318 * - ``V4L2_CTRL_CLASS_USER``
319 - 0x980000
320 - The class containing user controls. These controls are described
325 * - ``V4L2_CTRL_CLASS_MPEG``
326 - 0x990000
327 - The class containing MPEG compression controls. These controls are
328 described in :ref:`mpeg-controls`.
329 * - ``V4L2_CTRL_CLASS_CAMERA``
330 - 0x9a0000
331 - The class containing camera controls. These controls are described
332 in :ref:`camera-controls`.
333 * - ``V4L2_CTRL_CLASS_FM_TX``
334 - 0x9b0000
335 - The class containing FM Transmitter (FM TX) controls. These
336 controls are described in :ref:`fm-tx-controls`.
337 * - ``V4L2_CTRL_CLASS_FLASH``
338 - 0x9c0000
339 - The class containing flash device controls. These controls are
340 described in :ref:`flash-controls`.
341 * - ``V4L2_CTRL_CLASS_JPEG``
342 - 0x9d0000
343 - The class containing JPEG compression controls. These controls are
344 described in :ref:`jpeg-controls`.
345 * - ``V4L2_CTRL_CLASS_IMAGE_SOURCE``
346 - 0x9e0000
347 - The class containing image source controls. These controls are
348 described in :ref:`image-source-controls`.
349 * - ``V4L2_CTRL_CLASS_IMAGE_PROC``
350 - 0x9f0000
351 - The class containing image processing controls. These controls are
352 described in :ref:`image-process-controls`.
353 * - ``V4L2_CTRL_CLASS_FM_RX``
354 - 0xa10000
355 - The class containing FM Receiver (FM RX) controls. These controls
356 are described in :ref:`fm-rx-controls`.
357 * - ``V4L2_CTRL_CLASS_RF_TUNER``
358 - 0xa20000
359 - The class containing RF tuner controls. These controls are
360 described in :ref:`rf-tuner-controls`.
365 On success 0 is returned, on error -1 and the ``errno`` variable is set
367 :ref:`Generic Error Codes <gen-errors>` chapter.
399 Attempt to try or set a read-only control, or to get a write-only