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
316 .. flat-table:: enum v4l2_ctrl_type
317 :header-rows: 1
318 :stub-columns: 0
321 * - Type
322 - ``minimum``
323 - ``step``
324 - ``maximum``
325 - Description
326 * - ``V4L2_CTRL_TYPE_INTEGER``
327 - any
328 - any
329 - any
330 - An integer-valued control ranging from minimum to maximum
332 * - ``V4L2_CTRL_TYPE_BOOLEAN``
333 - 0
334 - 1
335 - 1
336 - A boolean-valued control. Zero corresponds to "disabled", and one
338 * - ``V4L2_CTRL_TYPE_MENU``
339 - ≥ 0
340 - 1
341 - N-1
342 - The control has a menu of N choices. The names of the menu items
344 * - ``V4L2_CTRL_TYPE_INTEGER_MENU``
345 - ≥ 0
346 - 1
347 - N-1
348 - The control has a menu of N choices. The values of the menu items
351 the menu items are signed 64-bit integers.
352 * - ``V4L2_CTRL_TYPE_BITMASK``
353 - 0
354 - n/a
355 - any
356 - A bitmask field. The maximum value is the set of bits that can be
359 * - ``V4L2_CTRL_TYPE_BUTTON``
360 - 0
361 - 0
362 - 0
363 - A control which performs an action when set. Drivers must ignore
366 * - ``V4L2_CTRL_TYPE_INTEGER64``
367 - any
368 - any
369 - any
370 - A 64-bit integer valued control. Minimum, maximum and step size
372 ``VIDIOC_QUERY_EXT_CTRL`` can retrieve the 64-bit min/max/step
375 * - ``V4L2_CTRL_TYPE_STRING``
376 - ≥ 0
377 - ≥ 1
378 - ≥ 0
379 - The minimum and maximum string lengths. The step size means that
390 * - ``V4L2_CTRL_TYPE_CTRL_CLASS``
391 - n/a
392 - n/a
393 - n/a
394 - This is not a control. When ``VIDIOC_QUERYCTRL`` is called with a
395 control ID equal to a control class code (see :ref:`ctrl-class`)
399 * - ``V4L2_CTRL_TYPE_U8``
400 - any
401 - any
402 - any
403 - An unsigned 8-bit valued control ranging from minimum to maximum
405 * - ``V4L2_CTRL_TYPE_U16``
406 - any
407 - any
408 - any
409 - An unsigned 16-bit valued control ranging from minimum to maximum
411 * - ``V4L2_CTRL_TYPE_U32``
412 - any
413 - any
414 - any
415 - An unsigned 32-bit valued control ranging from minimum to maximum
417 * - ``V4L2_CTRL_TYPE_MPEG2_SLICE_PARAMS``
418 - n/a
419 - n/a
420 - n/a
421 - A struct :c:type:`v4l2_ctrl_mpeg2_slice_params`, containing MPEG-2
423 * - ``V4L2_CTRL_TYPE_MPEG2_QUANTIZATION``
424 - n/a
425 - n/a
426 - n/a
427 - A struct :c:type:`v4l2_ctrl_mpeg2_quantization`, containing MPEG-2
429 * - ``V4L2_CTRL_TYPE_AREA``
430 - n/a
431 - n/a
432 - n/a
433 - A struct :c:type:`v4l2_area`, containing the width and the height
435 * - ``V4L2_CTRL_TYPE_H264_SPS``
436 - n/a
437 - n/a
438 - n/a
439 - A struct :c:type:`v4l2_ctrl_h264_sps`, containing H264
441 * - ``V4L2_CTRL_TYPE_H264_PPS``
442 - n/a
443 - n/a
444 - n/a
445 - A struct :c:type:`v4l2_ctrl_h264_pps`, containing H264
447 * - ``V4L2_CTRL_TYPE_H264_SCALING_MATRIX``
448 - n/a
449 - n/a
450 - n/a
451 - A struct :c:type:`v4l2_ctrl_h264_scaling_matrix`, containing H264
453 * - ``V4L2_CTRL_TYPE_H264_SLICE_PARAMS``
454 - n/a
455 - n/a
456 - n/a
457 - A struct :c:type:`v4l2_ctrl_h264_slice_params`, containing H264
459 * - ``V4L2_CTRL_TYPE_H264_DECODE_PARAMS``
460 - n/a
461 - n/a
462 - n/a
463 - A struct :c:type:`v4l2_ctrl_h264_decode_params`, containing H264
465 * - ``V4L2_CTRL_TYPE_HEVC_SPS``
466 - n/a
467 - n/a
468 - n/a
469 - A struct :c:type:`v4l2_ctrl_hevc_sps`, containing HEVC Sequence
471 * - ``V4L2_CTRL_TYPE_HEVC_PPS``
472 - n/a
473 - n/a
474 - n/a
475 - A struct :c:type:`v4l2_ctrl_hevc_pps`, containing HEVC Picture
477 * - ``V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS``
478 - n/a
479 - n/a
480 - n/a
481 - A struct :c:type:`v4l2_ctrl_hevc_slice_params`, containing HEVC
486 .. _control-flags:
490 .. flat-table:: Control Flags
491 :header-rows: 0
492 :stub-columns: 0
495 * - ``V4L2_CTRL_FLAG_DISABLED``
496 - 0x0001
497 - This control is permanently disabled and should be ignored by the
500 * - ``V4L2_CTRL_FLAG_GRABBED``
501 - 0x0002
502 - This control is temporarily unchangeable, for example because
506 * - ``V4L2_CTRL_FLAG_READ_ONLY``
507 - 0x0004
508 - This control is permanently readable only. Any attempt to change
510 * - ``V4L2_CTRL_FLAG_UPDATE``
511 - 0x0008
512 - A hint that changing this control may affect the value of other
515 * - ``V4L2_CTRL_FLAG_INACTIVE``
516 - 0x0010
517 - This control is not applicable to the current configuration and
521 * - ``V4L2_CTRL_FLAG_SLIDER``
522 - 0x0020
523 - A hint that this control is best represented as a slider-like
525 * - ``V4L2_CTRL_FLAG_WRITE_ONLY``
526 - 0x0040
527 - This control is permanently writable only. Any attempt to read the
530 where writing a value will cause the device to carry out a given
533 * - ``V4L2_CTRL_FLAG_VOLATILE``
534 - 0x0080
535 - This control is volatile, which means that the value of the
537 current gain value if the device is in auto-gain mode. In such a
548 :ref:`V4L2_EVENT_CTRL_CH_VALUE <ctrl-changes-flags>` event.
549 * - ``V4L2_CTRL_FLAG_HAS_PAYLOAD``
550 - 0x0100
551 - This control has a pointer type, so its value has to be accessed
554 for controls that are an array, string, or have a compound type.
559 - ``V4L2_CTRL_FLAG_EXECUTE_ON_WRITE``
560 - 0x0200
561 - The value provided to the control will be propagated to the driver
568 - ``V4L2_CTRL_FLAG_MODIFY_LAYOUT``
569 - 0x0400
570 - Changing this control value may modify the layout of the
571 buffer (for video devices) or the media bus format (for sub-devices).
583 On success 0 is returned, on error -1 and the ``errno`` variable is set
585 :ref:`Generic Error Codes <gen-errors>` chapter.
588 The struct :ref:`v4l2_queryctrl <v4l2-queryctrl>` ``id`` is
589 invalid. The struct :ref:`v4l2_querymenu <v4l2-querymenu>` ``id``
595 An attempt was made to read a write-only control.