sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget` and call the ``VIDIOC_QUERYCTRL`` ioctl with a pointer to this structure. The driver fills the rest of the structure or returns an ``EINVAL`` error code when the ``id`` is invalid.h](h:To query the attributes of a control applications set the }(hjbhhhNhNubj)}(h``id``h]hid}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubh field of a struct }(hjbhhhNhNubh)}(h&:ref:`v4l2_queryctrl `h]hinline)}(hj~h]hv4l2_queryctrl}(hjhhhNhNubah}(h]h ](jistdstd-refeh"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftyperef refexplicitrefwarnjv4l2-queryctrluh1hhhhK)hjbubh and call the }(hjbhhhNhNubj)}(h``VIDIOC_QUERYCTRL``h]hVIDIOC_QUERYCTRL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubhb ioctl with a pointer to this structure. The driver fills the rest of the structure or returns an }(hjbhhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubh error code when the }(hjbhhhNhNubj)}(h``id``h]hid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubh is invalid.}(hjbhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK)hjQhhubh)}(hXIt is possible to enumerate controls by calling ``VIDIOC_QUERYCTRL`` with successive ``id`` values starting from ``V4L2_CID_BASE`` up to and exclusive ``V4L2_CID_LASTP1``. Drivers may return ``EINVAL`` if a control in this range is not supported. Further applications can enumerate private controls, which are not defined in this specification, by starting at ``V4L2_CID_PRIVATE_BASE`` and incrementing ``id`` until the driver returns ``EINVAL``.h](h0It is possible to enumerate controls by calling }(hjhhhNhNubj)}(h``VIDIOC_QUERYCTRL``h]hVIDIOC_QUERYCTRL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh with successive }(hjhhhNhNubj)}(h``id``h]hid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh values starting from }(hjhhhNhNubj)}(h``V4L2_CID_BASE``h]h V4L2_CID_BASE}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh up to and exclusive }(hjhhhNhNubj)}(h``V4L2_CID_LASTP1``h]hV4L2_CID_LASTP1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh. Drivers may return }(hjhhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh if a control in this range is not supported. Further applications can enumerate private controls, which are not defined in this specification, by starting at }(hjhhhNhNubj)}(h``V4L2_CID_PRIVATE_BASE``h]hV4L2_CID_PRIVATE_BASE}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh and incrementing }(hjhhhNhNubj)}(h``id``h]hid}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh until the driver returns }(hjhhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK/hjQhhubh)}(hIn both cases, when the driver sets the ``V4L2_CTRL_FLAG_DISABLED`` flag in the ``flags`` field this control is permanently disabled and should be ignored by the application. [#f1]_h](h(In both cases, when the driver sets the }(hj|hhhNhNubj)}(h``V4L2_CTRL_FLAG_DISABLED``h]hV4L2_CTRL_FLAG_DISABLED}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubh flag in the }(hj|hhhNhNubj)}(h ``flags``h]hflags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubhV field this control is permanently disabled and should be ignored by the application. }(hj|hhhNhNubhfootnote_reference)}(h[#f1]_h]h1}(hjhhhNhNubah}(h]id1ah ]h"]h$]h&]autoKhf1docnamejuuh1jhj|resolvedKubeh}(h]h ]h"]h$]h&]uh1hhhhK7hjQhhubh)}(hX^When the application ORs ``id`` with ``V4L2_CTRL_FLAG_NEXT_CTRL`` the driver returns the next supported non-compound control, or ``EINVAL`` if there is none. In addition, the ``V4L2_CTRL_FLAG_NEXT_COMPOUND`` flag can be specified to enumerate all compound controls (i.e. controls with type ≥ ``V4L2_CTRL_COMPOUND_TYPES`` and/or array control, in other words controls that contain more than one value). Specify both ``V4L2_CTRL_FLAG_NEXT_CTRL`` and ``V4L2_CTRL_FLAG_NEXT_COMPOUND`` in order to enumerate all controls, compound or not. Drivers which do not support these flags yet always return ``EINVAL``.h](hWhen the application ORs }(hjhhhNhNubj)}(h``id``h]hid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh with }(hjhhhNhNubj)}(h``V4L2_CTRL_FLAG_NEXT_CTRL``h]hV4L2_CTRL_FLAG_NEXT_CTRL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh@ the driver returns the next supported non-compound control, or }(hjhhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh$ if there is none. In addition, the }(hjhhhNhNubj)}(h ``V4L2_CTRL_FLAG_NEXT_COMPOUND``h]hV4L2_CTRL_FLAG_NEXT_COMPOUND}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhW flag can be specified to enumerate all compound controls (i.e. controls with type ≥ }(hjhhhNhNubj)}(h``V4L2_CTRL_COMPOUND_TYPES``h]hV4L2_CTRL_COMPOUND_TYPES}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh_ and/or array control, in other words controls that contain more than one value). Specify both }(hjhhhNhNubj)}(h``V4L2_CTRL_FLAG_NEXT_CTRL``h]hV4L2_CTRL_FLAG_NEXT_CTRL}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh and }(hjhhhNhNubj)}(h ``V4L2_CTRL_FLAG_NEXT_COMPOUND``h]hV4L2_CTRL_FLAG_NEXT_COMPOUND}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhq in order to enumerate all controls, compound or not. Drivers which do not support these flags yet always return }(hjhhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK;hjQhhubh)}(hXThe ``VIDIOC_QUERY_EXT_CTRL`` ioctl was introduced in order to better support controls that can use compound types, and to expose additional control information that cannot be returned in struct :ref:`v4l2_queryctrl ` since that structure is full.h](hThe }(hjahhhNhNubj)}(h``VIDIOC_QUERY_EXT_CTRL``h]hVIDIOC_QUERY_EXT_CTRL}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubh ioctl was introduced in order to better support controls that can use compound types, and to expose additional control information that cannot be returned in struct }(hjahhhNhNubh)}(h&:ref:`v4l2_queryctrl `h]j)}(hj}h]hv4l2_queryctrl}(hjhhhNhNubah}(h]h ](jistdstd-refeh"]h$]h&]uh1jhj{ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftyperef refexplicitrefwarnjv4l2-queryctrluh1hhhhKEhjaubh since that structure is full.}(hjahhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKEhjQhhubh)}(h``VIDIOC_QUERY_EXT_CTRL`` is used in the same way as ``VIDIOC_QUERYCTRL``, except that the ``reserved`` array must be zeroed as well.h](j)}(h``VIDIOC_QUERY_EXT_CTRL``h]hVIDIOC_QUERY_EXT_CTRL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh is used in the same way as }(hjhhhNhNubj)}(h``VIDIOC_QUERYCTRL``h]hVIDIOC_QUERYCTRL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, except that the }(hjhhhNhNubj)}(h ``reserved``h]hreserved}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh array must be zeroed as well.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKJhjQhhubh)}(hX9Additional information is required for menu controls: the names of the menu items. To query them applications set the ``id`` and ``index`` fields of struct :ref:`v4l2_querymenu ` and call the ``VIDIOC_QUERYMENU`` ioctl with a pointer to this structure. The driver fills the rest of the structure or returns an ``EINVAL`` error code when the ``id`` or ``index`` is invalid. Menu items are enumerated by calling ``VIDIOC_QUERYMENU`` with successive ``index`` values from struct :ref:`v4l2_queryctrl ` ``minimum`` to ``maximum``, inclusive.h](hvAdditional information is required for menu controls: the names of the menu items. To query them applications set the }(hjhhhNhNubj)}(h``id``h]hid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh and }(hjhhhNhNubj)}(h ``index``h]hindex}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh fields of struct }(hjhhhNhNubh)}(h&:ref:`v4l2_querymenu `h]j)}(hjh]hv4l2_querymenu}(hjhhhNhNubah}(h]h ](jistdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocju refdomainjreftyperef refexplicitrefwarnjv4l2-querymenuuh1hhhhKNhjubh and call the }(hjhhhNhNubj)}(h``VIDIOC_QUERYMENU``h]hVIDIOC_QUERYMENU}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhb ioctl with a pointer to this structure. The driver fills the rest of the structure or returns an }(hjhhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh error code when the }(hjhhhNhNubj)}(h``id``h]hid}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh or }(hjhhhNhNubj)}(h ``index``h]hindex}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh2 is invalid. Menu items are enumerated by calling }(hjhhhNhNubj)}(h``VIDIOC_QUERYMENU``h]hVIDIOC_QUERYMENU}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh with successive }(hjhhhNhNubj)}(h ``index``h]hindex}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh values from struct }(hjhhhNhNubh)}(h&:ref:`v4l2_queryctrl `h]j)}(hjh]hv4l2_queryctrl}(hjhhhNhNubah}(h]h ](jistdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocju refdomainjreftyperef refexplicitrefwarnjv4l2-queryctrluh1hhhhKNhjubh }(hjhhhNhNubj)}(h ``minimum``h]hminimum}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh to }(hjhhhNhNubj)}(h ``maximum``h]hmaximum}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh , inclusive.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKNhjQhhubhnote)}(hXIt is possible for ``VIDIOC_QUERYMENU`` to return an ``EINVAL`` error code for some indices between ``minimum`` and ``maximum``. In that case that particular menu item is not supported by this driver. Also note that the ``minimum`` value is not necessarily 0.h]h)}(hXIt is possible for ``VIDIOC_QUERYMENU`` to return an ``EINVAL`` error code for some indices between ``minimum`` and ``maximum``. In that case that particular menu item is not supported by this driver. Also note that the ``minimum`` value is not necessarily 0.h](hIt is possible for }(hjhhhNhNubj)}(h``VIDIOC_QUERYMENU``h]hVIDIOC_QUERYMENU}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh to return an }(hjhhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh% error code for some indices between }(hjhhhNhNubj)}(h ``minimum``h]hminimum}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh and }(hjhhhNhNubj)}(h ``maximum``h]hmaximum}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh]. In that case that particular menu item is not supported by this driver. Also note that the }(hjhhhNhNubj)}(h ``minimum``h]hminimum}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh value is not necessarily 0.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKZhjubah}(h]h ]h"]h$]h&]uh1jhjQhhhhhNubh)}(h(See also the examples in :ref:`control`.h](hSee also the examples in }(hjchhhNhNubh)}(h:ref:`control`h]j)}(hjmh]hcontrol}(hjohhhNhNubah}(h]h ](jistdstd-refeh"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]refdocju refdomainjyreftyperef refexplicitrefwarnjcontroluh1hhhhK_hjcubh.}(hjchhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK_hjQhhubhtabular_col_spec)}(hhh]h}(h]h ]h"]h$]h&]spec|p{1.2cm}|p{3.6cm}|p{12.5cm}|uh1jhhhKahjQhhubh)}(h.. _v4l2-queryctrl:h]h}(h]h ]h"]h$]h&]hv4l2-queryctrluh1hhKchjQhhhhubhtable)}(hhh](h)}(hstruct v4l2_queryctrlh]hstruct v4l2_queryctrl}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKghjubhtgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubhtbody)}(hhh](hrow)}(hhh](hentry)}(hhh]h)}(h__u32h]h__u32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKlhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h``id``h]j)}(hj h]hid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhhhKmhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hX)Identifies the control, set by the application. See :ref:`control-id` for predefined IDs. When the ID is ORed with V4L2_CTRL_FLAG_NEXT_CTRL the driver clears the flag and returns the first control with a higher ID. Drivers which do not support this flag yet always return an ``EINVAL`` error code.h](h4Identifies the control, set by the application. See }(hj+hhhNhNubh)}(h:ref:`control-id`h]j)}(hj5h]h control-id}(hj7hhhNhNubah}(h]h ](jistdstd-refeh"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]refdocju refdomainjAreftyperef refexplicitrefwarnj control-iduh1hhhhKnhj+ubh for predefined IDs. When the ID is ORed with V4L2_CTRL_FLAG_NEXT_CTRL the driver clears the flag and returns the first control with a higher ID. Drivers which do not support this flag yet always return an }(hj+hhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubh error code.}(hj+hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKnhj(ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKshj~ubah}(h]h ]h"]h$]h&]uh1jhj{ubj)}(hhh]h)}(h``type``h]j)}(hjh]htype}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKthjubah}(h]h ]h"]h$]h&]uh1jhj{ubj)}(hhh]h)}(h.Type of control, see :c:type:`v4l2_ctrl_type`.h](hType of control, see }(hjhhhNhNubh)}(h:c:type:`v4l2_ctrl_type`h]j)}(hjh]hv4l2_ctrl_type}(hjhhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_typeuh1hhhhKuhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKuhjubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__u8h]h__u8}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKvhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h``name``\ [32]h](j)}(h``name``h]hname}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh [32]}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKwhj ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h^Name of the control, a NUL-terminated ASCII string. This information is intended for the user.h]h^Name of the control, a NUL-terminated ASCII string. This information is intended for the user.}(hj7 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKxhj4 ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__s32h]h__s32}(hjW hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKzhjT ubah}(h]h ]h"]h$]h&]uh1jhjQ ubj)}(hhh]h)}(h ``minimum``h]j)}(hjp h]hminimum}(hjr hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjn ubah}(h]h ]h"]h$]h&]uh1hhhhK{hjk ubah}(h]h ]h"]h$]h&]uh1jhjQ ubj)}(hhh]h)}(hMinimum value, inclusive. This field gives a lower bound for the control. See enum :c:type:`v4l2_ctrl_type` how the minimum value is to be used for each possible control type. Note that this a signed 32-bit value.h](hSMinimum value, inclusive. This field gives a lower bound for the control. See enum }(hj hhhNhNubh)}(h:c:type:`v4l2_ctrl_type`h]j)}(hj h]hv4l2_ctrl_type}(hj hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_typeuh1hhhhK|hj ubhj how the minimum value is to be used for each possible control type. Note that this a signed 32-bit value.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK|hj ubah}(h]h ]h"]h$]h&]uh1jhjQ ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__s32h]h__s32}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h ``maximum``h]j)}(hj h]hmaximum}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hMaximum value, inclusive. This field gives an upper bound for the control. See enum :c:type:`v4l2_ctrl_type` how the maximum value is to be used for each possible control type. Note that this a signed 32-bit value.h](hTMaximum value, inclusive. This field gives an upper bound for the control. See enum }(hj hhhNhNubh)}(h:c:type:`v4l2_ctrl_type`h]j)}(hj h]hv4l2_ctrl_type}(hj hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_typeuh1hhhhKhj ubhj how the maximum value is to be used for each possible control type. Note that this a signed 32-bit value.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__s32h]h__s32}(hjK hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjH ubah}(h]h ]h"]h$]h&]uh1jhjE ubj)}(hhh]h)}(h``step``h]j)}(hjd h]hstep}(hjf hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb ubah}(h]h ]h"]h$]h&]uh1hhhhKhj_ ubah}(h]h ]h"]h$]h&]uh1jhjE ubj)}(hhh](h)}(hThis field gives a step size for the control. See enum :c:type:`v4l2_ctrl_type` how the step value is to be used for each possible control type. Note that this an unsigned 32-bit value.h](h7This field gives a step size for the control. See enum }(hj hhhNhNubh)}(h:c:type:`v4l2_ctrl_type`h]j)}(hj h]hv4l2_ctrl_type}(hj hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_typeuh1hhhhKhj ubhj how the step value is to be used for each possible control type. Note that this an unsigned 32-bit value.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubh)}(hXZGenerally drivers should not scale hardware control values. It may be necessary for example when the ``name`` or ``id`` imply a particular unit and the hardware actually accepts only multiples of said unit. If so, drivers must take care values are properly rounded when scaling, such that errors will not accumulate on repeated read-write cycles.h](heGenerally drivers should not scale hardware control values. It may be necessary for example when the }(hj hhhNhNubj)}(h``name``h]hname}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh or }(hj hhhNhNubj)}(h``id``h]hid}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh imply a particular unit and the hardware actually accepts only multiples of said unit. If so, drivers must take care values are properly rounded when scaling, such that errors will not accumulate on repeated read-write cycles.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubh)}(hX9This field gives the smallest change of an integer control actually affecting hardware. Often the information is needed when the user can change controls by keyboard or GUI buttons, rather than a slider. When for example a hardware register accepts values 0-511 and the driver reports 0-65535, step should be 128.h]hX9This field gives the smallest change of an integer control actually affecting hardware. Often the information is needed when the user can change controls by keyboard or GUI buttons, rather than a slider. When for example a hardware register accepts values 0-511 and the driver reports 0-65535, step should be 128.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubh)}(hLNote that although signed, the step value is supposed to be always positive.h]hLNote that although signed, the step value is supposed to be always positive.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubeh}(h]h ]h"]h$]h&]uh1jhjE ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__s32h]h__s32}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h``default_value``h]j)}(hj, h]h default_value}(hj. hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj* ubah}(h]h ]h"]h$]h&]uh1hhhhKhj' ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](h)}(hThe default value of a ``V4L2_CTRL_TYPE_INTEGER``, ``_BOOLEAN``, ``_BITMASK``, ``_MENU`` or ``_INTEGER_MENU`` control. Not valid for other types of controls.h](hThe default value of a }(hjJ hhhNhNubj)}(h``V4L2_CTRL_TYPE_INTEGER``h]hV4L2_CTRL_TYPE_INTEGER}(hjR hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ ubh, }(hjJ hhhNhNubj)}(h ``_BOOLEAN``h]h_BOOLEAN}(hjd hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ ubh, }(hjJ hhhNhNubj)}(h ``_BITMASK``h]h_BITMASK}(hjv hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ ubh, }hjJ sbj)}(h ``_MENU``h]h_MENU}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ ubh or }(hjJ hhhNhNubj)}(h``_INTEGER_MENU``h]h _INTEGER_MENU}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ ubh0 control. Not valid for other types of controls.}(hjJ hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjG ubj)}(heDrivers reset controls to their default value only when the driver is first loaded, never afterwards.h]h)}(heDrivers reset controls to their default value only when the driver is first loaded, never afterwards.h]heDrivers reset controls to their default value only when the driver is first loaded, never afterwards.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhjG ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h ``flags``h]j)}(hj h]hflags}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h(Control flags, see :ref:`control-flags`.h](hControl flags, see }(hj hhhNhNubh)}(h:ref:`control-flags`h]j)}(hj h]h control-flags}(hj hhhNhNubah}(h]h ](jistdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocju refdomainj) reftyperef refexplicitrefwarnj control-flagsuh1hhhhKhj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hjW hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjT ubah}(h]h ]h"]h$]h&]uh1jhjQ ubj)}(hhh]h)}(h``reserved``\ [2]h](j)}(h ``reserved``h]hreserved}(hjr hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjn ubh [2]}(hjn hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjk ubah}(h]h ]h"]h$]h&]uh1jhjQ ubj)}(hhh]h)}(hCReserved for future extensions. Drivers must set the array to zero.h]hCReserved for future extensions. Drivers must set the array to zero.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhjQ ubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubeh}(h](id2jeh ] longtableah"]v4l2-queryctrlah$]h&]uh1jhjQhhhNhNexpect_referenced_by_name}j jsexpect_referenced_by_id}jjsubj)}(hhh]h}(h]h ]h"]h$]h&]j|p{1.2cm}|p{5.5cm}|p{10.6cm}|uh1jhhhKhjQhhubh)}(h.. _v4l2-query-ext-ctrl:h]h}(h]h ]h"]h$]h&]hv4l2-query-ext-ctrluh1hhKhjQhhhhubj)}(hhh](h)}(hstruct v4l2_query_ext_ctrlh]hstruct v4l2_query_ext_ctrl}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubj)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj ubj)}(hhh](j)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h``id``h]j)}(hj0 h]hid}(hj2 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj. ubah}(h]h ]h"]h$]h&]uh1hhhhKhj+ ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hXIdentifies the control, set by the application. See :ref:`control-id` for predefined IDs. When the ID is ORed with ``V4L2_CTRL_FLAG_NEXT_CTRL`` the driver clears the flag and returns the first non-compound control with a higher ID. When the ID is ORed with ``V4L2_CTRL_FLAG_NEXT_COMPOUND`` the driver clears the flag and returns the first compound control with a higher ID. Set both to get the first control (compound or not) with a higher ID.h](h4Identifies the control, set by the application. See }(hjN hhhNhNubh)}(h:ref:`control-id`h]j)}(hjX h]h control-id}(hjZ hhhNhNubah}(h]h ](jistdstd-refeh"]h$]h&]uh1jhjV ubah}(h]h ]h"]h$]h&]refdocju refdomainjd reftyperef refexplicitrefwarnj control-iduh1hhhhKhjN ubh. for predefined IDs. When the ID is ORed with }(hjN hhhNhNubj)}(h``V4L2_CTRL_FLAG_NEXT_CTRL``h]hV4L2_CTRL_FLAG_NEXT_CTRL}(hjz hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN ubhr the driver clears the flag and returns the first non-compound control with a higher ID. When the ID is ORed with }(hjN hhhNhNubj)}(h ``V4L2_CTRL_FLAG_NEXT_COMPOUND``h]hV4L2_CTRL_FLAG_NEXT_COMPOUND}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN ubh the driver clears the flag and returns the first compound control with a higher ID. Set both to get the first control (compound or not) with a higher ID.}(hjN hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjK ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h``type``h]j)}(hj h]htype}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h.Type of control, see :c:type:`v4l2_ctrl_type`.h](hType of control, see }(hj hhhNhNubh)}(h:c:type:`v4l2_ctrl_type`h]j)}(hj h]hv4l2_ctrl_type}(hj hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_typeuh1hhhhKhj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(hcharh]hchar}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj-ubah}(h]h ]h"]h$]h&]uh1jhj*ubj)}(hhh]h)}(h``name``\ [32]h](j)}(h``name``h]hname}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubh [32]}(hjGhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjDubah}(h]h ]h"]h$]h&]uh1jhj*ubj)}(hhh]h)}(h^Name of the control, a NUL-terminated ASCII string. This information is intended for the user.h]h^Name of the control, a NUL-terminated ASCII string. This information is intended for the user.}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjiubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h__s64h]h__s64}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h ``minimum``h]j)}(hjh]hminimum}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hMinimum value, inclusive. This field gives a lower bound for the control. See enum :c:type:`v4l2_ctrl_type` how the minimum value is to be used for each possible control type. Note that this a signed 64-bit value.h](hSMinimum value, inclusive. This field gives a lower bound for the control. See enum }(hjhhhNhNubh)}(h:c:type:`v4l2_ctrl_type`h]j)}(hjh]hv4l2_ctrl_type}(hjhhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_typeuh1hhhhKhjubhj how the minimum value is to be used for each possible control type. Note that this a signed 64-bit value.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h__s64h]h__s64}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h ``maximum``h]j)}(hjh]hmaximum}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hMaximum value, inclusive. This field gives an upper bound for the control. See enum :c:type:`v4l2_ctrl_type` how the maximum value is to be used for each possible control type. Note that this a signed 64-bit value.h](hTMaximum value, inclusive. This field gives an upper bound for the control. See enum }(hj=hhhNhNubh)}(h:c:type:`v4l2_ctrl_type`h]j)}(hjGh]hv4l2_ctrl_type}(hjIhhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_typeuh1hhhhKhj=ubhj how the maximum value is to be used for each possible control type. Note that this a signed 64-bit value.}(hj=hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj:ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h__u64h]h__u64}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj}ubah}(h]h ]h"]h$]h&]uh1jhjzubj)}(hhh]h)}(h``step``h]j)}(hjh]hstep}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjzubj)}(hhh](h)}(hThis field gives a step size for the control. See enum :c:type:`v4l2_ctrl_type` how the step value is to be used for each possible control type. Note that this an unsigned 64-bit value.h](h7This field gives a step size for the control. See enum }(hjhhhNhNubh)}(h:c:type:`v4l2_ctrl_type`h]j)}(hjh]hv4l2_ctrl_type}(hjhhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_typeuh1hhhhKhjubhj how the step value is to be used for each possible control type. Note that this an unsigned 64-bit value.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(hXZGenerally drivers should not scale hardware control values. It may be necessary for example when the ``name`` or ``id`` imply a particular unit and the hardware actually accepts only multiples of said unit. If so, drivers must take care values are properly rounded when scaling, such that errors will not accumulate on repeated read-write cycles.h](heGenerally drivers should not scale hardware control values. It may be necessary for example when the }(hjhhhNhNubj)}(h``name``h]hname}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh or }(hjhhhNhNubj)}(h``id``h]hid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh imply a particular unit and the hardware actually accepts only multiples of said unit. If so, drivers must take care values are properly rounded when scaling, such that errors will not accumulate on repeated read-write cycles.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(hX9This field gives the smallest change of an integer control actually affecting hardware. Often the information is needed when the user can change controls by keyboard or GUI buttons, rather than a slider. When for example a hardware register accepts values 0-511 and the driver reports 0-65535, step should be 128.h]hX9This field gives the smallest change of an integer control actually affecting hardware. Often the information is needed when the user can change controls by keyboard or GUI buttons, rather than a slider. When for example a hardware register accepts values 0-511 and the driver reports 0-65535, step should be 128.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1jhjzubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h__s64h]h__s64}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj7ubah}(h]h ]h"]h$]h&]uh1jhj4ubj)}(hhh]h)}(h``default_value``h]j)}(hjSh]h default_value}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]uh1hhhhKhjNubah}(h]h ]h"]h$]h&]uh1jhj4ubj)}(hhh](h)}(hThe default value of a ``V4L2_CTRL_TYPE_INTEGER``, ``_INTEGER64``, ``_BOOLEAN``, ``_BITMASK``, ``_MENU``, ``_INTEGER_MENU``, ``_U8`` or ``_U16`` control. Not valid for other types of controls.h](hThe default value of a }(hjqhhhNhNubj)}(h``V4L2_CTRL_TYPE_INTEGER``h]hV4L2_CTRL_TYPE_INTEGER}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubh, }(hjqhhhNhNubj)}(h``_INTEGER64``h]h _INTEGER64}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubh, }(hjqhhhNhNubj)}(h ``_BOOLEAN``h]h_BOOLEAN}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubh, }hjqsbj)}(h ``_BITMASK``h]h_BITMASK}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubh, }hjqsbj)}(h ``_MENU``h]h_MENU}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubh, }hjqsbj)}(h``_INTEGER_MENU``h]h _INTEGER_MENU}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubh, }hjqsbj)}(h``_U8``h]h_U8}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubh or }(hjqhhhNhNubj)}(h``_U16``h]h_U16}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjqubh0 control. Not valid for other types of controls.}(hjqhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjnubj)}(heDrivers reset controls to their default value only when the driver is first loaded, never afterwards.h]h)}(heDrivers reset controls to their default value only when the driver is first loaded, never afterwards.h]heDrivers reset controls to their default value only when the driver is first loaded, never afterwards.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjnubeh}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj6ubah}(h]h ]h"]h$]h&]uh1jhj3ubj)}(hhh]h)}(h ``flags``h]j)}(hjRh]hflags}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]uh1hhhhKhjMubah}(h]h ]h"]h$]h&]uh1jhj3ubj)}(hhh]h)}(h(Control flags, see :ref:`control-flags`.h](hControl flags, see }(hjphhhNhNubh)}(h:ref:`control-flags`h]j)}(hjzh]h control-flags}(hj|hhhNhNubah}(h]h ](jistdstd-refeh"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]refdocju refdomainjreftyperef refexplicitrefwarnj control-flagsuh1hhhhKhjpubh.}(hjphhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjmubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h ``elem_size``h]j)}(hjh]h elem_size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hX^The size in bytes of a single element of the array. Given a char pointer ``p`` to a 3-dimensional array you can find the position of cell ``(z, y, x)`` as follows: ``p + ((z * dims[1] + y) * dims[0] + x) * elem_size``. ``elem_size`` is always valid, also when the control isn't an array. For string controls ``elem_size`` is equal to ``maximum + 1``.h](hIThe size in bytes of a single element of the array. Given a char pointer }(hjhhhNhNubj)}(h``p``h]hp}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh< to a 3-dimensional array you can find the position of cell }(hjhhhNhNubj)}(h ``(z, y, x)``h]h (z, y, x)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh as follows: }(hjhhhNhNubj)}(h5``p + ((z * dims[1] + y) * dims[0] + x) * elem_size``h]h1p + ((z * dims[1] + y) * dims[0] + x) * elem_size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh. }(hjhhhNhNubj)}(h ``elem_size``h]h elem_size}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhN is always valid, also when the control isn’t an array. For string controls }(hjhhhNhNubj)}(h ``elem_size``h]h elem_size}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh is equal to }(hjhhhNhNubj)}(h``maximum + 1``h]h maximum + 1}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjtubah}(h]h ]h"]h$]h&]uh1jhjqubj)}(hhh]h)}(h ``elems``h]j)}(hjh]helems}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjqubj)}(hhh]h)}(hThe number of elements in the N-dimensional array. If this control is not an array, then ``elems`` is 1. The ``elems`` field can never be 0.h](hYThe number of elements in the N-dimensional array. If this control is not an array, then }(hjhhhNhNubj)}(h ``elems``h]helems}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh is 1. The }(hjhhhNhNubj)}(h ``elems``h]helems}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh field can never be 0.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h``nr_of_dims``h]j)}(hj h]h nr_of_dims}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hjThe number of dimension in the N-dimensional array. If this control is not an array, then this field is 0.h]hjThe number of dimension in the N-dimensional array. If this control is not an array, then this field is 0.}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj&ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjFubah}(h]h ]h"]h$]h&]uh1jhjCubj)}(hhh]h)}(h``dims[V4L2_CTRL_MAX_DIMS]``h]j)}(hjbh]hdims[V4L2_CTRL_MAX_DIMS]}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]uh1hhhhM hj]ubah}(h]h ]h"]h$]h&]uh1jhjCubj)}(hhh]h)}(hThe size of each dimension. The first ``nr_of_dims`` elements of this array must be non-zero, all remaining elements must be zero.h](h&The size of each dimension. The first }(hjhhhNhNubj)}(h``nr_of_dims``h]h nr_of_dims}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhN elements of this array must be non-zero, all remaining elements must be zero.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM hj}ubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h``reserved``\ [32]h](j)}(h ``reserved``h]hreserved}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh [32]}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hTReserved for future extensions. Applications and drivers must set the array to zero.h]hTReserved for future extensions. Applications and drivers must set the array to zero.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]colsKuh1jhj ubeh}(h](id3j eh ] longtableah"]v4l2-query-ext-ctrlah$]h&]uh1jhjQhhhNhNj }jj sj }j j subj)}(hhh]h}(h]h ]h"]h$]h&]j|p{1.2cm}|p{3.0cm}|p{13.1cm}|uh1jhhhMhjQhhubh)}(h.. _v4l2-querymenu:h]h}(h]h ]h"]h$]h&]hv4l2-querymenuuh1hhMhjQhhhhubj)}(hhh](h)}(hstruct v4l2_querymenuh]hstruct v4l2_querymenu}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj5ubj)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjFubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjFubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjFubj)}(hhh](j)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjmubah}(h]h ]h"]h$]h&]uh1jhjjubj)}(hhh]h)}(h``id``h]j)}(hjh]hid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjjubj)}(hhh]h)}(hxIdentifies the control, set by the application from the respective struct :ref:`v4l2_queryctrl ` ``id``.h](hJIdentifies the control, set by the application from the respective struct }(hjhhhNhNubh)}(h&:ref:`v4l2_queryctrl `h]j)}(hjh]hv4l2_queryctrl}(hjhhhNhNubah}(h]h ](jistdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocju refdomainjreftyperef refexplicitrefwarnjv4l2-queryctrluh1hhhhMhjubh }(hjhhhNhNubj)}(h``id``h]hid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h ``index``h]j)}(hjh]hindex}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhM!hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hAIndex of the menu item, starting at zero, set by the application.h]hAIndex of the menu item, starting at zero, set by the application.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM"hj1ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(hunion {h]hunion {}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM#hjQubah}(h]h ]h"]h$]h&]uh1jhjNubj)}(hhh]h)}(h (anonymous)h]h (anonymous)}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM$hjhubah}(h]h ]h"]h$]h&]morecolsKuh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h__u8h]h__u8}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM%hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h``name``\ [32]h](j)}(h``name``h]hname}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh [32]}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM&hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hName of the menu item, a NUL-terminated ASCII string. This information is intended for the user. This field is valid for ``V4L2_CTRL_TYPE_MENU`` type controls.h](hyName of the menu item, a NUL-terminated ASCII string. This information is intended for the user. This field is valid for }(hjhhhNhNubj)}(h``V4L2_CTRL_TYPE_MENU``h]hV4L2_CTRL_TYPE_MENU}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh type controls.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM'hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h__s64h]h__s64}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM*hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h ``value``h]j)}(hjh]hvalue}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhM+hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hfValue of the integer menu item. This field is valid for ``V4L2_CTRL_TYPE_INTEGER_MENU`` type controls.h](h8Value of the integer menu item. This field is valid for }(hj1hhhNhNubj)}(h``V4L2_CTRL_TYPE_INTEGER_MENU``h]hV4L2_CTRL_TYPE_INTEGER_MENU}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubh type controls.}(hj1hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM,hj.ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h}h]h}}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM.hj`ubah}(h]h ]h"]h$]h&]uh1jhj]ubj)}(hhh]h}(h]h ]h"]h$]h&]morecolsKuh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM0hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h ``reserved``h]j)}(hjh]hreserved}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhM1hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hCReserved for future extensions. Drivers must set the array to zero.h]hCReserved for future extensions. Drivers must set the array to zero.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM2hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]colsKuh1jhj5ubeh}(h](id4j4eh ]h"]v4l2-querymenuah$]h&]uh1jhjQhhhNhNj }jj*sj }j4j*subj+)}(hhh]h}(h]h ]h"]h$]h&]entries](j7V4L.v4l2_ctrl_type (C type)c.V4L.v4l2_ctrl_typehNtauh1j*hjQhhhNhNubj<)}(hhh](jA)}(hv4l2_ctrl_typeh]jG)}(htype v4l2_ctrl_typeh](hdesc_sig_keyword)}(htypeh]htype}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhj hhhhhM5ubhdesc_sig_space)}(h h]h }(hj!hhhNhNubah}(h]h ]wah"]h$]h&]uh1jhj hhhhhM5ubjM)}(hv4l2_ctrl_typeh]jS)}(hjh]hv4l2_ctrl_type}(hj4hhhNhNubah}(h]h ]j^ah"]h$]h&]uh1jRhj0ubah}(h]h ](jejfeh"]h$]h&]hhuh1jLhj hhhhhM5ubeh}(h]h ]h"]h$]h&]hhjpuh1jFjqjrhjhhhhhM5ubah}(h]jah ](jvjweh"]h$]h&]j{j|)j}huh1j@hhhM5hjhhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1j~hjhhhhhM5ubeh}(h]h ](jtypeeh"]h$]h&]jjjj_jj_jjjuh1j;hhhjQhNhNubhraw)}(h \footnotesizeh]h \footnotesize}hjesbah}(h]h ]h"]h$]h&]formatlatexhhuh1jchhhM7hjQhhubj)}(hhh]h}(h]h ]h"]h$]h&]j.|p{6.5cm}|p{1.5cm}|p{1.1cm}|p{1.5cm}|p{6.8cm}|uh1jhhhM;hjQhhubj)}(hhh](h)}(henum v4l2_ctrl_typeh]henum v4l2_ctrl_type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM?hjubj)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK7uh1jhjubhthead)}(hhh]j)}(hhh](j)}(hhh]h)}(hTypeh]hType}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMDhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h ``minimum``h]j)}(hjh]hminimum}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMEhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h``step``h]j)}(hj h]hstep}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMFhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h ``maximum``h]j)}(hj)h]hmaximum}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1hhhhMGhj$ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h Descriptionh]h Description}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMHhjDubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_INTEGER``h]j)}(hjrh]hV4L2_CTRL_TYPE_INTEGER}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]uh1hhhhMIhjmubah}(h]h ]h"]h$]h&]uh1jhjjubj)}(hhh]h)}(hanyh]hany}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMJhjubah}(h]h ]h"]h$]h&]uh1jhjjubj)}(hhh]h)}(hanyh]hany}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMKhjubah}(h]h ]h"]h$]h&]uh1jhjjubj)}(hhh]h)}(hanyh]hany}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMLhjubah}(h]h ]h"]h$]h&]uh1jhjjubj)}(hhh]h)}(h{An integer-valued control ranging from minimum to maximum inclusive. The step value indicates the increment between values.h]h{An integer-valued control ranging from minimum to maximum inclusive. The step value indicates the increment between values.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMMhjubah}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_BOOLEAN``h]j)}(hjh]hV4L2_CTRL_TYPE_BOOLEAN}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMOhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h0h]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMPhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h1h]h1}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMQhj)ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hj.h]h1}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMRhj@ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hRA boolean-valued control. Zero corresponds to "disabled", and one means "enabled".h]hZA boolean-valued control. Zero corresponds to “disabled”, and one means “enabled”.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMShjVubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_MENU``h]j)}(hj{h]hV4L2_CTRL_TYPE_MENU}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyubah}(h]h ]h"]h$]h&]uh1hhhhMUhjvubah}(h]h ]h"]h$]h&]uh1jhjsubj)}(hhh]h)}(h≥ 0h]h≥ 0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMVhjubah}(h]h ]h"]h$]h&]uh1jhjsubj)}(hhh]h)}(hj.h]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMWhjubah}(h]h ]h"]h$]h&]uh1jhjsubj)}(hhh]h)}(hN-1h]hN-1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMXhjubah}(h]h ]h"]h$]h&]uh1jhjsubj)}(hhh]h)}(hwThe control has a menu of N choices. The names of the menu items can be enumerated with the ``VIDIOC_QUERYMENU`` ioctl.h](h\The control has a menu of N choices. The names of the menu items can be enumerated with the }(hjhhhNhNubj)}(h``VIDIOC_QUERYMENU``h]hVIDIOC_QUERYMENU}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh ioctl.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMYhjubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_INTEGER_MENU``h]j)}(hjh]hV4L2_CTRL_TYPE_INTEGER_MENU}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhM[hj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h≥ 0h]h≥ 0}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM\hj,ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hj.h]h1}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM]hjCubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hN-1h]hN-1}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM^hjYubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hThe control has a menu of N choices. The values of the menu items can be enumerated with the ``VIDIOC_QUERYMENU`` ioctl. This is similar to ``V4L2_CTRL_TYPE_MENU`` except that instead of strings, the menu items are signed 64-bit integers.h](h]The control has a menu of N choices. The values of the menu items can be enumerated with the }(hjshhhNhNubj)}(h``VIDIOC_QUERYMENU``h]hVIDIOC_QUERYMENU}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubh ioctl. This is similar to }(hjshhhNhNubj)}(h``V4L2_CTRL_TYPE_MENU``h]hV4L2_CTRL_TYPE_MENU}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjsubhK except that instead of strings, the menu items are signed 64-bit integers.}(hjshhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM_hjpubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_BITMASK``h]j)}(hjh]hV4L2_CTRL_TYPE_BITMASK}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMchjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hjh]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMdhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hn/ah]hn/a}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMehjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hanyh]hany}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMfhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hA bitmask field. The maximum value is the set of bits that can be used, all other bits are to be 0. The maximum value is interpreted as a __u32, allowing the use of bit 31 in the bitmask.h]hA bitmask field. The maximum value is the set of bits that can be used, all other bits are to be 0. The maximum value is interpreted as a __u32, allowing the use of bit 31 in the bitmask.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMghjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_BUTTON``h]j)}(hj=h]hV4L2_CTRL_TYPE_BUTTON}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1hhhhMjhj8ubah}(h]h ]h"]h$]h&]uh1jhj5ubj)}(hhh]h)}(hjh]h0}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMkhjXubah}(h]h ]h"]h$]h&]uh1jhj5ubj)}(hhh]h)}(hjh]h0}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMlhjnubah}(h]h ]h"]h$]h&]uh1jhj5ubj)}(hhh]h)}(hjh]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMmhjubah}(h]h ]h"]h$]h&]uh1jhj5ubj)}(hhh]h)}(hA control which performs an action when set. Drivers must ignore the value passed with ``VIDIOC_S_CTRL`` and return an ``EACCES`` error code on a ``VIDIOC_G_CTRL`` attempt.h](hWA control which performs an action when set. Drivers must ignore the value passed with }(hjhhhNhNubj)}(h``VIDIOC_S_CTRL``h]h VIDIOC_S_CTRL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh and return an }(hjhhhNhNubj)}(h ``EACCES``h]hEACCES}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh error code on a }(hjhhhNhNubj)}(h``VIDIOC_G_CTRL``h]h VIDIOC_G_CTRL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh attempt.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMnhjubah}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_INTEGER64``h]j)}(hjh]hV4L2_CTRL_TYPE_INTEGER64}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMqhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hanyh]hany}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMrhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hanyh]hany}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMshj'ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hanyh]hany}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMthj>ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hA 64-bit integer valued control. Minimum, maximum and step size cannot be queried using ``VIDIOC_QUERYCTRL``. Only ``VIDIOC_QUERY_EXT_CTRL`` can retrieve the 64-bit min/max/step values, they should be interpreted as n/a when using ``VIDIOC_QUERYCTRL``.h](hXA 64-bit integer valued control. Minimum, maximum and step size cannot be queried using }(hjXhhhNhNubj)}(h``VIDIOC_QUERYCTRL``h]hVIDIOC_QUERYCTRL}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubh. Only }(hjXhhhNhNubj)}(h``VIDIOC_QUERY_EXT_CTRL``h]hVIDIOC_QUERY_EXT_CTRL}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubh[ can retrieve the 64-bit min/max/step values, they should be interpreted as n/a when using }(hjXhhhNhNubj)}(h``VIDIOC_QUERYCTRL``h]hVIDIOC_QUERYCTRL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubh.}(hjXhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMuhjUubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_STRING``h]j)}(hjh]hV4L2_CTRL_TYPE_STRING}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMzhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h≥ 0h]h≥ 0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM{hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h≥ 1h]h≥ 1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM|hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h≥ 0h]h≥ 0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM}hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hXBThe minimum and maximum string lengths. The step size means that the string must be (minimum + N * step) characters long for N ≥ 0. These lengths do not include the terminating zero, so in order to pass a string of length 8 to :ref:`VIDIOC_S_EXT_CTRLS ` you need to set the ``size`` field of struct :c:type:`v4l2_ext_control` to 9. For :ref:`VIDIOC_G_EXT_CTRLS ` you can set the ``size`` field to ``maximum`` + 1. Which character encoding is used will depend on the string control itself and should be part of the control documentation.h](hThe minimum and maximum string lengths. The step size means that the string must be (minimum + N * step) characters long for N ≥ 0. These lengths do not include the terminating zero, so in order to pass a string of length 8 to }(hjhhhNhNubh)}(h.:ref:`VIDIOC_S_EXT_CTRLS `h]j)}(hjh]hVIDIOC_S_EXT_CTRLS}(hjhhhNhNubah}(h]h ](jistdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocju refdomainj)reftyperef refexplicitrefwarnjvidioc_g_ext_ctrlsuh1hhhhM~hjubh you need to set the }(hjhhhNhNubj)}(h``size``h]hsize}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh field of struct }(hjhhhNhNubh)}(h:c:type:`v4l2_ext_control`h]j)}(hjSh]hv4l2_ext_control}(hjUhhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ext_controluh1hhhhM~hjubh to 9. For }(hjhhhNhNubh)}(h.:ref:`VIDIOC_G_EXT_CTRLS `h]j)}(hjvh]hVIDIOC_G_EXT_CTRLS}(hjxhhhNhNubah}(h]h ](jistdstd-refeh"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]refdocju refdomainjreftyperef refexplicitrefwarnjvidioc_g_ext_ctrlsuh1hhhhM~hjubh you can set the }(hjhhhNhNubj)}(h``size``h]hsize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh field to }(hjhhhNhNubj)}(h ``maximum``h]hmaximum}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh + 1. Which character encoding is used will depend on the string control itself and should be part of the control documentation.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM~hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_CTRL_CLASS``h]j)}(hjh]hV4L2_CTRL_TYPE_CTRL_CLASS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hn/ah]hn/a}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hn/ah]hn/a}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hn/ah]hn/a}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hXThis is not a control. When ``VIDIOC_QUERYCTRL`` is called with a control ID equal to a control class code (see :ref:`ctrl-class`) + 1, the ioctl returns the name of the control class and this control type. Older drivers which do not support this feature return an ``EINVAL`` error code.h](hThis is not a control. When }(hj9hhhNhNubj)}(h``VIDIOC_QUERYCTRL``h]hVIDIOC_QUERYCTRL}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubh@ is called with a control ID equal to a control class code (see }(hj9hhhNhNubh)}(h:ref:`ctrl-class`h]j)}(hjUh]h ctrl-class}(hjWhhhNhNubah}(h]h ](jistdstd-refeh"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]refdocju refdomainjareftyperef refexplicitrefwarnj ctrl-classuh1hhhhMhj9ubh) + 1, the ioctl returns the name of the control class and this control type. Older drivers which do not support this feature return an }(hj9hhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubh error code.}(hj9hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj6ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_U8``h]j)}(hjh]hV4L2_CTRL_TYPE_U8}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hanyh]hany}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hanyh]hany}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hanyh]hany}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hAn unsigned 8-bit valued control ranging from minimum to maximum inclusive. The step value indicates the increment between values.h]hAn unsigned 8-bit valued control ranging from minimum to maximum inclusive. The step value indicates the increment between values.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_U16``h]j)}(hj(h]hV4L2_CTRL_TYPE_U16}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1hhhhMhj#ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hanyh]hany}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjCubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hanyh]hany}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjZubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hanyh]hany}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjqubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hAn unsigned 16-bit valued control ranging from minimum to maximum inclusive. The step value indicates the increment between values.h]hAn unsigned 16-bit valued control ranging from minimum to maximum inclusive. The step value indicates the increment between values.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_U32``h]j)}(hjh]hV4L2_CTRL_TYPE_U32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hanyh]hany}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hanyh]hany}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hanyh]hany}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hAn unsigned 32-bit valued control ranging from minimum to maximum inclusive. The step value indicates the increment between values.h]hAn unsigned 32-bit valued control ranging from minimum to maximum inclusive. The step value indicates the increment between values.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h%``V4L2_CTRL_TYPE_MPEG2_QUANTISATION``h]j)}(hj2 h]h!V4L2_CTRL_TYPE_MPEG2_QUANTISATION}(hj4 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0 ubah}(h]h ]h"]h$]h&]uh1hhhhMhj- ubah}(h]h ]h"]h$]h&]uh1jhj* ubj)}(hhh]h)}(hn/ah]hn/a}(hjP hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjM ubah}(h]h ]h"]h$]h&]uh1jhj* ubj)}(hhh]h)}(hn/ah]hn/a}(hjg hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjd ubah}(h]h ]h"]h$]h&]uh1jhj* ubj)}(hhh]h)}(hn/ah]hn/a}(hj~ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj{ ubah}(h]h ]h"]h$]h&]uh1jhj* ubj)}(hhh]h)}(hvA struct :c:type:`v4l2_ctrl_mpeg2_quantisation`, containing MPEG-2 quantisation matrices for stateless video decoders.h](h A struct }(hj hhhNhNubh)}(h&:c:type:`v4l2_ctrl_mpeg2_quantisation`h]j)}(hj h]hv4l2_ctrl_mpeg2_quantisation}(hj hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_mpeg2_quantisationuh1hhhhMhj ubhG, containing MPEG-2 quantisation matrices for stateless video decoders.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhj* ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h!``V4L2_CTRL_TYPE_MPEG2_SEQUENCE``h]j)}(hj h]hV4L2_CTRL_TYPE_MPEG2_SEQUENCE}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hn/ah]hn/a}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hn/ah]hn/a}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj !ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hn/ah]hn/a}(hj&!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj#!ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hpA struct :c:type:`v4l2_ctrl_mpeg2_sequence`, containing MPEG-2 sequence parameters for stateless video decoders.h](h A struct }(hj=!hhhNhNubh)}(h":c:type:`v4l2_ctrl_mpeg2_sequence`h]j)}(hjG!h]hv4l2_ctrl_mpeg2_sequence}(hjI!hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhjE!ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_mpeg2_sequenceuh1hhhhMhj=!ubhE, containing MPEG-2 sequence parameters for stateless video decoders.}(hj=!hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj:!ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h ``V4L2_CTRL_TYPE_MPEG2_PICTURE``h]j)}(hj!h]hV4L2_CTRL_TYPE_MPEG2_PICTURE}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1hhhhMhj}!ubah}(h]h ]h"]h$]h&]uh1jhjz!ubj)}(hhh]h)}(hn/ah]hn/a}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj!ubah}(h]h ]h"]h$]h&]uh1jhjz!ubj)}(hhh]h)}(hn/ah]hn/a}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj!ubah}(h]h ]h"]h$]h&]uh1jhjz!ubj)}(hhh]h)}(hn/ah]hn/a}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj!ubah}(h]h ]h"]h$]h&]uh1jhjz!ubj)}(hhh]h)}(hnA struct :c:type:`v4l2_ctrl_mpeg2_picture`, containing MPEG-2 picture parameters for stateless video decoders.h](h A struct }(hj!hhhNhNubh)}(h!:c:type:`v4l2_ctrl_mpeg2_picture`h]j)}(hj!h]hv4l2_ctrl_mpeg2_picture}(hj!hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_mpeg2_pictureuh1hhhhMhj!ubhD, containing MPEG-2 picture parameters for stateless video decoders.}(hj!hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj!ubah}(h]h ]h"]h$]h&]uh1jhjz!ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_AREA``h]j)}(hj*"h]hV4L2_CTRL_TYPE_AREA}(hj,"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj("ubah}(h]h ]h"]h$]h&]uh1hhhhMhj%"ubah}(h]h ]h"]h$]h&]uh1jhj""ubj)}(hhh]h)}(hn/ah]hn/a}(hjH"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjE"ubah}(h]h ]h"]h$]h&]uh1jhj""ubj)}(hhh]h)}(hn/ah]hn/a}(hj_"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj\"ubah}(h]h ]h"]h$]h&]uh1jhj""ubj)}(hhh]h)}(hn/ah]hn/a}(hjv"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjs"ubah}(h]h ]h"]h$]h&]uh1jhj""ubj)}(hhh]h)}(hvA struct :c:type:`v4l2_area`, containing the width and the height of a rectangular area. Units depend on the use case.h](h A struct }(hj"hhhNhNubh)}(h:c:type:`v4l2_area`h]j)}(hj"h]h v4l2_area}(hj"hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jj v4l2_areauh1hhhhMhj"ubhZ, containing the width and the height of a rectangular area. Units depend on the use case.}(hj"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj"ubah}(h]h ]h"]h$]h&]uh1jhj""ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_RECT``h]j)}(hj"h]hV4L2_CTRL_TYPE_RECT}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1hhhhMhj"ubah}(h]h ]h"]h$]h&]uh1jhj"ubj)}(hhh]h)}(hn/ah]hn/a}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj"ubah}(h]h ]h"]h$]h&]uh1jhj"ubj)}(hhh]h)}(hn/ah]hn/a}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj#ubah}(h]h ]h"]h$]h&]uh1jhj"ubj)}(hhh]h)}(hn/ah]hn/a}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj#ubah}(h]h ]h"]h$]h&]uh1jhj"ubj)}(hhh]h)}(hXA struct :c:type:`v4l2_rect`, containing a rectangle described by the position of its top-left corner, the width and the height. Units depend on the use case. Support for ``V4L2_CTRL_WHICH_MIN_VAL`` and ``V4L2_CTRL_WHICH_MAX_VAL`` is optional and depends on the ``V4L2_CTRL_FLAG_HAS_WHICH_MIN_MAX`` flag. See the documentation of the specific control on how to interpret the minimum and maximum values.h](h A struct }(hj5#hhhNhNubh)}(h:c:type:`v4l2_rect`h]j)}(hj?#h]h v4l2_rect}(hjA#hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhj=#ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jj v4l2_rectuh1hhhhMhj5#ubh, containing a rectangle described by the position of its top-left corner, the width and the height. Units depend on the use case. Support for }(hj5#hhhNhNubj)}(h``V4L2_CTRL_WHICH_MIN_VAL``h]hV4L2_CTRL_WHICH_MIN_VAL}(hj`#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5#ubh and }(hj5#hhhNhNubj)}(h``V4L2_CTRL_WHICH_MAX_VAL``h]hV4L2_CTRL_WHICH_MAX_VAL}(hjr#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5#ubh is optional and depends on the }(hj5#hhhNhNubj)}(h$``V4L2_CTRL_FLAG_HAS_WHICH_MIN_MAX``h]h V4L2_CTRL_FLAG_HAS_WHICH_MIN_MAX}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5#ubhh flag. See the documentation of the specific control on how to interpret the minimum and maximum values.}(hj5#hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj2#ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_H264_SPS``h]j)}(hj#h]hV4L2_CTRL_TYPE_H264_SPS}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]uh1hhhhMhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubj)}(hhh]h)}(hn/ah]hn/a}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubj)}(hhh]h)}(hn/ah]hn/a}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubj)}(hhh]h)}(hn/ah]hn/a}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubj)}(hhh]h)}(hhA struct :c:type:`v4l2_ctrl_h264_sps`, containing H264 sequence parameters for stateless video decoders.h](h A struct }(hj$hhhNhNubh)}(h:c:type:`v4l2_ctrl_h264_sps`h]j)}(hj$h]hv4l2_ctrl_h264_sps}(hj$hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_h264_spsuh1hhhhMhj$ubhC, containing H264 sequence parameters for stateless video decoders.}(hj$hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj$ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_H264_PPS``h]j)}(hjX$h]hV4L2_CTRL_TYPE_H264_PPS}(hjZ$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjV$ubah}(h]h ]h"]h$]h&]uh1hhhhMhjS$ubah}(h]h ]h"]h$]h&]uh1jhjP$ubj)}(hhh]h)}(hn/ah]hn/a}(hjv$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjs$ubah}(h]h ]h"]h$]h&]uh1jhjP$ubj)}(hhh]h)}(hn/ah]hn/a}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj$ubah}(h]h ]h"]h$]h&]uh1jhjP$ubj)}(hhh]h)}(hn/ah]hn/a}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj$ubah}(h]h ]h"]h$]h&]uh1jhjP$ubj)}(hhh]h)}(hgA struct :c:type:`v4l2_ctrl_h264_pps`, containing H264 picture parameters for stateless video decoders.h](h A struct }(hj$hhhNhNubh)}(h:c:type:`v4l2_ctrl_h264_pps`h]j)}(hj$h]hv4l2_ctrl_h264_pps}(hj$hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_h264_ppsuh1hhhhMhj$ubhB, containing H264 picture parameters for stateless video decoders.}(hj$hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj$ubah}(h]h ]h"]h$]h&]uh1jhjP$ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h&``V4L2_CTRL_TYPE_H264_SCALING_MATRIX``h]j)}(hj%h]h"V4L2_CTRL_TYPE_H264_SCALING_MATRIX}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1hhhhMhj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubj)}(hhh]h)}(hn/ah]hn/a}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj%ubah}(h]h ]h"]h$]h&]uh1jhj$ubj)}(hhh]h)}(hn/ah]hn/a}(hj5%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj2%ubah}(h]h ]h"]h$]h&]uh1jhj$ubj)}(hhh]h)}(hn/ah]hn/a}(hjL%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjI%ubah}(h]h ]h"]h$]h&]uh1jhj$ubj)}(hhh]h)}(hpA struct :c:type:`v4l2_ctrl_h264_scaling_matrix`, containing H264 scaling matrices for stateless video decoders.h](h A struct }(hjc%hhhNhNubh)}(h':c:type:`v4l2_ctrl_h264_scaling_matrix`h]j)}(hjm%h]hv4l2_ctrl_h264_scaling_matrix}(hjo%hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhjk%ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_h264_scaling_matrixuh1hhhhMhjc%ubh@, containing H264 scaling matrices for stateless video decoders.}(hjc%hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj`%ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h$``V4L2_CTRL_TYPE_H264_SLICE_PARAMS``h]j)}(hj%h]h V4L2_CTRL_TYPE_H264_SLICE_PARAMS}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]uh1hhhhMhj%ubah}(h]h ]h"]h$]h&]uh1jhj%ubj)}(hhh]h)}(hn/ah]hn/a}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj%ubah}(h]h ]h"]h$]h&]uh1jhj%ubj)}(hhh]h)}(hn/ah]hn/a}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj%ubah}(h]h ]h"]h$]h&]uh1jhj%ubj)}(hhh]h)}(hn/ah]hn/a}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj%ubah}(h]h ]h"]h$]h&]uh1jhj%ubj)}(hhh]h)}(hnA struct :c:type:`v4l2_ctrl_h264_slice_params`, containing H264 slice parameters for stateless video decoders.h](h A struct }(hj &hhhNhNubh)}(h%:c:type:`v4l2_ctrl_h264_slice_params`h]j)}(hj&h]hv4l2_ctrl_h264_slice_params}(hj&hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_h264_slice_paramsuh1hhhhMhj &ubh@, containing H264 slice parameters for stateless video decoders.}(hj &hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj&ubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h%``V4L2_CTRL_TYPE_H264_DECODE_PARAMS``h]j)}(hjP&h]h!V4L2_CTRL_TYPE_H264_DECODE_PARAMS}(hjR&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjN&ubah}(h]h ]h"]h$]h&]uh1hhhhMhjK&ubah}(h]h ]h"]h$]h&]uh1jhjH&ubj)}(hhh]h)}(hn/ah]hn/a}(hjn&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjk&ubah}(h]h ]h"]h$]h&]uh1jhjH&ubj)}(hhh]h)}(hn/ah]hn/a}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj&ubah}(h]h ]h"]h$]h&]uh1jhjH&ubj)}(hhh]h)}(hn/ah]hn/a}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj&ubah}(h]h ]h"]h$]h&]uh1jhjH&ubj)}(hhh]h)}(hpA struct :c:type:`v4l2_ctrl_h264_decode_params`, containing H264 decode parameters for stateless video decoders.h](h A struct }(hj&hhhNhNubh)}(h&:c:type:`v4l2_ctrl_h264_decode_params`h]j)}(hj&h]hv4l2_ctrl_h264_decode_params}(hj&hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_h264_decode_paramsuh1hhhhMhj&ubhA, containing H264 decode parameters for stateless video decoders.}(hj&hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj&ubah}(h]h ]h"]h$]h&]uh1jhjH&ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_FWHT_PARAMS``h]j)}(hj&h]hV4L2_CTRL_TYPE_FWHT_PARAMS}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1hhhhMhj&ubah}(h]h ]h"]h$]h&]uh1jhj&ubj)}(hhh]h)}(hn/ah]hn/a}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj'ubah}(h]h ]h"]h$]h&]uh1jhj&ubj)}(hhh]h)}(hn/ah]hn/a}(hj-'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj*'ubah}(h]h ]h"]h$]h&]uh1jhj&ubj)}(hhh]h)}(hn/ah]hn/a}(hjD'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjA'ubah}(h]h ]h"]h$]h&]uh1jhj&ubj)}(hhh]h)}(hbA struct :c:type:`v4l2_ctrl_fwht_params`, containing FWHT parameters for stateless video decoders.h](h A struct }(hj['hhhNhNubh)}(h:c:type:`v4l2_ctrl_fwht_params`h]j)}(hje'h]hv4l2_ctrl_fwht_params}(hjg'hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhjc'ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_fwht_paramsuh1hhhhMhj['ubh:, containing FWHT parameters for stateless video decoders.}(hj['hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjX'ubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_HEVC_SPS``h]j)}(hj'h]hV4L2_CTRL_TYPE_HEVC_SPS}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1hhhhMhj'ubah}(h]h ]h"]h$]h&]uh1jhj'ubj)}(hhh]h)}(hn/ah]hn/a}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj'ubah}(h]h ]h"]h$]h&]uh1jhj'ubj)}(hhh]h)}(hn/ah]hn/a}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj'ubah}(h]h ]h"]h$]h&]uh1jhj'ubj)}(hhh]h)}(hn/ah]hn/a}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj'ubah}(h]h ]h"]h$]h&]uh1jhj'ubj)}(hhh]h)}(hkA struct :c:type:`v4l2_ctrl_hevc_sps`, containing HEVC Sequence Parameter Set for stateless video decoders.h](h A struct }(hj(hhhNhNubh)}(h:c:type:`v4l2_ctrl_hevc_sps`h]j)}(hj (h]hv4l2_ctrl_hevc_sps}(hj(hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhj (ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_hevc_spsuh1hhhhMhj(ubhF, containing HEVC Sequence Parameter Set for stateless video decoders.}(hj(hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj(ubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_HEVC_PPS``h]j)}(hjH(h]hV4L2_CTRL_TYPE_HEVC_PPS}(hjJ(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjF(ubah}(h]h ]h"]h$]h&]uh1hhhhMhjC(ubah}(h]h ]h"]h$]h&]uh1jhj@(ubj)}(hhh]h)}(hn/ah]hn/a}(hjf(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjc(ubah}(h]h ]h"]h$]h&]uh1jhj@(ubj)}(hhh]h)}(hn/ah]hn/a}(hj}(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjz(ubah}(h]h ]h"]h$]h&]uh1jhj@(ubj)}(hhh]h)}(hn/ah]hn/a}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj(ubah}(h]h ]h"]h$]h&]uh1jhj@(ubj)}(hhh]h)}(hjA struct :c:type:`v4l2_ctrl_hevc_pps`, containing HEVC Picture Parameter Set for stateless video decoders.h](h A struct }(hj(hhhNhNubh)}(h:c:type:`v4l2_ctrl_hevc_pps`h]j)}(hj(h]hv4l2_ctrl_hevc_pps}(hj(hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_hevc_ppsuh1hhhhMhj(ubhE, containing HEVC Picture Parameter Set for stateless video decoders.}(hj(hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj(ubah}(h]h ]h"]h$]h&]uh1jhj@(ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h$``V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS``h]j)}(hj(h]h V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1hhhhMhj(ubah}(h]h ]h"]h$]h&]uh1jhj(ubj)}(hhh]h)}(hn/ah]hn/a}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj )ubah}(h]h ]h"]h$]h&]uh1jhj(ubj)}(hhh]h)}(hn/ah]hn/a}(hj%)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj")ubah}(h]h ]h"]h$]h&]uh1jhj(ubj)}(hhh]h)}(hn/ah]hn/a}(hj<)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj9)ubah}(h]h ]h"]h$]h&]uh1jhj(ubj)}(hhh]h)}(hnA struct :c:type:`v4l2_ctrl_hevc_slice_params`, containing HEVC slice parameters for stateless video decoders.h](h A struct }(hjS)hhhNhNubh)}(h%:c:type:`v4l2_ctrl_hevc_slice_params`h]j)}(hj])h]hv4l2_ctrl_hevc_slice_params}(hj_)hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhj[)ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_hevc_slice_paramsuh1hhhhMhjS)ubh@, containing HEVC slice parameters for stateless video decoders.}(hjS)hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjP)ubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h&``V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX``h]j)}(hj)h]h"V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1hhhhMhj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubj)}(hhh]h)}(hn/ah]hn/a}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubj)}(hhh]h)}(hn/ah]hn/a}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubj)}(hhh]h)}(hn/ah]hn/a}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubj)}(hhh]h)}(hnA struct :c:type:`v4l2_ctrl_hevc_scaling_matrix`, containing HEVC scaling matrix for stateless video decoders.h](h A struct }(hj)hhhNhNubh)}(h':c:type:`v4l2_ctrl_hevc_scaling_matrix`h]j)}(hj*h]hv4l2_ctrl_hevc_scaling_matrix}(hj*hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_hevc_scaling_matrixuh1hhhhMhj)ubh>, containing HEVC scaling matrix for stateless video decoders.}(hj)hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_VP8_FRAME``h]j)}(hj@*h]hV4L2_CTRL_TYPE_VP8_FRAME}(hjB*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>*ubah}(h]h ]h"]h$]h&]uh1hhhhMhj;*ubah}(h]h ]h"]h$]h&]uh1jhj8*ubj)}(hhh]h)}(hn/ah]hn/a}(hj^*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj[*ubah}(h]h ]h"]h$]h&]uh1jhj8*ubj)}(hhh]h)}(hn/ah]hn/a}(hju*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjr*ubah}(h]h ]h"]h$]h&]uh1jhj8*ubj)}(hhh]h)}(hn/ah]hn/a}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj*ubah}(h]h ]h"]h$]h&]uh1jhj8*ubj)}(hhh]h)}(heA struct :c:type:`v4l2_ctrl_vp8_frame`, containing VP8 frame parameters for stateless video decoders.h](h A struct }(hj*hhhNhNubh)}(h:c:type:`v4l2_ctrl_vp8_frame`h]j)}(hj*h]hv4l2_ctrl_vp8_frame}(hj*hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_vp8_frameuh1hhhhMhj*ubh?, containing VP8 frame parameters for stateless video decoders.}(hj*hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj*ubah}(h]h ]h"]h$]h&]uh1jhj8*ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h%``V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS``h]j)}(hj*h]h!V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1hhhhMhj*ubah}(h]h ]h"]h$]h&]uh1jhj*ubj)}(hhh]h)}(hn/ah]hn/a}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hj+ubah}(h]h ]h"]h$]h&]uh1jhj*ubj)}(hhh]h)}(hn/ah]hn/a}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hj+ubah}(h]h ]h"]h$]h&]uh1jhj*ubj)}(hhh]h)}(hn/ah]hn/a}(hj4+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hj1+ubah}(h]h ]h"]h$]h&]uh1jhj*ubj)}(hhh]h)}(hrA struct :c:type:`v4l2_ctrl_hevc_decode_params`, containing HEVC decoding parameters for stateless video decoders.h](h A struct }(hjK+hhhNhNubh)}(h&:c:type:`v4l2_ctrl_hevc_decode_params`h]j)}(hjU+h]hv4l2_ctrl_hevc_decode_params}(hjW+hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhjS+ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_hevc_decode_paramsuh1hhhhM hjK+ubhC, containing HEVC decoding parameters for stateless video decoders.}(hjK+hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM hjH+ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h%``V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR``h]j)}(hj+h]h!V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1hhhhMhj+ubah}(h]h ]h"]h$]h&]uh1jhj+ubj)}(hhh]h)}(hn/ah]hn/a}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj+ubah}(h]h ]h"]h$]h&]uh1jhj+ubj)}(hhh]h)}(hn/ah]hn/a}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj+ubah}(h]h ]h"]h$]h&]uh1jhj+ubj)}(hhh]h)}(hn/ah]hn/a}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj+ubah}(h]h ]h"]h$]h&]uh1jhj+ubj)}(hhh]h)}(hsA struct :c:type:`v4l2_ctrl_vp9_compressed_hdr`, containing VP9 probabilities updates for stateless video decoders.h](h A struct }(hj+hhhNhNubh)}(h&:c:type:`v4l2_ctrl_vp9_compressed_hdr`h]j)}(hj+h]hv4l2_ctrl_vp9_compressed_hdr}(hj+hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_vp9_compressed_hdruh1hhhhMhj+ubhD, containing VP9 probabilities updates for stateless video decoders.}(hj+hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj+ubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_VP9_FRAME``h]j)}(hj8,h]hV4L2_CTRL_TYPE_VP9_FRAME}(hj:,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6,ubah}(h]h ]h"]h$]h&]uh1hhhhMhj3,ubah}(h]h ]h"]h$]h&]uh1jhj0,ubj)}(hhh]h)}(hn/ah]hn/a}(hjV,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjS,ubah}(h]h ]h"]h$]h&]uh1jhj0,ubj)}(hhh]h)}(hn/ah]hn/a}(hjm,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjj,ubah}(h]h ]h"]h$]h&]uh1jhj0,ubj)}(hhh]h)}(hn/ah]hn/a}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj,ubah}(h]h ]h"]h$]h&]uh1jhj0,ubj)}(hhh]h)}(hlA struct :c:type:`v4l2_ctrl_vp9_frame`, containing VP9 frame decode parameters for stateless video decoders.h](h A struct }(hj,hhhNhNubh)}(h:c:type:`v4l2_ctrl_vp9_frame`h]j)}(hj,h]hv4l2_ctrl_vp9_frame}(hj,hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_vp9_frameuh1hhhhMhj,ubhF, containing VP9 frame decode parameters for stateless video decoders.}(hj,hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj,ubah}(h]h ]h"]h$]h&]uh1jhj0,ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_AV1_SEQUENCE``h]j)}(hj,h]hV4L2_CTRL_TYPE_AV1_SEQUENCE}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1hhhhMhj,ubah}(h]h ]h"]h$]h&]uh1jhj,ubj)}(hhh]h)}(hn/ah]hn/a}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj,ubah}(h]h ]h"]h$]h&]uh1jhj,ubj)}(hhh]h)}(hn/ah]hn/a}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj-ubah}(h]h ]h"]h$]h&]uh1jhj,ubj)}(hhh]h)}(hn/ah]hn/a}(hj,-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj)-ubah}(h]h ]h"]h$]h&]uh1jhj,ubj)}(hhh]h)}(hxA struct :c:type:`v4l2_ctrl_av1_sequence`, containing AV1 Sequence OBU decoding parameters for stateless video decoders.h](h A struct }(hjC-hhhNhNubh)}(h :c:type:`v4l2_ctrl_av1_sequence`h]j)}(hjM-h]hv4l2_ctrl_av1_sequence}(hjO-hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhjK-ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_av1_sequenceuh1hhhhMhjC-ubhO, containing AV1 Sequence OBU decoding parameters for stateless video decoders.}(hjC-hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj@-ubah}(h]h ]h"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h'``V4L2_CTRL_TYPE_AV1_TILE_GROUP_ENTRY``h]j)}(hj-h]h#V4L2_CTRL_TYPE_AV1_TILE_GROUP_ENTRY}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1hhhhM hj-ubah}(h]h ]h"]h$]h&]uh1jhj-ubj)}(hhh]h)}(hn/ah]hn/a}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM!hj-ubah}(h]h ]h"]h$]h&]uh1jhj-ubj)}(hhh]h)}(hn/ah]hn/a}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM"hj-ubah}(h]h ]h"]h$]h&]uh1jhj-ubj)}(hhh]h)}(hn/ah]hn/a}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM#hj-ubah}(h]h ]h"]h$]h&]uh1jhj-ubj)}(hhh]h)}(hA struct :c:type:`v4l2_ctrl_av1_tile_group_entry`, containing AV1 Tile Group OBU decoding parameters for stateless video decoders.h](h A struct }(hj-hhhNhNubh)}(h(:c:type:`v4l2_ctrl_av1_tile_group_entry`h]j)}(hj-h]hv4l2_ctrl_av1_tile_group_entry}(hj-hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_av1_tile_group_entryuh1hhhhM$hj-ubhQ, containing AV1 Tile Group OBU decoding parameters for stateless video decoders.}(hj-hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM$hj-ubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_TYPE_AV1_FRAME``h]j)}(hj0.h]hV4L2_CTRL_TYPE_AV1_FRAME}(hj2.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj..ubah}(h]h ]h"]h$]h&]uh1hhhhM&hj+.ubah}(h]h ]h"]h$]h&]uh1jhj(.ubj)}(hhh]h)}(hn/ah]hn/a}(hjN.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM'hjK.ubah}(h]h ]h"]h$]h&]uh1jhj(.ubj)}(hhh]h)}(hn/ah]hn/a}(hje.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM(hjb.ubah}(h]h ]h"]h$]h&]uh1jhj(.ubj)}(hhh]h)}(hn/ah]hn/a}(hj|.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM)hjy.ubah}(h]h ]h"]h$]h&]uh1jhj(.ubj)}(hhh]h)}(hA struct :c:type:`v4l2_ctrl_av1_frame`, containing AV1 Frame/Frame Header OBU decoding parameters for stateless video decoders.h](h A struct }(hj.hhhNhNubh)}(h:c:type:`v4l2_ctrl_av1_frame`h]j)}(hj.h]hv4l2_ctrl_av1_frame}(hj.hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_av1_frameuh1hhhhM*hj.ubhY, containing AV1 Frame/Frame Header OBU decoding parameters for stateless video decoders.}(hj.hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM*hj.ubah}(h]h ]h"]h$]h&]uh1jhj(.ubeh}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh](j)}(hhh]h)}(h!``V4L2_CTRL_TYPE_AV1_FILM_GRAIN``h]j)}(hj.h]hV4L2_CTRL_TYPE_AV1_FILM_GRAIN}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1hhhhM,hj.ubah}(h]h ]h"]h$]h&]uh1jhj.ubj)}(hhh]h)}(hn/ah]hn/a}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM-hj.ubah}(h]h ]h"]h$]h&]uh1jhj.ubj)}(hhh]h)}(hn/ah]hn/a}(hj /hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM.hj /ubah}(h]h ]h"]h$]h&]uh1jhj.ubj)}(hhh]h)}(hn/ah]hn/a}(hj$/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM/hj!/ubah}(h]h ]h"]h$]h&]uh1jhj.ubj)}(hhh]h)}(hoA struct :c:type:`v4l2_ctrl_av1_film_grain`, containing AV1 Film Grain parameters for stateless video decoders.h](h A struct }(hj;/hhhNhNubh)}(h":c:type:`v4l2_ctrl_av1_film_grain`h]j)}(hjE/h]hv4l2_ctrl_av1_film_grain}(hjG/hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhjC/ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ctrl_av1_film_grainuh1hhhhM0hj;/ubhD, containing AV1 Film Grain parameters for stateless video decoders.}(hj;/hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM0hj8/ubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubeh}(h]id5ah ] longtableah"]h$]h&]uh1jhjQhhhNhNubjd)}(h \normalsizeh]h \normalsize}hj/sbah}(h]h ]h"]h$]h&]formatlatexhhuh1jchhhM3hjQhhubj)}(hhh]h}(h]h ]h"]h$]h&]j|p{7.3cm}|p{1.8cm}|p{8.2cm}|uh1jhhhM7hjQhhubh)}(h.. _control-flags:h]h}(h]h ]h"]h$]h&]h control-flagsuh1hhM;hjQhhhhubj)}(hhh](h)}(h Control Flagsh]h Control Flags}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM=hj/ubj)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj/ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj/ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj/ubj)}(hhh](j)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_FLAG_DISABLED``h]j)}(hj/h]hV4L2_CTRL_FLAG_DISABLED}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1hhhhMBhj/ubah}(h]h ]h"]h$]h&]uh1jhj/ubj)}(hhh]h)}(h0x0001h]h0x0001}(hj 0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMChj 0ubah}(h]h ]h"]h$]h&]uh1jhj/ubj)}(hhh]h)}(hThis control is permanently disabled and should be ignored by the application. Any attempt to change the control will result in an ``EINVAL`` error code.h](hThis control is permanently disabled and should be ignored by the application. Any attempt to change the control will result in an }(hj$0hhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hj,0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$0ubh error code.}(hj$0hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMDhj!0ubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhj/ubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_FLAG_GRABBED``h]j)}(hjX0h]hV4L2_CTRL_FLAG_GRABBED}(hjZ0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjV0ubah}(h]h ]h"]h$]h&]uh1hhhhMGhjS0ubah}(h]h ]h"]h$]h&]uh1jhjP0ubj)}(hhh]h)}(h0x0002h]h0x0002}(hjv0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMHhjs0ubah}(h]h ]h"]h$]h&]uh1jhjP0ubj)}(hhh]h)}(hXThis control is temporarily unchangeable, for example because another application took over control of the respective resource. Such controls may be displayed specially in a user interface. Attempts to change the control may result in an ``EBUSY`` error code.h](hThis control is temporarily unchangeable, for example because another application took over control of the respective resource. Such controls may be displayed specially in a user interface. Attempts to change the control may result in an }(hj0hhhNhNubj)}(h ``EBUSY``h]hEBUSY}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubh error code.}(hj0hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMIhj0ubah}(h]h ]h"]h$]h&]uh1jhjP0ubeh}(h]h ]h"]h$]h&]uh1jhj/ubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_FLAG_READ_ONLY``h]j)}(hj0h]hV4L2_CTRL_FLAG_READ_ONLY}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1hhhhMMhj0ubah}(h]h ]h"]h$]h&]uh1jhj0ubj)}(hhh]h)}(h0x0004h]h0x0004}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMNhj0ubah}(h]h ]h"]h$]h&]uh1jhj0ubj)}(hhh]h)}(huThis control is permanently readable only. Any attempt to change the control will result in an ``EINVAL`` error code.h](h_This control is permanently readable only. Any attempt to change the control will result in an }(hj0hhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubh error code.}(hj0hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMOhj0ubah}(h]h ]h"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]uh1jhj/ubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_FLAG_UPDATE``h]j)}(hj*1h]hV4L2_CTRL_FLAG_UPDATE}(hj,1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(1ubah}(h]h ]h"]h$]h&]uh1hhhhMQhj%1ubah}(h]h ]h"]h$]h&]uh1jhj"1ubj)}(hhh]h)}(h0x0008h]h0x0008}(hjH1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMRhjE1ubah}(h]h ]h"]h$]h&]uh1jhj"1ubj)}(hhh]h)}(hA hint that changing this control may affect the value of other controls within the same control class. Applications should update their user interface accordingly.h]hA hint that changing this control may affect the value of other controls within the same control class. Applications should update their user interface accordingly.}(hj_1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMShj\1ubah}(h]h ]h"]h$]h&]uh1jhj"1ubeh}(h]h ]h"]h$]h&]uh1jhj/ubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_FLAG_INACTIVE``h]j)}(hj1h]hV4L2_CTRL_FLAG_INACTIVE}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1hhhhMVhj|1ubah}(h]h ]h"]h$]h&]uh1Ygjhjy1ubj)}(hhh]h)}(h0x0010h]h0x0010}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMWhj1ubah}(h]h ]h"]h$]h&]uh1jhjy1ubj)}(hhh]h)}(hXThis control is not applicable to the current configuration and should be displayed accordingly in a user interface. For example the flag may be set on a MPEG audio level 2 bitrate control when MPEG audio encoding level 1 was selected with another control.h]hXThis control is not applicable to the current configuration and should be displayed accordingly in a user interface. For example the flag may be set on a MPEG audio level 2 bitrate control when MPEG audio encoding level 1 was selected with another control.}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMXhj1ubah}(h]h ]h"]h$]h&]uh1jhjy1ubeh}(h]h ]h"]h$]h&]uh1jhj/ubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_FLAG_SLIDER``h]j)}(hj1h]hV4L2_CTRL_FLAG_SLIDER}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1hhhhM\hj1ubah}(h]h ]h"]h$]h&]uh1jhj1ubj)}(hhh]h)}(h0x0020h]h0x0020}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM]hj1ubah}(h]h ]h"]h$]h&]uh1jhj1ubj)}(hhh]h)}(hZA hint that this control is best represented as a slider-like element in a user interface.h]hZA hint that this control is best represented as a slider-like element in a user interface.}(hj 2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM^hj 2ubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1jhj/ubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_FLAG_WRITE_ONLY``h]j)}(hj/2h]hV4L2_CTRL_FLAG_WRITE_ONLY}(hj12hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-2ubah}(h]h ]h"]h$]h&]uh1hhhhM`hj*2ubah}(h]h ]h"]h$]h&]uh1jhj'2ubj)}(hhh]h)}(h0x0040h]h0x0040}(hjM2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMahjJ2ubah}(h]h ]h"]h$]h&]uh1jhj'2ubj)}(hhh]h)}(hXMThis control is permanently writable only. Any attempt to read the control will result in an ``EACCES`` error code error code. This flag is typically present for relative controls or action controls where writing a value will cause the device to carry out a given action (e. g. motor control) but no meaningful value can be returned.h](h]This control is permanently writable only. Any attempt to read the control will result in an }(hjd2hhhNhNubj)}(h ``EACCES``h]hEACCES}(hjl2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd2ubh error code error code. This flag is typically present for relative controls or action controls where writing a value will cause the device to carry out a given action (e. g. motor control) but no meaningful value can be returned.}(hjd2hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMbhja2ubah}(h]h ]h"]h$]h&]uh1jhj'2ubeh}(h]h ]h"]h$]h&]uh1jhj/ubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_FLAG_VOLATILE``h]j)}(hj2h]hV4L2_CTRL_FLAG_VOLATILE}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]uh1hhhhMhhj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubj)}(hhh]h)}(h0x0080h]h0x0080}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMihj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubj)}(hhh](h)}(hX"This control is volatile, which means that the value of the control changes continuously. A typical example would be the current gain value if the device is in auto-gain mode. In such a case the hardware calculates the gain value based on the lighting conditions which can change over time.h]hX"This control is volatile, which means that the value of the control changes continuously. A typical example would be the current gain value if the device is in auto-gain mode. In such a case the hardware calculates the gain value based on the lighting conditions which can change over time.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMjhj2ubj)}(hX Setting a new value for a volatile control will be ignored unless :ref:`V4L2_CTRL_FLAG_EXECUTE_ON_WRITE ` is also set. Setting a new value for a volatile control will *never* trigger a :ref:`V4L2_EVENT_CTRL_CH_VALUE ` event.h]h)}(hX Setting a new value for a volatile control will be ignored unless :ref:`V4L2_CTRL_FLAG_EXECUTE_ON_WRITE ` is also set. Setting a new value for a volatile control will *never* trigger a :ref:`V4L2_EVENT_CTRL_CH_VALUE ` event.h](hBSetting a new value for a volatile control will be ignored unless }(hj2hhhNhNubh)}(h>:ref:`V4L2_CTRL_FLAG_EXECUTE_ON_WRITE `h]j)}(hj2h]hV4L2_CTRL_FLAG_EXECUTE_ON_WRITE}(hj2hhhNhNubah}(h]h ](jistdstd-refeh"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]refdocju refdomainj2reftyperef refexplicitrefwarnjflag_execute_on_writeuh1hhhhMrhj2ubh> is also set. Setting a new value for a volatile control will }(hj2hhhNhNubhemphasis)}(h*never*h]hnever}(hj 3hhhNhNubah}(h]h ]h"]h$]h&]uh1j 3hj2ubh trigger a }(hj2hhhNhNubh)}(h4:ref:`V4L2_EVENT_CTRL_CH_VALUE `h]j)}(hj!3h]hV4L2_EVENT_CTRL_CH_VALUE}(hj#3hhhNhNubah}(h]h ](jistdstd-refeh"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]refdocju refdomainj-3reftyperef refexplicitrefwarnjctrl-changes-flagsuh1hhhhMrhj2ubh event.}(hj2hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMrhj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhj/ubj)}(hhh](j)}(hhh]h)}(h``V4L2_CTRL_FLAG_HAS_PAYLOAD``h]j)}(hjc3h]hV4L2_CTRL_FLAG_HAS_PAYLOAD}(hje3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhja3ubah}(h]h ]h"]h$]h&]uh1hhhhMxhj^3ubah}(h]h ]h"]h$]h&]uh1jhj[3ubj)}(hhh]h)}(h0x0100h]h0x0100}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMyhj~3ubah}(h]h ]h"]h$]h&]uh1jhj[3ubj)}(hhh]h)}(hX0This control has a pointer type, so its value has to be accessed using one of the pointer fields of struct :c:type:`v4l2_ext_control`. This flag is set for controls that are an array, string, or have a compound type. In all cases you have to set a pointer to memory containing the payload of the control.h](hkThis control has a pointer type, so its value has to be accessed using one of the pointer fields of struct }(hj3hhhNhNubh)}(h:c:type:`v4l2_ext_control`h]j)}(hj3h]hv4l2_ext_control}(hj3hhhNhNubah}(h]h ](jijc-typeeh"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]refdocju refdomainjreftypetype refexplicitrefwarnj{jjv4l2_ext_controluh1hhhhMzhj3ubh. This flag is set for controls that are an array, string, or have a compound type. In all cases you have to set a pointer to memory containing the payload of the control.}(hj3hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMzhj3ubah}(h]h ]h"]h$]h&]uh1jhj[3ubeh}(h]h ]h"]h$]h&]uh1jhj/ubj)}(hhh](j)}(hhh](h)}(h.. _FLAG_EXECUTE_ON_WRITE:h]h}(h]h ]h"]h$]h&]hflag-execute-on-writeuh1hhMhj)}(hhh](j3h)}(hX/The value provided to the control will be propagated to the driver even if it remains constant. This is required when the control represents an action on the hardware. For example: clearing an error flag or triggering the flash. All the controls of the type ``V4L2_CTRL_TYPE_BUTTON`` have this flag set.h](hXThe value provided to the control will be propagated to the driver even if it remains constant. This is required when the control represents an action on the hardware. For example: clearing an error flag or triggering the flash. All the controls of the type }(hj3hhhNhNubj)}(h``V4L2_CTRL_TYPE_BUTTON``h]hV4L2_CTRL_TYPE_BUTTON}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3ubh have this flag set.}(hj3hhhNhNubeh}(h]j3ah ]h"]flag_execute_on_writeah$]h&]uh1hhhhMhj3j }j4j3sj }j3j3subeh}(h]h ]h"]h$]h&]uh1jhj3ububh)}(h#``V4L2_CTRL_FLAG_EXECUTE_ON_WRITE``h]j)}(hj4h]hV4L2_CTRL_FLAG_EXECUTE_ON_WRITE}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1hhhhMhj3ubeh}(h]h ]h"]h$]h&]uh1jhj3ubj)}(hhh](j3h)}(h0x0200h]h0x0200}(hj24hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj/4ubeh}(h]h ]h"]h$]h&]uh1jhj3ubj3eh}(h]h ]h"]h$]h&]uh1jhj/ubj)}(hhh](j)}(hhh](h)}(h.. _FLAG_MODIFY_LAYOUT:h]h}(h]h ]h"]h$]h&]hflag-modify-layoutuh1hhMhj)}(hhh](jR4h)}(h~Changing this control value may modify the layout of the buffer (for video devices) or the media bus format (for sub-devices).h]h~Changing this control value may modify the layout of the buffer (for video devices) or the media bus format (for sub-devices).}(hj`4hhhNhNubah}(h]j\4ah ]h"]flag_modify_layoutah$]h&]uh1hhhhMhj]4j }jl4jR4sj }j\4jR4subh)}(h;A typical example would be the ``V4L2_CID_ROTATE`` control.h](hA typical example would be the }(hjq4hhhNhNubj)}(h``V4L2_CID_ROTATE``h]hV4L2_CID_ROTATE}(hjy4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjq4ubh control.}(hjq4hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj]4ubh)}(hNote that typically controls with this flag will also set the ``V4L2_CTRL_FLAG_GRABBED`` flag when buffers are allocated or streaming is in progress since most drivers do not support changing the format in that case.h](h>Note that typically controls with this flag will also set the }(hj4hhhNhNubj)}(h``V4L2_CTRL_FLAG_GRABBED``h]hV4L2_CTRL_FLAG_GRABBED}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubh flag when buffers are allocated or streaming is in progress since most drivers do not support changing the format in that case.}(hj4hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj]4ubeh}(h]h ]h"]h$]h&]uh1jhjL4ububh)}(h ``V4L2_CTRL_FLAG_MODIFY_LAYOUT``h]j)}(hj4h]hV4L2_CTRL_FLAG_MODIFY_LAYOUT}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1hhhhMhjO4ubeh}(h]h ]h"]h$]h&]uh1jhjL4ubj)}(hhh](jR4h)}(h0x0400h]h0x0400}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj4ubeh}(h]h ]h"]h$]h&]uh1jhjL4ubj]4eh}(h]h ]h"]h$]h&]uh1jhj/ubj)}(hhh](j)}(hhh]h)}(h ``V4L2_CTRL_FLAG_DYNAMIC_ARRAY``h]j)}(hj4h]hV4L2_CTRL_FLAG_DYNAMIC_ARRAY}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1hhhhMhj4ubah}(h]h ]h"]h$]h&]uh1jhj4ubj)}(hhh]h)}(h0x0800h]h0x0800}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj5ubah}(h]h ]h"]h$]h&]uh1jhj4ubj)}(hhh]h)}(hXBThis control is a dynamically sized 1-dimensional array. It behaves the same as a regular array, except that the number of elements as reported by the ``elems`` field is between 1 and ``dims[0]``. So setting the control with a differently sized array will change the ``elems`` field when the control is queried afterwards.h](hThis control is a dynamically sized 1-dimensional array. It behaves the same as a regular array, except that the number of elements as reported by the }(hj.5hhhNhNubj)}(h ``elems``h]helems}(hj65hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.5ubh field is between 1 and }(hj.5hhhNhNubj)}(h ``dims[0]``h]hdims[0]}(hjH5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.5ubhH. So setting the control with a differently sized array will change the }(hj.5hhhNhNubj)}(h ``elems``h]helems}(hjZ5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.5ubh. field when the control is queried afterwards.}(hj.5hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj+5ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhj/ubj)}(hhh](j)}(hhh]h)}(h$``V4L2_CTRL_FLAG_HAS_WHICH_MIN_MAX``h]j)}(hj5h]h V4L2_CTRL_FLAG_HAS_WHICH_MIN_MAX}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubah}(h]h ]h"]h$]h&]uh1hhhhMhj5ubah}(h]h ]h"]h$]h&]uh1jhj~5ubj)}(hhh]h)}(h0x1000h]h0x1000}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj5ubah}(h]h ]h"]h$]h&]uh1jhj~5ubj)}(hhh]h)}(hsThis control supports getting minimum and maximum values using vidioc_g_ext_ctrls with V4L2_CTRL_WHICH_MIN/MAX_VAL.h]hsThis control supports getting minimum and maximum values using vidioc_g_ext_ctrls with V4L2_CTRL_WHICH_MIN/MAX_VAL.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj5ubah}(h]h ]h"]h$]h&]uh1jhj~5ubeh}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]colsKuh1jhj/ubeh}(h](id6j/eh ] longtableah"] control-flagsah$]h&]uh1jhjQhhhNhNj }j5j/sj }j/j/subeh}(h] descriptionah ]h"] descriptionah$]h&]uh1hhhhhhhhK'ubh)}(hhh](h)}(h Return Valueh]h Return Value}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj5hhhhhMubh)}(hOn success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter.h](h.On success 0 is returned, on error -1 and the }(hj6hhhNhNubj)}(h ``errno``h]herrno}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6ubhM variable is set appropriately. The generic error codes are described at the }(hj6hhhNhNubh)}(h':ref:`Generic Error Codes `h]j)}(hj"6h]hGeneric Error Codes}(hj$6hhhNhNubah}(h]h ](jistdstd-refeh"]h$]h&]uh1jhj 6ubah}(h]h ]h"]h$]h&]refdocju refdomainj.6reftyperef refexplicitrefwarnj gen-errorsuh1hhhhMhj6ubh chapter.}(hj6hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj5hhubj+)}(hhh](j0)}(hXEINVAL The struct :ref:`v4l2_queryctrl ` ``id`` is invalid. The struct :ref:`v4l2_querymenu ` ``id`` is invalid or ``index`` is out of range (less than ``minimum`` or greater than ``maximum``) or this particular menu item is not supported by the driver. h](j6)}(hEINVALh]hEINVAL}(hjQ6hhhNhNubah}(h]h ]h"]h$]h&]uh1j5hhhMhjM6ubjO)}(hhh]h)}(hXThe struct :ref:`v4l2_queryctrl ` ``id`` is invalid. The struct :ref:`v4l2_querymenu ` ``id`` is invalid or ``index`` is out of range (less than ``minimum`` or greater than ``maximum``) or this particular menu item is not supported by the driver.h](h The struct }(hjb6hhhNhNubh)}(h&:ref:`v4l2_queryctrl `h]j)}(hjl6h]hv4l2_queryctrl}(hjn6hhhNhNubah}(h]h ](jistdstd-refeh"]h$]h&]uh1jhjj6ubah}(h]h ]h"]h$]h&]refdocju refdomainjx6reftyperef refexplicitrefwarnjv4l2-queryctrluh1hhhhMhjb6ubh }(hjb6hhhNhNubj)}(h``id``h]hid}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb6ubh is invalid. The struct }(hjb6hhhNhNubh)}(h&:ref:`v4l2_querymenu `h]j)}(hj6h]hv4l2_querymenu}(hj6hhhNhNubah}(h]h ](jistdstd-refeh"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]refdocju refdomainj6reftyperef refexplicitrefwarnjv4l2-querymenuuh1hhhhMhjb6ubh }hjb6sbj)}(h``id``h]hid}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb6ubh is invalid or }(hjb6hhhNhNubj)}(h ``index``h]hindex}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb6ubh is out of range (less than }(hjb6hhhNhNubj)}(h ``minimum``h]hminimum}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb6ubh or greater than }(hjb6hhhNhNubj)}(h ``maximum``h]hmaximum}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb6ubh>) or this particular menu item is not supported by the driver.}(hjb6hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj_6ubah}(h]h ]h"]h$]h&]uh1jNhjM6ubeh}(h]h ]h"]h$]h&]uh1j/hhhMhjJ6ubj0)}(h9EACCES An attempt was made to read a write-only control. h](j6)}(hEACCESh]hEACCES}(hj"7hhhNhNubah}(h]h ]h"]h$]h&]uh1j5hhhMhj7ubjO)}(hhh]h)}(h1An attempt was made to read a write-only control.h]h1An attempt was made to read a write-only control.}(hj37hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj07ubah}(h]h ]h"]h$]h&]uh1jNhj7ubeh}(h]h ]h"]h$]h&]uh1j/hhhMhjJ6hhubeh}(h]h ]h"]h$]h&]uh1j*hj5hhhhhNubhfootnote)}(hX``V4L2_CTRL_FLAG_DISABLED`` was intended for two purposes: Drivers can skip predefined controls not supported by the hardware (although returning ``EINVAL`` would do as well), or disable predefined and private controls after hardware detection without the trouble of reordering control arrays and indices (``EINVAL`` cannot be used to skip private controls because it would prematurely end the enumeration).h](hlabel)}(hhh]h1}(hj[7hhhNhNubah}(h]h ]h"]h$]h&]uh1jY7hjU7hhhNhNubh)}(hX``V4L2_CTRL_FLAG_DISABLED`` was intended for two purposes: Drivers can skip predefined controls not supported by the hardware (although returning ``EINVAL`` would do as well), or disable predefined and private controls after hardware detection without the trouble of reordering control arrays and indices (``EINVAL`` cannot be used to skip private controls because it would prematurely end the enumeration).h](j)}(h``V4L2_CTRL_FLAG_DISABLED``h]hV4L2_CTRL_FLAG_DISABLED}(hjl7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjh7ubhw was intended for two purposes: Drivers can skip predefined controls not supported by the hardware (although returning }(hjh7hhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hj~7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjh7ubh would do as well), or disable predefined and private controls after hardware detection without the trouble of reordering control arrays and indices (}(hjh7hhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjh7ubh[ cannot be used to skip private controls because it would prematurely end the enumeration).}(hjh7hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjU7ubeh}(h]jah ]h"]f1ah$]h&]jajKjjuuh1jS7hhhMhj5hhubeh}(h] return-valueah ]h"] return valueah$]h&]uh1hhhhhhhhMubeh}(h](Bioctls-vidioc-queryctrl-vidioc-query-ext-ctrl-and-vidioc-querymenuheh ]h"](Cioctls vidioc_queryctrl, vidioc_query_ext_ctrl and vidioc_querymenuvidioc_queryctrleh$]h&]uh1hhhhhhhhKj }j7hsj }hhsubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksjfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj7error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}f1]jasrefids}(h]haj]jaj ]j aj4]j*aj/]j/aj3]j3aj\4]jR4aj]jaunameids}(j7hj7j7hhjjjNjKj5j5j jjj jj4j5j/j4j3jl4j\4j7j7j7ju nametypes}(j7j7hjjNj5j jjj5j4jl4j7j7uh}(hhj7hhhjjj9jBjjjKjj5jQjjjjj j j4j5jjj/j/j3j3j\4j`4j7j5jjU7j jjj jj5j/jj5j/u footnote_refs}j$8]jas citation_refs} autofootnotes]jU7aautofootnote_refs]jasymbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}j7KsRparse_messages]hsystem_message)}(hhh]h)}(heUnexpected possible title overline or transition. Treating it as ordinary text because it's so short.h]hgUnexpected possible title overline or transition. Treating it as ordinary text because it’s so short.}(hjV8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjS8ubah}(h]h ]h"]h$]h&]levelKtypeINFOlineM.sourcehuh1jQ8hj`ubatransform_messages](jR8)}(hhh]h)}(hhh]h6Hyperlink target "vidioc-queryctrl" is not referenced.}hjt8sbah}(h]h ]h"]h$]h&]uh1hhjq8ubah}(h]h ]h"]h$]h&]levelKtypejl8sourcehlineKuh1jQ8ubjR8)}(hhh]h)}(hhh]h4Hyperlink target "v4l2-queryctrl" is not referenced.}hj8sbah}(h]h ]h"]h$]h&]uh1hhj8ubah}(h]h ]h"]h$]h&]levelKtypejl8sourcehlineKcuh1jQ8ubjR8)}(hhh]h)}(hhh]h9Hyperlink target "v4l2-query-ext-ctrl" is not referenced.}hj8sbah}(h]h ]h"]h$]h&]uh1hhj8ubah}(h]h ]h"]h$]h&]levelKtypejl8sourcehlineKuh1jQ8ubjR8)}(hhh]h)}(hhh]h4Hyperlink target "v4l2-querymenu" is not referenced.}hj8sbah}(h]h ]h"]h$]h&]uh1hhj8ubah}(h]h ]h"]h$]h&]levelKtypejl8sourcehlineMuh1jQ8ubjR8)}(hhh]h)}(hhh]h3Hyperlink target "control-flags" is not referenced.}hj8sbah}(h]h ]h"]h$]h&]uh1hhj8ubah}(h]h ]h"]h$]h&]levelKtypejl8sourcehlineM;uh1jQ8ubjR8)}(hhh]h)}(hhh]h;Hyperlink target "flag-execute-on-write" is not referenced.}hj8sbah}(h]h ]h"]h$]h&]uh1hhj8ubah}(h]h ]h"]h$]h&]levelKtypejl8lineMsourcehuh1jQ8ubjR8)}(hhh]h)}(hhh]h;Hyperlink target "flag-execute-on-write" is not referenced.}hj9sbah}(h]h ]h"]h$]h&]uh1hhj 9ubah}(h]h ]h"]h$]h&]levelKtypejl8lineMsourcehuh1jQ8ubjR8)}(hhh]h)}(hhh]h;Hyperlink target "flag-execute-on-write" is not referenced.}hj*9sbah}(h]h ]h"]h$]h&]uh1hhj'9ubah}(h]h ]h"]h$]h&]levelKtypejl8lineMsourcehuh1jQ8ubjR8)}(hhh]h)}(hhh]h8Hyperlink target "flag-modify-layout" is not referenced.}hjD9sbah}(h]h ]h"]h$]h&]uh1hhjA9ubah}(h]h ]h"]h$]h&]levelKtypejl8lineMsourcehuh1jQ8ubjR8)}(hhh]h)}(hhh]h8Hyperlink target "flag-modify-layout" is not referenced.}hj^9sbah}(h]h ]h"]h$]h&]uh1hhj[9ubah}(h]h ]h"]h$]h&]levelKtypejl8lineMsourcehuh1jQ8ubjR8)}(hhh]h)}(hhh]h8Hyperlink target "flag-modify-layout" is not referenced.}hjx9sbah}(h]h ]h"]h$]h&]uh1hhju9ubah}(h]h ]h"]h$]h&]levelKtypejl8lineMsourcehuh1jQ8ube transformerN include_log] decorationNhhub.