Lines Matching +full:auto +full:- +full:string +full:- +full:detection
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…
44 of a struct :ref:`v4l2_queryctrl <v4l2-queryctrl>` and call the
62 driver returns the next supported non-compound control, or ``EINVAL`` if
74 :ref:`v4l2_queryctrl <v4l2-queryctrl>` since that structure is full.
82 fields of struct :ref:`v4l2_querymenu <v4l2-querymenu>` and call the
87 :ref:`v4l2_queryctrl <v4l2-queryctrl>` ``minimum`` to ``maximum``,
101 .. _v4l2-queryctrl:
107 .. flat-table:: struct v4l2_queryctrl
108 :header-rows: 0
109 :stub-columns: 0
112 * - __u32
113 - ``id``
114 - Identifies the control, set by the application. See
115 :ref:`control-id` for predefined IDs. When the ID is ORed with
119 * - __u32
120 - ``type``
121 - Type of control, see :c:type:`v4l2_ctrl_type`.
122 * - __u8
123 - ``name``\ [32]
124 - Name of the control, a NUL-terminated ASCII string. This
126 * - __s32
127 - ``minimum``
128 - Minimum value, inclusive. This field gives a lower bound for the
131 Note that this a signed 32-bit value.
132 * - __s32
133 - ``maximum``
134 - Maximum value, inclusive. This field gives an upper bound for the
137 Note that this a signed 32-bit value.
138 * - __s32
139 - ``step``
140 - This field gives a step size for the control. See enum
143 unsigned 32-bit value.
150 repeated read-write cycles.
156 0-511 and the driver reports 0-65535, step should be 128.
160 * - __s32
161 - ``default_value``
162 - The default value of a ``V4L2_CTRL_TYPE_INTEGER``, ``_BOOLEAN``,
170 * - __u32
171 - ``flags``
172 - Control flags, see :ref:`control-flags`.
173 * - __u32
174 - ``reserved``\ [2]
175 - Reserved for future extensions. Drivers must set the array to
181 .. _v4l2-query-ext-ctrl:
187 .. flat-table:: struct v4l2_query_ext_ctrl
188 :header-rows: 0
189 :stub-columns: 0
192 * - __u32
193 - ``id``
194 - Identifies the control, set by the application. See
195 :ref:`control-id` for predefined IDs. When the ID is ORed with
197 returns the first non-compound control with a higher ID. When the
202 * - __u32
203 - ``type``
204 - Type of control, see :c:type:`v4l2_ctrl_type`.
205 * - char
206 - ``name``\ [32]
207 - Name of the control, a NUL-terminated ASCII string. This
209 * - __s64
210 - ``minimum``
211 - Minimum value, inclusive. This field gives a lower bound for the
214 Note that this a signed 64-bit value.
215 * - __s64
216 - ``maximum``
217 - Maximum value, inclusive. This field gives an upper bound for the
220 Note that this a signed 64-bit value.
221 * - __u64
222 - ``step``
223 - This field gives a step size for the control. See enum
226 unsigned 64-bit value.
233 repeated read-write cycles.
239 0-511 and the driver reports 0-65535, step should be 128.
240 * - __s64
241 - ``default_value``
242 - The default value of a ``V4L2_CTRL_TYPE_INTEGER``, ``_INTEGER64``,
250 * - __u32
251 - ``flags``
252 - Control flags, see :ref:`control-flags`.
253 * - __u32
254 - ``elem_size``
255 - The size in bytes of a single element of the array. Given a char
256 pointer ``p`` to a 3-dimensional array you can find the position
260 array. For string controls ``elem_size`` is equal to
262 * - __u32
263 - ``elems``
264 - The number of elements in the N-dimensional array. If this control
267 * - __u32
268 - ``nr_of_dims``
269 - The number of dimension in the N-dimensional array. If this
271 * - __u32
272 - ``dims[V4L2_CTRL_MAX_DIMS]``
273 - The size of each dimension. The first ``nr_of_dims`` elements of
274 this array must be non-zero, all remaining elements must be zero.
275 * - __u32
276 - ``reserved``\ [32]
277 - Reserved for future extensions. Applications and drivers must set
283 .. _v4l2-querymenu:
287 .. flat-table:: struct v4l2_querymenu
288 :header-rows: 0
289 :stub-columns: 0
292 * - __u32
293 - ``id``
294 - Identifies the control, set by the application from the respective
295 struct :ref:`v4l2_queryctrl <v4l2-queryctrl>` ``id``.
296 * - __u32
297 - ``index``
298 - Index of the menu item, starting at zero, set by the application.
299 * - union {
300 - (anonymous)
301 * - __u8
302 - ``name``\ [32]
303 - Name of the menu item, a NUL-terminated ASCII string. This
306 * - __s64
307 - ``value``
308 - Value of the integer menu item. This field is valid for
310 * - }
311 -
312 * - __u32
313 - ``reserved``
314 - Reserved for future extensions. Drivers must set the array to
327 .. flat-table:: enum v4l2_ctrl_type
328 :header-rows: 1
329 :stub-columns: 0
332 * - Type
333 - ``minimum``
334 - ``step``
335 - ``maximum``
336 - Description
337 * - ``V4L2_CTRL_TYPE_INTEGER``
338 - any
339 - any
340 - any
341 - An integer-valued control ranging from minimum to maximum
343 * - ``V4L2_CTRL_TYPE_BOOLEAN``
344 - 0
345 - 1
346 - 1
347 - A boolean-valued control. Zero corresponds to "disabled", and one
349 * - ``V4L2_CTRL_TYPE_MENU``
350 - ≥ 0
351 - 1
352 - N-1
353 - The control has a menu of N choices. The names of the menu items
355 * - ``V4L2_CTRL_TYPE_INTEGER_MENU``
356 - ≥ 0
357 - 1
358 - N-1
359 - The control has a menu of N choices. The values of the menu items
362 the menu items are signed 64-bit integers.
363 * - ``V4L2_CTRL_TYPE_BITMASK``
364 - 0
365 - n/a
366 - any
367 - A bitmask field. The maximum value is the set of bits that can be
370 * - ``V4L2_CTRL_TYPE_BUTTON``
371 - 0
372 - 0
373 - 0
374 - A control which performs an action when set. Drivers must ignore
377 * - ``V4L2_CTRL_TYPE_INTEGER64``
378 - any
379 - any
380 - any
381 - A 64-bit integer valued control. Minimum, maximum and step size
383 ``VIDIOC_QUERY_EXT_CTRL`` can retrieve the 64-bit min/max/step
386 * - ``V4L2_CTRL_TYPE_STRING``
387 - ≥ 0
388 - ≥ 1
389 - ≥ 0
390 - The minimum and maximum string lengths. The step size means that
391 the string must be (minimum + N * step) characters long for N ≥ 0.
393 pass a string of length 8 to
399 used will depend on the string control itself and should be part
401 * - ``V4L2_CTRL_TYPE_CTRL_CLASS``
402 - n/a
403 - n/a
404 - n/a
405 - This is not a control. When ``VIDIOC_QUERYCTRL`` is called with a
406 control ID equal to a control class code (see :ref:`ctrl-class`)
410 * - ``V4L2_CTRL_TYPE_U8``
411 - any
412 - any
413 - any
414 - An unsigned 8-bit valued control ranging from minimum to maximum
416 * - ``V4L2_CTRL_TYPE_U16``
417 - any
418 - any
419 - any
420 - An unsigned 16-bit valued control ranging from minimum to maximum
422 * - ``V4L2_CTRL_TYPE_U32``
423 - any
424 - any
425 - any
426 - An unsigned 32-bit valued control ranging from minimum to maximum
428 * - ``V4L2_CTRL_TYPE_MPEG2_QUANTISATION``
429 - n/a
430 - n/a
431 - n/a
432 - A struct :c:type:`v4l2_ctrl_mpeg2_quantisation`, containing MPEG-2
434 * - ``V4L2_CTRL_TYPE_MPEG2_SEQUENCE``
435 - n/a
436 - n/a
437 - n/a
438 - A struct :c:type:`v4l2_ctrl_mpeg2_sequence`, containing MPEG-2
440 * - ``V4L2_CTRL_TYPE_MPEG2_PICTURE``
441 - n/a
442 - n/a
443 - n/a
444 - A struct :c:type:`v4l2_ctrl_mpeg2_picture`, containing MPEG-2
446 * - ``V4L2_CTRL_TYPE_AREA``
447 - n/a
448 - n/a
449 - n/a
450 - A struct :c:type:`v4l2_area`, containing the width and the height
452 * - ``V4L2_CTRL_TYPE_RECT``
453 - n/a
454 - n/a
455 - n/a
456 - A struct :c:type:`v4l2_rect`, containing a rectangle described by
457 the position of its top-left corner, the width and the height. Units
462 * - ``V4L2_CTRL_TYPE_H264_SPS``
463 - n/a
464 - n/a
465 - n/a
466 - A struct :c:type:`v4l2_ctrl_h264_sps`, containing H264
468 * - ``V4L2_CTRL_TYPE_H264_PPS``
469 - n/a
470 - n/a
471 - n/a
472 - A struct :c:type:`v4l2_ctrl_h264_pps`, containing H264
474 * - ``V4L2_CTRL_TYPE_H264_SCALING_MATRIX``
475 - n/a
476 - n/a
477 - n/a
478 - A struct :c:type:`v4l2_ctrl_h264_scaling_matrix`, containing H264
480 * - ``V4L2_CTRL_TYPE_H264_SLICE_PARAMS``
481 - n/a
482 - n/a
483 - n/a
484 - A struct :c:type:`v4l2_ctrl_h264_slice_params`, containing H264
486 * - ``V4L2_CTRL_TYPE_H264_DECODE_PARAMS``
487 - n/a
488 - n/a
489 - n/a
490 - A struct :c:type:`v4l2_ctrl_h264_decode_params`, containing H264
492 * - ``V4L2_CTRL_TYPE_FWHT_PARAMS``
493 - n/a
494 - n/a
495 - n/a
496 - A struct :c:type:`v4l2_ctrl_fwht_params`, containing FWHT
498 * - ``V4L2_CTRL_TYPE_HEVC_SPS``
499 - n/a
500 - n/a
501 - n/a
502 - A struct :c:type:`v4l2_ctrl_hevc_sps`, containing HEVC Sequence
504 * - ``V4L2_CTRL_TYPE_HEVC_PPS``
505 - n/a
506 - n/a
507 - n/a
508 - A struct :c:type:`v4l2_ctrl_hevc_pps`, containing HEVC Picture
510 * - ``V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS``
511 - n/a
512 - n/a
513 - n/a
514 - A struct :c:type:`v4l2_ctrl_hevc_slice_params`, containing HEVC
516 * - ``V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX``
517 - n/a
518 - n/a
519 - n/a
520 - A struct :c:type:`v4l2_ctrl_hevc_scaling_matrix`, containing HEVC
522 * - ``V4L2_CTRL_TYPE_VP8_FRAME``
523 - n/a
524 - n/a
525 - n/a
526 - A struct :c:type:`v4l2_ctrl_vp8_frame`, containing VP8
528 * - ``V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS``
529 - n/a
530 - n/a
531 - n/a
532 - A struct :c:type:`v4l2_ctrl_hevc_decode_params`, containing HEVC
534 * - ``V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR``
535 - n/a
536 - n/a
537 - n/a
538 - A struct :c:type:`v4l2_ctrl_vp9_compressed_hdr`, containing VP9
540 * - ``V4L2_CTRL_TYPE_VP9_FRAME``
541 - n/a
542 - n/a
543 - n/a
544 - A struct :c:type:`v4l2_ctrl_vp9_frame`, containing VP9
546 * - ``V4L2_CTRL_TYPE_AV1_SEQUENCE``
547 - n/a
548 - n/a
549 - n/a
550 - A struct :c:type:`v4l2_ctrl_av1_sequence`, containing AV1 Sequence OBU
552 * - ``V4L2_CTRL_TYPE_AV1_TILE_GROUP_ENTRY``
553 - n/a
554 - n/a
555 - n/a
556 - A struct :c:type:`v4l2_ctrl_av1_tile_group_entry`, containing AV1 Tile Group
558 * - ``V4L2_CTRL_TYPE_AV1_FRAME``
559 - n/a
560 - n/a
561 - n/a
562 - A struct :c:type:`v4l2_ctrl_av1_frame`, containing AV1 Frame/Frame
564 * - ``V4L2_CTRL_TYPE_AV1_FILM_GRAIN``
565 - n/a
566 - n/a
567 - n/a
568 - A struct :c:type:`v4l2_ctrl_av1_film_grain`, containing AV1 Film Grain
579 .. _control-flags:
581 .. flat-table:: Control Flags
582 :header-rows: 0
583 :stub-columns: 0
586 * - ``V4L2_CTRL_FLAG_DISABLED``
587 - 0x0001
588 - This control is permanently disabled and should be ignored by the
591 * - ``V4L2_CTRL_FLAG_GRABBED``
592 - 0x0002
593 - This control is temporarily unchangeable, for example because
597 * - ``V4L2_CTRL_FLAG_READ_ONLY``
598 - 0x0004
599 - This control is permanently readable only. Any attempt to change
601 * - ``V4L2_CTRL_FLAG_UPDATE``
602 - 0x0008
603 - A hint that changing this control may affect the value of other
606 * - ``V4L2_CTRL_FLAG_INACTIVE``
607 - 0x0010
608 - This control is not applicable to the current configuration and
612 * - ``V4L2_CTRL_FLAG_SLIDER``
613 - 0x0020
614 - A hint that this control is best represented as a slider-like
616 * - ``V4L2_CTRL_FLAG_WRITE_ONLY``
617 - 0x0040
618 - This control is permanently writable only. Any attempt to read the
624 * - ``V4L2_CTRL_FLAG_VOLATILE``
625 - 0x0080
626 - This control is volatile, which means that the value of the
628 current gain value if the device is in auto-gain mode. In such a
639 :ref:`V4L2_EVENT_CTRL_CH_VALUE <ctrl-changes-flags>` event.
640 * - ``V4L2_CTRL_FLAG_HAS_PAYLOAD``
641 - 0x0100
642 - This control has a pointer type, so its value has to be accessed
645 for controls that are an array, string, or have a compound type.
650 - ``V4L2_CTRL_FLAG_EXECUTE_ON_WRITE``
651 - 0x0200
652 - The value provided to the control will be propagated to the driver
659 - ``V4L2_CTRL_FLAG_MODIFY_LAYOUT``
660 - 0x0400
661 - Changing this control value may modify the layout of the
662 buffer (for video devices) or the media bus format (for sub-devices).
670 * - ``V4L2_CTRL_FLAG_DYNAMIC_ARRAY``
671 - 0x0800
672 - This control is a dynamically sized 1-dimensional array. It
678 * - ``V4L2_CTRL_FLAG_HAS_WHICH_MIN_MAX``
679 - 0x1000
680 - This control supports getting minimum and maximum values using
686 On success 0 is returned, on error -1 and the ``errno`` variable is set
688 :ref:`Generic Error Codes <gen-errors>` chapter.
691 The struct :ref:`v4l2_queryctrl <v4l2-queryctrl>` ``id`` is
692 invalid. The struct :ref:`v4l2_querymenu <v4l2-querymenu>` ``id``
698 An attempt was made to read a write-only control.
704 controls after hardware detection without the trouble of reordering