Lines Matching +full:compound +full:- +full:device

1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
13 VIDIOC_QUERYCTRL - VIDIOC_QUERY_EXT_CTRL - VIDIOC_QUERYMENU - Enumerate controls and menu control i…
42 of a struct :ref:`v4l2_queryctrl <v4l2-queryctrl>` and call the
60 driver returns the next supported non-compound control, or ``EINVAL`` if
62 can be specified to enumerate all compound controls (i.e. controls with
66 order to enumerate all controls, compound or not. Drivers which do not
70 support controls that can use compound types, and to expose additional
72 :ref:`v4l2_queryctrl <v4l2-queryctrl>` since that structure is full.
80 fields of struct :ref:`v4l2_querymenu <v4l2-querymenu>` and call the
85 :ref:`v4l2_queryctrl <v4l2-queryctrl>` ``minimum`` to ``maximum``,
99 .. _v4l2-queryctrl:
103 .. flat-table:: struct v4l2_queryctrl
104 :header-rows: 0
105 :stub-columns: 0
108 * - __u32
109 - ``id``
110 - Identifies the control, set by the application. See
111 :ref:`control-id` for predefined IDs. When the ID is ORed with
115 * - __u32
116 - ``type``
117 - Type of control, see :c:type:`v4l2_ctrl_type`.
118 * - __u8
119 - ``name``\ [32]
120 - Name of the control, a NUL-terminated ASCII string. This
122 * - __s32
123 - ``minimum``
124 - Minimum value, inclusive. This field gives a lower bound for the
127 Note that this a signed 32-bit value.
128 * - __s32
129 - ``maximum``
130 - Maximum value, inclusive. This field gives an upper bound for the
133 Note that this a signed 32-bit value.
134 * - __s32
135 - ``step``
136 - This field gives a step size for the control. See enum
139 unsigned 32-bit value.
146 repeated read-write cycles.
152 0-511 and the driver reports 0-65535, step should be 128.
156 * - __s32
157 - ``default_value``
158 - The default value of a ``V4L2_CTRL_TYPE_INTEGER``, ``_BOOLEAN``,
166 * - __u32
167 - ``flags``
168 - Control flags, see :ref:`control-flags`.
169 * - __u32
170 - ``reserved``\ [2]
171 - Reserved for future extensions. Drivers must set the array to
177 .. _v4l2-query-ext-ctrl:
181 .. flat-table:: struct v4l2_query_ext_ctrl
182 :header-rows: 0
183 :stub-columns: 0
186 * - __u32
187 - ``id``
188 - Identifies the control, set by the application. See
189 :ref:`control-id` for predefined IDs. When the ID is ORed with
191 returns the first non-compound control with a higher ID. When the
193 the flag and returns the first compound control with a higher ID.
194 Set both to get the first control (compound or not) with a higher
196 * - __u32
197 - ``type``
198 - Type of control, see :c:type:`v4l2_ctrl_type`.
199 * - char
200 - ``name``\ [32]
201 - Name of the control, a NUL-terminated ASCII string. This
203 * - __s64
204 - ``minimum``
205 - Minimum value, inclusive. This field gives a lower bound for the
208 Note that this a signed 64-bit value.
209 * - __s64
210 - ``maximum``
211 - Maximum value, inclusive. This field gives an upper bound for the
214 Note that this a signed 64-bit value.
215 * - __u64
216 - ``step``
217 - This field gives a step size for the control. See enum
220 unsigned 64-bit value.
227 repeated read-write cycles.
233 0-511 and the driver reports 0-65535, step should be 128.
234 * - __s64
235 - ``default_value``
236 - The default value of a ``V4L2_CTRL_TYPE_INTEGER``, ``_INTEGER64``,
244 * - __u32
245 - ``flags``
246 - Control flags, see :ref:`control-flags`.
247 * - __u32
248 - ``elem_size``
249 - The size in bytes of a single element of the array. Given a char
250 pointer ``p`` to a 3-dimensional array you can find the position
256 * - __u32
257 - ``elems``
258 - The number of elements in the N-dimensional array. If this control
261 * - __u32
262 - ``nr_of_dims``
263 - The number of dimension in the N-dimensional array. If this
265 * - __u32
266 - ``dims[V4L2_CTRL_MAX_DIMS]``
267 - The size of each dimension. The first ``nr_of_dims`` elements of
268 this array must be non-zero, all remaining elements must be zero.
269 * - __u32
270 - ``reserved``\ [32]
271 - Reserved for future extensions. Applications and drivers must set
277 .. _v4l2-querymenu:
279 .. flat-table:: struct v4l2_querymenu
280 :header-rows: 0
281 :stub-columns: 0
284 * - __u32
285 - ``id``
286 - Identifies the control, set by the application from the respective
287 struct :ref:`v4l2_queryctrl <v4l2-queryctrl>` ``id``.
288 * - __u32
289 - ``index``
290 - Index of the menu item, starting at zero, set by the application.
291 * - union {
292 - (anonymous)
293 * - __u8
294 - ``name``\ [32]
295 - Name of the menu item, a NUL-terminated ASCII string. This
298 * - __s64
299 - ``value``
300 - Value of the integer menu item. This field is valid for
302 * - }
303 -
304 * - __u32
305 - ``reserved``
306 - Reserved for future extensions. Drivers must set the array to
319 .. flat-table:: enum v4l2_ctrl_type
320 :header-rows: 1
321 :stub-columns: 0
324 * - Type
325 - ``minimum``
326 - ``step``
327 - ``maximum``
328 - Description
329 * - ``V4L2_CTRL_TYPE_INTEGER``
330 - any
331 - any
332 - any
333 - An integer-valued control ranging from minimum to maximum
335 * - ``V4L2_CTRL_TYPE_BOOLEAN``
336 - 0
337 - 1
338 - 1
339 - A boolean-valued control. Zero corresponds to "disabled", and one
341 * - ``V4L2_CTRL_TYPE_MENU``
342 - ≥ 0
343 - 1
344 - N-1
345 - The control has a menu of N choices. The names of the menu items
347 * - ``V4L2_CTRL_TYPE_INTEGER_MENU``
348 - ≥ 0
349 - 1
350 - N-1
351 - The control has a menu of N choices. The values of the menu items
354 the menu items are signed 64-bit integers.
355 * - ``V4L2_CTRL_TYPE_BITMASK``
356 - 0
357 - n/a
358 - any
359 - A bitmask field. The maximum value is the set of bits that can be
362 * - ``V4L2_CTRL_TYPE_BUTTON``
363 - 0
364 - 0
365 - 0
366 - A control which performs an action when set. Drivers must ignore
369 * - ``V4L2_CTRL_TYPE_INTEGER64``
370 - any
371 - any
372 - any
373 - A 64-bit integer valued control. Minimum, maximum and step size
375 ``VIDIOC_QUERY_EXT_CTRL`` can retrieve the 64-bit min/max/step
378 * - ``V4L2_CTRL_TYPE_STRING``
379 - ≥ 0
380 - ≥ 1
381 - ≥ 0
382 - The minimum and maximum string lengths. The step size means that
393 * - ``V4L2_CTRL_TYPE_CTRL_CLASS``
394 - n/a
395 - n/a
396 - n/a
397 - This is not a control. When ``VIDIOC_QUERYCTRL`` is called with a
398 control ID equal to a control class code (see :ref:`ctrl-class`)
402 * - ``V4L2_CTRL_TYPE_U8``
403 - any
404 - any
405 - any
406 - An unsigned 8-bit valued control ranging from minimum to maximum
408 * - ``V4L2_CTRL_TYPE_U16``
409 - any
410 - any
411 - any
412 - An unsigned 16-bit valued control ranging from minimum to maximum
414 * - ``V4L2_CTRL_TYPE_U32``
415 - any
416 - any
417 - any
418 - An unsigned 32-bit valued control ranging from minimum to maximum
420 * - ``V4L2_CTRL_TYPE_MPEG2_QUANTISATION``
421 - n/a
422 - n/a
423 - n/a
424 - A struct :c:type:`v4l2_ctrl_mpeg2_quantisation`, containing MPEG-2
426 * - ``V4L2_CTRL_TYPE_MPEG2_SEQUENCE``
427 - n/a
428 - n/a
429 - n/a
430 - A struct :c:type:`v4l2_ctrl_mpeg2_sequence`, containing MPEG-2
432 * - ``V4L2_CTRL_TYPE_MPEG2_PICTURE``
433 - n/a
434 - n/a
435 - n/a
436 - A struct :c:type:`v4l2_ctrl_mpeg2_picture`, containing MPEG-2
438 * - ``V4L2_CTRL_TYPE_AREA``
439 - n/a
440 - n/a
441 - n/a
442 - A struct :c:type:`v4l2_area`, containing the width and the height
444 * - ``V4L2_CTRL_TYPE_H264_SPS``
445 - n/a
446 - n/a
447 - n/a
448 - A struct :c:type:`v4l2_ctrl_h264_sps`, containing H264
450 * - ``V4L2_CTRL_TYPE_H264_PPS``
451 - n/a
452 - n/a
453 - n/a
454 - A struct :c:type:`v4l2_ctrl_h264_pps`, containing H264
456 * - ``V4L2_CTRL_TYPE_H264_SCALING_MATRIX``
457 - n/a
458 - n/a
459 - n/a
460 - A struct :c:type:`v4l2_ctrl_h264_scaling_matrix`, containing H264
462 * - ``V4L2_CTRL_TYPE_H264_SLICE_PARAMS``
463 - n/a
464 - n/a
465 - n/a
466 - A struct :c:type:`v4l2_ctrl_h264_slice_params`, containing H264
468 * - ``V4L2_CTRL_TYPE_H264_DECODE_PARAMS``
469 - n/a
470 - n/a
471 - n/a
472 - A struct :c:type:`v4l2_ctrl_h264_decode_params`, containing H264
474 * - ``V4L2_CTRL_TYPE_FWHT_PARAMS``
475 - n/a
476 - n/a
477 - n/a
478 - A struct :c:type:`v4l2_ctrl_fwht_params`, containing FWHT
480 * - ``V4L2_CTRL_TYPE_HEVC_SPS``
481 - n/a
482 - n/a
483 - n/a
484 - A struct :c:type:`v4l2_ctrl_hevc_sps`, containing HEVC Sequence
486 * - ``V4L2_CTRL_TYPE_HEVC_PPS``
487 - n/a
488 - n/a
489 - n/a
490 - A struct :c:type:`v4l2_ctrl_hevc_pps`, containing HEVC Picture
492 * - ``V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS``
493 - n/a
494 - n/a
495 - n/a
496 - A struct :c:type:`v4l2_ctrl_hevc_slice_params`, containing HEVC
498 * - ``V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX``
499 - n/a
500 - n/a
501 - n/a
502 - A struct :c:type:`v4l2_ctrl_hevc_scaling_matrix`, containing HEVC
504 * - ``V4L2_CTRL_TYPE_VP8_FRAME``
505 - n/a
506 - n/a
507 - n/a
508 - A struct :c:type:`v4l2_ctrl_vp8_frame`, containing VP8
510 * - ``V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS``
511 - n/a
512 - n/a
513 - n/a
514 - A struct :c:type:`v4l2_ctrl_hevc_decode_params`, containing HEVC
516 * - ``V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR``
517 - n/a
518 - n/a
519 - n/a
520 - A struct :c:type:`v4l2_ctrl_vp9_compressed_hdr`, containing VP9
522 * - ``V4L2_CTRL_TYPE_VP9_FRAME``
523 - n/a
524 - n/a
525 - n/a
526 - A struct :c:type:`v4l2_ctrl_vp9_frame`, containing VP9
528 * - ``V4L2_CTRL_TYPE_AV1_SEQUENCE``
529 - n/a
530 - n/a
531 - n/a
532 - A struct :c:type:`v4l2_ctrl_av1_sequence`, containing AV1 Sequence OBU
534 * - ``V4L2_CTRL_TYPE_AV1_TILE_GROUP_ENTRY``
535 - n/a
536 - n/a
537 - n/a
538 - A struct :c:type:`v4l2_ctrl_av1_tile_group_entry`, containing AV1 Tile Group
540 * - ``V4L2_CTRL_TYPE_AV1_FRAME``
541 - n/a
542 - n/a
543 - n/a
544 - A struct :c:type:`v4l2_ctrl_av1_frame`, containing AV1 Frame/Frame
546 * - ``V4L2_CTRL_TYPE_AV1_FILM_GRAIN``
547 - n/a
548 - n/a
549 - n/a
550 - A struct :c:type:`v4l2_ctrl_av1_film_grain`, containing AV1 Film Grain
561 .. _control-flags:
563 .. flat-table:: Control Flags
564 :header-rows: 0
565 :stub-columns: 0
568 * - ``V4L2_CTRL_FLAG_DISABLED``
569 - 0x0001
570 - This control is permanently disabled and should be ignored by the
573 * - ``V4L2_CTRL_FLAG_GRABBED``
574 - 0x0002
575 - This control is temporarily unchangeable, for example because
579 * - ``V4L2_CTRL_FLAG_READ_ONLY``
580 - 0x0004
581 - This control is permanently readable only. Any attempt to change
583 * - ``V4L2_CTRL_FLAG_UPDATE``
584 - 0x0008
585 - A hint that changing this control may affect the value of other
588 * - ``V4L2_CTRL_FLAG_INACTIVE``
589 - 0x0010
590 - This control is not applicable to the current configuration and
594 * - ``V4L2_CTRL_FLAG_SLIDER``
595 - 0x0020
596 - A hint that this control is best represented as a slider-like
598 * - ``V4L2_CTRL_FLAG_WRITE_ONLY``
599 - 0x0040
600 - This control is permanently writable only. Any attempt to read the
603 where writing a value will cause the device to carry out a given
606 * - ``V4L2_CTRL_FLAG_VOLATILE``
607 - 0x0080
608 - This control is volatile, which means that the value of the
610 current gain value if the device is in auto-gain mode. In such a
621 :ref:`V4L2_EVENT_CTRL_CH_VALUE <ctrl-changes-flags>` event.
622 * - ``V4L2_CTRL_FLAG_HAS_PAYLOAD``
623 - 0x0100
624 - This control has a pointer type, so its value has to be accessed
627 for controls that are an array, string, or have a compound type.
632 - ``V4L2_CTRL_FLAG_EXECUTE_ON_WRITE``
633 - 0x0200
634 - The value provided to the control will be propagated to the driver
641 - ``V4L2_CTRL_FLAG_MODIFY_LAYOUT``
642 - 0x0400
643 - Changing this control value may modify the layout of the
644 buffer (for video devices) or the media bus format (for sub-devices).
652 * - ``V4L2_CTRL_FLAG_DYNAMIC_ARRAY``
653 - 0x0800
654 - This control is a dynamically sized 1-dimensional array. It
664 On success 0 is returned, on error -1 and the ``errno`` variable is set
666 :ref:`Generic Error Codes <gen-errors>` chapter.
669 The struct :ref:`v4l2_queryctrl <v4l2-queryctrl>` ``id`` is
670 invalid. The struct :ref:`v4l2_querymenu <v4l2-querymenu>` ``id``
676 An attempt was made to read a write-only control.