sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget>/translations/zh_CN/userspace-api/media/v4l/vidioc-g-ext-ctrlsmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget>/translations/zh_TW/userspace-api/media/v4l/vidioc-g-ext-ctrlsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget>/translations/it_IT/userspace-api/media/v4l/vidioc-g-ext-ctrlsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget>/translations/ja_JP/userspace-api/media/v4l/vidioc-g-ext-ctrlsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget>/translations/ko_KR/userspace-api/media/v4l/vidioc-g-ext-ctrlsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget>/translations/pt_BR/userspace-api/media/v4l/vidioc-g-ext-ctrlsmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget>/translations/sp_SP/userspace-api/media/v4l/vidioc-g-ext-ctrlsmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h8SPDX-License-Identifier: GFDL-1.1-no-invariants-or-laterh]h8SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhX/var/lib/git/docbuild/linux/Documentation/userspace-api/media/v4l/vidioc-g-ext-ctrls.rsthKubhtarget)}(h.. _VIDIOC_G_EXT_CTRLS:h]h}(h]h ]h"]h$]h&]refidvidioc-g-ext-ctrlsuh1hhKhhhhhhubhsection)}(hhh](htitle)}(hBioctl VIDIOC_G_EXT_CTRLS, VIDIOC_S_EXT_CTRLS, VIDIOC_TRY_EXT_CTRLSh]hBioctl VIDIOC_G_EXT_CTRLS, VIDIOC_S_EXT_CTRLS, VIDIOC_TRY_EXT_CTRLS}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hNameh]hName}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhK ubh paragraph)}(h}VIDIOC_G_EXT_CTRLS - VIDIOC_S_EXT_CTRLS - VIDIOC_TRY_EXT_CTRLS - Get or set the value of several controls, try control valuesh]h}VIDIOC_G_EXT_CTRLS - VIDIOC_S_EXT_CTRLS - VIDIOC_TRY_EXT_CTRLS - Get or set the value of several controls, try control values}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubeh}(h]nameah ]h"]nameah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(hSynopsish]hSynopsis}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](single V4L.VIDIOC_G_EXT_CTRLS (C macro)c.V4L.VIDIOC_G_EXT_CTRLShNtauh1j%hjhhhNhNubhdesc)}(hhh](hdesc_signature)}(hVIDIOC_G_EXT_CTRLSh]hdesc_signature_line)}(hVIDIOC_G_EXT_CTRLSh]h desc_name)}(hVIDIOC_G_EXT_CTRLSh]h desc_sig_name)}(hj?h]hVIDIOC_G_EXT_CTRLS}(hjOhhhNhNubah}(h]h ]nah"]h$]h&]uh1jMhjIubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jGhjChhhhhKubah}(h]h ]h"]h$]h&]hhƌ add_permalinkuh1jAsphinx_line_type declaratorhj=hhhhhKubah}(h]j4ah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1j;hhhKhj8hhubh desc_content)}(hhh]h}(h]h ]h"]h$]h&]uh1jyhj8hhhhhKubeh}(h]h ](cmacroeh"]h$]h&]domainjobjtypejdesctypejnoindex noindexentrynocontentsentryuh1j6hhhjhNhNubh)}(hI``int ioctl(int fd, VIDIOC_G_EXT_CTRLS, struct v4l2_ext_controls *argp)``h]hliteral)}(hjh]hEint ioctl(int fd, VIDIOC_G_EXT_CTRLS, struct v4l2_ext_controls *argp)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2 V4L.VIDIOC_S_EXT_CTRLS (C macro)c.V4L.VIDIOC_S_EXT_CTRLShNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hVIDIOC_S_EXT_CTRLSh]jB)}(hVIDIOC_S_EXT_CTRLSh]jH)}(hVIDIOC_S_EXT_CTRLSh]jN)}(hjh]hVIDIOC_S_EXT_CTRLS}(hjhhhNhNubah}(h]h ]jYah"]h$]h&]uh1jMhjubah}(h]h ](j`jaeh"]h$]h&]hhuh1jGhjhhhhhKubah}(h]h ]h"]h$]h&]hhjkuh1jAjljmhjhhhhhKubah}(h]jah ](jqjreh"]h$]h&]jvjw)jxhuh1j;hhhKhjhhubjz)}(hhh]h}(h]h ]h"]h$]h&]uh1jyhjhhhhhKubeh}(h]h ](jmacroeh"]h$]h&]jjjjjjjjjuh1j6hhhjhNhNubh)}(hI``int ioctl(int fd, VIDIOC_S_EXT_CTRLS, struct v4l2_ext_controls *argp)``h]j)}(hjh]hEint ioctl(int fd, VIDIOC_S_EXT_CTRLS, struct v4l2_ext_controls *argp)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2"V4L.VIDIOC_TRY_EXT_CTRLS (C macro)c.V4L.VIDIOC_TRY_EXT_CTRLShNtauh1j%hjhhhNhNubj7)}(hhh](j<)}(hVIDIOC_TRY_EXT_CTRLSh]jB)}(hVIDIOC_TRY_EXT_CTRLSh]jH)}(hVIDIOC_TRY_EXT_CTRLSh]jN)}(hj!h]hVIDIOC_TRY_EXT_CTRLS}(hj+hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jMhj'ubah}(h]h ](j`jaeh"]h$]h&]hhuh1jGhj#hhhhhKubah}(h]h ]h"]h$]h&]hhjkuh1jAjljmhjhhhhhKubah}(h]jah ](jqjreh"]h$]h&]jvjw)jxhuh1j;hhhKhjhhubjz)}(hhh]h}(h]h ]h"]h$]h&]uh1jyhjhhhhhKubeh}(h]h ](jmacroeh"]h$]h&]jjjjVjjVjjjuh1j6hhhjhNhNubh)}(hK``int ioctl(int fd, VIDIOC_TRY_EXT_CTRLS, struct v4l2_ext_controls *argp)``h]j)}(hj\h]hGint ioctl(int fd, VIDIOC_TRY_EXT_CTRLS, struct v4l2_ext_controls *argp)}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]synopsisah ]h"]synopsisah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Argumentsh]h Arguments}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjyhhhhhKubhdefinition_list)}(hhh](hdefinition_list_item)}(h5``fd`` File descriptor returned by :c:func:`open()`. h](hterm)}(h``fd``h]j)}(hjh]hfd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhhhK"hjubh definition)}(hhh]h)}(h-File descriptor returned by :c:func:`open()`.h](hFile descriptor returned by }(hjhhhNhNubh)}(h:c:func:`open()`h]j)}(hjh]hopen()}(hjhhhNhNubah}(h]h ](xrefjc-funceh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdoc*userspace-api/media/v4l/vidioc-g-ext-ctrls refdomainjreftypefunc refexplicitrefwarn c:parent_keysphinx.domains.c LookupKey)}data]j ASTIdentifier)} identifierV4LsbNasb reftargetopenuh1hhhhK"hjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK"hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhhhK"hjubj)}(h8``argp`` Pointer to struct :c:type:`v4l2_ext_controls`. h](j)}(h``argp``h]j)}(hjh]hargp}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhhhK%hjubj)}(hhh]h)}(h.Pointer to struct :c:type:`v4l2_ext_controls`.h](hPointer to struct }(hj hhhNhNubh)}(h:c:type:`v4l2_ext_controls`h]j)}(hj*h]hv4l2_ext_controls}(hj,hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ext_controlsuh1hhhhK%hj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK%hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhhhK%hjhhubeh}(h]h ]h"]h$]h&]uh1jhjyhhhhhNubeh}(h] argumentsah ]h"] argumentsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Descriptionh]h Description}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjkhhhhhK(ubh)}(hThese ioctls allow the caller to get or set multiple controls atomically. Control IDs are grouped into control classes (see :ref:`ctrl-class`) and all controls in the control array must belong to the same control class.h](h|These ioctls allow the caller to get or set multiple controls atomically. Control IDs are grouped into control classes (see }(hj|hhhNhNubh)}(h:ref:`ctrl-class`h]hinline)}(hjh]h ctrl-class}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnj ctrl-classuh1hhhhK*hj|ubhN) and all controls in the control array must belong to the same control class.}(hj|hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK*hjkhhubh)}(hApplications must always fill in the ``count``, ``which``, ``controls`` and ``reserved`` fields of struct :c:type:`v4l2_ext_controls`, and initialize the struct :c:type:`v4l2_ext_control` array pointed to by the ``controls`` fields.h](h%Applications must always fill in the }(hjhhhNhNubj)}(h ``count``h]hcount}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, }(hjhhhNhNubj)}(h ``which``h]hwhich}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, }hjsbj)}(h ``controls``h]hcontrols}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh and }(hjhhhNhNubj)}(h ``reserved``h]hreserved}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh fields of struct }(hjhhhNhNubh)}(h:c:type:`v4l2_ext_controls`h]j)}(hjh]hv4l2_ext_controls}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ext_controlsuh1hhhhK/hjubh, and initialize the struct }(hjhhhNhNubh)}(h:c:type:`v4l2_ext_control`h]j)}(hj%h]hv4l2_ext_control}(hj'hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ext_controluh1hhhhK/hjubh array pointed to by the }(hjhhhNhNubj)}(h ``controls``h]hcontrols}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh fields.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK/hjkhhubh)}(hXsTo get the current value of a set of controls applications initialize the ``id``, ``size`` and ``reserved2`` fields of each struct :c:type:`v4l2_ext_control` and call the :ref:`VIDIOC_G_EXT_CTRLS ` ioctl. String controls must also set the ``string`` field. Controls of compound types (``V4L2_CTRL_FLAG_HAS_PAYLOAD`` is set) must set the ``ptr`` field.h](hJTo get the current value of a set of controls applications initialize the }(hj^hhhNhNubj)}(h``id``h]hid}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubh, }(hj^hhhNhNubj)}(h``size``h]hsize}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubh and }(hj^hhhNhNubj)}(h ``reserved2``h]h reserved2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubh fields of each struct }(hj^hhhNhNubh)}(h:c:type:`v4l2_ext_control`h]j)}(hjh]hv4l2_ext_control}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ext_controluh1hhhhK5hj^ubh and call the }(hj^hhhNhNubh)}(h.:ref:`VIDIOC_G_EXT_CTRLS `h]j)}(hjh]hVIDIOC_G_EXT_CTRLS}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnjvidioc_g_ext_ctrlsuh1hhhhK5hj^ubh* ioctl. String controls must also set the }(hj^hhhNhNubj)}(h ``string``h]hstring}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubh$ field. Controls of compound types (}(hj^hhhNhNubj)}(h``V4L2_CTRL_FLAG_HAS_PAYLOAD``h]hV4L2_CTRL_FLAG_HAS_PAYLOAD}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubh is set) must set the }(hj^hhhNhNubj)}(h``ptr``h]hptr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^ubh field.}(hj^hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK5hjkhhubh)}(hXIf the ``size`` is too small to receive the control result (only relevant for pointer-type controls like strings), then the driver will set ``size`` to a valid value and return an ``ENOSPC`` error code. You should re-allocate the memory to this new size and try again. For the string type it is possible that the same issue occurs again if the string has grown in the meantime. It is recommended to call :ref:`VIDIOC_QUERYCTRL` first and use ``maximum``\ +1 as the new ``size`` value. It is guaranteed that that is sufficient memory.h](hIf the }(hjhhhNhNubj)}(h``size``h]hsize}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh} is too small to receive the control result (only relevant for pointer-type controls like strings), then the driver will set }(hjhhhNhNubj)}(h``size``h]hsize}(hj9hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh to a valid value and return an }(hjhhhNhNubj)}(h ``ENOSPC``h]hENOSPC}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh error code. You should re-allocate the memory to this new size and try again. For the string type it is possible that the same issue occurs again if the string has grown in the meantime. It is recommended to call }(hjhhhNhNubh)}(h:ref:`VIDIOC_QUERYCTRL`h]j)}(hj_h]hVIDIOC_QUERYCTRL}(hjahhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj]ubah}(h]h ]h"]h$]h&]refdocj refdomainjkreftyperef refexplicitrefwarnjvidioc_queryctrluh1hhhhK`.h](hN-dimensional arrays are set and retrieved row-by-row. You cannot set a partial array, all elements have to be set or retrieved. The total size is calculated as }(hjhhhNhNubj)}(h ``elems``h]helems}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh * }(hjhhhNhNubj)}(h ``elem_size``h]h elem_size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh*. These values can be obtained by calling }(hjhhhNhNubh)}(h/:ref:`VIDIOC_QUERY_EXT_CTRL `h]j)}(hjh]hVIDIOC_QUERY_EXT_CTRL}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnjvidioc_queryctrluh1hhhhKFhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKFhjkhhubh)}(hX:To change the value of a set of controls applications initialize the ``id``, ``size``, ``reserved2`` and ``value/value64/string/ptr`` fields of each struct :c:type:`v4l2_ext_control` and call the :ref:`VIDIOC_S_EXT_CTRLS ` ioctl. The controls will only be set if *all* control values are valid.h](hETo change the value of a set of controls applications initialize the }(hjhhhNhNubj)}(h``id``h]hid}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, }(hjhhhNhNubj)}(h``size``h]hsize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, }hjsbj)}(h ``reserved2``h]h reserved2}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh and }(hjhhhNhNubj)}(h``value/value64/string/ptr``h]hvalue/value64/string/ptr}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh fields of each struct }(hjhhhNhNubh)}(h:c:type:`v4l2_ext_control`h]j)}(hjSh]hv4l2_ext_control}(hjUhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ext_controluh1hhhhKKhjubh and call the }(hjhhhNhNubh)}(h.:ref:`VIDIOC_S_EXT_CTRLS `h]j)}(hjvh]hVIDIOC_S_EXT_CTRLS}(hjxhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnjvidioc_g_ext_ctrlsuh1hhhhKKhjubh) ioctl. The controls will only be set if }(hjhhhNhNubhemphasis)}(h*all*h]hall}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh control values are valid.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKKhjkhhubh)}(hXxTo check if a set of controls have correct values applications initialize the ``id``, ``size``, ``reserved2`` and ``value/value64/string/ptr`` fields of each struct :c:type:`v4l2_ext_control` and call the :ref:`VIDIOC_TRY_EXT_CTRLS ` ioctl. It is up to the driver whether wrong values are automatically adjusted to a valid value or if an error is returned.h](hNTo check if a set of controls have correct values applications initialize the }(hjhhhNhNubj)}(h``id``h]hid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, }(hjhhhNhNubj)}(h``size``h]hsize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, }hjsbj)}(h ``reserved2``h]h reserved2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh and }(hjhhhNhNubj)}(h``value/value64/string/ptr``h]hvalue/value64/string/ptr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh fields of each struct }(hjhhhNhNubh)}(h:c:type:`v4l2_ext_control`h]j)}(hjh]hv4l2_ext_control}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ext_controluh1hhhhKQhjubh and call the }(hjhhhNhNubh)}(h0:ref:`VIDIOC_TRY_EXT_CTRLS `h]j)}(hj'h]hVIDIOC_TRY_EXT_CTRLS}(hj)hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]refdocj refdomainj3reftyperef refexplicitrefwarnjvidioc_g_ext_ctrlsuh1hhhhKQhjubh{ ioctl. It is up to the driver whether wrong values are automatically adjusted to a valid value or if an error is returned.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKQhjkhhubh)}(hXWhen the ``id`` or ``which`` is invalid drivers return an ``EINVAL`` error code. When the value is out of bounds drivers can choose to take the closest valid value or return an ``ERANGE`` error code, whatever seems more appropriate. In the first case the new value is set in struct :c:type:`v4l2_ext_control`. If the new control value is inappropriate (e.g. the given menu index is not supported by the menu control), then this will also result in an ``EINVAL`` error code error.h](h When the }(hjOhhhNhNubj)}(h``id``h]hid}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubh or }(hjOhhhNhNubj)}(h ``which``h]hwhich}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubh is invalid drivers return an }(hjOhhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubhm error code. When the value is out of bounds drivers can choose to take the closest valid value or return an }(hjOhhhNhNubj)}(h ``ERANGE``h]hERANGE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubh_ error code, whatever seems more appropriate. In the first case the new value is set in struct }(hjOhhhNhNubh)}(h:c:type:`v4l2_ext_control`h]j)}(hjh]hv4l2_ext_control}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ext_controluh1hhhhKYhjOubh. If the new control value is inappropriate (e.g. the given menu index is not supported by the menu control), then this will also result in an }(hjOhhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjOubh error code error.}(hjOhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKYhjkhhubh)}(hXIf ``request_fd`` is set to a not-yet-queued :ref:`request ` file descriptor and ``which`` is set to ``V4L2_CTRL_WHICH_REQUEST_VAL``, then the controls are not applied immediately when calling :ref:`VIDIOC_S_EXT_CTRLS `, but instead are applied by the driver for the buffer associated with the same request. If the device does not support requests, then ``EACCES`` will be returned. If requests are supported but an invalid request file descriptor is given, then ``EINVAL`` will be returned.h](hIf }(hjhhhNhNubj)}(h``request_fd``h]h request_fd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh is set to a not-yet-queued }(hjhhhNhNubh)}(h":ref:`request `h]j)}(hjh]hrequest}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnjmedia-request-apiuh1hhhhKahjubh file descriptor and }(hjhhhNhNubj)}(h ``which``h]hwhich}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh is set to }(hjhhhNhNubj)}(h``V4L2_CTRL_WHICH_REQUEST_VAL``h]hV4L2_CTRL_WHICH_REQUEST_VAL}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh=, then the controls are not applied immediately when calling }(hjhhhNhNubh)}(h.:ref:`VIDIOC_S_EXT_CTRLS `h]j)}(hj>h]hVIDIOC_S_EXT_CTRLS}(hj@hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&]refdocj refdomainjJreftyperef refexplicitrefwarnjvidioc_g_ext_ctrlsuh1hhhhKahjubh, but instead are applied by the driver for the buffer associated with the same request. If the device does not support requests, then }(hjhhhNhNubj)}(h ``EACCES``h]hEACCES}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubhc will be returned. If requests are supported but an invalid request file descriptor is given, then }(hjhhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh will be returned.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKahjkhhubh)}(hAn attempt to call :ref:`VIDIOC_S_EXT_CTRLS ` for a request that has already been queued will result in an ``EBUSY`` error.h](hAn attempt to call }(hjhhhNhNubh)}(h.:ref:`VIDIOC_S_EXT_CTRLS `h]j)}(hjh]hVIDIOC_S_EXT_CTRLS}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnjvidioc_g_ext_ctrlsuh1hhhhKjhjubh> for a request that has already been queued will result in an }(hjhhhNhNubj)}(h ``EBUSY``h]hEBUSY}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh error.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKjhjkhhubh)}(hX<If ``request_fd`` is specified and ``which`` is set to ``V4L2_CTRL_WHICH_REQUEST_VAL`` during a call to :ref:`VIDIOC_G_EXT_CTRLS `, then it will return the values of the controls at the time of request completion. If the request is not yet completed, then this will result in an ``EACCES`` error.h](hIf }(hjhhhNhNubj)}(h``request_fd``h]h request_fd}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh is specified and }(hjhhhNhNubj)}(h ``which``h]hwhich}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh is set to }(hjhhhNhNubj)}(h``V4L2_CTRL_WHICH_REQUEST_VAL``h]hV4L2_CTRL_WHICH_REQUEST_VAL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh during a call to }(hjhhhNhNubh)}(h.:ref:`VIDIOC_G_EXT_CTRLS `h]j)}(hj h]hVIDIOC_G_EXT_CTRLS}(hj hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocj refdomainj reftyperef refexplicitrefwarnjvidioc_g_ext_ctrlsuh1hhhhKmhjubh, then it will return the values of the controls at the time of request completion. If the request is not yet completed, then this will result in an }(hjhhhNhNubj)}(h ``EACCES``h]hEACCES}(hj0 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh error.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKmhjkhhubh)}(hThe driver will only set/get these controls if all control values are correct. This prevents the situation where only some of the controls were set/get. Only low-level errors (e. g. a failed i2c command) can still cause this situation.h]hThe driver will only set/get these controls if all control values are correct. This prevents the situation where only some of the controls were set/get. Only low-level errors (e. g. a failed i2c command) can still cause this situation.}(hjH hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKthjkhhubhtabular_col_spec)}(hhh]h}(h]h ]h"]h$]h&]spec|p{6.8cm}|p{4.0cm}|p{6.5cm}|uh1jV hhhKyhjkhhubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2V4L.v4l2_ext_control (C type)c.V4L.v4l2_ext_controlhNtauh1j%hjkhhhNhNubj7)}(hhh](j<)}(hv4l2_ext_controlh]jB)}(htype v4l2_ext_controlh](hdesc_sig_keyword)}(htypeh]htype}(hj~ hhhNhNubah}(h]h ]kah"]h$]h&]uh1j| hjx hhhhhK{ubhdesc_sig_space)}(h h]h }(hj hhhNhNubah}(h]h ]wah"]h$]h&]uh1j hjx hhhhhK{ubjH)}(hv4l2_ext_controlh]jN)}(hjv h]hv4l2_ext_control}(hj hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jMhj ubah}(h]h ](j`jaeh"]h$]h&]hhuh1jGhjx hhhhhK{ubeh}(h]h ]h"]h$]h&]hhjkuh1jAjljmhjt hhhhhK{ubah}(h]jo ah ](jqjreh"]h$]h&]jvjw)jxhuh1j;hhhK{hjq hhubjz)}(hhh]h}(h]h ]h"]h$]h&]uh1jyhjq hhhhhK{ubeh}(h]h ](jtypeeh"]h$]h&]jjjj jj jjjuh1j6hhhjkhNhNubhraw)}(h \footnotesizeh]h \footnotesize}hj sbah}(h]h ]h"]h$]h&]formatlatexhhuh1j hhhK}hjkhhubhtable)}(hhh](h)}(hstruct v4l2_ext_controlh]hstruct v4l2_ext_control}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubhtgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hj ubj )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hj ubj )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hj ubhtbody)}(hhh](hrow)}(hhh](hentry)}(hhh]h)}(h__u32h]h__u32}(hj* hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj' ubah}(h]h ]h"]h$]h&]uh1j% hj" ubj& )}(hhh]h)}(h``id``h]j)}(hjC h]hid}(hjE hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjA ubah}(h]h ]h"]h$]h&]uh1hhhhKhj> ubah}(h]h ]h"]h$]h&]uh1j% hj" ubj& )}(hhh]h)}(h/Identifies the control, set by the application.h]h/Identifies the control, set by the application.}(hja hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj^ ubah}(h]h ]h"]h$]h&]uh1j% hj" ubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h__u32h]h__u32}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj~ ubah}(h]h ]h"]h$]h&]uh1j% hj{ ubj& )}(hhh]h)}(h``size``h]j)}(hj h]hsize}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j% hj{ ubj& )}(hhh]h)}(h7The total size in bytes of the payload of this control.h]h7The total size in bytes of the payload of this control.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j% hj{ ubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh]j& )}(hhh](h)}(hX:cspan:`2` The ``size`` field is normally 0, but for pointer controls this should be set to the size of the memory that contains the payload or that will receive the payload. If :ref:`VIDIOC_G_EXT_CTRLS ` finds that this value is less than is required to store the payload result, then it is set to a value large enough to store the payload result and ``ENOSPC`` is returned.h](h The }(hj hhhNhNubj)}(h``size``h]hsize}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh field is normally 0, but for pointer controls this should be set to the size of the memory that contains the payload or that will receive the payload. If }(hj hhhNhNubh)}(h.:ref:`VIDIOC_G_EXT_CTRLS `h]j)}(hj h]hVIDIOC_G_EXT_CTRLS}(hj hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocj refdomainj reftyperef refexplicitrefwarnjvidioc_g_ext_ctrlsuh1hhhhKhj ubh finds that this value is less than is required to store the payload result, then it is set to a value large enough to store the payload result and }(hj hhhNhNubj)}(h ``ENOSPC``h]hENOSPC}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh is returned.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubhnote)}(hFor string controls, this ``size`` field should not be confused with the length of the string. This field refers to the size of the memory that contains the string. The actual *length* of the string may well be much smaller.h]h)}(hFor string controls, this ``size`` field should not be confused with the length of the string. This field refers to the size of the memory that contains the string. The actual *length* of the string may well be much smaller.h](hFor string controls, this }(hj4 hhhNhNubj)}(h``size``h]hsize}(hj< hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4 ubh field should not be confused with the length of the string. This field refers to the size of the memory that contains the string. The actual }(hj4 hhhNhNubj)}(h*length*h]hlength}(hjN hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4 ubh( of the string may well be much smaller.}(hj4 hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj0 ubah}(h]h ]h"]h$]h&]uh1j. hj ubeh}(h]h ]h"]h$]h&]morecolsKuh1j% hj ubah}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h__u32h]h__u32}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj| ubah}(h]h ]h"]h$]h&]uh1j% hjy ubj& )}(hhh]h)}(h``reserved2``\ [1]h](j)}(h ``reserved2``h]h reserved2}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh [1]}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j% hjy ubj& )}(hhh]h)}(hTReserved for future extensions. Drivers and applications must set the array to zero.h]hTReserved for future extensions. Drivers and applications must set the array to zero.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j% hjy ubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(hunion {h]hunion {}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j% hj ubj& )}(hhh]h)}(h (anonymous)h]h (anonymous)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]morecolsKuh1j% hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h__s32h]h__s32}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j% hj ubj& )}(hhh]h)}(h ``value``h]j)}(hj, h]hvalue}(hj. hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj* ubah}(h]h ]h"]h$]h&]uh1hhhhKhj' ubah}(h]h ]h"]h$]h&]uh1j% hj ubj& )}(hhh]h)}(hNew value or current value. Valid if this control is not of type ``V4L2_CTRL_TYPE_INTEGER64`` and ``V4L2_CTRL_FLAG_HAS_PAYLOAD`` is not set.h](hANew value or current value. Valid if this control is not of type }(hjJ hhhNhNubj)}(h``V4L2_CTRL_TYPE_INTEGER64``h]hV4L2_CTRL_TYPE_INTEGER64}(hjR hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ ubh and }(hjJ hhhNhNubj)}(h``V4L2_CTRL_FLAG_HAS_PAYLOAD``h]hV4L2_CTRL_FLAG_HAS_PAYLOAD}(hjd hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJ ubh is not set.}(hjJ hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjG ubah}(h]h ]h"]h$]h&]uh1j% hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h__s64h]h__s64}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j% hj ubj& )}(hhh]h)}(h ``value64``h]j)}(hj h]hvalue64}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j% hj ubj& )}(hhh]h)}(hNew value or current value. Valid if this control is of type ``V4L2_CTRL_TYPE_INTEGER64`` and ``V4L2_CTRL_FLAG_HAS_PAYLOAD`` is not set.h](h=New value or current value. Valid if this control is of type }(hj hhhNhNubj)}(h``V4L2_CTRL_TYPE_INTEGER64``h]hV4L2_CTRL_TYPE_INTEGER64}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh and }(hj hhhNhNubj)}(h``V4L2_CTRL_FLAG_HAS_PAYLOAD``h]hV4L2_CTRL_FLAG_HAS_PAYLOAD}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh is not set.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j% hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(hchar *h]hchar *}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j% hj ubj& )}(hhh]h)}(h ``string``h]j)}(hj" h]hstring}(hj$ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j% hj ubj& )}(hhh]h)}(hRA pointer to a string. Valid if this control is of type ``V4L2_CTRL_TYPE_STRING``.h](h8A pointer to a string. Valid if this control is of type }(hj@ hhhNhNubj)}(h``V4L2_CTRL_TYPE_STRING``h]hV4L2_CTRL_TYPE_STRING}(hjH hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj@ ubh.}(hj@ hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj= ubah}(h]h ]h"]h$]h&]uh1j% hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h__u8 *h]h__u8 *}(hjr hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjo ubah}(h]h ]h"]h$]h&]uh1j% hjl ubj& )}(hhh]h)}(h``p_u8``h]j)}(hj h]hp_u8}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j% hjl ubj& )}(hhh]h)}(hoA pointer to a matrix control of unsigned 8-bit values. Valid if this control is of type ``V4L2_CTRL_TYPE_U8``.h](hYA pointer to a matrix control of unsigned 8-bit values. Valid if this control is of type }(hj hhhNhNubj)}(h``V4L2_CTRL_TYPE_U8``h]hV4L2_CTRL_TYPE_U8}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j% hjl ubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h__u16 *h]h__u16 *}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j% hj ubj& )}(hhh]h)}(h ``p_u16``h]j)}(hj h]hp_u16}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j% hj ubj& )}(hhh]h)}(hqA pointer to a matrix control of unsigned 16-bit values. Valid if this control is of type ``V4L2_CTRL_TYPE_U16``.h](hZA pointer to a matrix control of unsigned 16-bit values. Valid if this control is of type }(hjhhhNhNubj)}(h``V4L2_CTRL_TYPE_U16``h]hV4L2_CTRL_TYPE_U16}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h__u32 *h]h__u32 *}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjAubah}(h]h ]h"]h$]h&]uh1j% hj>ubj& )}(hhh]h)}(h ``p_u32``h]j)}(hj]h]hp_u32}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1hhhhKhjXubah}(h]h ]h"]h$]h&]uh1j% hj>ubj& )}(hhh]h)}(hqA pointer to a matrix control of unsigned 32-bit values. Valid if this control is of type ``V4L2_CTRL_TYPE_U32``.h](hZA pointer to a matrix control of unsigned 32-bit values. Valid if this control is of type }(hj{hhhNhNubj)}(h``V4L2_CTRL_TYPE_U32``h]hV4L2_CTRL_TYPE_U32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubh.}(hj{hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjxubah}(h]h ]h"]h$]h&]uh1j% hj>ubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h__s32 *h]h__s32 *}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(h ``p_s32``h]j)}(hjh]hp_s32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(hA pointer to a matrix control of signed 32-bit values. Valid if this control is of type ``V4L2_CTRL_TYPE_INTEGER`` and ``V4L2_CTRL_FLAG_HAS_PAYLOAD`` is set.h](hXA pointer to a matrix control of signed 32-bit values. Valid if this control is of type }(hjhhhNhNubj)}(h``V4L2_CTRL_TYPE_INTEGER``h]hV4L2_CTRL_TYPE_INTEGER}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh and }(hjhhhNhNubj)}(h``V4L2_CTRL_FLAG_HAS_PAYLOAD``h]hV4L2_CTRL_FLAG_HAS_PAYLOAD}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh is set.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h__s64 *h]h__s64 *}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj%ubah}(h]h ]h"]h$]h&]uh1j% hj"ubj& )}(hhh]h)}(h ``p_s64``h]j)}(hjAh]hp_s64}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]uh1hhhhKhj<ubah}(h]h ]h"]h$]h&]uh1j% hj"ubj& )}(hhh]h)}(hA pointer to a matrix control of signed 64-bit values. Valid if this control is of type ``V4L2_CTRL_TYPE_INTEGER64`` and ``V4L2_CTRL_FLAG_HAS_PAYLOAD`` is set.h](hXA pointer to a matrix control of signed 64-bit values. Valid if this control is of type }(hj_hhhNhNubj)}(h``V4L2_CTRL_TYPE_INTEGER64``h]hV4L2_CTRL_TYPE_INTEGER64}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubh and }(hj_hhhNhNubj)}(h``V4L2_CTRL_FLAG_HAS_PAYLOAD``h]hV4L2_CTRL_FLAG_HAS_PAYLOAD}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubh is set.}(hj_hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj\ubah}(h]h ]h"]h$]h&]uh1j% hj"ubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(hstruct :c:type:`v4l2_area` *h](hstruct }(hjhhhNhNubh)}(h:c:type:`v4l2_area`h]j)}(hjh]h v4l2_area}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj v4l2_areauh1hhhhKhjubh *}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(h ``p_area``h]j)}(hjh]hp_area}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(hdA pointer to a struct :c:type:`v4l2_area`. Valid if this control is of type ``V4L2_CTRL_TYPE_AREA``.h](hA pointer to a struct }(hjhhhNhNubh)}(h:c:type:`v4l2_area`h]j)}(hjh]h v4l2_area}(hj hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj v4l2_areauh1hhhhKhjubh#. Valid if this control is of type }(hjhhhNhNubj)}(h``V4L2_CTRL_TYPE_AREA``h]hV4L2_CTRL_TYPE_AREA}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(hstruct :c:type:`v4l2_rect` *h](hstruct }(hjRhhhNhNubh)}(h:c:type:`v4l2_rect`h]j)}(hj\h]h v4l2_rect}(hj^hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj v4l2_rectuh1hhhhKhjRubh *}(hjRhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjOubah}(h]h ]h"]h$]h&]uh1j% hjLubj& )}(hhh]h)}(h ``p_rect``h]j)}(hjh]hp_rect}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjLubj& )}(hhh]h)}(hdA pointer to a struct :c:type:`v4l2_rect`. Valid if this control is of type ``V4L2_CTRL_TYPE_RECT``.h](hA pointer to a struct }(hjhhhNhNubh)}(h:c:type:`v4l2_rect`h]j)}(hjh]h v4l2_rect}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj v4l2_rectuh1hhhhKhjubh#. Valid if this control is of type }(hjhhhNhNubj)}(h``V4L2_CTRL_TYPE_RECT``h]hV4L2_CTRL_TYPE_RECT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjLubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h%struct :c:type:`v4l2_ctrl_h264_sps` *h](hstruct }(hjhhhNhNubh)}(h:c:type:`v4l2_ctrl_h264_sps`h]j)}(hj h]hv4l2_ctrl_h264_sps}(hj hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_h264_spsuh1hhhhKhjubh *}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(h``p_h264_sps``h]j)}(hj=h]h p_h264_sps}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubah}(h]h ]h"]h$]h&]uh1hhhhKhj8ubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(hqA pointer to a struct :c:type:`v4l2_ctrl_h264_sps`. Valid if this control is of type ``V4L2_CTRL_TYPE_H264_SPS``.h](hA pointer to a struct }(hj[hhhNhNubh)}(h:c:type:`v4l2_ctrl_h264_sps`h]j)}(hjeh]hv4l2_ctrl_h264_sps}(hjghhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjcubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_h264_spsuh1hhhhKhj[ubh#. Valid if this control is of type }(hj[hhhNhNubj)}(h``V4L2_CTRL_TYPE_H264_SPS``h]hV4L2_CTRL_TYPE_H264_SPS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubh.}(hj[hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjXubah}(h]h ]h"]h$]h&]uh1j% hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h%struct :c:type:`v4l2_ctrl_h264_pps` *h](hstruct }(hjhhhNhNubh)}(h:c:type:`v4l2_ctrl_h264_pps`h]j)}(hjh]hv4l2_ctrl_h264_pps}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_h264_ppsuh1hhhhKhjubh *}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(h``p_h264_pps``h]j)}(hjh]h p_h264_pps}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(hqA pointer to a struct :c:type:`v4l2_ctrl_h264_pps`. Valid if this control is of type ``V4L2_CTRL_TYPE_H264_PPS``.h](hA pointer to a struct }(hj hhhNhNubh)}(h:c:type:`v4l2_ctrl_h264_pps`h]j)}(hjh]hv4l2_ctrl_h264_pps}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_h264_ppsuh1hhhhKhj ubh#. Valid if this control is of type }(hj hhhNhNubj)}(h``V4L2_CTRL_TYPE_H264_PPS``h]hV4L2_CTRL_TYPE_H264_PPS}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h0struct :c:type:`v4l2_ctrl_h264_scaling_matrix` *h](hstruct }(hj_hhhNhNubh)}(h':c:type:`v4l2_ctrl_h264_scaling_matrix`h]j)}(hjih]hv4l2_ctrl_h264_scaling_matrix}(hjkhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjgubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_h264_scaling_matrixuh1hhhhKhj_ubh *}(hj_hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj\ubah}(h]h ]h"]h$]h&]uh1j% hjYubj& )}(hhh]h)}(h``p_h264_scaling_matrix``h]j)}(hjh]hp_h264_scaling_matrix}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjYubj& )}(hhh]h)}(hA pointer to a struct :c:type:`v4l2_ctrl_h264_scaling_matrix`. Valid if this control is of type ``V4L2_CTRL_TYPE_H264_SCALING_MATRIX``.h](hA pointer to a struct }(hjhhhNhNubh)}(h':c:type:`v4l2_ctrl_h264_scaling_matrix`h]j)}(hjh]hv4l2_ctrl_h264_scaling_matrix}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_h264_scaling_matrixuh1hhhhKhjubh#. Valid if this control is of type }(hjhhhNhNubj)}(h&``V4L2_CTRL_TYPE_H264_SCALING_MATRIX``h]h"V4L2_CTRL_TYPE_H264_SCALING_MATRIX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjYubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h.struct :c:type:`v4l2_ctrl_h264_pred_weights` *h](hstruct }(hjhhhNhNubh)}(h%:c:type:`v4l2_ctrl_h264_pred_weights`h]j)}(hjh]hv4l2_ctrl_h264_pred_weights}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_h264_pred_weightsuh1hhhhKhjubh *}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(h``p_h264_pred_weights``h]j)}(hjJh]hp_h264_pred_weights}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjHubah}(h]h ]h"]h$]h&]uh1hhhhKhjEubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(hA pointer to a struct :c:type:`v4l2_ctrl_h264_pred_weights`. Valid if this control is of type ``V4L2_CTRL_TYPE_H264_PRED_WEIGHTS``.h](hA pointer to a struct }(hjhhhhNhNubh)}(h%:c:type:`v4l2_ctrl_h264_pred_weights`h]j)}(hjrh]hv4l2_ctrl_h264_pred_weights}(hjthhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjpubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_h264_pred_weightsuh1hhhhKhjhubh#. Valid if this control is of type }(hjhhhhNhNubj)}(h$``V4L2_CTRL_TYPE_H264_PRED_WEIGHTS``h]h V4L2_CTRL_TYPE_H264_PRED_WEIGHTS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubh.}(hjhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjeubah}(h]h ]h"]h$]h&]uh1j% hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h.struct :c:type:`v4l2_ctrl_h264_slice_params` *h](hstruct }(hjhhhNhNubh)}(h%:c:type:`v4l2_ctrl_h264_slice_params`h]j)}(hjh]hv4l2_ctrl_h264_slice_params}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_h264_slice_paramsuh1hhhhKhjubh *}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(h``p_h264_slice_params``h]j)}(hjh]hp_h264_slice_params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(hA pointer to a struct :c:type:`v4l2_ctrl_h264_slice_params`. Valid if this control is of type ``V4L2_CTRL_TYPE_H264_SLICE_PARAMS``.h](hA pointer to a struct }(hjhhhNhNubh)}(h%:c:type:`v4l2_ctrl_h264_slice_params`h]j)}(hj!h]hv4l2_ctrl_h264_slice_params}(hj#hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_h264_slice_paramsuh1hhhhKhjubh#. Valid if this control is of type }(hjhhhNhNubj)}(h$``V4L2_CTRL_TYPE_H264_SLICE_PARAMS``h]h V4L2_CTRL_TYPE_H264_SLICE_PARAMS}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h/struct :c:type:`v4l2_ctrl_h264_decode_params` *h](hstruct }(hjlhhhNhNubh)}(h&:c:type:`v4l2_ctrl_h264_decode_params`h]j)}(hjvh]hv4l2_ctrl_h264_decode_params}(hjxhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjtubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_h264_decode_paramsuh1hhhhKhjlubh *}(hjlhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjiubah}(h]h ]h"]h$]h&]uh1j% hjfubj& )}(hhh]h)}(h``p_h264_decode_params``h]j)}(hjh]hp_h264_decode_params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjfubj& )}(hhh]h)}(hA pointer to a struct :c:type:`v4l2_ctrl_h264_decode_params`. Valid if this control is of type ``V4L2_CTRL_TYPE_H264_DECODE_PARAMS``.h](hA pointer to a struct }(hjhhhNhNubh)}(h&:c:type:`v4l2_ctrl_h264_decode_params`h]j)}(hjh]hv4l2_ctrl_h264_decode_params}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_h264_decode_paramsuh1hhhhKhjubh#. Valid if this control is of type }(hjhhhNhNubj)}(h%``V4L2_CTRL_TYPE_H264_DECODE_PARAMS``h]h!V4L2_CTRL_TYPE_H264_DECODE_PARAMS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjfubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h(struct :c:type:`v4l2_ctrl_fwht_params` *h](hstruct }(hjhhhNhNubh)}(h:c:type:`v4l2_ctrl_fwht_params`h]j)}(hj%h]hv4l2_ctrl_fwht_params}(hj'hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_fwht_paramsuh1hhhhKhjubh *}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(h``p_fwht_params``h]j)}(hjWh]h p_fwht_params}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&]uh1hhhhKhjRubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(hwA pointer to a struct :c:type:`v4l2_ctrl_fwht_params`. Valid if this control is of type ``V4L2_CTRL_TYPE_FWHT_PARAMS``.h](hA pointer to a struct }(hjuhhhNhNubh)}(h:c:type:`v4l2_ctrl_fwht_params`h]j)}(hjh]hv4l2_ctrl_fwht_params}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj}ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_fwht_paramsuh1hhhhKhjuubh#. Valid if this control is of type }(hjuhhhNhNubj)}(h``V4L2_CTRL_TYPE_FWHT_PARAMS``h]hV4L2_CTRL_TYPE_FWHT_PARAMS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubh.}(hjuhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjrubah}(h]h ]h"]h$]h&]uh1j% hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h&struct :c:type:`v4l2_ctrl_vp8_frame` *h](hstruct }(hjhhhNhNubh)}(h:c:type:`v4l2_ctrl_vp8_frame`h]j)}(hjh]hv4l2_ctrl_vp8_frame}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_vp8_frameuh1hhhhKhjubh *}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(h``p_vp8_frame``h]j)}(hjh]h p_vp8_frame}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(hsA pointer to a struct :c:type:`v4l2_ctrl_vp8_frame`. Valid if this control is of type ``V4L2_CTRL_TYPE_VP8_FRAME``.h](hA pointer to a struct }(hj$hhhNhNubh)}(h:c:type:`v4l2_ctrl_vp8_frame`h]j)}(hj.h]hv4l2_ctrl_vp8_frame}(hj0hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_vp8_frameuh1hhhhKhj$ubh#. Valid if this control is of type }(hj$hhhNhNubj)}(h``V4L2_CTRL_TYPE_VP8_FRAME``h]hV4L2_CTRL_TYPE_VP8_FRAME}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubh.}(hj$hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj!ubah}(h]h ]h"]h$]h&]uh1j% hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h+struct :c:type:`v4l2_ctrl_mpeg2_sequence` *h](hstruct }(hjyhhhNhNubh)}(h":c:type:`v4l2_ctrl_mpeg2_sequence`h]j)}(hjh]hv4l2_ctrl_mpeg2_sequence}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_mpeg2_sequenceuh1hhhhKhjyubh *}(hjyhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjvubah}(h]h ]h"]h$]h&]uh1j% hjsubj& )}(hhh]h)}(h``p_mpeg2_sequence``h]j)}(hjh]hp_mpeg2_sequence}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjsubj& )}(hhh]h)}(h}A pointer to a struct :c:type:`v4l2_ctrl_mpeg2_sequence`. Valid if this control is of type ``V4L2_CTRL_TYPE_MPEG2_SEQUENCE``.h](hA pointer to a struct }(hjhhhNhNubh)}(h":c:type:`v4l2_ctrl_mpeg2_sequence`h]j)}(hjh]hv4l2_ctrl_mpeg2_sequence}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_mpeg2_sequenceuh1hhhhKhjubh#. Valid if this control is of type }(hjhhhNhNubj)}(h!``V4L2_CTRL_TYPE_MPEG2_SEQUENCE``h]hV4L2_CTRL_TYPE_MPEG2_SEQUENCE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjsubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h*struct :c:type:`v4l2_ctrl_mpeg2_picture` *h](hstruct }(hj(hhhNhNubh)}(h!:c:type:`v4l2_ctrl_mpeg2_picture`h]j)}(hj2h]hv4l2_ctrl_mpeg2_picture}(hj4hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_mpeg2_pictureuh1hhhhKhj(ubh *}(hj(hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj%ubah}(h]h ]h"]h$]h&]uh1j% hj"ubj& )}(hhh]h)}(h``p_mpeg2_picture``h]j)}(hjdh]hp_mpeg2_picture}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjbubah}(h]h ]h"]h$]h&]uh1hhhhKhj_ubah}(h]h ]h"]h$]h&]uh1j% hj"ubj& )}(hhh]h)}(h{A pointer to a struct :c:type:`v4l2_ctrl_mpeg2_picture`. Valid if this control is of type ``V4L2_CTRL_TYPE_MPEG2_PICTURE``.h](hA pointer to a struct }(hjhhhNhNubh)}(h!:c:type:`v4l2_ctrl_mpeg2_picture`h]j)}(hjh]hv4l2_ctrl_mpeg2_picture}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_mpeg2_pictureuh1hhhhKhjubh#. Valid if this control is of type }(hjhhhNhNubj)}(h ``V4L2_CTRL_TYPE_MPEG2_PICTURE``h]hV4L2_CTRL_TYPE_MPEG2_PICTURE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hj"ubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h/struct :c:type:`v4l2_ctrl_mpeg2_quantisation` *h](hstruct }(hjhhhNhNubh)}(h&:c:type:`v4l2_ctrl_mpeg2_quantisation`h]j)}(hjh]hv4l2_ctrl_mpeg2_quantisation}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_mpeg2_quantisationuh1hhhhKhjubh *}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(h``p_mpeg2_quantisation``h]j)}(hjh]hp_mpeg2_quantisation}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(hA pointer to a struct :c:type:`v4l2_ctrl_mpeg2_quantisation`. Valid if this control is of type ``V4L2_CTRL_TYPE_MPEG2_QUANTISATION``.h](hA pointer to a struct }(hj1hhhNhNubh)}(h&:c:type:`v4l2_ctrl_mpeg2_quantisation`h]j)}(hj;h]hv4l2_ctrl_mpeg2_quantisation}(hj=hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_mpeg2_quantisationuh1hhhhKhj1ubh#. Valid if this control is of type }(hj1hhhNhNubj)}(h%``V4L2_CTRL_TYPE_MPEG2_QUANTISATION``h]h!V4L2_CTRL_TYPE_MPEG2_QUANTISATION}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubh.}(hj1hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj.ubah}(h]h ]h"]h$]h&]uh1j% hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h/struct :c:type:`v4l2_ctrl_vp9_compressed_hdr` *h](hstruct }(hjhhhNhNubh)}(h&:c:type:`v4l2_ctrl_vp9_compressed_hdr`h]j)}(hjh]hv4l2_ctrl_vp9_compressed_hdr}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_vp9_compressed_hdruh1hhhhKhjubh *}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(h``p_vp9_compressed_hdr_probs``h]j)}(hjh]hp_vp9_compressed_hdr_probs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(hA pointer to a struct :c:type:`v4l2_ctrl_vp9_compressed_hdr`. Valid if this control is of type ``V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR``.h](hA pointer to a struct }(hjhhhNhNubh)}(h&:c:type:`v4l2_ctrl_vp9_compressed_hdr`h]j)}(hjh]hv4l2_ctrl_vp9_compressed_hdr}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_vp9_compressed_hdruh1hhhhKhjubh#. Valid if this control is of type }(hjhhhNhNubj)}(h%``V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR``h]h!V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j% hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h&struct :c:type:`v4l2_ctrl_vp9_frame` *h](hstruct }(hj5hhhNhNubh)}(h:c:type:`v4l2_ctrl_vp9_frame`h]j)}(hj?h]hv4l2_ctrl_vp9_frame}(hjAhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_vp9_frameuh1hhhhKhj5ubh *}(hj5hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj2ubah}(h]h ]h"]h$]h&]uh1j% hj/ubj& )}(hhh]h)}(h``p_vp9_frame``h]j)}(hjqh]h p_vp9_frame}(hjshhhNhNubah}(h]h ]h"]h$]h&]uh1jhjoubah}(h]h ]h"]h$]h&]uh1hhhhKhjlubah}(h]h ]h"]h$]h&]uh1j% hj/ubj& )}(hhh]h)}(hsA pointer to a struct :c:type:`v4l2_ctrl_vp9_frame`. Valid if this control is of type ``V4L2_CTRL_TYPE_VP9_FRAME``.h](hA pointer to a struct }(hjhhhNhNubh)}(h:c:type:`v4l2_ctrl_vp9_frame`h]j)}(hjh]hv4l2_ctrl_vp9_frame}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_vp9_frameuh1hhhhMhjubh#. Valid if this control is of type }(hjhhhNhNubj)}(h``V4L2_CTRL_TYPE_VP9_FRAME``h]hV4L2_CTRL_TYPE_VP9_FRAME}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j% hj/ubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h+struct :c:type:`v4l2_ctrl_hdr10_cll_info` *h](hstruct }(hjhhhNhNubh)}(h":c:type:`v4l2_ctrl_hdr10_cll_info`h]j)}(hjh]hv4l2_ctrl_hdr10_cll_info}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_hdr10_cll_infouh1hhhhMhjubh *}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(h``p_hdr10_cll``h]j)}(hj h]h p_hdr10_cll}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(h}A pointer to a struct :c:type:`v4l2_ctrl_hdr10_cll_info`. Valid if this control is of type ``V4L2_CTRL_TYPE_HDR10_CLL_INFO``.h](hA pointer to a struct }(hj>hhhNhNubh)}(h":c:type:`v4l2_ctrl_hdr10_cll_info`h]j)}(hjHh]hv4l2_ctrl_hdr10_cll_info}(hjJhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_hdr10_cll_infouh1hhhhMhj>ubh#. Valid if this control is of type }(hj>hhhNhNubj)}(h!``V4L2_CTRL_TYPE_HDR10_CLL_INFO``h]hV4L2_CTRL_TYPE_HDR10_CLL_INFO}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>ubh.}(hj>hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj;ubah}(h]h ]h"]h$]h&]uh1j% hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h4struct :c:type:`v4l2_ctrl_hdr10_mastering_display` *h](hstruct }(hjhhhNhNubh)}(h+:c:type:`v4l2_ctrl_hdr10_mastering_display`h]j)}(hjh]h!v4l2_ctrl_hdr10_mastering_display}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj!v4l2_ctrl_hdr10_mastering_displayuh1hhhhMhjubh *}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(h``p_hdr10_mastering``h]j)}(hjh]hp_hdr10_mastering}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(hA pointer to a struct :c:type:`v4l2_ctrl_hdr10_mastering_display`. Valid if this control is of type ``V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY``.h](hA pointer to a struct }(hjhhhNhNubh)}(h+:c:type:`v4l2_ctrl_hdr10_mastering_display`h]j)}(hjh]h!v4l2_ctrl_hdr10_mastering_display}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj!v4l2_ctrl_hdr10_mastering_displayuh1hhhhMhjubh#. Valid if this control is of type }(hjhhhNhNubj)}(h*``V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY``h]h&V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j% hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h%struct :c:type:`v4l2_ctrl_hevc_sps` *h](hstruct }(hjBhhhNhNubh)}(h:c:type:`v4l2_ctrl_hevc_sps`h]j)}(hjLh]hv4l2_ctrl_hevc_sps}(hjNhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjJubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_hevc_spsuh1hhhhM hjBubh *}(hjBhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM hj?ubah}(h]h ]h"]h$]h&]uh1j% hj<ubj& )}(hhh]h)}(h``p_hevc_sps``h]j)}(hj~h]h p_hevc_sps}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj|ubah}(h]h ]h"]h$]h&]uh1hhhhM hjyubah}(h]h ]h"]h$]h&]uh1j% hj<ubj& )}(hhh]h)}(hqA pointer to a struct :c:type:`v4l2_ctrl_hevc_sps`. Valid if this control is of type ``V4L2_CTRL_TYPE_HEVC_SPS``.h](hA pointer to a struct }(hjhhhNhNubh)}(h:c:type:`v4l2_ctrl_hevc_sps`h]j)}(hjh]hv4l2_ctrl_hevc_sps}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_hevc_spsuh1hhhhM hjubh#. Valid if this control is of type }(hjhhhNhNubj)}(h``V4L2_CTRL_TYPE_HEVC_SPS``h]hV4L2_CTRL_TYPE_HEVC_SPS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM hjubah}(h]h ]h"]h$]h&]uh1j% hj<ubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h%struct :c:type:`v4l2_ctrl_hevc_pps` *h](hstruct }(hjhhhNhNubh)}(h:c:type:`v4l2_ctrl_hevc_pps`h]j)}(hjh]hv4l2_ctrl_hevc_pps}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_hevc_ppsuh1hhhhMhjubh *}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(h``p_hevc_pps``h]j)}(hj-h]h p_hevc_pps}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1hhhhMhj(ubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(hqA pointer to a struct :c:type:`v4l2_ctrl_hevc_pps`. Valid if this control is of type ``V4L2_CTRL_TYPE_HEVC_PPS``.h](hA pointer to a struct }(hjKhhhNhNubh)}(h:c:type:`v4l2_ctrl_hevc_pps`h]j)}(hjUh]hv4l2_ctrl_hevc_pps}(hjWhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_hevc_ppsuh1hhhhMhjKubh#. Valid if this control is of type }(hjKhhhNhNubj)}(h``V4L2_CTRL_TYPE_HEVC_PPS``h]hV4L2_CTRL_TYPE_HEVC_PPS}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubh.}(hjKhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjHubah}(h]h ]h"]h$]h&]uh1j% hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h.struct :c:type:`v4l2_ctrl_hevc_slice_params` *h](hstruct }(hjhhhNhNubh)}(h%:c:type:`v4l2_ctrl_hevc_slice_params`h]j)}(hjh]hv4l2_ctrl_hevc_slice_params}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_hevc_slice_paramsuh1hhhhMhjubh *}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(h``p_hevc_slice_params``h]j)}(hjh]hp_hevc_slice_params}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(hA pointer to a struct :c:type:`v4l2_ctrl_hevc_slice_params`. Valid if this control is of type ``V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS``.h](hA pointer to a struct }(hjhhhNhNubh)}(h%:c:type:`v4l2_ctrl_hevc_slice_params`h]j)}(hjh]hv4l2_ctrl_hevc_slice_params}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_hevc_slice_paramsuh1hhhhMhjubh#. Valid if this control is of type }(hjhhhNhNubj)}(h$``V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS``h]h V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j% hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h0struct :c:type:`v4l2_ctrl_hevc_scaling_matrix` *h](hstruct }(hjOhhhNhNubh)}(h':c:type:`v4l2_ctrl_hevc_scaling_matrix`h]j)}(hjYh]hv4l2_ctrl_hevc_scaling_matrix}(hj[hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjWubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_hevc_scaling_matrixuh1hhhhMhjOubh *}(hjOhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjLubah}(h]h ]h"]h$]h&]uh1j% hjIubj& )}(hhh]h)}(h``p_hevc_scaling_matrix``h]j)}(hjh]hp_hevc_scaling_matrix}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j% hjIubj& )}(hhh]h)}(hA pointer to a struct :c:type:`v4l2_ctrl_hevc_scaling_matrix`. Valid if this control is of type ``V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX``.h](hA pointer to a struct }(hjhhhNhNubh)}(h':c:type:`v4l2_ctrl_hevc_scaling_matrix`h]j)}(hjh]hv4l2_ctrl_hevc_scaling_matrix}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_hevc_scaling_matrixuh1hhhhMhjubh#. Valid if this control is of type }(hjhhhNhNubj)}(h&``V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX``h]h"V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j% hjIubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h/struct :c:type:`v4l2_ctrl_hevc_decode_params` *h](hstruct }(hjhhhNhNubh)}(h&:c:type:`v4l2_ctrl_hevc_decode_params`h]j)}(hjh]hv4l2_ctrl_hevc_decode_params}(hj hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_hevc_decode_paramsuh1hhhhMhjubh *}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(h``p_hevc_decode_params``h]j)}(hj:h]hp_hevc_decode_params}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj8ubah}(h]h ]h"]h$]h&]uh1hhhhMhj5ubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(hA pointer to a struct :c:type:`v4l2_ctrl_hevc_decode_params`. Valid if this control is of type ``V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS``.h](hA pointer to a struct }(hjXhhhNhNubh)}(h&:c:type:`v4l2_ctrl_hevc_decode_params`h]j)}(hjbh]hv4l2_ctrl_hevc_decode_params}(hjdhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_hevc_decode_paramsuh1hhhhMhjXubh#. Valid if this control is of type }(hjXhhhNhNubj)}(h%``V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS``h]h!V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjXubh.}(hjXhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjUubah}(h]h ]h"]h$]h&]uh1j% hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h)struct :c:type:`v4l2_ctrl_av1_sequence` *h](hstruct }(hjhhhNhNubh)}(h :c:type:`v4l2_ctrl_av1_sequence`h]j)}(hjh]hv4l2_ctrl_av1_sequence}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_av1_sequenceuh1hhhhMhjubh *}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(h``p_av1_sequence``h]j)}(hjh]hp_av1_sequence}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1j% hjubj& )}(hhh]h)}(hyA pointer to a struct :c:type:`v4l2_ctrl_av1_sequence`. Valid if this control is of type ``V4L2_CTRL_TYPE_AV1_SEQUENCE``.h](hA pointer to a struct }(hjhhhNhNubh)}(h :c:type:`v4l2_ctrl_av1_sequence`h]j)}(hjh]hv4l2_ctrl_av1_sequence}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_av1_sequenceuh1hhhhM hjubh#. Valid if this control is of type }(hjhhhNhNubj)}(h``V4L2_CTRL_TYPE_AV1_SEQUENCE``h]hV4L2_CTRL_TYPE_AV1_SEQUENCE}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM hjubah}(h]h ]h"]h$]h&]uh1j% hjubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h1struct :c:type:`v4l2_ctrl_av1_tile_group_entry` *h](hstruct }(hj\hhhNhNubh)}(h(:c:type:`v4l2_ctrl_av1_tile_group_entry`h]j)}(hjfh]hv4l2_ctrl_av1_tile_group_entry}(hjhhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjdubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_av1_tile_group_entryuh1hhhhM"hj\ubh *}(hj\hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM"hjYubah}(h]h ]h"]h$]h&]uh1j% hjVubj& )}(hhh]h)}(h``p_av1_tile_group_entry``h]j)}(hjh]hp_av1_tile_group_entry}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhM#hjubah}(h]h ]h"]h$]h&]uh1j% hjVubj& )}(hhh]h)}(hA pointer to a struct :c:type:`v4l2_ctrl_av1_tile_group_entry`. Valid if this control is of type ``V4L2_CTRL_TYPE_AV1_TILE_GROUP_ENTRY``.h](hA pointer to a struct }(hjhhhNhNubh)}(h(:c:type:`v4l2_ctrl_av1_tile_group_entry`h]j)}(hjh]hv4l2_ctrl_av1_tile_group_entry}(hjhhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_av1_tile_group_entryuh1hhhhM$hjubh#. Valid if this control is of type }(hjhhhNhNubj)}(h'``V4L2_CTRL_TYPE_AV1_TILE_GROUP_ENTRY``h]h#V4L2_CTRL_TYPE_AV1_TILE_GROUP_ENTRY}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM$hjubah}(h]h ]h"]h$]h&]uh1j% hjVubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h&struct :c:type:`v4l2_ctrl_av1_frame` *h](hstruct }(hj hhhNhNubh)}(h:c:type:`v4l2_ctrl_av1_frame`h]j)}(hj h]hv4l2_ctrl_av1_frame}(hj hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_av1_frameuh1hhhhM&hj ubh *}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM&hj ubah}(h]h ]h"]h$]h&]uh1j% hj ubj& )}(hhh]h)}(h``p_av1_frame``h]j)}(hjG h]h p_av1_frame}(hjI hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjE ubah}(h]h ]h"]h$]h&]uh1hhhhM'hjB ubah}(h]h ]h"]h$]h&]uh1j% hj ubj& )}(hhh]h)}(hsA pointer to a struct :c:type:`v4l2_ctrl_av1_frame`. Valid if this control is of type ``V4L2_CTRL_TYPE_AV1_FRAME``.h](hA pointer to a struct }(hje hhhNhNubh)}(h:c:type:`v4l2_ctrl_av1_frame`h]j)}(hjo h]hv4l2_ctrl_av1_frame}(hjq hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjm ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_av1_frameuh1hhhhM(hje ubh#. Valid if this control is of type }(hje hhhNhNubj)}(h``V4L2_CTRL_TYPE_AV1_FRAME``h]hV4L2_CTRL_TYPE_AV1_FRAME}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhje ubh.}(hje hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM(hjb ubah}(h]h ]h"]h$]h&]uh1j% hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h+struct :c:type:`v4l2_ctrl_av1_film_grain` *h](hstruct }(hj hhhNhNubh)}(h":c:type:`v4l2_ctrl_av1_film_grain`h]j)}(hj h]hv4l2_ctrl_av1_film_grain}(hj hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_av1_film_grainuh1hhhhM*hj ubh *}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM*hj ubah}(h]h ]h"]h$]h&]uh1j% hj ubj& )}(hhh]h)}(h``p_av1_film_grain``h]j)}(hj h]hp_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&]uh1j% hj ubj& )}(hhh]h)}(h}A pointer to a struct :c:type:`v4l2_ctrl_av1_film_grain`. Valid if this control is of type ``V4L2_CTRL_TYPE_AV1_FILM_GRAIN``.h](hA pointer to a struct }(hj!hhhNhNubh)}(h":c:type:`v4l2_ctrl_av1_film_grain`h]j)}(hj!h]hv4l2_ctrl_av1_film_grain}(hj !hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_av1_film_grainuh1hhhhM,hj!ubh#. Valid if this control is of type }(hj!hhhNhNubj)}(h!``V4L2_CTRL_TYPE_AV1_FILM_GRAIN``h]hV4L2_CTRL_TYPE_AV1_FILM_GRAIN}(hj?!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubh.}(hj!hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM,hj!ubah}(h]h ]h"]h$]h&]uh1j% hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h+struct :c:type:`v4l2_ctrl_hdr10_cll_info` *h](hstruct }(hji!hhhNhNubh)}(h":c:type:`v4l2_ctrl_hdr10_cll_info`h]j)}(hjs!h]hv4l2_ctrl_hdr10_cll_info}(hju!hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjq!ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_hdr10_cll_infouh1hhhhM.hji!ubh *}(hji!hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM.hjf!ubah}(h]h ]h"]h$]h&]uh1j% hjc!ubj& )}(hhh]h)}(h``p_hdr10_cll_info``h]j)}(hj!h]hp_hdr10_cll_info}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]uh1hhhhM/hj!ubah}(h]h ]h"]h$]h&]uh1j% hjc!ubj& )}(hhh]h)}(h}A pointer to a struct :c:type:`v4l2_ctrl_hdr10_cll_info`. Valid if this control is of type ``V4L2_CTRL_TYPE_HDR10_CLL_INFO``.h](hA pointer to a struct }(hj!hhhNhNubh)}(h":c:type:`v4l2_ctrl_hdr10_cll_info`h]j)}(hj!h]hv4l2_ctrl_hdr10_cll_info}(hj!hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ctrl_hdr10_cll_infouh1hhhhM0hj!ubh#. Valid if this control is of type }(hj!hhhNhNubj)}(h!``V4L2_CTRL_TYPE_HDR10_CLL_INFO``h]hV4L2_CTRL_TYPE_HDR10_CLL_INFO}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj!ubh.}(hj!hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM0hj!ubah}(h]h ]h"]h$]h&]uh1j% hjc!ubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h4struct :c:type:`v4l2_ctrl_hdr10_mastering_display` *h](hstruct }(hj"hhhNhNubh)}(h+:c:type:`v4l2_ctrl_hdr10_mastering_display`h]j)}(hj""h]h!v4l2_ctrl_hdr10_mastering_display}(hj$"hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj "ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj!v4l2_ctrl_hdr10_mastering_displayuh1hhhhM2hj"ubh *}(hj"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM2hj"ubah}(h]h ]h"]h$]h&]uh1j% hj"ubj& )}(hhh]h)}(h``p_hdr10_mastering_display``h]j)}(hjT"h]hp_hdr10_mastering_display}(hjV"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjR"ubah}(h]h ]h"]h$]h&]uh1hhhhM3hjO"ubah}(h]h ]h"]h$]h&]uh1j% hj"ubj& )}(hhh]h)}(hA pointer to a struct :c:type:`v4l2_ctrl_hdr10_mastering_display`. Valid if this control is of type ``V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY``.h](hA pointer to a struct }(hjr"hhhNhNubh)}(h+:c:type:`v4l2_ctrl_hdr10_mastering_display`h]j)}(hj|"h]h!v4l2_ctrl_hdr10_mastering_display}(hj~"hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjz"ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjj!v4l2_ctrl_hdr10_mastering_displayuh1hhhhM4hjr"ubh#. Valid if this control is of type }(hjr"hhhNhNubj)}(h*``V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY``h]h&V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjr"ubh.}(hjr"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM4hjo"ubah}(h]h ]h"]h$]h&]uh1j% hj"ubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(hvoid *h]hvoid *}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM6hj"ubah}(h]h ]h"]h$]h&]uh1j% hj"ubj& )}(hhh]h)}(h``ptr``h]j)}(hj"h]hptr}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1hhhhM7hj"ubah}(h]h ]h"]h$]h&]uh1j% hj"ubj& )}(hhh]h)}(hA pointer to a compound type which can be an N-dimensional array and/or a compound type (the control's type is >= ``V4L2_CTRL_COMPOUND_TYPES``). Valid if ``V4L2_CTRL_FLAG_HAS_PAYLOAD`` is set for this control.h](htA pointer to a compound type which can be an N-dimensional array and/or a compound type (the control’s type is >= }(hj"hhhNhNubj)}(h``V4L2_CTRL_COMPOUND_TYPES``h]hV4L2_CTRL_COMPOUND_TYPES}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubh ). Valid if }(hj"hhhNhNubj)}(h``V4L2_CTRL_FLAG_HAS_PAYLOAD``h]hV4L2_CTRL_FLAG_HAS_PAYLOAD}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"ubh is set for this control.}(hj"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM8hj"ubah}(h]h ]h"]h$]h&]uh1j% hj"ubeh}(h]h ]h"]h$]h&]uh1j hj ubj! )}(hhh](j& )}(hhh]h)}(h}h]h}}(hjB#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM<hj?#ubah}(h]h ]h"]h$]h&]uh1j% hj<#ubj& )}(hhh]h}(h]h ]h"]h$]h&]morecolsKuh1j% hj<#ubeh}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]colsKuh1j hj ubeh}(h]id1ah ] longtableah"]h$]h&]uh1j hjkhhhNhNubj )}(h \normalsizeh]h \normalsize}hj{#sbah}(h]h ]h"]h$]h&]formatlatexhhuh1j hhhM?hjkhhubjW )}(hhh]h}(h]h ]h"]h$]h&]ja |p{4.0cm}|p{2.5cm}|p{10.8cm}|uh1jV hhhMChjkhhubj&)}(hhh]h}(h]h ]h"]h$]h&]entries](j2V4L.v4l2_ext_controls (C type)c.V4L.v4l2_ext_controlshNtauh1j%hjkhhhNhNubj7)}(hhh](j<)}(hv4l2_ext_controlsh]jB)}(htype v4l2_ext_controlsh](j} )}(hj h]htype}(hj#hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j| hj#hhhhhMEubj )}(h h]h }(hj#hhhNhNubah}(h]h ]j ah"]h$]h&]uh1j hj#hhhhhMEubjH)}(hv4l2_ext_controlsh]jN)}(hj#h]hv4l2_ext_controls}(hj#hhhNhNubah}(h]h ]jYah"]h$]h&]uh1jMhj#ubah}(h]h ](j`jaeh"]h$]h&]hhuh1jGhj#hhhhhMEubeh}(h]h ]h"]h$]h&]hhjkuh1jAjljmhj#hhhhhMEubah}(h]j#ah ](jqjreh"]h$]h&]jvjw)jxhuh1j;hhhMEhj#hhubjz)}(hhh]h}(h]h ]h"]h$]h&]uh1jyhj#hhhhhMEubeh}(h]h ](jtypeeh"]h$]h&]jjjj#jj#jjjuh1j6hhhjkhNhNubj )}(hhh](h)}(hstruct v4l2_ext_controlsh]hstruct v4l2_ext_controls}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMIhj#ubj )}(hhh](j )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hj $ubj )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hj $ubj )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hj $ubj )}(hhh](j! )}(hhh](j& )}(hhh]h)}(hunion {h]hunion {}(hj7$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMNhj4$ubah}(h]h ]h"]h$]h&]uh1j% hj1$ubj& )}(hhh]h)}(h (anonymous)h]h (anonymous)}(hjN$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMOhjK$ubah}(h]h ]h"]h$]h&]morecolsKuh1j% hj1$ubeh}(h]h ]h"]h$]h&]uh1j hj.$ubj! )}(hhh](j& )}(hhh]h)}(h__u32h]h__u32}(hjo$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMPhjl$ubah}(h]h ]h"]h$]h&]uh1j% hji$ubj& )}(hhh]h)}(h ``which``h]j)}(hj$h]hwhich}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1hhhhMQhj$ubah}(h]h ]h"]h$]h&]uh1j% hji$ubj& )}(hhh]h)}(h*Which value of the control to get/set/try.h]h*Which value of the control to get/set/try.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMRhj$ubah}(h]h ]h"]h$]h&]uh1j% hji$ubeh}(h]h ]h"]h$]h&]uh1j hj.$ubj! )}(hhh]j& )}(hhh](h)}(hXh:cspan:`2` ``V4L2_CTRL_WHICH_CUR_VAL`` will return the current value of the control, ``V4L2_CTRL_WHICH_DEF_VAL`` will return the default value of the control, ``V4L2_CTRL_WHICH_MIN_VAL`` will return the minimum value of the control, and ``V4L2_CTRL_WHICH_MAX_VAL`` will return the maximum value of the control. ``V4L2_CTRL_WHICH_REQUEST_VAL`` indicates that the control value has to be retrieved from a request or tried/set for a request. In that case the ``request_fd`` field contains the file descriptor of the request that should be used. If the device does not support requests, then ``EACCES`` will be returned.h](h }(hj$hhhNhNubj)}(h``V4L2_CTRL_WHICH_CUR_VAL``h]hV4L2_CTRL_WHICH_CUR_VAL}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubh/ will return the current value of the control, }(hj$hhhNhNubj)}(h``V4L2_CTRL_WHICH_DEF_VAL``h]hV4L2_CTRL_WHICH_DEF_VAL}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubh/ will return the default value of the control, }(hj$hhhNhNubj)}(h``V4L2_CTRL_WHICH_MIN_VAL``h]hV4L2_CTRL_WHICH_MIN_VAL}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubh3 will return the minimum value of the control, and }(hj$hhhNhNubj)}(h``V4L2_CTRL_WHICH_MAX_VAL``h]hV4L2_CTRL_WHICH_MAX_VAL}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubh/ will return the maximum value of the control. }(hj$hhhNhNubj)}(h``V4L2_CTRL_WHICH_REQUEST_VAL``h]hV4L2_CTRL_WHICH_REQUEST_VAL}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubhr indicates that the control value has to be retrieved from a request or tried/set for a request. In that case the }(hj$hhhNhNubj)}(h``request_fd``h]h request_fd}(hj(%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubhv field contains the file descriptor of the request that should be used. If the device does not support requests, then }(hj$hhhNhNubj)}(h ``EACCES``h]hEACCES}(hj:%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ubh will be returned.}(hj$hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMShj$ubh)}(hWhen using ``V4L2_CTRL_WHICH_DEF_VAL``, ``V4L2_CTRL_WHICH_MIN_VAL`` or ``V4L2_CTRL_WHICH_MAX_VAL`` be aware that you can only get the default/minimum/maximum value of the control, you cannot set or try it.h](h When using }(hjR%hhhNhNubj)}(h``V4L2_CTRL_WHICH_DEF_VAL``h]hV4L2_CTRL_WHICH_DEF_VAL}(hjZ%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjR%ubh, }(hjR%hhhNhNubj)}(h``V4L2_CTRL_WHICH_MIN_VAL``h]hV4L2_CTRL_WHICH_MIN_VAL}(hjl%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjR%ubh or }(hjR%hhhNhNubj)}(h``V4L2_CTRL_WHICH_MAX_VAL``h]hV4L2_CTRL_WHICH_MAX_VAL}(hj~%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjR%ubhk be aware that you can only get the default/minimum/maximum value of the control, you cannot set or try it.}(hjR%hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM]hj$ubh)}(hXWhether a control supports querying the minimum and maximum values using ``V4L2_CTRL_WHICH_MIN_VAL`` and ``V4L2_CTRL_WHICH_MAX_VAL`` is indicated by the ``V4L2_CTRL_FLAG_HAS_WHICH_MIN_MAX`` flag. Most non-compound control types support this. For controls with compound types, the definition of minimum/maximum values are provided by the control documentation. If a compound control does not document the meaning of minimum/maximum value, then querying the minimum or maximum value will result in the error code -EINVAL.h](hIWhether a control supports querying the minimum and maximum values using }(hj%hhhNhNubj)}(h``V4L2_CTRL_WHICH_MIN_VAL``h]hV4L2_CTRL_WHICH_MIN_VAL}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubh and }(hj%hhhNhNubj)}(h``V4L2_CTRL_WHICH_MAX_VAL``h]hV4L2_CTRL_WHICH_MAX_VAL}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubh is indicated by the }(hj%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&]uh1jhj%ubhXJ flag. Most non-compound control types support this. For controls with compound types, the definition of minimum/maximum values are provided by the control documentation. If a compound control does not document the meaning of minimum/maximum value, then querying the minimum or maximum value will result in the error code -EINVAL.}(hj%hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMahj$ubh)}(hXLFor backwards compatibility you can also use a control class here (see :ref:`ctrl-class`). In that case all controls have to belong to that control class. This usage is deprecated, instead just use ``V4L2_CTRL_WHICH_CUR_VAL``. There are some very old drivers that do not yet support ``V4L2_CTRL_WHICH_CUR_VAL`` and that require a control class here. You can test for such drivers by setting ``which`` to ``V4L2_CTRL_WHICH_CUR_VAL`` and calling :ref:`VIDIOC_TRY_EXT_CTRLS ` with a count of 0. If that fails, then the driver does not support ``V4L2_CTRL_WHICH_CUR_VAL``.h](hGFor backwards compatibility you can also use a control class here (see }(hj%hhhNhNubh)}(h:ref:`ctrl-class`h]j)}(hj%h]h ctrl-class}(hj%hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]refdocj refdomainj%reftyperef refexplicitrefwarnj ctrl-classuh1hhhhMjhj%ubhn). In that case all controls have to belong to that control class. This usage is deprecated, instead just use }(hj%hhhNhNubj)}(h``V4L2_CTRL_WHICH_CUR_VAL``h]hV4L2_CTRL_WHICH_CUR_VAL}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubh:. There are some very old drivers that do not yet support }(hj%hhhNhNubj)}(h``V4L2_CTRL_WHICH_CUR_VAL``h]hV4L2_CTRL_WHICH_CUR_VAL}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubhQ and that require a control class here. You can test for such drivers by setting }(hj%hhhNhNubj)}(h ``which``h]hwhich}(hj*&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubh to }(hj%hhhNhNubj)}(h``V4L2_CTRL_WHICH_CUR_VAL``h]hV4L2_CTRL_WHICH_CUR_VAL}(hj<&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubh and calling }(hj%hhhNhNubh)}(h0:ref:`VIDIOC_TRY_EXT_CTRLS `h]j)}(hjP&h]hVIDIOC_TRY_EXT_CTRLS}(hjR&hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjN&ubah}(h]h ]h"]h$]h&]refdocj refdomainj\&reftyperef refexplicitrefwarnjvidioc_g_ext_ctrlsuh1hhhhMjhj%ubhD with a count of 0. If that fails, then the driver does not support }(hj%hhhNhNubj)}(h``V4L2_CTRL_WHICH_CUR_VAL``h]hV4L2_CTRL_WHICH_CUR_VAL}(hjr&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj%ubh.}(hj%hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMjhj$ubeh}(h]h ]h"]h$]h&]morecolsKuh1j% hj$ubah}(h]h ]h"]h$]h&]uh1j hj.$ubj! )}(hhh](j& )}(hhh]h)}(h__u32h]h__u32}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMshj&ubah}(h]h ]h"]h$]h&]uh1j% hj&ubj& )}(hhh]h)}(h``ctrl_class``h]j)}(hj&h]h ctrl_class}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&]uh1hhhhMthj&ubah}(h]h ]h"]h$]h&]uh1j% hj&ubj& )}(hhh]h)}(hHDeprecated name kept for backwards compatibility. Use ``which`` instead.h](h6Deprecated name kept for backwards compatibility. Use }(hj&hhhNhNubj)}(h ``which``h]hwhich}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj&ubh instead.}(hj&hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMuhj&ubah}(h]h ]h"]h$]h&]uh1j% hj&ubeh}(h]h ]h"]h$]h&]uh1j hj.$ubj! )}(hhh](j& )}(hhh]h)}(hjD#h]h}}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMvhj'ubah}(h]h ]h"]h$]h&]uh1j% hj'ubj& )}(hhh]h}(h]h ]h"]h$]h&]morecolsKuh1j% hj'ubeh}(h]h ]h"]h$]h&]uh1j hj.$ubj! )}(hhh](j& )}(hhh]h)}(h__u32h]h__u32}(hj/'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMxhj,'ubah}(h]h ]h"]h$]h&]uh1j% hj)'ubj& )}(hhh]h)}(h ``count``h]j)}(hjH'h]hcount}(hjJ'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjF'ubah}(h]h ]h"]h$]h&]uh1hhhhMyhjC'ubah}(h]h ]h"]h$]h&]uh1j% hj)'ubj& )}(hhh]h)}(h?The number of controls in the controls array. May also be zero.h]h?The number of controls in the controls array. May also be zero.}(hjf'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMzhjc'ubah}(h]h ]h"]h$]h&]uh1j% hj)'ubeh}(h]h ]h"]h$]h&]uh1j hj.$ubj! )}(hhh](j& )}(hhh]h)}(h__u32h]h__u32}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM{hj'ubah}(h]h ]h"]h$]h&]uh1j% hj'ubj& )}(hhh]h)}(h ``error_idx``h]j)}(hj'h]h error_idx}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1hhhhM|hj'ubah}(h]h ]h"]h$]h&]uh1j% hj'ubj& )}(hhh]h)}(hDIndex of the failing control. Set by the driver in case of an error.h]hDIndex of the failing control. Set by the driver in case of an error.}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM}hj'ubah}(h]h ]h"]h$]h&]uh1j% hj'ubeh}(h]h ]h"]h$]h&]uh1j hj.$ubj! )}(hhh]j& )}(hhh](h)}(hX8:cspan:`2` If the error is associated with a particular control, then ``error_idx`` is set to the index of that control. If the error is not related to a specific control, or the validation step failed (see below), then ``error_idx`` is set to ``count``. The value is undefined if the ioctl returned 0 (success).h](h< If the error is associated with a particular control, then }(hj'hhhNhNubj)}(h ``error_idx``h]h error_idx}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubh is set to the index of that control. If the error is not related to a specific control, or the validation step failed (see below), then }(hj'hhhNhNubj)}(h ``error_idx``h]h error_idx}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubh is set to }(hj'hhhNhNubj)}(h ``count``h]hcount}(hj (hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubh;. The value is undefined if the ioctl returned 0 (success).}(hj'hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM~hj'ubh)}(hXDBefore controls are read from/written to hardware a validation step takes place: this checks if all controls in the list are valid controls, if no attempt is made to write to a read-only control or read from a write-only control, and any other up-front checks that can be done without accessing the hardware. The exact validations done during this step are driver dependent since some checks might require hardware access for some devices, thus making it impossible to do those checks up-front. However, drivers should make a best-effort to do as many up-front checks as possible.h]hXDBefore controls are read from/written to hardware a validation step takes place: this checks if all controls in the list are valid controls, if no attempt is made to write to a read-only control or read from a write-only control, and any other up-front checks that can be done without accessing the hardware. The exact validations done during this step are driver dependent since some checks might require hardware access for some devices, thus making it impossible to do those checks up-front. However, drivers should make a best-effort to do as many up-front checks as possible.}(hj!(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj'ubh)}(hXGThis check is done to avoid leaving the hardware in an inconsistent state due to easy-to-avoid problems. But it leads to another problem: the application needs to know whether an error came from the validation step (meaning that the hardware was not touched) or from an error during the actual reading from/writing to hardware.h]hXGThis check is done to avoid leaving the hardware in an inconsistent state due to easy-to-avoid problems. But it leads to another problem: the application needs to know whether an error came from the validation step (meaning that the hardware was not touched) or from an error during the actual reading from/writing to hardware.}(hj/(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj'ubh)}(hXThe, in hindsight quite poor, solution for that is to set ``error_idx`` to ``count`` if the validation failed. This has the unfortunate side-effect that it is not possible to see which control failed the validation. If the validation was successful and the error happened while accessing the hardware, then ``error_idx`` is less than ``count`` and only the controls up to ``error_idx-1`` were read or written correctly, and the state of the remaining controls is undefined.h](h:The, in hindsight quite poor, solution for that is to set }(hj=(hhhNhNubj)}(h ``error_idx``h]h error_idx}(hjE(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=(ubh to }(hj=(hhhNhNubj)}(h ``count``h]hcount}(hjW(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=(ubh if the validation failed. This has the unfortunate side-effect that it is not possible to see which control failed the validation. If the validation was successful and the error happened while accessing the hardware, then }(hj=(hhhNhNubj)}(h ``error_idx``h]h error_idx}(hji(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=(ubh is less than }(hj=(hhhNhNubj)}(h ``count``h]hcount}(hj{(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=(ubh and only the controls up to }(hj=(hhhNhNubj)}(h``error_idx-1``h]h error_idx-1}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj=(ubhV were read or written correctly, and the state of the remaining controls is undefined.}(hj=(hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj'ubh)}(hX[Since :ref:`VIDIOC_TRY_EXT_CTRLS ` does not access hardware there is also no need to handle the validation step in this special way, so ``error_idx`` will just be set to the control that failed the validation step instead of to ``count``. This means that if :ref:`VIDIOC_S_EXT_CTRLS ` fails with ``error_idx`` set to ``count``, then you can call :ref:`VIDIOC_TRY_EXT_CTRLS ` to try to discover the actual control that failed the validation step. Unfortunately, there is no ``TRY`` equivalent for :ref:`VIDIOC_G_EXT_CTRLS `.h](hSince }(hj(hhhNhNubh)}(h0:ref:`VIDIOC_TRY_EXT_CTRLS `h]j)}(hj(h]hVIDIOC_TRY_EXT_CTRLS}(hj(hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]refdocj refdomainj(reftyperef refexplicitrefwarnjvidioc_g_ext_ctrlsuh1hhhhMhj(ubhf does not access hardware there is also no need to handle the validation step in this special way, so }(hj(hhhNhNubj)}(h ``error_idx``h]h error_idx}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubhO will just be set to the control that failed the validation step instead of to }(hj(hhhNhNubj)}(h ``count``h]hcount}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubh. This means that if }(hj(hhhNhNubh)}(h.:ref:`VIDIOC_S_EXT_CTRLS `h]j)}(hj(h]hVIDIOC_S_EXT_CTRLS}(hj(hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]refdocj refdomainj)reftyperef refexplicitrefwarnjvidioc_g_ext_ctrlsuh1hhhhMhj(ubh fails with }(hj(hhhNhNubj)}(h ``error_idx``h]h error_idx}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubh set to }(hj(hhhNhNubj)}(h ``count``h]hcount}(hj+)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubh, then you can call }(hj(hhhNhNubh)}(h0:ref:`VIDIOC_TRY_EXT_CTRLS `h]j)}(hj?)h]hVIDIOC_TRY_EXT_CTRLS}(hjA)hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj=)ubah}(h]h ]h"]h$]h&]refdocj refdomainjK)reftyperef refexplicitrefwarnjvidioc_g_ext_ctrlsuh1hhhhMhj(ubhc to try to discover the actual control that failed the validation step. Unfortunately, there is no }(hj(hhhNhNubj)}(h``TRY``h]hTRY}(hja)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubh equivalent for }(hj(hhhNhNubh)}(h.:ref:`VIDIOC_G_EXT_CTRLS `h]j)}(hju)h]hVIDIOC_G_EXT_CTRLS}(hjw)hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjs)ubah}(h]h ]h"]h$]h&]refdocj refdomainj)reftyperef refexplicitrefwarnjvidioc_g_ext_ctrlsuh1hhhhMhj(ubh.}(hj(hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj'ubeh}(h]h ]h"]h$]h&]morecolsKuh1j% hj'ubah}(h]h ]h"]h$]h&]uh1j hj.$ubj! )}(hhh](j& )}(hhh]h)}(h__s32h]h__s32}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj)ubah}(h]h ]h"]h$]h&]uh1j% hj)ubj& )}(hhh]h)}(h``request_fd``h]j)}(hj)h]h request_fd}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1hhhhMhj)ubah}(h]h ]h"]h$]h&]uh1j% hj)ubj& )}(hhh]h)}(hX7File descriptor of the request to be used by this operation. Only valid if ``which`` is set to ``V4L2_CTRL_WHICH_REQUEST_VAL``. If the device does not support requests, then ``EACCES`` will be returned. If requests are supported but an invalid request file descriptor is given, then ``EINVAL`` will be returned.h](hKFile descriptor of the request to be used by this operation. Only valid if }(hj)hhhNhNubj)}(h ``which``h]hwhich}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubh is set to }(hj)hhhNhNubj)}(h``V4L2_CTRL_WHICH_REQUEST_VAL``h]hV4L2_CTRL_WHICH_REQUEST_VAL}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubh0. If the device does not support requests, then }(hj)hhhNhNubj)}(h ``EACCES``h]hEACCES}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubhc will be returned. If requests are supported but an invalid request file descriptor is given, then }(hj)hhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hj%*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubh will be returned.}(hj)hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj)ubah}(h]h ]h"]h$]h&]uh1j% hj)ubeh}(h]h ]h"]h$]h&]uh1j hj.$ubj! )}(hhh](j& )}(hhh]h)}(h__u32h]h__u32}(hjO*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjL*ubah}(h]h ]h"]h$]h&]uh1j% hjI*ubj& )}(hhh]h)}(h``reserved``\ [1]h](j)}(h ``reserved``h]hreserved}(hjj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjf*ubh [1]}(hjf*hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjc*ubah}(h]h ]h"]h$]h&]uh1j% hjI*ubj& )}(hhh](h)}(hReserved for future extensions.h]hReserved for future extensions.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj*ubh)}(h4Drivers and applications must set the array to zero.h]h4Drivers and applications must set the array to zero.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj*ubeh}(h]h ]h"]h$]h&]uh1j% hjI*ubeh}(h]h ]h"]h$]h&]uh1j hj.$ubj! )}(hhh](j& )}(hhh]h)}(h#struct :c:type:`v4l2_ext_control` *h](hstruct }(hj*hhhNhNubh)}(h:c:type:`v4l2_ext_control`h]j)}(hj*h]hv4l2_ext_control}(hj*hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ext_controluh1hhhhMhj*ubh *}(hj*hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj*ubah}(h]h ]h"]h$]h&]uh1j% hj*ubj& )}(hhh]h)}(h ``controls``h]j)}(hj*h]hcontrols}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1hhhhMhj*ubah}(h]h ]h"]h$]h&]uh1j% hj*ubj& )}(hhh](h)}(h=Pointer to an array of ``count`` v4l2_ext_control structures.h](hPointer to an array of }(hj+hhhNhNubj)}(h ``count``h]hcount}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubh v4l2_ext_control structures.}(hj+hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj+ubh)}(h!Ignored if ``count`` equals zero.h](h Ignored if }(hj3+hhhNhNubj)}(h ``count``h]hcount}(hj;+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj3+ubh equals zero.}(hj3+hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj+ubeh}(h]h ]h"]h$]h&]uh1j% hj*ubeh}(h]h ]h"]h$]h&]uh1j hj.$ubeh}(h]h ]h"]h$]h&]uh1j hj $ubeh}(h]h ]h"]h$]h&]colsKuh1j hj#ubeh}(h]id2ah ] longtableah"]h$]h&]uh1j hjkhhhNhNubjW )}(hhh]h}(h]h ]h"]h$]h&]ja |p{7.3cm}|p{2.0cm}|p{8.0cm}|uh1jV hhhMhjkhhubh)}(h.. _ctrl-class:h]h}(h]h ]h"]h$]h&]hԌ ctrl-classuh1hhMhjkhhhhubj )}(hhh](h)}(hControl classesh]hControl classes}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj+ubj )}(hhh](j )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hj+ubj )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hj+ubj )}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hj+ubj )}(hhh](j! )}(hhh](j& )}(hhh]h)}(h``V4L2_CTRL_CLASS_USER``h]j)}(hj+h]hV4L2_CTRL_CLASS_USER}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1hhhhMhj+ubah}(h]h ]h"]h$]h&]uh1j% hj+ubj& )}(hhh]h)}(h0x980000h]h0x980000}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj+ubah}(h]h ]h"]h$]h&]uh1j% hj+ubj& )}(hhh]h)}(hThe class containing user controls. These controls are described in :ref:`control`. All controls that can be set using the :ref:`VIDIOC_S_CTRL ` and :ref:`VIDIOC_G_CTRL ` ioctl belong to this class.h](hDThe class containing user controls. These controls are described in }(hj+hhhNhNubh)}(h:ref:`control`h]j)}(hj,h]hcontrol}(hj,hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]refdocj refdomainj,reftyperef refexplicitrefwarnjcontroluh1hhhhMhj+ubh). All controls that can be set using the }(hj+hhhNhNubh)}(h$:ref:`VIDIOC_S_CTRL `h]j)}(hj),h]h VIDIOC_S_CTRL}(hj+,hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj',ubah}(h]h ]h"]h$]h&]refdocj refdomainj5,reftyperef refexplicitrefwarnj vidioc_g_ctrluh1hhhhMhj+ubh and }(hj+hhhNhNubh)}(h$:ref:`VIDIOC_G_CTRL `h]j)}(hjM,h]h VIDIOC_G_CTRL}(hjO,hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjK,ubah}(h]h ]h"]h$]h&]refdocj refdomainjY,reftyperef refexplicitrefwarnj vidioc_g_ctrluh1hhhhMhj+ubh ioctl belong to this class.}(hj+hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj+ubah}(h]h ]h"]h$]h&]uh1j% hj+ubeh}(h]h ]h"]h$]h&]uh1j hj+ubj! )}(hhh](j& )}(hhh]h)}(h``V4L2_CTRL_CLASS_CODEC``h]j)}(hj,h]hV4L2_CTRL_CLASS_CODEC}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]uh1hhhhMhj,ubah}(h]h ]h"]h$]h&]uh1j% hj,ubj& )}(hhh]h)}(h0x990000h]h0x990000}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj,ubah}(h]h ]h"]h$]h&]uh1j% hj,ubj& )}(hhh]h)}(hdThe class containing stateful codec controls. These controls are described in :ref:`codec-controls`.h](hNThe class containing stateful codec controls. These controls are described in }(hj,hhhNhNubh)}(h:ref:`codec-controls`h]j)}(hj,h]hcodec-controls}(hj,hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&]refdocj refdomainj,reftyperef refexplicitrefwarnjcodec-controlsuh1hhhhMhj,ubh.}(hj,hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj,ubah}(h]h ]h"]h$]h&]uh1j% hj,ubeh}(h]h ]h"]h$]h&]uh1j hj+ubj! )}(hhh](j& )}(hhh]h)}(h``V4L2_CTRL_CLASS_CAMERA``h]j)}(hj-h]hV4L2_CTRL_CLASS_CAMERA}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1hhhhMhj,ubah}(h]h ]h"]h$]h&]uh1j% hj,ubj& )}(hhh]h)}(h0x9a0000h]h0x9a0000}(hj"-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj-ubah}(h]h ]h"]h$]h&]uh1j% hj,ubj& )}(hhh]h)}(h]The class containing camera controls. These controls are described in :ref:`camera-controls`.h](hFThe class containing camera controls. These controls are described in }(hj9-hhhNhNubh)}(h:ref:`camera-controls`h]j)}(hjC-h]hcamera-controls}(hjE-hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjA-ubah}(h]h ]h"]h$]h&]refdocj refdomainjO-reftyperef refexplicitrefwarnjcamera-controlsuh1hhhhMhj9-ubh.}(hj9-hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj6-ubah}(h]h ]h"]h$]h&]uh1j% hj,ubeh}(h]h ]h"]h$]h&]uh1j hj+ubj! )}(hhh](j& )}(hhh]h)}(h``V4L2_CTRL_CLASS_FM_TX``h]j)}(hj-h]hV4L2_CTRL_CLASS_FM_TX}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj}-ubah}(h]h ]h"]h$]h&]uh1hhhhMhjz-ubah}(h]h ]h"]h$]h&]uh1j% hjw-ubj& )}(hhh]h)}(h0x9b0000h]h0x9b0000}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj-ubah}(h]h ]h"]h$]h&]uh1j% hjw-ubj& )}(hhh]h)}(hlThe class containing FM Transmitter (FM TX) controls. These controls are described in :ref:`fm-tx-controls`.h](hVThe class containing FM Transmitter (FM TX) controls. These controls are described in }(hj-hhhNhNubh)}(h:ref:`fm-tx-controls`h]j)}(hj-h]hfm-tx-controls}(hj-hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]refdocj refdomainj-reftyperef refexplicitrefwarnjfm-tx-controlsuh1hhhhMhj-ubh.}(hj-hhhNhNubeZhh}(h]h ]h"]h$]h&]uh1hhhhMhj-ubah}(h]h ]h"]h$]h&]uh1j% hjw-ubeh}(h]h ]h"]h$]h&]uh1j hj+ubj! )}(hhh](j& )}(hhh]h)}(h``V4L2_CTRL_CLASS_FLASH``h]j)}(hj-h]hV4L2_CTRL_CLASS_FLASH}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj-ubah}(h]h ]h"]h$]h&]uh1hhhhMhj-ubah}(h]h ]h"]h$]h&]uh1j% hj-ubj& )}(hhh]h)}(h0x9c0000h]h0x9c0000}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj.ubah}(h]h ]h"]h$]h&]uh1j% hj-ubj& )}(hhh]h)}(hbThe class containing flash device controls. These controls are described in :ref:`flash-controls`.h](hLThe class containing flash device controls. These controls are described in }(hj/.hhhNhNubh)}(h:ref:`flash-controls`h]j)}(hj9.h]hflash-controls}(hj;.hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj7.ubah}(h]h ]h"]h$]h&]refdocj refdomainjE.reftyperef refexplicitrefwarnjflash-controlsuh1hhhhMhj/.ubh.}(hj/.hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj,.ubah}(h]h ]h"]h$]h&]uh1j% hj-ubeh}(h]h ]h"]h$]h&]uh1j hj+ubj! )}(hhh](j& )}(hhh]h)}(h``V4L2_CTRL_CLASS_JPEG``h]j)}(hju.h]hV4L2_CTRL_CLASS_JPEG}(hjw.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjs.ubah}(h]h ]h"]h$]h&]uh1hhhhMhjp.ubah}(h]h ]h"]h$]h&]uh1j% hjm.ubj& )}(hhh]h)}(h0x9d0000h]h0x9d0000}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj.ubah}(h]h ]h"]h$]h&]uh1j% hjm.ubj& )}(hhh]h)}(heThe class containing JPEG compression controls. These controls are described in :ref:`jpeg-controls`.h](hPThe class containing JPEG compression controls. These controls are described in }(hj.hhhNhNubh)}(h:ref:`jpeg-controls`h]j)}(hj.h]h jpeg-controls}(hj.hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]refdocj refdomainj.reftyperef refexplicitrefwarnj jpeg-controlsuh1hhhhMhj.ubh.}(hj.hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj.ubah}(h]h ]h"]h$]h&]uh1j% hjm.ubeh}(h]h ]h"]h$]h&]uh1j hj+ubj! )}(hhh](j& )}(hhh]h)}(h ``V4L2_CTRL_CLASS_IMAGE_SOURCE``h]j)}(hj.h]hV4L2_CTRL_CLASS_IMAGE_SOURCE}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj.ubah}(h]h ]h"]h$]h&]uh1hhhhMhj.ubah}(h]h ]h"]h$]h&]uh1j% hj.ubj& )}(hhh]h)}(h0x9e0000h]h0x9e0000}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj /ubah}(h]h ]h"]h$]h&]uh1j% hj.ubj& )}(hhh]h)}(hiThe class containing image source controls. These controls are described in :ref:`image-source-controls`.h](hLThe class containing image source controls. These controls are described in }(hj%/hhhNhNubh)}(h:ref:`image-source-controls`h]j)}(hj//h]himage-source-controls}(hj1/hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj-/ubah}(h]h ]h"]h$]h&]refdocj refdomainj;/reftyperef refexplicitrefwarnjimage-source-controlsuh1hhhhMhj%/ubh.}(hj%/hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj"/ubah}(h]h ]h"]h$]h&]uh1j% hj.ubeh}(h]h ]h"]h$]h&]uh1j hj+ubj! )}(hhh](j& )}(hhh]h)}(h``V4L2_CTRL_CLASS_IMAGE_PROC``h]j)}(hjk/h]hV4L2_CTRL_CLASS_IMAGE_PROC}(hjm/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhji/ubah}(h]h ]h"]h$]h&]uh1hhhhMhjf/ubah}(h]h ]h"]h$]h&]uh1j% hjc/ubj& )}(hhh]h)}(h0x9f0000h]h0x9f0000}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj/ubah}(h]h ]h"]h$]h&]uh1j% hjc/ubj& )}(hhh]h)}(hnThe class containing image processing controls. These controls are described in :ref:`image-process-controls`.h](hPThe class containing image processing controls. These controls are described in }(hj/hhhNhNubh)}(h:ref:`image-process-controls`h]j)}(hj/h]himage-process-controls}(hj/hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]refdocj refdomainj/reftyperef refexplicitrefwarnjimage-process-controlsuh1hhhhMhj/ubh.}(hj/hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj/ubah}(h]h ]h"]h$]h&]uh1j% hjc/ubeh}(h]h ]h"]h$]h&]uh1j hj+ubj! )}(hhh](j& )}(hhh]h)}(h``V4L2_CTRL_CLASS_FM_RX``h]j)}(hj/h]hV4L2_CTRL_CLASS_FM_RX}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj/ubah}(h]h ]h"]h$]h&]uh1hhhhMhj/ubah}(h]h ]h"]h$]h&]uh1j% hj/ubj& )}(hhh]h)}(h0xa10000h]h0xa10000}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj0ubah}(h]h ]h"]h$]h&]uh1j% hj/ubj& )}(hhh]h)}(hiThe class containing FM Receiver (FM RX) controls. These controls are described in :ref:`fm-rx-controls`.h](hSThe class containing FM Receiver (FM RX) controls. These controls are described in }(hj0hhhNhNubh)}(h:ref:`fm-rx-controls`h]j)}(hj%0h]hfm-rx-controls}(hj'0hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj#0ubah}(h]h ]h"]h$]h&]refdocj refdomainj10reftyperef refexplicitrefwarnjfm-rx-controlsuh1hhhhMhj0ubh.}(hj0hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj0ubah}(h]h ]h"]h$]h&]uh1j% hj/ubeh}(h]h ]h"]h$]h&]uh1j hj+ubj! )}(hhh](j& )}(hhh]h)}(h``V4L2_CTRL_CLASS_RF_TUNER``h]j)}(hja0h]hV4L2_CTRL_CLASS_RF_TUNER}(hjc0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_0ubah}(h]h ]h"]h$]h&]uh1hhhhMhj\0ubah}(h]h ]h"]h$]h&]uh1j% hjY0ubj& )}(hhh]h)}(h0xa20000h]h0xa20000}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj|0ubah}(h]h ]h"]h$]h&]uh1j% hjY0ubj& )}(hhh]h)}(haThe class containing RF tuner controls. These controls are described in :ref:`rf-tuner-controls`.h](hHThe class containing RF tuner controls. These controls are described in }(hj0hhhNhNubh)}(h:ref:`rf-tuner-controls`h]j)}(hj0h]hrf-tuner-controls}(hj0hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]refdocj refdomainj0reftyperef refexplicitrefwarnjrf-tuner-controlsuh1hhhhMhj0ubh.}(hj0hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj0ubah}(h]h ]h"]h$]h&]uh1j% hjY0ubeh}(h]h ]h"]h$]h&]uh1j hj+ubj! )}(hhh](j& )}(hhh]h)}(h``V4L2_CTRL_CLASS_DETECT``h]j)}(hj0h]hV4L2_CTRL_CLASS_DETECT}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&]uh1hhhhMhj0ubah}(h]h ]h"]h$]h&]uh1j% hj0ubj& )}(hhh]h)}(h0xa30000h]h0xa30000}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj0ubah}(h]h ]h"]h$]h&]uh1j% hj0ubj& )}(hhh]h)}(hqThe class containing motion or object detection controls. These controls are described in :ref:`detect-controls`.h](hZThe class containing motion or object detection controls. These controls are described in }(hj1hhhNhNubh)}(h:ref:`detect-controls`h]j)}(hj1h]hdetect-controls}(hj1hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]refdocj refdomainj'1reftyperef refexplicitrefwarnjdetect-controlsuh1hhhhMhj1ubh.}(hj1hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj1ubah}(h]h ]h"]h$]h&]uh1j% hj0ubeh}(h]h ]h"]h$]h&]uh1j hj+ubj! )}(hhh](j& )}(hhh]h)}(h#``V4L2_CTRL_CLASS_CODEC_STATELESS``h]j)}(hjW1h]hV4L2_CTRL_CLASS_CODEC_STATELESS}(hjY1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjU1ubah}(h]h ]h"]h$]h&]uh1hhhhMhjR1ubah}(h]h ]h"]h$]h&]uh1j% hjO1ubj& )}(hhh]h)}(h0xa40000h]h0xa40000}(hju1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjr1ubah}(h]h ]h"]h$]h&]uh1j% hjO1ubj& )}(hhh]h)}(hoThe class containing stateless codec controls. These controls are described in :ref:`codec-stateless-controls`.h](hOThe class containing stateless codec controls. These controls are described in }(hj1hhhNhNubh)}(h:ref:`codec-stateless-controls`h]j)}(hj1h]hcodec-stateless-controls}(hj1hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]refdocj refdomainj1reftyperef refexplicitrefwarnjcodec-stateless-controlsuh1hhhhMhj1ubh.}(hj1hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj1ubah}(h]h ]h"]h$]h&]uh1j% hjO1ubeh}(h]h ]h"]h$]h&]uh1j hj+ubj! )}(hhh](j& )}(hhh]h)}(h``V4L2_CTRL_CLASS_COLORIMETRY``h]j)}(hj1h]hV4L2_CTRL_CLASS_COLORIMETRY}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1ubah}(h]h ]h"]h$]h&]uh1hhhhMhj1ubah}(h]h ]h"]h$]h&]uh1j% hj1ubj& )}(hhh]h)}(h0xa50000h]h0xa50000}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj1ubah}(h]h ]h"]h$]h&]uh1j% hj1ubj& )}(hhh]h)}(hgThe class containing colorimetry controls. These controls are described in :ref:`colorimetry-controls`.h](hKThe class containing colorimetry controls. These controls are described in }(hj2hhhNhNubh)}(h:ref:`colorimetry-controls`h]j)}(hj2h]hcolorimetry-controls}(hj2hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]refdocj refdomainj2reftyperef refexplicitrefwarnjcolorimetry-controlsuh1hhhhMhj2ubh.}(hj2hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj2ubah}(h]h ]h"]h$]h&]uh1j% hj1ubeh}(h]h ]h"]h$]h&]uh1j hj+ubeh}(h]h ]h"]h$]h&]uh1j hj+ubeh}(h]h ]h"]h$]h&]colsKuh1j hj+ubeh}(h](id3j+eh ] longtableah"] ctrl-classah$]h&]uh1j hjkhhhNhNexpect_referenced_by_name}jX2j~+sexpect_referenced_by_id}j+j~+subeh}(h] descriptionah ]h"] descriptionah$]h&]uh1hhhhhhhhK(ubh)}(hhh](h)}(h Return Valueh]h Return Value}(hjj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjg2hhhhhMubh)}(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 }(hjx2hhhNhNubj)}(h ``errno``h]herrno}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjx2ubhM variable is set appropriately. The generic error codes are described at the }(hjx2hhhNhNubh)}(h':ref:`Generic Error Codes `h]j)}(hj2h]hGeneric Error Codes}(hj2hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]refdocj refdomainj2reftyperef refexplicitrefwarnj gen-errorsuh1hhhhMhjx2ubh chapter.}(hjx2hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjg2hhubj)}(hhh](j)}(hXqEINVAL The struct :c:type:`v4l2_ext_control` ``id`` is invalid, or the struct :c:type:`v4l2_ext_controls` ``which`` is invalid, or the struct :c:type:`v4l2_ext_control` ``value`` was inappropriate (e.g. the given menu index is not supported by the driver), or the ``which`` field was set to ``V4L2_CTRL_WHICH_REQUEST_VAL`` but the given ``request_fd`` was invalid or ``V4L2_CTRL_WHICH_REQUEST_VAL`` is not supported by the kernel. This error code is also returned by the :ref:`VIDIOC_S_EXT_CTRLS ` and :ref:`VIDIOC_TRY_EXT_CTRLS ` ioctls if two or more control values are in conflict. h](j)}(hEINVALh]hEINVAL}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMhj2ubj)}(hhh]h)}(hXiThe struct :c:type:`v4l2_ext_control` ``id`` is invalid, or the struct :c:type:`v4l2_ext_controls` ``which`` is invalid, or the struct :c:type:`v4l2_ext_control` ``value`` was inappropriate (e.g. the given menu index is not supported by the driver), or the ``which`` field was set to ``V4L2_CTRL_WHICH_REQUEST_VAL`` but the given ``request_fd`` was invalid or ``V4L2_CTRL_WHICH_REQUEST_VAL`` is not supported by the kernel. This error code is also returned by the :ref:`VIDIOC_S_EXT_CTRLS ` and :ref:`VIDIOC_TRY_EXT_CTRLS ` ioctls if two or more control values are in conflict.h](h The struct }(hj2hhhNhNubh)}(h:c:type:`v4l2_ext_control`h]j)}(hj2h]hv4l2_ext_control}(hj2hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ext_controluh1hhhhMhj2ubh }(hj2hhhNhNubj)}(h``id``h]hid}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubh is invalid, or the struct }(hj2hhhNhNubh)}(h:c:type:`v4l2_ext_controls`h]j)}(hj3h]hv4l2_ext_controls}(hj3hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ext_controlsuh1hhhhMhj2ubh }(hj2hhhNhNubj)}(h ``which``h]hwhich}(hj43hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubh is invalid, or the struct }(hj2hhhNhNubh)}(h:c:type:`v4l2_ext_control`h]j)}(hjH3h]hv4l2_ext_control}(hjJ3hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhjF3ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ext_controluh1hhhhMhj2ubh }hj2sbj)}(h ``value``h]hvalue}(hji3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubhV was inappropriate (e.g. the given menu index is not supported by the driver), or the }(hj2hhhNhNubj)}(h ``which``h]hwhich}(hj{3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubh field was set to }(hj2hhhNhNubj)}(h``V4L2_CTRL_WHICH_REQUEST_VAL``h]hV4L2_CTRL_WHICH_REQUEST_VAL}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubh but the given }(hj2hhhNhNubj)}(h``request_fd``h]h request_fd}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubh was invalid or }(hj2hhhNhNubj)}(h``V4L2_CTRL_WHICH_REQUEST_VAL``h]hV4L2_CTRL_WHICH_REQUEST_VAL}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubhI is not supported by the kernel. This error code is also returned by the }(hj2hhhNhNubh)}(h.:ref:`VIDIOC_S_EXT_CTRLS `h]j)}(hj3h]hVIDIOC_S_EXT_CTRLS}(hj3hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]refdocj refdomainj3reftyperef refexplicitrefwarnjvidioc_g_ext_ctrlsuh1hhhhMhj2ubh and }(hj2hhhNhNubh)}(h0:ref:`VIDIOC_TRY_EXT_CTRLS `h]j)}(hj3h]hVIDIOC_TRY_EXT_CTRLS}(hj3hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj3ubah}(h]h ]h"]h$]h&]refdocj refdomainj3reftyperef refexplicitrefwarnjvidioc_g_ext_ctrlsuh1hhhhMhj2ubh6 ioctls if two or more control values are in conflict.}(hj2hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhhhMhj2ubj)}(hIERANGE The struct :c:type:`v4l2_ext_control` ``value`` is out of bounds. h](j)}(hERANGEh]hERANGE}(hj!4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMhj4ubj)}(hhh]h)}(hAThe struct :c:type:`v4l2_ext_control` ``value`` is out of bounds.h](h The struct }(hj24hhhNhNubh)}(h:c:type:`v4l2_ext_control`h]j)}(hj<4h]hv4l2_ext_control}(hj>4hhhNhNubah}(h]h ](jjc-typeeh"]h$]h&]uh1jhj:4ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftypetype refexplicitrefwarnjjjv4l2_ext_controluh1hhhhMhj24ubh }(hj24hhhNhNubj)}(h ``value``h]hvalue}(hj]4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj24ubh is out of bounds.}(hj24hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj/4ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhhhMhj2hhubj)}(hXEBUSY The control is temporarily not changeable, possibly because another applications took over control of the device function this control belongs to, or (if the ``which`` field was set to ``V4L2_CTRL_WHICH_REQUEST_VAL``) the request was queued but not yet completed. h](j)}(hEBUSYh]hEBUSY}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMhj4ubj)}(hhh]h)}(hXThe control is temporarily not changeable, possibly because another applications took over control of the device function this control belongs to, or (if the ``which`` field was set to ``V4L2_CTRL_WHICH_REQUEST_VAL``) the request was queued but not yet completed.h](hThe control is temporarily not changeable, possibly because another applications took over control of the device function this control belongs to, or (if the }(hj4hhhNhNubj)}(h ``which``h]hwhich}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubh field was set to }(hj4hhhNhNubj)}(h``V4L2_CTRL_WHICH_REQUEST_VAL``h]hV4L2_CTRL_WHICH_REQUEST_VAL}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubh/) the request was queued but not yet completed.}(hj4hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj4ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhhhMhj2hhubj)}(hENOSPC The space reserved for the control's payload is insufficient. The field ``size`` is set to a value that is enough to store the payload and this error code is returned. h](j)}(hENOSPCh]hENOSPC}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMhj4ubj)}(hhh]h)}(hThe space reserved for the control's payload is insufficient. The field ``size`` is set to a value that is enough to store the payload and this error code is returned.h](hJThe space reserved for the control’s payload is insufficient. The field }(hj4hhhNhNubj)}(h``size``h]hsize}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubhW is set to a value that is enough to store the payload and this error code is returned.}(hj4hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj4ubah}(h]h ]h"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]uh1jhhhMhj2hhubj)}(hXEACCES Attempt to try or set a read-only control, or to get a write-only control, or to get a control from a request that has not yet been completed. Or the ``which`` field was set to ``V4L2_CTRL_WHICH_REQUEST_VAL`` but the device does not support requests. Or if there is an attempt to set an inactive control and the driver is not capable of caching the new value until the control is active again.h](j)}(hEACCESh]hEACCES}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhM(hj5ubj)}(hhh](h)}(hAttempt to try or set a read-only control, or to get a write-only control, or to get a control from a request that has not yet been completed.h]hAttempt to try or set a read-only control, or to get a write-only control, or to get a control from a request that has not yet been completed.}(hj*5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM!hj'5ubh)}(hkOr the ``which`` field was set to ``V4L2_CTRL_WHICH_REQUEST_VAL`` but the device does not support requests.h](hOr the }(hj85hhhNhNubj)}(h ``which``h]hwhich}(hj@5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj85ubh field was set to }(hj85hhhNhNubj)}(h``V4L2_CTRL_WHICH_REQUEST_VAL``h]hV4L2_CTRL_WHICH_REQUEST_VAL}(hjR5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj85ubh* but the device does not support requests.}(hj85hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM%hj'5ubh)}(hOr if there is an attempt to set an inactive control and the driver is not capable of caching the new value until the control is active again.h]hOr if there is an attempt to set an inactive control and the driver is not capable of caching the new value until the control is active again.}(hjj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM(hj'5ubeh}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1jhhhM(hj2hhubeh}(h]h ]h"]h$]h&]uh1jhjg2hhhhhNubeh}(h] return-valueah ]h"] return valueah$]h&]uh1hhhhhhhhMubeh}(h](@ioctl-vidioc-g-ext-ctrls-vidioc-s-ext-ctrls-vidioc-try-ext-ctrlsheh ]h"](Bioctl vidioc_g_ext_ctrls, vidioc_s_ext_ctrls, vidioc_try_ext_ctrlsvidioc_g_ext_ctrlseh$]h&]uh1hhhhhhhhKj[2}j5hsj]2}hhsubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksj% footnote_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_handlerj5error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehnj _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}refids}(h]haj+]j~+aunameids}(j5hj5j5jjjvjsjhjejd2ja2jX2j+j5j5u nametypes}(j5j5jjvjhjd2jX2j5uh}(hhj5hjhjsjj4j=jjjjjejyja2jkjo jt j#j#j+j+j5jg2ju#j jn+j#jT2j+u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}j5KsRparse_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.}(hj(6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%6ubah}(h]h ]h"]h$]h&]levelKtypeINFOlineM<sourcehuh1j#6hj?#ubj$6)}(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.}(hjD6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjA6ubah}(h]h ]h"]h$]h&]levelKtypej>6lineMvsourcehuh1j#6hj'ubetransform_messages](j$6)}(hhh]h)}(hhh]h8Hyperlink target "vidioc-g-ext-ctrls" is not referenced.}hja6sbah}(h]h ]h"]h$]h&]uh1hhj^6ubah}(h]h ]h"]h$]h&]levelKtypej>6sourcehnjlineKuh1j#6ubj$6)}(hhh]h)}(hhh]h0Hyperlink target "ctrl-class" is not referenced.}hj{6sbah}(h]h ]h"]h$]h&]uh1hhjx6ubah}(h]h ]h"]h$]h&]levelKtypej>6sourcehnjlineMuh1j#6ube transformerN include_log] decorationNhhub.