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]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_CTRLShNtauh1jhjhhhNhNubhdesc)}(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}(hj;hhhNhNubah}(h]h ]nah"]h$]h&]uh1j9hj5ubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1j3hj/hhhhhKubah}(h]h ]h"]h$]h&]hh add_permalinkuh1j-sphinx_line_type declaratorhj)hhhhhKubah}(h]j ah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1j'hhhKhj$hhubh desc_content)}(hhh]h}(h]h ]h"]h$]h&]uh1jehj$hhhhhKubeh}(h]h ](cmacroeh"]h$]h&]domainjsobjtypejtdesctypejtnoindex noindexentrynocontentsentryuh1j"hhhjhNhNubh)}(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&]uh1jhj~ubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j V4L.VIDIOC_S_EXT_CTRLS (C macro)c.V4L.VIDIOC_S_EXT_CTRLShNtauh1jhjhhhNhNubj#)}(hhh](j()}(hVIDIOC_S_EXT_CTRLSh]j.)}(hVIDIOC_S_EXT_CTRLSh]j4)}(hVIDIOC_S_EXT_CTRLSh]j:)}(hjh]hVIDIOC_S_EXT_CTRLS}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j9hjubah}(h]h ](jLjMeh"]h$]h&]hhuh1j3hjhhhhhKubah}(h]h ]h"]h$]h&]hhjWuh1j-jXjYhjhhhhhKubah}(h]jah ](j]j^eh"]h$]h&]jbjc)jdhuh1j'hhhKhjhhubjf)}(hhh]h}(h]h ]h"]h$]h&]uh1jehjhhhhhKubeh}(h]h ](jsmacroeh"]h$]h&]jxjsjyjjzjj{j|j}uh1j"hhhjhNhNubh)}(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](j"V4L.VIDIOC_TRY_EXT_CTRLS (C macro)c.V4L.VIDIOC_TRY_EXT_CTRLShNtauh1jhjhhhNhNubj#)}(hhh](j()}(hVIDIOC_TRY_EXT_CTRLSh]j.)}(hVIDIOC_TRY_EXT_CTRLSh]j4)}(hVIDIOC_TRY_EXT_CTRLSh]j:)}(hj h]hVIDIOC_TRY_EXT_CTRLS}(hjhhhNhNubah}(h]h ]jEah"]h$]h&]uh1j9hjubah}(h]h ](jLjMeh"]h$]h&]hhuh1j3hjhhhhhKubah}(h]h ]h"]h$]h&]hhjWuh1j-jXjYhj hhhhhKubah}(h]jah ](j]j^eh"]h$]h&]jbjc)jdhuh1j'hhhKhjhhubjf)}(hhh]h}(h]h ]h"]h$]h&]uh1jehjhhhhhKubeh}(h]h ](jsmacroeh"]h$]h&]jxjsjyjBjzjBj{j|j}uh1j"hhhjhNhNubh)}(hK``int ioctl(int fd, VIDIOC_TRY_EXT_CTRLS, struct v4l2_ext_controls *argp)``h]j)}(hjHh]hGint ioctl(int fd, VIDIOC_TRY_EXT_CTRLS, struct v4l2_ext_controls *argp)}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]synopsisah ]h"]synopsisah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Argumentsh]h Arguments}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjehhhhhKubhdefinition_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"hj}ubh 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 ](xrefjsc-funceh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdoc*userspace-api/media/v4l/vidioc-g-ext-ctrls refdomainjsreftypefunc 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&]uh1jhj}ubeh}(h]h ]h"]h$]h&]uh1j{hhhK"hjxubj|)}(h8``argp`` Pointer to struct :c:type:`v4l2_ext_controls`. h](j)}(h``argp``h]j)}(hjh]hargp}(hjhhhNhNubah}(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)}(hjh]hv4l2_ext_controls}(hjhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ext_controlsuh1hhhhK%hj ubh.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK%hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j{hhhK%hjxhhubeh}(h]h ]h"]h$]h&]uh1jvhjehhhhhNubeh}(h] argumentsah ]h"] argumentsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Descriptionh]h Description}(hjZhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjWhhhhhK(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 }(hjhhhhNhNubh)}(h:ref:`ctrl-class`h]hinline)}(hjrh]h ctrl-class}(hjvhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthjpubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnj ctrl-classuh1hhhhK*hjhubhN) and all controls in the control array must belong to the same control class.}(hjhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK*hjWhhubh)}(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 ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ext_controlsuh1hhhhK/hjubh, and initialize the struct }(hjhhhNhNubh)}(h:c:type:`v4l2_ext_control`h]j)}(hjh]hv4l2_ext_control}(hjhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ext_controluh1hhhhK/hjubh array pointed to by the }(hjhhhNhNubj)}(h ``controls``h]hcontrols}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh fields.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK/hjWhhubh)}(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 }(hjJhhhNhNubj)}(h``id``h]hid}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubh, }(hjJhhhNhNubj)}(h``size``h]hsize}(hjdhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubh and }(hjJhhhNhNubj)}(h ``reserved2``h]h reserved2}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubh fields of each struct }(hjJhhhNhNubh)}(h:c:type:`v4l2_ext_control`h]j)}(hjh]hv4l2_ext_control}(hjhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ext_controluh1hhhhK5hjJubh and call the }(hjJhhhNhNubh)}(h.:ref:`VIDIOC_G_EXT_CTRLS `h]ju)}(hjh]hVIDIOC_G_EXT_CTRLS}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnjvidioc_g_ext_ctrlsuh1hhhhK5hjJubh* ioctl. String controls must also set the }(hjJhhhNhNubj)}(h ``string``h]hstring}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubh$ field. Controls of compound types (}(hjJhhhNhNubj)}(h``V4L2_CTRL_FLAG_HAS_PAYLOAD``h]hV4L2_CTRL_FLAG_HAS_PAYLOAD}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubh is set) must set the }(hjJhhhNhNubj)}(h``ptr``h]hptr}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJubh field.}(hjJhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK5hjWhhubh)}(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 }(hj hhhNhNubj)}(h``size``h]hsize}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh} is too small to receive the control result (only relevant for pointer-type controls like strings), then the driver will set }(hj hhhNhNubj)}(h``size``h]hsize}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh to a valid value and return an }(hj hhhNhNubj)}(h ``ENOSPC``h]hENOSPC}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh 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 }(hj hhhNhNubh)}(h:ref:`VIDIOC_QUERYCTRL`h]ju)}(hjKh]hVIDIOC_QUERYCTRL}(hjMhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthjIubah}(h]h ]h"]h$]h&]refdocj refdomainjWreftyperef 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]ju)}(hjh]hVIDIOC_QUERY_EXT_CTRL}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnjvidioc_queryctrluh1hhhhKFhjubh.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKFhjWhhubh)}(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}(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}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh fields of each struct }(hjhhhNhNubh)}(h:c:type:`v4l2_ext_control`h]j)}(hj?h]hv4l2_ext_control}(hjAhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ext_controluh1hhhhKKhjubh and call the }(hjhhhNhNubh)}(h.:ref:`VIDIOC_S_EXT_CTRLS `h]ju)}(hjbh]hVIDIOC_S_EXT_CTRLS}(hjdhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj`ubah}(h]h ]h"]h$]h&]refdocj refdomainjnreftyperef 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&]uh1hhhhKKhjWhhubh)}(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 ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ext_controluh1hhhhKQhjubh and call the }(hjhhhNhNubh)}(h0:ref:`VIDIOC_TRY_EXT_CTRLS `h]ju)}(hjh]hVIDIOC_TRY_EXT_CTRLS}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef 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&]uh1hhhhKQhjWhhubh)}(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 }(hj;hhhNhNubj)}(h``id``h]hid}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubh or }(hj;hhhNhNubj)}(h ``which``h]hwhich}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubh is invalid drivers return an }(hj;hhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubhm error code. When the value is out of bounds drivers can choose to take the closest valid value or return an }(hj;hhhNhNubj)}(h ``ERANGE``h]hERANGE}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubh_ error code, whatever seems more appropriate. In the first case the new value is set in struct }(hj;hhhNhNubh)}(h:c:type:`v4l2_ext_control`h]j)}(hjh]hv4l2_ext_control}(hjhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ext_controluh1hhhhKYhj;ubh. 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 }(hj;hhhNhNubj)}(h ``EINVAL``h]hEINVAL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj;ubh error code error.}(hj;hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKYhjWhhubh)}(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]ju)}(hjh]hrequest}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthjubah}(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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh=, then the controls are not applied immediately when calling }(hjhhhNhNubh)}(h.:ref:`VIDIOC_S_EXT_CTRLS `h]ju)}(hj*h]hVIDIOC_S_EXT_CTRLS}(hj,hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj(ubah}(h]h ]h"]h$]h&]refdocj refdomainj6reftyperef 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}(hjLhhhNhNubah}(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}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh will be returned.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKahjWhhubh)}(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 }(hjvhhhNhNubh)}(h.:ref:`VIDIOC_S_EXT_CTRLS `h]ju)}(hjh]hVIDIOC_S_EXT_CTRLS}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj~ubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnjvidioc_g_ext_ctrlsuh1hhhhKjhjvubh> for a request that has already been queued will result in an }(hjvhhhNhNubj)}(h ``EBUSY``h]hEBUSY}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjvubh error.}(hjvhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKjhjWhhubh)}(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]ju)}(hjh]hVIDIOC_G_EXT_CTRLS}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthjubah}(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}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh error.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKmhjWhhubh)}(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.}(hj4 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKthjWhhubhtabular_col_spec)}(hhh]h}(h]h ]h"]h$]h&]spec|p{6.8cm}|p{4.0cm}|p{6.5cm}|uh1jB hhhKyhjWhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jV4L.v4l2_ext_control (C type)c.V4L.v4l2_ext_controlhNtauh1jhjWhhhNhNubj#)}(hhh](j()}(hv4l2_ext_controlh]j.)}(htype v4l2_ext_controlh](hdesc_sig_keyword)}(htypeh]htype}(hjj hhhNhNubah}(h]h ]kah"]h$]h&]uh1jh hjd hhhhhK{ubhdesc_sig_space)}(h h]h }(hj{ hhhNhNubah}(h]h ]wah"]h$]h&]uh1jy hjd hhhhhK{ubj4)}(hv4l2_ext_controlh]j:)}(hjb h]hv4l2_ext_control}(hj hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j9hj ubah}(h]h ](jLjMeh"]h$]h&]hhuh1j3hjd hhhhhK{ubeh}(h]h ]h"]h$]h&]hhjWuh1j-jXjYhj` hhhhhK{ubah}(h]j[ ah ](j]j^eh"]h$]h&]jbjc)jdhuh1j'hhhK{hj] hhubjf)}(hhh]h}(h]h ]h"]h$]h&]uh1jehj] hhhhhK{ubeh}(h]h ](jstypeeh"]h$]h&]jxjsjyj jzj j{j|j}uh1j"hhhjWhNhNubhraw)}(h \footnotesizeh]h \footnotesize}hj sbah}(h]h ]h"]h$]h&]formatlatexhhuh1j hhhK}hjWhhubhtable)}(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)}(hj/ h]hid}(hj1 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)}(h/Identifies the control, set by the application.h]h/Identifies the control, set by the application.}(hjM hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJ 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}(hjm hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjj ubah}(h]h ]h"]h$]h&]uh1j hjg 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 hjg 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 hjg 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]ju)}(hj h]hVIDIOC_G_EXT_CTRLS}(hj hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj 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 }(hj hhhNhNubj)}(h``size``h]hsize}(hj( hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 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 }(hj hhhNhNubj)}(h*length*h]hlength}(hj: hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh( of the string may well be much smaller.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj 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}(hjk hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjh ubah}(h]h ]h"]h$]h&]uh1j hje 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 hje 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 hje 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 }(hj6 hhhNhNubj)}(h``V4L2_CTRL_TYPE_INTEGER64``h]hV4L2_CTRL_TYPE_INTEGER64}(hj> hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6 ubh and }(hj6 hhhNhNubj)}(h``V4L2_CTRL_FLAG_HAS_PAYLOAD``h]hV4L2_CTRL_FLAG_HAS_PAYLOAD}(hjP hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj6 ubh is not set.}(hj6 hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj3 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}(hjz hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjw ubah}(h]h ]h"]h$]h&]uh1j hjt 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 hjt 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 hjt 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}(hj4 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 *}(hj^ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj[ ubah}(h]h ]h"]h$]h&]uh1j hjX ubj )}(hhh]h)}(h``p_u8``h]j)}(hjw h]hp_u8}(hjy hhhNhNubah}(h]h ]h"]h$]h&]uh1jhju ubah}(h]h ]h"]h$]h&]uh1hhhhKhjr ubah}(h]h ]h"]h$]h&]uh1j hjX 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 hjX 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 }(hj hhhNhNubj)}(h``V4L2_CTRL_TYPE_U16``h]hV4L2_CTRL_TYPE_U16}(hjhhhNhNubah}(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__u32 *h]h__u32 *}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj-ubah}(h]h ]h"]h$]h&]uh1j hj*ubj )}(hhh]h)}(h ``p_u32``h]j)}(hjIh]hp_u32}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubah}(h]h ]h"]h$]h&]uh1hhhhKhjDubah}(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 }(hjghhhNhNubj)}(h``V4L2_CTRL_TYPE_U32``h]hV4L2_CTRL_TYPE_U32}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjgubh.}(hjghhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjdubah}(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 *}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]h)}(h ``p_s64``h]j)}(hj-h]hp_s64}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&]uh1hhhhKhj(ubah}(h]h ]h"]h$]h&]uh1j hjubj )}(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 }(hjKhhhNhNubj)}(h``V4L2_CTRL_TYPE_INTEGER64``h]hV4L2_CTRL_TYPE_INTEGER64}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubh and }(hjKhhhNhNubj)}(h``V4L2_CTRL_FLAG_HAS_PAYLOAD``h]hV4L2_CTRL_FLAG_HAS_PAYLOAD}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubh is set.}(hjKhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjHubah}(h]h ]h"]h$]h&]uh1j hjubeh}(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 ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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}(hjhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjj v4l2_areauh1hhhhKhjubh#. Valid if this control is of type }(hjhhhNhNubj)}(h``V4L2_CTRL_TYPE_AREA``h]hV4L2_CTRL_TYPE_AREA}(hjhhhNhNubah}(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 }(hj>hhhNhNubh)}(h:c:type:`v4l2_rect`h]j)}(hjHh]h v4l2_rect}(hjJhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjFubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjj v4l2_rectuh1hhhhKhj>ubh *}(hj>hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj;ubah}(h]h ]h"]h$]h&]uh1j hj8ubj )}(hhh]h)}(h ``p_rect``h]j)}(hjzh]hp_rect}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjxubah}(h]h ]h"]h$]h&]uh1hhhhKhjuubah}(h]h ]h"]h$]h&]uh1j hj8ubj )}(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 ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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 hj8ubeh}(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)}(hjh]hv4l2_ctrl_h264_sps}(hjhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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&]uh1hhhhKhj$ubah}(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 }(hjGhhhNhNubh)}(h:c:type:`v4l2_ctrl_h264_sps`h]j)}(hjQh]hv4l2_ctrl_h264_sps}(hjShhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_h264_spsuh1hhhhKhjGubh#. Valid if this control is of type }(hjGhhhNhNubj)}(h``V4L2_CTRL_TYPE_H264_SPS``h]hV4L2_CTRL_TYPE_H264_SPS}(hjrhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjGubh.}(hjGhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjDubah}(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 ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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 }(hjhhhNhNubh)}(h:c:type:`v4l2_ctrl_h264_pps`h]j)}(hjh]hv4l2_ctrl_h264_pps}(hjhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_h264_ppsuh1hhhhKhjubh#. Valid if this control is of type }(hjhhhNhNubj)}(h``V4L2_CTRL_TYPE_H264_PPS``h]hV4L2_CTRL_TYPE_H264_PPS}(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)}(h0struct :c:type:`v4l2_ctrl_h264_scaling_matrix` *h](hstruct }(hjKhhhNhNubh)}(h':c:type:`v4l2_ctrl_h264_scaling_matrix`h]j)}(hjUh]hv4l2_ctrl_h264_scaling_matrix}(hjWhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjSubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_h264_scaling_matrixuh1hhhhKhjKubh *}(hjKhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjHubah}(h]h ]h"]h$]h&]uh1j hjEubj )}(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 hjEubj )}(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 ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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 hjEubeh}(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 ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_h264_pred_weightsuh1hhhhKhjubh *}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]h)}(h``p_h264_pred_weights``h]j)}(hj6h]hp_h264_pred_weights}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&]uh1hhhhKhj1ubah}(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 }(hjThhhNhNubh)}(h%:c:type:`v4l2_ctrl_h264_pred_weights`h]j)}(hj^h]hv4l2_ctrl_h264_pred_weights}(hj`hhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhj\ubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_h264_pred_weightsuh1hhhhKhjTubh#. Valid if this control is of type }(hjThhhNhNubj)}(h$``V4L2_CTRL_TYPE_H264_PRED_WEIGHTS``h]h V4L2_CTRL_TYPE_H264_PRED_WEIGHTS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjTubh.}(hjThhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjQubah}(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 ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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}(hjhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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}(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_h264_decode_params` *h](hstruct }(hjXhhhNhNubh)}(h&:c:type:`v4l2_ctrl_h264_decode_params`h]j)}(hjbh]hv4l2_ctrl_h264_decode_params}(hjdhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_h264_decode_paramsuh1hhhhKhjXubh *}(hjXhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjUubah}(h]h ]h"]h$]h&]uh1j hjRubj )}(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 hjRubj )}(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 ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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 hjRubeh}(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)}(hjh]hv4l2_ctrl_fwht_params}(hjhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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)}(hjCh]h p_fwht_params}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjAubah}(h]h ]h"]h$]h&]uh1hhhhKhj>ubah}(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 }(hjahhhNhNubh)}(h:c:type:`v4l2_ctrl_fwht_params`h]j)}(hjkh]hv4l2_ctrl_fwht_params}(hjmhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_fwht_paramsuh1hhhhKhjaubh#. Valid if this control is of type }(hjahhhNhNubj)}(h``V4L2_CTRL_TYPE_FWHT_PARAMS``h]hV4L2_CTRL_TYPE_FWHT_PARAMS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubh.}(hjahhhNhNubeh}(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_vp8_frame` *h](hstruct }(hjhhhNhNubh)}(h:c:type:`v4l2_ctrl_vp8_frame`h]j)}(hjh]hv4l2_ctrl_vp8_frame}(hjhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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 }(hjhhhNhNubh)}(h:c:type:`v4l2_ctrl_vp8_frame`h]j)}(hjh]hv4l2_ctrl_vp8_frame}(hjhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_vp8_frameuh1hhhhKhjubh#. Valid if this control is of type }(hjhhhNhNubj)}(h``V4L2_CTRL_TYPE_VP8_FRAME``h]hV4L2_CTRL_TYPE_VP8_FRAME}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh.}(hjhhhNhNubeh}(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 }(hjehhhNhNubh)}(h":c:type:`v4l2_ctrl_mpeg2_sequence`h]j)}(hjoh]hv4l2_ctrl_mpeg2_sequence}(hjqhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjmubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_mpeg2_sequenceuh1hhhhKhjeubh *}(hjehhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjbubah}(h]h ]h"]h$]h&]uh1j hj_ubj )}(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 hj_ubj )}(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 ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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 hj_ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]h)}(h*struct :c:type:`v4l2_ctrl_mpeg2_picture` *h](hstruct }(hjhhhNhNubh)}(h!:c:type:`v4l2_ctrl_mpeg2_picture`h]j)}(hjh]hv4l2_ctrl_mpeg2_picture}(hj hhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_mpeg2_pictureuh1hhhhKhjubh *}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]h)}(h``p_mpeg2_picture``h]j)}(hjPh]hp_mpeg2_picture}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjNubah}(h]h ]h"]h$]h&]uh1hhhhKhjKubah}(h]h ]h"]h$]h&]uh1j hjubj )}(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 }(hjnhhhNhNubh)}(h!:c:type:`v4l2_ctrl_mpeg2_picture`h]j)}(hjxh]hv4l2_ctrl_mpeg2_picture}(hjzhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjvubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_mpeg2_pictureuh1hhhhKhjnubh#. Valid if this control is of type }(hjnhhhNhNubj)}(h ``V4L2_CTRL_TYPE_MPEG2_PICTURE``h]hV4L2_CTRL_TYPE_MPEG2_PICTURE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjnubh.}(hjnhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjkubah}(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_quantisation` *h](hstruct }(hjhhhNhNubh)}(h&:c:type:`v4l2_ctrl_mpeg2_quantisation`h]j)}(hjh]hv4l2_ctrl_mpeg2_quantisation}(hjhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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 }(hjhhhNhNubh)}(h&:c:type:`v4l2_ctrl_mpeg2_quantisation`h]j)}(hj'h]hv4l2_ctrl_mpeg2_quantisation}(hj)hhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhj%ubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_mpeg2_quantisationuh1hhhhKhjubh#. Valid if this control is of type }(hjhhhNhNubj)}(h%``V4L2_CTRL_TYPE_MPEG2_QUANTISATION``h]h!V4L2_CTRL_TYPE_MPEG2_QUANTISATION}(hjHhhhNhNubah}(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_compressed_hdr` *h](hstruct }(hjrhhhNhNubh)}(h&:c:type:`v4l2_ctrl_vp9_compressed_hdr`h]j)}(hj|h]hv4l2_ctrl_vp9_compressed_hdr}(hj~hhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjzubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_vp9_compressed_hdruh1hhhhKhjrubh *}(hjrhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjoubah}(h]h ]h"]h$]h&]uh1j hjlubj )}(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 hjlubj )}(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 ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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}(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_vp9_frame` *h](hstruct }(hj!hhhNhNubh)}(h:c:type:`v4l2_ctrl_vp9_frame`h]j)}(hj+h]hv4l2_ctrl_vp9_frame}(hj-hhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_vp9_frameuh1hhhhKhj!ubh *}(hj!hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]h)}(h``p_vp9_frame``h]j)}(hj]h]h p_vp9_frame}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&]uh1hhhhKhjXubah}(h]h ]h"]h$]h&]uh1j hjubj )}(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 }(hj{hhhNhNubh)}(h:c:type:`v4l2_ctrl_vp9_frame`h]j)}(hjh]hv4l2_ctrl_vp9_frame}(hjhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_vp9_frameuh1hhhhMhj{ubh#. Valid if this control is of type }(hj{hhhNhNubj)}(h``V4L2_CTRL_TYPE_VP9_FRAME``h]hV4L2_CTRL_TYPE_VP9_FRAME}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj{ubh.}(hj{hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjxubah}(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_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 ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubah}(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)}(hj4h]hv4l2_ctrl_hdr10_cll_info}(hj6hhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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}(hjUhhhNhNubah}(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 ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjj!v4l2_ctrl_hdr10_mastering_displayuh1hhhhMhjubh *}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj|ubah}(h]h ]h"]h$]h&]uh1j hjyubj )}(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 hjyubj )}(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 ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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 hjyubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]h)}(h%struct :c:type:`v4l2_ctrl_hevc_sps` *h](hstruct }(hj.hhhNhNubh)}(h:c:type:`v4l2_ctrl_hevc_sps`h]j)}(hj8h]hv4l2_ctrl_hevc_sps}(hj:hhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhj6ubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_hevc_spsuh1hhhhM hj.ubh *}(hj.hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM hj+ubah}(h]h ]h"]h$]h&]uh1j hj(ubj )}(hhh]h)}(h``p_hevc_sps``h]j)}(hjjh]h p_hevc_sps}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhubah}(h]h ]h"]h$]h&]uh1hhhhM hjeubah}(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 ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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 ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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)}(hjh]h p_hevc_pps}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(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 }(hj7hhhNhNubh)}(h:c:type:`v4l2_ctrl_hevc_pps`h]j)}(hjAh]hv4l2_ctrl_hevc_pps}(hjChhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_hevc_ppsuh1hhhhMhj7ubh#. Valid if this control is of type }(hj7hhhNhNubj)}(h``V4L2_CTRL_TYPE_HEVC_PPS``h]hV4L2_CTRL_TYPE_HEVC_PPS}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj7ubh.}(hj7hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj4ubah}(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 ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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 ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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}(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)}(h0struct :c:type:`v4l2_ctrl_hevc_scaling_matrix` *h](hstruct }(hj;hhhNhNubh)}(h':c:type:`v4l2_ctrl_hevc_scaling_matrix`h]j)}(hjEh]hv4l2_ctrl_hevc_scaling_matrix}(hjGhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjCubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_hevc_scaling_matrixuh1hhhhMhj;ubh *}(hj;hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj8ubah}(h]h ]h"]h$]h&]uh1j hj5ubj )}(hhh]h)}(h``p_hevc_scaling_matrix``h]j)}(hjwh]hp_hevc_scaling_matrix}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1hhhhMhjrubah}(h]h ]h"]h$]h&]uh1j hj5ubj )}(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 ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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 hj5ubeh}(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}(hjhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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&]uh1jhj$ubah}(h]h ]h"]h$]h&]uh1hhhhMhj!ubah}(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 }(hjDhhhNhNubh)}(h&:c:type:`v4l2_ctrl_hevc_decode_params`h]j)}(hjNh]hv4l2_ctrl_hevc_decode_params}(hjPhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_hevc_decode_paramsuh1hhhhMhjDubh#. Valid if this control is of type }(hjDhhhNhNubj)}(h%``V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS``h]h!V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjDubh.}(hjDhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjAubah}(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 ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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 ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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}(hjhhhNhNubah}(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 }(hjHhhhNhNubh)}(h(:c:type:`v4l2_ctrl_av1_tile_group_entry`h]j)}(hjRh]hv4l2_ctrl_av1_tile_group_entry}(hjThhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_av1_tile_group_entryuh1hhhhM"hjHubh *}(hjHhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM"hjEubah}(h]h ]h"]h$]h&]uh1j hjBubj )}(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 hjBubj )}(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 ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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 hjBubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]h)}(h&struct :c:type:`v4l2_ctrl_av1_frame` *h](hstruct }(hjhhhNhNubh)}(h:c:type:`v4l2_ctrl_av1_frame`h]j)}(hj h]hv4l2_ctrl_av1_frame}(hj hhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_av1_frameuh1hhhhM&hjubh *}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM&hjubah}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh]h)}(h``p_av1_frame``h]j)}(hj3 h]h p_av1_frame}(hj5 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj1 ubah}(h]h ]h"]h$]h&]uh1hhhhM'hj. ubah}(h]h ]h"]h$]h&]uh1j hjubj )}(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 }(hjQ hhhNhNubh)}(h:c:type:`v4l2_ctrl_av1_frame`h]j)}(hj[ h]hv4l2_ctrl_av1_frame}(hj] hhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjY ubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_av1_frameuh1hhhhM(hjQ ubh#. Valid if this control is of type }(hjQ hhhNhNubj)}(h``V4L2_CTRL_TYPE_AV1_FRAME``h]hV4L2_CTRL_TYPE_AV1_FRAME}(hj| hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjQ ubh.}(hjQ hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM(hjN 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_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 ](jjsc-typeeh"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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 ](jjsc-typeeh"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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 }(hjU!hhhNhNubh)}(h":c:type:`v4l2_ctrl_hdr10_cll_info`h]j)}(hj_!h]hv4l2_ctrl_hdr10_cll_info}(hja!hhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhj]!ubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ctrl_hdr10_cll_infouh1hhhhM.hjU!ubh *}(hjU!hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM.hjR!ubah}(h]h ]h"]h$]h&]uh1j hjO!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 hjO!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 ](jjsc-typeeh"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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 hjO!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 ](jjsc-typeeh"]h$]h&]uh1jhj "ubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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)}(hj@"h]hp_hdr10_mastering_display}(hjB"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>"ubah}(h]h ]h"]h$]h&]uh1hhhhM3hj;"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 }(hj^"hhhNhNubh)}(h+:c:type:`v4l2_ctrl_hdr10_mastering_display`h]j)}(hjh"h]h!v4l2_ctrl_hdr10_mastering_display}(hjj"hhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjf"ubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjj!v4l2_ctrl_hdr10_mastering_displayuh1hhhhM4hj^"ubh#. Valid if this control is of type }(hj^"hhhNhNubj)}(h*``V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY``h]h&V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj^"ubh.}(hj^"hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM4hj["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}}(hj.#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 hjWhhhNhNubj )}(h \normalsizeh]h \normalsize}hjg#sbah}(h]h ]h"]h$]h&]formatlatexhhuh1j hhhM?hjWhhubjC )}(hhh]h}(h]h ]h"]h$]h&]jM |p{4.0cm}|p{2.5cm}|p{10.8cm}|uh1jB hhhMChjWhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jV4L.v4l2_ext_controls (C type)c.V4L.v4l2_ext_controlshNtauh1jhjWhhhNhNubj#)}(hhh](j()}(hv4l2_ext_controlsh]j.)}(htype v4l2_ext_controlsh](ji )}(hjl h]htype}(hj#hhhNhNubah}(h]h ]ju ah"]h$]h&]uh1jh hj#hhhhhMEubjz )}(h h]h }(hj#hhhNhNubah}(h]h ]j ah"]h$]h&]uh1jy hj#hhhhhMEubj4)}(hv4l2_ext_controlsh]j:)}(hj#h]hv4l2_ext_controls}(hj#hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j9hj#ubah}(h]h ](jLjMeh"]h$]h&]hhuh1j3hj#hhhhhMEubeh}(h]h ]h"]h$]h&]hhjWuh1j-jXjYhj#hhhhhMEubah}(h]j#ah ](j]j^eh"]h$]h&]jbjc)jdhuh1j'hhhMEhj#hhubjf)}(hhh]h}(h]h ]h"]h$]h&]uh1jehj#hhhhhMEubeh}(h]h ](jstypeeh"]h$]h&]jxjsjyj#jzj#j{j|j}uh1j"hhhjWhNhNubj )}(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 {}(hj#$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMNhj $ubah}(h]h ]h"]h$]h&]uh1j hj$ubj )}(hhh]h)}(h (anonymous)h]h (anonymous)}(hj:$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMOhj7$ubah}(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&]uh1hhhhMPhjX$ubah}(h]h ]h"]h$]h&]uh1j hjU$ubj )}(hhh]h)}(h ``which``h]j)}(hjt$h]hwhich}(hjv$hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjr$ubah}(h]h ]h"]h$]h&]uh1hhhhMQhjo$ubah}(h]h ]h"]h$]h&]uh1j hjU$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 hjU$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 }(hj>%hhhNhNubj)}(h``V4L2_CTRL_WHICH_DEF_VAL``h]hV4L2_CTRL_WHICH_DEF_VAL}(hjF%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>%ubh, }(hj>%hhhNhNubj)}(h``V4L2_CTRL_WHICH_MIN_VAL``h]hV4L2_CTRL_WHICH_MIN_VAL}(hjX%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>%ubh or }(hj>%hhhNhNubj)}(h``V4L2_CTRL_WHICH_MAX_VAL``h]hV4L2_CTRL_WHICH_MAX_VAL}(hjj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj>%ubhk be aware that you can only get the default/minimum/maximum value of the control, you cannot set or try it.}(hj>%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]ju)}(hj%h]h ctrl-class}(hj%hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj%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]ju)}(hj<&h]hVIDIOC_TRY_EXT_CTRLS}(hj>&hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj:&ubah}(h]h ]h"]h$]h&]refdocj refdomainjH&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}(hj^&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)}(hj0#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)}(hj4'h]hcount}(hj6'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2'ubah}(h]h ]h"]h$]h&]uh1hhhhMyhj/'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.}(hjR'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMzhjO'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}(hjr'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM{hjo'ubah}(h]h ]h"]h$]h&]uh1j hjl'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 hjl'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 hjl'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}(hj1(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)(ubh to }(hj)(hhhNhNubj)}(h ``count``h]hcount}(hjC(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}(hjU(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)(ubh is less than }(hj)(hhhNhNubj)}(h ``count``h]hcount}(hjg(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}(hjy(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]ju)}(hj(h]hVIDIOC_TRY_EXT_CTRLS}(hj(hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj(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]ju)}(hj(h]hVIDIOC_S_EXT_CTRLS}(hj(hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj(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]ju)}(hj+)h]hVIDIOC_TRY_EXT_CTRLS}(hj-)hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj))ubah}(h]h ]h"]h$]h&]refdocj refdomainj7)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}(hjM)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubh equivalent for }(hj(hhhNhNubh)}(h.:ref:`VIDIOC_G_EXT_CTRLS `h]ju)}(hja)h]hVIDIOC_G_EXT_CTRLS}(hjc)hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj_)ubah}(h]h ]h"]h$]h&]refdocj refdomainjm)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}(hj;*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj8*ubah}(h]h ]h"]h$]h&]uh1j hj5*ubj )}(hhh]h)}(h``reserved``\ [1]h](j)}(h ``reserved``h]hreserved}(hjV*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjR*ubh [1]}(hjR*hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjO*ubah}(h]h ]h"]h$]h&]uh1j hj5*ubj )}(hhh](h)}(hReserved for future extensions.h]hReserved for future extensions.}(hjw*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjt*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&]uh1hhhhMhjt*ubeh}(h]h ]h"]h$]h&]uh1j hj5*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 ](jjsc-typeeh"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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 }(hj+hhhNhNubj)}(h ``count``h]hcount}(hj'+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj+ubh equals zero.}(hj+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 hjWhhhNhNubjC )}(hhh]h}(h]h ]h"]h$]h&]jM |p{7.3cm}|p{2.0cm}|p{8.0cm}|uh1jB hhhMhjWhhubh)}(h.. _ctrl-class:h]h}(h]h ]h"]h$]h&]h ctrl-classuh1hhMhjWhhhhubj )}(hhh](h)}(hControl classesh]hControl classes}(hjx+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhju+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]ju)}(hj+h]hcontrol}(hj+hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj+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]ju)}(hj,h]h VIDIOC_S_CTRL}(hj,hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj,ubah}(h]h ]h"]h$]h&]refdocj refdomainj!,reftyperef refexplicitrefwarnj vidioc_g_ctrluh1hhhhMhj+ubh and }(hj+hhhNhNubh)}(h$:ref:`VIDIOC_G_CTRL `h]ju)}(hj9,h]h VIDIOC_G_CTRL}(hj;,hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj7,ubah}(h]h ]h"]h$]h&]refdocj refdomainjE,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)}(hju,h]hV4L2_CTRL_CLASS_CODEC}(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)}(h0x990000h]h0x990000}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj,ubah}(h]h ]h"]h$]h&]uh1j hjm,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]ju)}(hj,h]hcodec-controls}(hj,hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj,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 hjm,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 }(hj%-hhhNhNubh)}(h:ref:`camera-controls`h]ju)}(hj/-h]hcamera-controls}(hj1-hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj--ubah}(h]h ]h"]h$]h&]refdocj refdomainj;-reftyperef refexplicitrefwarnjcamera-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_FM_TX``h]j)}(hjk-h]hV4L2_CTRL_CLASS_FM_TX}(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)}(h0x9b0000h]h0x9b0000}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj-ubah}(h]h ]h"]h$]h&]uh1j hjc-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]ju)}(hj-h]hfm-tx-controls}(hj-hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj-ubah}(h]h ]h"]h$]h&]refdocj refdomainj-reftyperef refexplicitrefwarnjfm-tx-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_FLASH``h]j)}(hj-egh]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]ju)}(hj%.h]hflash-controls}(hj'.hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj#.ubah}(h]h ]h"]h$]h&]refdocj refdomainj1.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)}(hja.h]hV4L2_CTRL_CLASS_JPEG}(hjc.hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_.ubah}(h]h ]h"]h$]h&]uh1hhhhMhj\.ubah}(h]h ]h"]h$]h&]uh1j hjY.ubj )}(hhh]h)}(h0x9d0000h]h0x9d0000}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj|.ubah}(h]h ]h"]h$]h&]uh1j hjY.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]ju)}(hj.h]h jpeg-controls}(hj.hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj.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 hjY.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]ju)}(hj/h]himage-source-controls}(hj/hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj/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)}(hjW/h]hV4L2_CTRL_CLASS_IMAGE_PROC}(hjY/hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjU/ubah}(h]h ]h"]h$]h&]uh1hhhhMhjR/ubah}(h]h ]h"]h$]h&]uh1j hjO/ubj )}(hhh]h)}(h0x9f0000h]h0x9f0000}(hju/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjr/ubah}(h]h ]h"]h$]h&]uh1j hjO/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]ju)}(hj/h]himage-process-controls}(hj/hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj/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 hjO/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}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj/ubah}(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]ju)}(hj0h]hfm-rx-controls}(hj0hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj0ubah}(h]h ]h"]h$]h&]refdocj refdomainj0reftyperef 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)}(hjM0h]hV4L2_CTRL_CLASS_RF_TUNER}(hjO0hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjK0ubah}(h]h ]h"]h$]h&]uh1hhhhMhjH0ubah}(h]h ]h"]h$]h&]uh1j hjE0ubj )}(hhh]h)}(h0xa20000h]h0xa20000}(hjk0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjh0ubah}(h]h ]h"]h$]h&]uh1j hjE0ubj )}(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]ju)}(hj0h]hrf-tuner-controls}(hj0hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj0ubah}(h]h ]h"]h$]h&]refdocj refdomainj0reftyperef refexplicitrefwarnjrf-tuner-controlsuh1hhhhMhj0ubh.}(hj0hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj0ubah}(h]h ]h"]h$]h&]uh1j hjE0ubeh}(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 }(hj0hhhNhNubh)}(h:ref:`detect-controls`h]ju)}(hj1h]hdetect-controls}(hj 1hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj1ubah}(h]h ]h"]h$]h&]refdocj refdomainj1reftyperef refexplicitrefwarnjdetect-controlsuh1hhhhMhj0ubh.}(hj0hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj0ubah}(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)}(hjC1h]hV4L2_CTRL_CLASS_CODEC_STATELESS}(hjE1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjA1ubah}(h]h ]h"]h$]h&]uh1hhhhMhj>1ubah}(h]h ]h"]h$]h&]uh1j hj;1ubj )}(hhh]h)}(h0xa40000h]h0xa40000}(hja1hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj^1ubah}(h]h ]h"]h$]h&]uh1j hj;1ubj )}(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 }(hjx1hhhNhNubh)}(h:ref:`codec-stateless-controls`h]ju)}(hj1h]hcodec-stateless-controls}(hj1hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj1ubah}(h]h ]h"]h$]h&]refdocj refdomainj1reftyperef refexplicitrefwarnjcodec-stateless-controlsuh1hhhhMhjx1ubh.}(hjx1hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhju1ubah}(h]h ]h"]h$]h&]uh1j hj;1ubeh}(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 }(hj1hhhNhNubh)}(h:ref:`colorimetry-controls`h]ju)}(hj1h]hcolorimetry-controls}(hj1hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj1ubah}(h]h ]h"]h$]h&]refdocj refdomainj 2reftyperef refexplicitrefwarnjcolorimetry-controlsuh1hhhhMhj1ubh.}(hj1hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj1ubah}(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 hju+ubeh}(h](id3jt+eh ] longtableah"] ctrl-classah$]h&]uh1j hjWhhhNhNexpect_referenced_by_name}jD2jj+sexpect_referenced_by_id}jt+jj+subeh}(h] descriptionah ]h"] descriptionah$]h&]uh1hhhhhhhhK(ubh)}(hhh](h)}(h Return Valueh]h Return Value}(hjV2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjS2hhhhhMubh)}(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 }(hjd2hhhNhNubj)}(h ``errno``h]herrno}(hjl2hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjd2ubhM variable is set appropriately. The generic error codes are described at the }(hjd2hhhNhNubh)}(h':ref:`Generic Error Codes `h]ju)}(hj2h]hGeneric Error Codes}(hj2hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj~2ubah}(h]h ]h"]h$]h&]refdocj refdomainj2reftyperef refexplicitrefwarnj gen-errorsuh1hhhhMhjd2ubh chapter.}(hjd2hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhjS2hhubjw)}(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 ](jjsc-typeeh"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype 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)}(hj2h]hv4l2_ext_controls}(hj3hhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhj2ubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ext_controlsuh1hhhhMhj2ubh }(hj2hhhNhNubj)}(h ``which``h]hwhich}(hj 3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubh is invalid, or the struct }(hj2hhhNhNubh)}(h:c:type:`v4l2_ext_control`h]j)}(hj43h]hv4l2_ext_control}(hj63hhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhj23ubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ext_controluh1hhhhMhj2ubh }hj2sbj)}(h ``value``h]hvalue}(hjU3hhhNhNubah}(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}(hjg3hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj2ubh field was set to }(hj2hhhNhNubj)}(h``V4L2_CTRL_WHICH_REQUEST_VAL``h]hV4L2_CTRL_WHICH_REQUEST_VAL}(hjy3hhhNhNubah}(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]ju)}(hj3h]hVIDIOC_S_EXT_CTRLS}(hj3hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj3ubah}(h]h ]h"]h$]h&]refdocj refdomainj3reftyperef refexplicitrefwarnjvidioc_g_ext_ctrlsuh1hhhhMhj2ubh and }(hj2hhhNhNubh)}(h0:ref:`VIDIOC_TRY_EXT_CTRLS `h]ju)}(hj3h]hVIDIOC_TRY_EXT_CTRLS}(hj3hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jthj3ubah}(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&]uh1j{hhhMhj2ubj|)}(hIERANGE The struct :c:type:`v4l2_ext_control` ``value`` is out of bounds. h](j)}(hERANGEh]hERANGE}(hj 4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMhj 4ubj)}(hhh]h)}(hAThe struct :c:type:`v4l2_ext_control` ``value`` is out of bounds.h](h The struct }(hj4hhhNhNubh)}(h:c:type:`v4l2_ext_control`h]j)}(hj(4h]hv4l2_ext_control}(hj*4hhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhj&4ubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_ext_controluh1hhhhMhj4ubh }(hj4hhhNhNubj)}(h ``value``h]hvalue}(hjI4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj4ubh is out of bounds.}(hj4hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj4ubah}(h]h ]h"]h$]h&]uh1jhj 4ubeh}(h]h ]h"]h$]h&]uh1j{hhhMhj2hhubj|)}(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}(hjq4hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhMhjm4ubj)}(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&]uh1jhjm4ubeh}(h]h ]h"]h$]h&]uh1j{hhhMhj2hhubj|)}(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&]uh1j{hhhMhj2hhubj|)}(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.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM!hj5ubh)}(hkOr the ``which`` field was set to ``V4L2_CTRL_WHICH_REQUEST_VAL`` but the device does not support requests.h](hOr the }(hj$5hhhNhNubj)}(h ``which``h]hwhich}(hj,5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$5ubh field was set to }(hj$5hhhNhNubj)}(h``V4L2_CTRL_WHICH_REQUEST_VAL``h]hV4L2_CTRL_WHICH_REQUEST_VAL}(hj>5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$5ubh* but the device does not support requests.}(hj$5hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM%hj5ubh)}(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.}(hjV5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM(hj5ubeh}(h]h ]h"]h$]h&]uh1jhj5ubeh}(h]h ]h"]h$]h&]uh1j{hhhM(hj2hhubeh}(h]h ]h"]h$]h&]uh1jvhjS2hhhhhNubeh}(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&]uh1hhhhhhhhKjG2}j5hsjI2}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_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}(h]hajt+]jj+aunameids}(j5hj5j5hhjbj_jTjQjP2jM2jD2jt+j{5jx5u nametypes}(j5j5hjbjTjP2jD2j{5uh}(hhj5hhhj_jj j)jjjj jQjejM2jWj[ j` j#j#jt+ju+jx5jS2ja#j jZ+j#j@2ju+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.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6ubah}(h]h ]h"]h$]h&]levelKtypeINFOlineM<sourcehuh1j6hj+#ubj6)}(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.}(hj06hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-6ubah}(h]h ]h"]h$]h&]levelKtypej*6lineMvsourcehuh1j6hj&ubetransform_messages](j6)}(hhh]h)}(hhh]h8Hyperlink target "vidioc-g-ext-ctrls" is not referenced.}hjM6sbah}(h]h ]h"]h$]h&]uh1hhjJ6ubah}(h]h ]h"]h$]h&]levelKtypej*6sourcehlineKuh1j6ubj6)}(hhh]h)}(hhh]h0Hyperlink target "ctrl-class" is not referenced.}hjg6sbah}(h]h ]h"]h$]h&]uh1hhjd6ubah}(h]h ]h"]h$]h&]levelKtypej*6sourcehlineMuh1j6ube transformerN include_log] decorationNhhub.