Lines Matching +full:2 +full:- +full:dimensional

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
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
131 .. flat-table:: struct v4l2_ext_control
132 :header-rows: 0
133 :stub-columns: 0
134 :widths: 1 1 2
136 * - __u32
137 - ``id``
138 - Identifies the control, set by the application.
139 * - __u32
140 - ``size``
141 - The total size in bytes of the payload of this control.
142 * - :cspan:`2` The ``size`` field is normally 0, but for pointer
156 * - __u32
157 - ``reserved2``\ [1]
158 - Reserved for future extensions. Drivers and applications must set
160 * - union {
161 - (anonymous)
162 * - __s32
163 - ``value``
164 - New value or current value. Valid if this control is not of type
167 * - __s64
168 - ``value64``
169 - New value or current value. Valid if this control is of type
172 * - char *
173 - ``string``
174 - A pointer to a string. Valid if this control is of type
176 * - __u8 *
177 - ``p_u8``
178 - A pointer to a matrix control of unsigned 8-bit values. Valid if
180 * - __u16 *
181 - ``p_u16``
182 - A pointer to a matrix control of unsigned 16-bit values. Valid if
184 * - __u32 *
185 - ``p_u32``
186 - A pointer to a matrix control of unsigned 32-bit values. Valid if
188 * - struct :c:type:`v4l2_area` *
189 - ``p_area``
190 - A pointer to a struct :c:type:`v4l2_area`. Valid if this control is
192 * - struct :c:type:`v4l2_ctrl_h264_sps` *
193 - ``p_h264_sps``
194 - A pointer to a struct :c:type:`v4l2_ctrl_h264_sps`. Valid if this control is
196 * - struct :c:type:`v4l2_ctrl_h264_pps` *
197 - ``p_h264_pps``
198 - A pointer to a struct :c:type:`v4l2_ctrl_h264_pps`. Valid if this control is
200 * - struct :c:type:`v4l2_ctrl_h264_scaling_matrix` *
201 - ``p_h264_scaling_matrix``
202 - A pointer to a struct :c:type:`v4l2_ctrl_h264_scaling_matrix`. Valid if this control is
204 * - struct :c:type:`v4l2_ctrl_h264_pred_weights` *
205 - ``p_h264_pred_weights``
206 - A pointer to a struct :c:type:`v4l2_ctrl_h264_pred_weights`. Valid if this control is
208 * - struct :c:type:`v4l2_ctrl_h264_slice_params` *
209 - ``p_h264_slice_params``
210 - A pointer to a struct :c:type:`v4l2_ctrl_h264_slice_params`. Valid if this control is
212 * - struct :c:type:`v4l2_ctrl_h264_decode_params` *
213 - ``p_h264_decode_params``
214 - A pointer to a struct :c:type:`v4l2_ctrl_h264_decode_params`. Valid if this control is
216 * - struct :c:type:`v4l2_ctrl_fwht_params` *
217 - ``p_fwht_params``
218 - A pointer to a struct :c:type:`v4l2_ctrl_fwht_params`. Valid if this control is
220 * - struct :c:type:`v4l2_ctrl_vp8_frame` *
221 - ``p_vp8_frame``
222 - A pointer to a struct :c:type:`v4l2_ctrl_vp8_frame`. Valid if this control is
224 * - struct :c:type:`v4l2_ctrl_mpeg2_sequence` *
225 - ``p_mpeg2_sequence``
226 - A pointer to a struct :c:type:`v4l2_ctrl_mpeg2_sequence`. Valid if this control is
228 * - struct :c:type:`v4l2_ctrl_mpeg2_picture` *
229 - ``p_mpeg2_picture``
230 - A pointer to a struct :c:type:`v4l2_ctrl_mpeg2_picture`. Valid if this control is
232 * - struct :c:type:`v4l2_ctrl_mpeg2_quantisation` *
233 - ``p_mpeg2_quantisation``
234 - A pointer to a struct :c:type:`v4l2_ctrl_mpeg2_quantisation`. Valid if this control is
236 * - struct :c:type:`v4l2_ctrl_hdr10_cll_info` *
237 - ``p_hdr10_cll``
238 - A pointer to a struct :c:type:`v4l2_ctrl_hdr10_cll_info`. Valid if this control is
240 * - struct :c:type:`v4l2_ctrl_hdr10_mastering_display` *
241 - ``p_hdr10_mastering``
242 - A pointer to a struct :c:type:`v4l2_ctrl_hdr10_mastering_display`. Valid if this control is
244 * - void *
245 - ``ptr``
246 - A pointer to a compound type which can be an N-dimensional array
250 * - }
251 -
263 .. flat-table:: struct v4l2_ext_controls
264 :header-rows: 0
265 :stub-columns: 0
266 :widths: 1 1 2
268 * - union {
269 - (anonymous)
270 * - __u32
271 - ``which``
272 - Which value of the control to get/set/try.
273 * - :cspan:`2` ``V4L2_CTRL_WHICH_CUR_VAL`` will return the current value of
285 (see :ref:`ctrl-class`). In that case all controls have to
293 * - __u32
294 - ``ctrl_class``
295 - Deprecated name kept for backwards compatibility. Use ``which`` instead.
296 * - }
297 -
298 * - __u32
299 - ``count``
300 - The number of controls in the controls array. May also be zero.
301 * - __u32
302 - ``error_idx``
303 - Index of the failing control. Set by the driver in case of an error.
304 * - :cspan:`2` If the error is associated
313 valid controls, if no attempt is made to write to a read-only
314 control or read from a write-only control, and any other up-front
318 it impossible to do those checks up-front. However, drivers should
319 make a best-effort to do as many up-front checks as possible.
322 inconsistent state due to easy-to-avoid problems. But it leads to
330 unfortunate side-effect that it is not possible to see which
334 ``error_idx-1`` were read or written correctly, and the state of
345 * - __s32
346 - ``request_fd``
347 - File descriptor of the request to be used by this operation. Only
352 * - __u32
353 - ``reserved``\ [1]
354 - Reserved for future extensions.
357 * - struct :c:type:`v4l2_ext_control` *
358 - ``controls``
359 - Pointer to an array of ``count`` v4l2_ext_control structures.
367 .. _ctrl-class:
369 .. flat-table:: Control classes
370 :header-rows: 0
371 :stub-columns: 0
374 * - ``V4L2_CTRL_CLASS_USER``
375 - 0x980000
376 - The class containing user controls. These controls are described
381 * - ``V4L2_CTRL_CLASS_CODEC``
382 - 0x990000
383 - The class containing stateful codec controls. These controls are
384 described in :ref:`codec-controls`.
385 * - ``V4L2_CTRL_CLASS_CAMERA``
386 - 0x9a0000
387 - The class containing camera controls. These controls are described
388 in :ref:`camera-controls`.
389 * - ``V4L2_CTRL_CLASS_FM_TX``
390 - 0x9b0000
391 - The class containing FM Transmitter (FM TX) controls. These
392 controls are described in :ref:`fm-tx-controls`.
393 * - ``V4L2_CTRL_CLASS_FLASH``
394 - 0x9c0000
395 - The class containing flash device controls. These controls are
396 described in :ref:`flash-controls`.
397 * - ``V4L2_CTRL_CLASS_JPEG``
398 - 0x9d0000
399 - The class containing JPEG compression controls. These controls are
400 described in :ref:`jpeg-controls`.
401 * - ``V4L2_CTRL_CLASS_IMAGE_SOURCE``
402 - 0x9e0000
403 - The class containing image source controls. These controls are
404 described in :ref:`image-source-controls`.
405 * - ``V4L2_CTRL_CLASS_IMAGE_PROC``
406 - 0x9f0000
407 - The class containing image processing controls. These controls are
408 described in :ref:`image-process-controls`.
409 * - ``V4L2_CTRL_CLASS_FM_RX``
410 - 0xa10000
411 - The class containing FM Receiver (FM RX) controls. These controls
412 are described in :ref:`fm-rx-controls`.
413 * - ``V4L2_CTRL_CLASS_RF_TUNER``
414 - 0xa20000
415 - The class containing RF tuner controls. These controls are
416 described in :ref:`rf-tuner-controls`.
417 * - ``V4L2_CTRL_CLASS_DETECT``
418 - 0xa30000
419 - The class containing motion or object detection controls. These controls
420 are described in :ref:`detect-controls`.
421 * - ``V4L2_CTRL_CLASS_CODEC_STATELESS``
422 - 0xa40000
423 - The class containing stateless codec controls. These controls are
424 described in :ref:`codec-stateless-controls`.
425 * - ``V4L2_CTRL_CLASS_COLORIMETRY``
426 - 0xa50000
427 - The class containing colorimetry controls. These controls are
428 described in :ref:`colorimetry-controls`.
433 On success 0 is returned, on error -1 and the ``errno`` variable is set
435 :ref:`Generic Error Codes <gen-errors>` chapter.
467 Attempt to try or set a read-only control, or to get a write-only