€•Œsphinx.addnodes”Œdocument”“”)�”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)�”}”(hhh]”(hŒ pending_xref”“”)�”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…”�”}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ7/translations/zh_CN/userspace-api/media/v4l/dev-decoder”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)�”}”(hhh]”hŒChinese (Traditional)”…”�”}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ7/translations/zh_TW/userspace-api/media/v4l/dev-decoder”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒItalian”…”�”}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ7/translations/it_IT/userspace-api/media/v4l/dev-decoder”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒJapanese”…”�”}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ7/translations/ja_JP/userspace-api/media/v4l/dev-decoder”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒKorean”…”�”}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ7/translations/ko_KR/userspace-api/media/v4l/dev-decoder”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒPortuguese (Brazilian)”…”�”}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ7/translations/pt_BR/userspace-api/media/v4l/dev-decoder”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)�”}”(hhh]”hŒSpanish”…”�”}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ7/translations/sp_SP/userspace-api/media/v4l/dev-decoder”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)�”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…”�”}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒQ/var/lib/git/docbuild/linux/Documentation/userspace-api/media/v4l/dev-decoder.rst”h´KubhŒtarget”“”)�”}”(hŒ .. _decoder:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œdecoder”uh1hÈh´Khhh²hh³hÇubhŒsection”“”)�”}”(hhh]”(hŒtitle”“”)�”}”(hŒ1Memory-to-Memory Stateful Video Decoder Interface”h]”hŒ1Memory-to-Memory Stateful Video Decoder Interface”…”�”}”(hhÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhhØh²hh³hÇh´KubhŒ paragraph”“”)�”}”(hXA stateful video decoder takes complete chunks of the bytestream (e.g. Annex-B H.264/HEVC stream, raw VP8/9 stream) and decodes them into raw video frames in display order. The decoder is expected not to require any additional information from the client to process these buffers.”h]”hXA stateful video decoder takes complete chunks of the bytestream (e.g. Annex-B H.264/HEVC stream, raw VP8/9 stream) and decodes them into raw video frames in display order. The decoder is expected not to require any additional information from the client to process these buffers.”…”�”}”(hhíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K hhØh²hubhì)�”}”(hŒûPerforming software parsing, processing etc. of the stream in the driver in order to support this interface is strongly discouraged. In case such operations are needed, use of the Stateless Video Decoder Interface (in development) is strongly advised.”h]”hŒûPerforming software parsing, processing etc. of the stream in the driver in order to support this interface is strongly discouraged. In case such operations are needed, use of the Stateless Video Decoder Interface (in development) is strongly advised.”…”�”}”(hhûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KhhØh²hubh×)�”}”(hhh]”(hÜ)�”}”(hŒ/Conventions and Notations Used in This Document”h]”hŒ/Conventions and Notations Used in This Document”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhj h²hh³hÇh´KubhŒenumerated_list”“”)�”}”(hhh]”(hŒ list_item”“”)�”}”(hŒNThe general V4L2 API rules apply if not specified in this document otherwise. ”h]”hì)�”}”(hŒMThe general V4L2 API rules apply if not specified in this document otherwise.”h]”hŒMThe general V4L2 API rules apply if not specified in this document otherwise.”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Khj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³hÇh´Nubj )�”}”(hŒpThe meaning of words "must", "may", "should", etc. is as per `RFC 2119 `_. ”h]”hì)�”}”(hŒoThe meaning of words "must", "may", "should", etc. is as per `RFC 2119 `_.”h]”(hŒIThe meaning of words “mustâ€�, “mayâ€�, “shouldâ€�, etc. is as per ”…”�”}”(hj=h²hh³Nh´NubhŒ reference”“”)�”}”(hŒ1`RFC 2119 `_”h]”hŒRFC 2119”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”Œname”ŒRFC 2119”Œrefuri”Œ#https://tools.ietf.org/html/rfc2119”uh1jEhj=ubhÉ)�”}”(hŒ& ”h]”h}”(h]”Œrfc-2119”ah ]”h"]”Œrfc 2119”ah$]”h&]”Œrefuri”jXuh1hÈŒ referenced”Khj=ubhŒ.”…”�”}”(hj=h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Khj9ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³hÇh´Nubj )�”}”(hŒ.All steps not marked "optional" are required. ”h]”hì)�”}”(hŒ-All steps not marked "optional" are required.”h]”hŒ1All steps not marked “optionalâ€� are required.”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Khjwubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³hÇh´Nubj )�”}”(hŒ°:c:func:`VIDIOC_G_EXT_CTRLS` and :c:func:`VIDIOC_S_EXT_CTRLS` may be used interchangeably with :c:func:`VIDIOC_G_CTRL` and :c:func:`VIDIOC_S_CTRL`, unless specified otherwise. ”h]”hì)�”}”(hŒ¯:c:func:`VIDIOC_G_EXT_CTRLS` and :c:func:`VIDIOC_S_EXT_CTRLS` may be used interchangeably with :c:func:`VIDIOC_G_CTRL` and :c:func:`VIDIOC_S_CTRL`, unless specified otherwise.”h]”(h)�”}”(hŒ:c:func:`VIDIOC_G_EXT_CTRLS`”h]”hŒliteral”“”)�”}”(hj™h]”hŒVIDIOC_G_EXT_CTRLS()”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”(Œxref”Œc”Œc-func”eh"]”h$]”h&]”uh1j›hj—ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”Œ#userspace-api/media/v4l/dev-decoder”Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰Œ c:parent_key”Œsphinx.domains.c”Œ LookupKey”“”)�”}”Œdata”]”j»Œ ASTIdentifier”“”)�”}”Œ identifier”ŒV4L”sbN†”asbŒ reftarget”ŒVIDIOC_G_EXT_CTRLS”uh1hh³hÇh´Khj“ubhŒ and ”…”�”}”(hj“h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_S_EXT_CTRLS`”h]”jœ)�”}”(hjÑh]”hŒVIDIOC_S_EXT_CTRLS()”…”�”}”(hjÓh²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjÏubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_S_EXT_CTRLS”uh1hh³hÇh´Khj“ubhŒ" may be used interchangeably with ”…”�”}”(hj“h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_G_CTRL`”h]”jœ)�”}”(hjôh]”hŒVIDIOC_G_CTRL()”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjòubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒ VIDIOC_G_CTRL”uh1hh³hÇh´Khj“ubhŒ and ”…”�”}”hj“sbh)�”}”(hŒ:c:func:`VIDIOC_S_CTRL`”h]”jœ)�”}”(hjh]”hŒVIDIOC_S_CTRL()”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒ VIDIOC_S_CTRL”uh1hh³hÇh´Khj“ubhŒ, unless specified otherwise.”…”�”}”(hj“h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Khj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³hÇh´Nubj )�”}”(hŒáSingle-planar API (see :ref:`planar-apis`) and applicable structures may be used interchangeably with multi-planar API, unless specified otherwise, depending on decoder capabilities and following the general V4L2 guidelines. ”h]”hì)�”}”(hŒàSingle-planar API (see :ref:`planar-apis`) and applicable structures may be used interchangeably with multi-planar API, unless specified otherwise, depending on decoder capabilities and following the general V4L2 guidelines.”h]”(hŒSingle-planar API (see ”…”�”}”(hjHh²hh³Nh´Nubh)�”}”(hŒ:ref:`planar-apis`”h]”hŒinline”“”)�”}”(hjRh]”hŒ planar-apis”…”�”}”(hjVh²hh³Nh´Nubah}”(h]”h ]”(j§Œstd”Œstd-ref”eh"]”h$]”h&]”uh1jThjPubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j`Œreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆjÉŒ planar-apis”uh1hh³hÇh´K#hjHubhŒ·) and applicable structures may be used interchangeably with multi-planar API, unless specified otherwise, depending on decoder capabilities and following the general V4L2 guidelines.”…”�”}”(hjHh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K#hjDubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³hÇh´Nubj )�”}”(hŒWi = [a..b]: sequence of integers from a to b, inclusive, i.e. i = [0..2]: i = 0, 1, 2. ”h]”hì)�”}”(hŒVi = [a..b]: sequence of integers from a to b, inclusive, i.e. i = [0..2]: i = 0, 1, 2.”h]”hŒVi = [a..b]: sequence of integers from a to b, inclusive, i.e. i = [0..2]: i = 0, 1, 2.”…”�”}”(hj†h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K'hj‚ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³hÇh´Nubj )�”}”(hŒ‹Given an ``OUTPUT`` buffer A, then A' represents a buffer on the ``CAPTURE`` queue containing data that resulted from processing buffer A. ”h]”hì)�”}”(hŒŠGiven an ``OUTPUT`` buffer A, then A' represents a buffer on the ``CAPTURE`` queue containing data that resulted from processing buffer A.”h]”(hŒ Given an ”…”�”}”(hjžh²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjžubhŒ0 buffer A, then A’ represents a buffer on the ”…”�”}”(hjžh²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjžubhŒ> queue containing data that resulted from processing buffer A.”…”�”}”(hjžh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K*hjšubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjh²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”Œenumtype”Œarabic”Œprefix”hŒsuffix”Œ.”uh1jhj h²hh³hÇh´KubhÉ)�”}”(hŒ.. _decoder-glossary:”h]”h}”(h]”h ]”h"]”h$]”h&]”hÔŒdecoder-glossary”uh1hÈh´K-hj h²hh³hÇubeh}”(h]”Œ/conventions-and-notations-used-in-this-document”ah ]”h"]”Œ/conventions and notations used in this document”ah$]”h&]”uh1hÖhhØh²hh³hÇh´Kubh×)�”}”(hhh]”(hÜ)�”}”(hŒGlossary”h]”hŒGlossary”…”�”}”(hj÷h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhjôh²hh³hÇh´K0ubhŒdefinition_list”“”)�”}”(hhh]”(hŒdefinition_list_item”“”)�”}”(hX1CAPTURE the destination buffer queue; for decoders, the queue of buffers containing decoded frames; for encoders, the queue of buffers containing an encoded bytestream; ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` or ``V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE``; data is captured from the hardware into ``CAPTURE`` buffers. ”h]”(hŒterm”“”)�”}”(hŒCAPTURE”h]”hŒCAPTURE”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K7hj ubhŒ definition”“”)�”}”(hhh]”hì)�”}”(hX(the destination buffer queue; for decoders, the queue of buffers containing decoded frames; for encoders, the queue of buffers containing an encoded bytestream; ``V4L2_BUF_TYPE_VIDEO_CAPTURE`` or ``V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE``; data is captured from the hardware into ``CAPTURE`` buffers.”h]”(hŒ¡the destination buffer queue; for decoders, the queue of buffers containing decoded frames; for encoders, the queue of buffers containing an encoded bytestream; ”…”�”}”(hj%h²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_BUF_TYPE_VIDEO_CAPTURE``”h]”hŒV4L2_BUF_TYPE_VIDEO_CAPTURE”…”�”}”(hj-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj%ubhŒ or ”…”�”}”(hj%h²hh³Nh´Nubjœ)�”}”(hŒ&``V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE``”h]”hŒ"V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj%ubhŒ*; data is captured from the hardware into ”…”�”}”(hj%h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjQh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj%ubhŒ buffers.”…”�”}”(hj%h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K3hj"ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´K7hjubj )�”}”(hŒ^client the application communicating with the decoder or encoder implementing this interface. ”h]”(j)�”}”(hŒclient”h]”hŒclient”…”�”}”(hjyh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K;hjuubj!)�”}”(hhh]”hì)�”}”(hŒVthe application communicating with the decoder or encoder implementing this interface.”h]”hŒVthe application communicating with the decoder or encoder implementing this interface.”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K:hj‡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjuubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´K;hjh²hubj )�”}”(hŒgcoded format encoded/compressed video bytestream format (e.g. H.264, VP8, etc.); see also: raw format. ”h]”(j)�”}”(hŒ coded format”h]”hŒ coded format”…”�”}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K?hj¤ubj!)�”}”(hhh]”hì)�”}”(hŒYencoded/compressed video bytestream format (e.g. H.264, VP8, etc.); see also: raw format.”h]”hŒYencoded/compressed video bytestream format (e.g. H.264, VP8, etc.); see also: raw format.”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K>hj¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj¤ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´K?hjh²hubj )�”}”(hŒ0coded height height for given coded resolution. ”h]”(j)�”}”(hŒ coded height”h]”hŒ coded height”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´KBhjÓubj!)�”}”(hhh]”hì)�”}”(hŒ"height for given coded resolution.”h]”hŒ"height for given coded resolution.”…”�”}”(hjèh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KBhjåubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjÓubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´KBhjh²hubj )�”}”(hŒ´coded resolution stream resolution in pixels aligned to codec and hardware requirements; typically visible resolution rounded up to full macroblocks; see also: visible resolution. ”h]”(j)�”}”(hŒcoded resolution”h]”hŒcoded resolution”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´KGhjubj!)�”}”(hhh]”hì)�”}”(hŒ¢stream resolution in pixels aligned to codec and hardware requirements; typically visible resolution rounded up to full macroblocks; see also: visible resolution.”h]”hŒ¢stream resolution in pixels aligned to codec and hardware requirements; typically visible resolution rounded up to full macroblocks; see also: visible resolution.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KEhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´KGhjh²hubj )�”}”(hŒ.coded width width for given coded resolution. ”h]”(j)�”}”(hŒ coded width”h]”hŒ coded width”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´KJhj1ubj!)�”}”(hhh]”hì)�”}”(hŒ!width for given coded resolution.”h]”hŒ!width for given coded resolution.”…”�”}”(hjFh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KJhjCubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj1ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´KJhjh²hubj )�”}”(hŒßcoding tree unit processing unit of the HEVC codec (corresponds to macroblock units in H.264, VP8, VP9), can use block structures of up to 64×64 pixels. Good at sub-partitioning the picture into variable sized structures. ”h]”(j)�”}”(hŒcoding tree unit”h]”hŒcoding tree unit”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´KPhj`ubj!)�”}”(hhh]”hì)�”}”(hŒÍprocessing unit of the HEVC codec (corresponds to macroblock units in H.264, VP8, VP9), can use block structures of up to 64×64 pixels. Good at sub-partitioning the picture into variable sized structures.”h]”hŒÍprocessing unit of the HEVC codec (corresponds to macroblock units in H.264, VP8, VP9), can use block structures of up to 64×64 pixels. Good at sub-partitioning the picture into variable sized structures.”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KMhjrubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj`ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´KPhjh²hubj )�”}”(hX/decode order the order in which frames are decoded; may differ from display order if the coded format includes a feature of frame reordering; for decoders, ``OUTPUT`` buffers must be queued by the client in decode order; for encoders ``CAPTURE`` buffers must be returned by the encoder in decode order. ”h]”(j)�”}”(hŒ decode order”h]”hŒ decode order”…”�”}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´KVhj�ubj!)�”}”(hhh]”hì)�”}”(hX!the order in which frames are decoded; may differ from display order if the coded format includes a feature of frame reordering; for decoders, ``OUTPUT`` buffers must be queued by the client in decode order; for encoders ``CAPTURE`` buffers must be returned by the encoder in decode order.”h]”(hŒ�the order in which frames are decoded; may differ from display order if the coded format includes a feature of frame reordering; for decoders, ”…”�”}”(hj¤h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj¤ubhŒD buffers must be queued by the client in decode order; for encoders ”…”�”}”(hj¤h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj¤ubhŒ9 buffers must be returned by the encoder in decode order.”…”�”}”(hj¤h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KShj¡ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj�ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´KVhjh²hubj )�”}”(hŒEdestination data resulting from the decode process; see ``CAPTURE``. ”h]”(j)�”}”(hŒ destination”h]”hŒ destination”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´KYhjâubj!)�”}”(hhh]”hì)�”}”(hŒ8data resulting from the decode process; see ``CAPTURE``.”h]”(hŒ,data resulting from the decode process; see ”…”�”}”(hj÷h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj÷ubhŒ.”…”�”}”(hj÷h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KYhjôubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjâubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´KYhjh²hubj )�”}”(hŒßdisplay order the order in which frames must be displayed; for encoders, ``OUTPUT`` buffers must be queued by the client in display order; for decoders, ``CAPTURE`` buffers must be returned by the decoder in display order. ”h]”(j)�”}”(hŒ display order”h]”hŒ display order”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K^hj#ubj!)�”}”(hhh]”hì)�”}”(hŒÐthe order in which frames must be displayed; for encoders, ``OUTPUT`` buffers must be queued by the client in display order; for decoders, ``CAPTURE`` buffers must be returned by the decoder in display order.”h]”(hŒ;the order in which frames must be displayed; for encoders, ”…”�”}”(hj8h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj8ubhŒF buffers must be queued by the client in display order; for decoders, ”…”�”}”(hj8h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj8ubhŒ: buffers must be returned by the decoder in display order.”…”�”}”(hj8h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K\hj5ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´K^hjh²hubj )�”}”(hŒ�DPB Decoded Picture Buffer; an H.264/HEVC term for a buffer that stores a decoded raw frame available for reference in further decoding steps. ”h]”(j)�”}”(hŒDPB”h]”hŒDPB”…”�”}”(hjzh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Kbhjvubj!)�”}”(hhh]”hì)�”}”(hŒŠDecoded Picture Buffer; an H.264/HEVC term for a buffer that stores a decoded raw frame available for reference in further decoding steps.”h]”hŒŠDecoded Picture Buffer; an H.264/HEVC term for a buffer that stores a decoded raw frame available for reference in further decoding steps.”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Kahjˆubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjvubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´Kbhjh²hubj )�”}”(hŒEOS end of stream. ”h]”(j)�”}”(hŒEOS”h]”hŒEOS”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Kehj¥ubj!)�”}”(hhh]”hì)�”}”(hŒend of stream.”h]”hŒend of stream.”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Kehj·ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj¥ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´Kehjh²hubj )�”}”(hŒ“IDR Instantaneous Decoder Refresh; a type of a keyframe in an H.264/HEVC-encoded stream, which clears the list of earlier reference frames (DPBs). ”h]”(j)�”}”(hŒIDR”h]”hŒIDR”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´KihjÔubj!)�”}”(hhh]”hì)�”}”(hŒŽInstantaneous Decoder Refresh; a type of a keyframe in an H.264/HEVC-encoded stream, which clears the list of earlier reference frames (DPBs).”h]”hŒŽInstantaneous Decoder Refresh; a type of a keyframe in an H.264/HEVC-encoded stream, which clears the list of earlier reference frames (DPBs).”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Khhjæubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjÔubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´Kihjh²hubj )�”}”(hŒpkeyframe an encoded frame that does not reference frames decoded earlier, i.e. can be decoded fully on its own. ”h]”(j)�”}”(hŒkeyframe”h]”hŒkeyframe”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Kmhjubj!)�”}”(hhh]”hì)�”}”(hŒfan encoded frame that does not reference frames decoded earlier, i.e. can be decoded fully on its own.”h]”hŒfan encoded frame that does not reference frames decoded earlier, i.e. can be decoded fully on its own.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Klhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´Kmhjh²hubj )�”}”(hX,macroblock a processing unit in image and video compression formats based on linear block transforms (e.g. H.264, VP8, VP9); codec-specific, but for most of popular codecs the size is 16x16 samples (pixels). The HEVC codec uses a slightly more flexible processing unit called coding tree unit (CTU). ”h]”(j)�”}”(hŒ macroblock”h]”hŒ macroblock”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Kshj2ubj!)�”}”(hhh]”hì)�”}”(hX a processing unit in image and video compression formats based on linear block transforms (e.g. H.264, VP8, VP9); codec-specific, but for most of popular codecs the size is 16x16 samples (pixels). The HEVC codec uses a slightly more flexible processing unit called coding tree unit (CTU).”h]”hX a processing unit in image and video compression formats based on linear block transforms (e.g. H.264, VP8, VP9); codec-specific, but for most of popular codecs the size is 16x16 samples (pixels). The HEVC codec uses a slightly more flexible processing unit called coding tree unit (CTU).”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KphjDubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj2ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´Kshjh²hubj )�”}”(hXOUTPUT the source buffer queue; for decoders, the queue of buffers containing an encoded bytestream; for encoders, the queue of buffers containing raw frames; ``V4L2_BUF_TYPE_VIDEO_OUTPUT`` or ``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE``; the hardware is fed with data from ``OUTPUT`` buffers. ”h]”(j)�”}”(hŒOUTPUT”h]”hŒOUTPUT”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Kzhjaubj!)�”}”(hhh]”hì)�”}”(hXthe source buffer queue; for decoders, the queue of buffers containing an encoded bytestream; for encoders, the queue of buffers containing raw frames; ``V4L2_BUF_TYPE_VIDEO_OUTPUT`` or ``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE``; the hardware is fed with data from ``OUTPUT`` buffers.”h]”(hŒ˜the source buffer queue; for decoders, the queue of buffers containing an encoded bytestream; for encoders, the queue of buffers containing raw frames; ”…”�”}”(hjvh²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_BUF_TYPE_VIDEO_OUTPUT``”h]”hŒV4L2_BUF_TYPE_VIDEO_OUTPUT”…”�”}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjvubhŒ or ”…”�”}”(hjvh²hh³Nh´Nubjœ)�”}”(hŒ%``V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE``”h]”hŒ!V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjvubhŒ%; the hardware is fed with data from ”…”�”}”(hjvh²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjvubhŒ buffers.”…”�”}”(hjvh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Kvhjsubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjaubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´Kzhjh²hubj )�”}”(hŒRPPS Picture Parameter Set; a type of metadata entity in an H.264/HEVC bytestream. ”h]”(j)�”}”(hŒPPS”h]”hŒPPS”…”�”}”(hjÊh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K}hjÆubj!)�”}”(hhh]”hì)�”}”(hŒMPicture Parameter Set; a type of metadata entity in an H.264/HEVC bytestream.”h]”hŒMPicture Parameter Set; a type of metadata entity in an H.264/HEVC bytestream.”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K}hjØubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjÆubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´K}hjh²hubj )�”}”(hŒRraw format uncompressed format containing raw pixel data (e.g. YUV, RGB formats). ”h]”(j)�”}”(hŒ raw format”h]”hŒ raw format”…”�”}”(hjùh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K€hjõubj!)�”}”(hhh]”hì)�”}”(hŒFuncompressed format containing raw pixel data (e.g. YUV, RGB formats).”h]”hŒFuncompressed format containing raw pixel data (e.g. YUV, RGB formats).”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K€hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjõubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´K€hjh²hubj )�”}”(hXresume point a point in the bytestream from which decoding may start/continue, without any previous state/data present, e.g.: a keyframe (VP8/VP9) or SPS/PPS/IDR sequence (H.264/HEVC); a resume point is required to start decode of a new stream, or to resume decoding after a seek. ”h]”(j)�”}”(hŒ resume point”h]”hŒ resume point”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K†hj$ubj!)�”}”(hhh]”hì)�”}”(hX a point in the bytestream from which decoding may start/continue, without any previous state/data present, e.g.: a keyframe (VP8/VP9) or SPS/PPS/IDR sequence (H.264/HEVC); a resume point is required to start decode of a new stream, or to resume decoding after a seek.”h]”hX a point in the bytestream from which decoding may start/continue, without any previous state/data present, e.g.: a keyframe (VP8/VP9) or SPS/PPS/IDR sequence (H.264/HEVC); a resume point is required to start decode of a new stream, or to resume decoding after a seek.”…”�”}”(hj9h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Kƒhj6ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj$ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´K†hjh²hubj )�”}”(hŒ;source data fed to the decoder or encoder; see ``OUTPUT``. ”h]”(j)�”}”(hŒsource”h]”hŒsource”…”�”}”(hjWh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K‰hjSubj!)�”}”(hhh]”hì)�”}”(hŒ3data fed to the decoder or encoder; see ``OUTPUT``.”h]”(hŒ(data fed to the decoder or encoder; see ”…”�”}”(hjhh²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjhubhŒ.”…”�”}”(hjhh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K‰hjeubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjSubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´K‰hjh²hubj )�”}”(hŒWsource height height in pixels for given source resolution; relevant to encoders only. ”h]”(j)�”}”(hŒ source height”h]”hŒ source height”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´KŒhj”ubj!)�”}”(hhh]”hì)�”}”(hŒHheight in pixels for given source resolution; relevant to encoders only.”h]”hŒHheight in pixels for given source resolution; relevant to encoders only.”…”�”}”(hj©h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KŒhj¦ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj”ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´KŒhjh²hubj )�”}”(hŒ´source resolution resolution in pixels of source frames being source to the encoder and subject to further cropping to the bounds of visible resolution; relevant to encoders only. ”h]”(j)�”}”(hŒsource resolution”h]”hŒsource resolution”…”�”}”(hjÇh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K‘hjÃubj!)�”}”(hhh]”hì)�”}”(hŒ¡resolution in pixels of source frames being source to the encoder and subject to further cropping to the bounds of visible resolution; relevant to encoders only.”h]”hŒ¡resolution in pixels of source frames being source to the encoder and subject to further cropping to the bounds of visible resolution; relevant to encoders only.”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K�hjÕubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjÃubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´K‘hjh²hubj )�”}”(hŒUsource width width in pixels for given source resolution; relevant to encoders only. ”h]”(j)�”}”(hŒ source width”h]”hŒ source width”…”�”}”(hjöh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K”hjòubj!)�”}”(hhh]”hì)�”}”(hŒGwidth in pixels for given source resolution; relevant to encoders only.”h]”hŒGwidth in pixels for given source resolution; relevant to encoders only.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K”hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjòubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´K”hjh²hubj )�”}”(hŒSSPS Sequence Parameter Set; a type of metadata entity in an H.264/HEVC bytestream. ”h]”(j)�”}”(hŒSPS”h]”hŒSPS”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K—hj!ubj!)�”}”(hhh]”hì)�”}”(hŒNSequence Parameter Set; a type of metadata entity in an H.264/HEVC bytestream.”h]”hŒNSequence Parameter Set; a type of metadata entity in an H.264/HEVC bytestream.”…”�”}”(hj6h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K—hj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´K—hjh²hubj )�”}”(hŒ›stream metadata additional (non-visual) information contained inside encoded bytestream; for example: coded resolution, visible resolution, codec profile. ”h]”(j)�”}”(hŒstream metadata”h]”hŒstream metadata”…”�”}”(hjTh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K›hjPubj!)�”}”(hhh]”hì)�”}”(hŒŠadditional (non-visual) information contained inside encoded bytestream; for example: coded resolution, visible resolution, codec profile.”h]”hŒŠadditional (non-visual) information contained inside encoded bytestream; for example: coded resolution, visible resolution, codec profile.”…”�”}”(hjeh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Kšhjbubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjPubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´K›hjh²hubj )�”}”(hŒDvisible height height for given visible resolution; display height. ”h]”(j)�”}”(hŒvisible height”h]”hŒvisible height”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Kžhjubj!)�”}”(hhh]”hì)�”}”(hŒ4height for given visible resolution; display height.”h]”hŒ4height for given visible resolution; display height.”…”�”}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Kžhj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´Kžhjh²hubj )�”}”(hŒ«visible resolution stream resolution of the visible picture, in pixels, to be used for display purposes; must be smaller or equal to coded resolution; display resolution. ”h]”(j)�”}”(hŒvisible resolution”h]”hŒvisible resolution”…”�”}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K£hj®ubj!)�”}”(hhh]”hì)�”}”(hŒ—stream resolution of the visible picture, in pixels, to be used for display purposes; must be smaller or equal to coded resolution; display resolution.”h]”hŒ—stream resolution of the visible picture, in pixels, to be used for display purposes; must be smaller or equal to coded resolution; display resolution.”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K¡hjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´K£hjh²hubj )�”}”(hŒAvisible width width for given visible resolution; display width. ”h]”(j)�”}”(hŒ visible width”h]”hŒ visible width”…”�”}”(hjáh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K¦hjÝubj!)�”}”(hhh]”hì)�”}”(hŒ2width for given visible resolution; display width.”h]”hŒ2width for given visible resolution; display width.”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´K¦hjïubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjÝubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´K¦hjh²hubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjôh²hh³hÇh´Nubeh}”(h]”(Œglossary”jëeh ]”h"]”(Œglossary”Œdecoder-glossary”eh$]”h&]”uh1hÖhhØh²hh³hÇh´K0Œexpect_referenced_by_name”}”j jásŒexpect_referenced_by_id”}”jëjásubh×)�”}”(hhh]”(hÜ)�”}”(hŒ State Machine”h]”hŒ State Machine”…”�”}”(hj" h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhj h²hh³hÇh´K©ubhŒfigure”“”)�”}”(hhh]”(Œkfigure”Œ kernel_render”“”)�”}”(hhh]”hŒ literal_block”“”)�”}”(hXŽdigraph decoder_state_machine { node [shape = doublecircle, label="Decoding"] Decoding; node [shape = circle, label="Initialization"] Initialization; node [shape = circle, label="Capture\nsetup"] CaptureSetup; node [shape = circle, label="Dynamic\nResolution\nChange"] ResChange; node [shape = circle, label="Stopped"] Stopped; node [shape = circle, label="Drain"] Drain; node [shape = circle, label="Seek"] Seek; node [shape = circle, label="End of Stream"] EoS; node [shape = point]; qi qi -> Initialization [ label = "open()" ]; Initialization -> CaptureSetup [ label = "CAPTURE\nformat\nestablished" ]; CaptureSetup -> Stopped [ label = "CAPTURE\nbuffers\nready" ]; Decoding -> ResChange [ label = "Stream\nresolution\nchange" ]; Decoding -> Drain [ label = "V4L2_DEC_CMD_STOP" ]; Decoding -> EoS [ label = "EoS mark\nin the stream" ]; Decoding -> Seek [ label = "VIDIOC_STREAMOFF(OUTPUT)" ]; Decoding -> Stopped [ label = "VIDIOC_STREAMOFF(CAPTURE)" ]; Decoding -> Decoding; ResChange -> CaptureSetup [ label = "CAPTURE\nformat\nestablished" ]; ResChange -> Seek [ label = "VIDIOC_STREAMOFF(OUTPUT)" ]; EoS -> Drain [ label = "Implicit\ndrain" ]; Drain -> Stopped [ label = "All CAPTURE\nbuffers dequeued\nor\nVIDIOC_STREAMOFF(CAPTURE)" ]; Drain -> Seek [ label = "VIDIOC_STREAMOFF(OUTPUT)" ]; Seek -> Decoding [ label = "VIDIOC_STREAMON(OUTPUT)" ]; Seek -> Initialization [ label = "VIDIOC_REQBUFS(OUTPUT, 0)" ]; Stopped -> Decoding [ label = "V4L2_DEC_CMD_START\nor\nVIDIOC_STREAMON(CAPTURE)" ]; Stopped -> Seek [ label = "VIDIOC_STREAMOFF(OUTPUT)" ]; }”h]”hXŽdigraph decoder_state_machine { node [shape = doublecircle, label="Decoding"] Decoding; node [shape = circle, label="Initialization"] Initialization; node [shape = circle, label="Capture\nsetup"] CaptureSetup; node [shape = circle, label="Dynamic\nResolution\nChange"] ResChange; node [shape = circle, label="Stopped"] Stopped; node [shape = circle, label="Drain"] Drain; node [shape = circle, label="Seek"] Seek; node [shape = circle, label="End of Stream"] EoS; node [shape = point]; qi qi -> Initialization [ label = "open()" ]; Initialization -> CaptureSetup [ label = "CAPTURE\nformat\nestablished" ]; CaptureSetup -> Stopped [ label = "CAPTURE\nbuffers\nready" ]; Decoding -> ResChange [ label = "Stream\nresolution\nchange" ]; Decoding -> Drain [ label = "V4L2_DEC_CMD_STOP" ]; Decoding -> EoS [ label = "EoS mark\nin the stream" ]; Decoding -> Seek [ label = "VIDIOC_STREAMOFF(OUTPUT)" ]; Decoding -> Stopped [ label = "VIDIOC_STREAMOFF(CAPTURE)" ]; Decoding -> Decoding; ResChange -> CaptureSetup [ label = "CAPTURE\nformat\nestablished" ]; ResChange -> Seek [ label = "VIDIOC_STREAMOFF(OUTPUT)" ]; EoS -> Drain [ label = "Implicit\ndrain" ]; Drain -> Stopped [ label = "All CAPTURE\nbuffers dequeued\nor\nVIDIOC_STREAMOFF(CAPTURE)" ]; Drain -> Seek [ label = "VIDIOC_STREAMOFF(OUTPUT)" ]; Seek -> Decoding [ label = "VIDIOC_STREAMON(OUTPUT)" ]; Seek -> Initialization [ label = "VIDIOC_REQBUFS(OUTPUT, 0)" ]; Stopped -> Decoding [ label = "V4L2_DEC_CMD_START\nor\nVIDIOC_STREAMON(CAPTURE)" ]; Stopped -> Seek [ label = "VIDIOC_STREAMOFF(OUTPUT)" ]; }”…”�”}”hj= sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j; hj8 h³hÇubah}”(h]”h ]”h"]”h$]”h&]”Œalt”Œ$DOT digraph of decoder state machine”Œsrclang”ŒDOT”uh1j6 hj2 ubhŒcaption”“”)�”}”(hŒDecoder State Machine”h]”hŒDecoder State Machine”…”�”}”(hjW h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jU h³hh´Khj2 ubeh}”(h]”Œid1”ah ]”h"]”h$]”h&]”Œalt”jR Œcaption”jY uh1j0 hj h²hh³hh´Nubeh}”(h]”Œ state-machine”ah ]”h"]”Œ state machine”ah$]”h&]”uh1hÖhhØh²hh³hÇh´K©ubh×)�”}”(hhh]”(hÜ)�”}”(hŒQuerying Capabilities”h]”hŒQuerying Capabilities”…”�”}”(hjy h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhjv h²hh³hÇh´KØubj)�”}”(hhh]”(j )�”}”(hXúTo enumerate the set of coded formats supported by the decoder, the client may call :c:func:`VIDIOC_ENUM_FMT` on ``OUTPUT``. * The full set of supported formats will be returned, regardless of the format set on ``CAPTURE``. * Check the flags field of :c:type:`v4l2_fmtdesc` for more information about the decoder's capabilities with respect to each coded format. In particular whether or not the decoder has a full-fledged bytestream parser and if the decoder supports dynamic resolution changes. ”h]”(hì)�”}”(hŒ|To enumerate the set of coded formats supported by the decoder, the client may call :c:func:`VIDIOC_ENUM_FMT` on ``OUTPUT``.”h]”(hŒTTo enumerate the set of coded formats supported by the decoder, the client may call ”…”�”}”(hjŽ h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_ENUM_FMT`”h]”jœ)�”}”(hj˜ h]”hŒVIDIOC_ENUM_FMT()”…”�”}”(hjš h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj– ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_ENUM_FMT”uh1hh³hÇh´KÚhjŽ ubhŒ on ”…”�”}”(hjŽ h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj¹ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjŽ ubhŒ.”…”�”}”(hjŽ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KÚhjŠ ubhŒ bullet_list”“”)�”}”(hhh]”(j )�”}”(hŒ`The full set of supported formats will be returned, regardless of the format set on ``CAPTURE``.”h]”hì)�”}”(hŒ`The full set of supported formats will be returned, regardless of the format set on ``CAPTURE``.”h]”(hŒTThe full set of supported formats will be returned, regardless of the format set on ”…”�”}”(hjÚ h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjâ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÚ ubhŒ.”…”�”}”(hjÚ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KÝhjÖ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÓ ubj )�”}”(hXCheck the flags field of :c:type:`v4l2_fmtdesc` for more information about the decoder's capabilities with respect to each coded format. In particular whether or not the decoder has a full-fledged bytestream parser and if the decoder supports dynamic resolution changes. ”h]”hì)�”}”(hXCheck the flags field of :c:type:`v4l2_fmtdesc` for more information about the decoder's capabilities with respect to each coded format. In particular whether or not the decoder has a full-fledged bytestream parser and if the decoder supports dynamic resolution changes.”h]”(hŒCheck the flags field of ”…”�”}”(hj h²hh³Nh´Nubh)�”}”(hŒ:c:type:`v4l2_fmtdesc`”h]”jœ)�”}”(hj h]”hŒ v4l2_fmtdesc”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-type”eh"]”h$]”h&]”uh1j›hj ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒ v4l2_fmtdesc”uh1hh³hÇh´Kßhj ubhŒá for more information about the decoder’s capabilities with respect to each coded format. In particular whether or not the decoder has a full-fledged bytestream parser and if the decoder supports dynamic resolution changes.”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Kßhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÓ ubeh}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ*”uh1jÑ h³hÇh´KÝhjŠ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj‡ h²hh³Nh´Nubj )�”}”(hX~To enumerate the set of supported raw formats, the client may call :c:func:`VIDIOC_ENUM_FMT` on ``CAPTURE``. * Only the formats supported for the format currently active on ``OUTPUT`` will be returned. * In order to enumerate raw formats supported by a given coded format, the client must first set that coded format on ``OUTPUT`` and then enumerate formats on ``CAPTURE``. ”h]”(hì)�”}”(hŒlTo enumerate the set of supported raw formats, the client may call :c:func:`VIDIOC_ENUM_FMT` on ``CAPTURE``.”h]”(hŒCTo enumerate the set of supported raw formats, the client may call ”…”�”}”(hjM h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_ENUM_FMT`”h]”jœ)�”}”(hjW h]”hŒVIDIOC_ENUM_FMT()”…”�”}”(hjY h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjU ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_ENUM_FMT”uh1hh³hÇh´KähjM ubhŒ on ”…”�”}”(hjM h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjx h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjM ubhŒ.”…”�”}”(hjM h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´KähjI ubjÒ )�”}”(hhh]”(j )�”}”(hŒ[Only the formats supported for the format currently active on ``OUTPUT`` will be returned. ”h]”hì)�”}”(hŒZOnly the formats supported for the format currently active on ``OUTPUT`` will be returned.”h]”(hŒ>Only the formats supported for the format currently active on ”…”�”}”(hj— h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjŸ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj— ubhŒ will be returned.”…”�”}”(hj— h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Kçhj“ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj� ubj )�”}”(hŒªIn order to enumerate raw formats supported by a given coded format, the client must first set that coded format on ``OUTPUT`` and then enumerate formats on ``CAPTURE``. ”h]”hì)�”}”(hŒ©In order to enumerate raw formats supported by a given coded format, the client must first set that coded format on ``OUTPUT`` and then enumerate formats on ``CAPTURE``.”h]”(hŒtIn order to enumerate raw formats supported by a given coded format, the client must first set that coded format on ”…”�”}”(hjÁ h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjÉ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÁ ubhŒ and then enumerate formats on ”…”�”}”(hjÁ h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjÛ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÁ ubhŒ.”…”�”}”(hjÁ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Kêhj½ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj� ubeh}”(h]”h ]”h"]”h$]”h&]”jA jB uh1jÑ h³hÇh´KçhjI ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj‡ h²hh³Nh´Nubj )�”}”(hXYThe client may use :c:func:`VIDIOC_ENUM_FRAMESIZES` to detect supported resolutions for a given format, passing desired pixel format in :c:type:`v4l2_frmsizeenum` ``pixel_format``. * Values returned by :c:func:`VIDIOC_ENUM_FRAMESIZES` for a coded pixel format will include all possible coded resolutions supported by the decoder for given coded pixel format. * Values returned by :c:func:`VIDIOC_ENUM_FRAMESIZES` for a raw pixel format will include all possible frame buffer resolutions supported by the decoder for given raw pixel format and the coded format currently set on ``OUTPUT``. ”h]”(hì)�”}”(hŒ´The client may use :c:func:`VIDIOC_ENUM_FRAMESIZES` to detect supported resolutions for a given format, passing desired pixel format in :c:type:`v4l2_frmsizeenum` ``pixel_format``.”h]”(hŒThe client may use ”…”�”}”(hj h²hh³Nh´Nubh)�”}”(hŒ :c:func:`VIDIOC_ENUM_FRAMESIZES`”h]”jœ)�”}”(hj h]”hŒVIDIOC_ENUM_FRAMESIZES()”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_ENUM_FRAMESIZES”uh1hh³hÇh´Kîhj ubhŒU to detect supported resolutions for a given format, passing desired pixel format in ”…”�”}”(hj h²hh³Nh´Nubh)�”}”(hŒ:c:type:`v4l2_frmsizeenum`”h]”jœ)�”}”(hj6 h]”hŒv4l2_frmsizeenum”…”�”}”(hj8 h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-type”eh"]”h$]”h&]”uh1j›hj4 ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒv4l2_frmsizeenum”uh1hh³hÇh´Kîhj ubhŒ ”…”�”}”(hj h²hh³Nh´Nubjœ)�”}”(hŒ``pixel_format``”h]”hŒ pixel_format”…”�”}”(hjW h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj ubhŒ.”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Kîhj ubjÒ )�”}”(hhh]”(j )�”}”(hŒ°Values returned by :c:func:`VIDIOC_ENUM_FRAMESIZES` for a coded pixel format will include all possible coded resolutions supported by the decoder for given coded pixel format. ”h]”hì)�”}”(hŒ¯Values returned by :c:func:`VIDIOC_ENUM_FRAMESIZES` for a coded pixel format will include all possible coded resolutions supported by the decoder for given coded pixel format.”h]”(hŒValues returned by ”…”�”}”(hjv h²hh³Nh´Nubh)�”}”(hŒ :c:func:`VIDIOC_ENUM_FRAMESIZES`”h]”jœ)�”}”(hj€ h]”hŒVIDIOC_ENUM_FRAMESIZES()”…”�”}”(hj‚ h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj~ ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_ENUM_FRAMESIZES”uh1hh³hÇh´Kòhjv ubhŒ| for a coded pixel format will include all possible coded resolutions supported by the decoder for given coded pixel format.”…”�”}”(hjv h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Kòhjr ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjo ubj )�”}”(hŒäValues returned by :c:func:`VIDIOC_ENUM_FRAMESIZES` for a raw pixel format will include all possible frame buffer resolutions supported by the decoder for given raw pixel format and the coded format currently set on ``OUTPUT``. ”h]”hì)�”}”(hŒãValues returned by :c:func:`VIDIOC_ENUM_FRAMESIZES` for a raw pixel format will include all possible frame buffer resolutions supported by the decoder for given raw pixel format and the coded format currently set on ``OUTPUT``.”h]”(hŒValues returned by ”…”�”}”(hj± h²hh³Nh´Nubh)�”}”(hŒ :c:func:`VIDIOC_ENUM_FRAMESIZES`”h]”jœ)�”}”(hj» h]”hŒVIDIOC_ENUM_FRAMESIZES()”…”�”}”(hj½ h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj¹ ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_ENUM_FRAMESIZES”uh1hh³hÇh´Köhj± ubhŒ¥ for a raw pixel format will include all possible frame buffer resolutions supported by the decoder for given raw pixel format and the coded format currently set on ”…”�”}”(hj± h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjÜ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj± ubhŒ.”…”�”}”(hj± h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Köhj­ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjo ubeh}”(h]”h ]”h"]”h$]”h&]”jA jB uh1jÑ h³hÇh´Kòhj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj‡ h²hh³Nh´Nubj )�”}”(hŒ®Supported profiles and levels for the coded format currently set on ``OUTPUT``, if applicable, may be queried using their respective controls via :c:func:`VIDIOC_QUERYCTRL`. ”h]”hì)�”}”(hŒ­Supported profiles and levels for the coded format currently set on ``OUTPUT``, if applicable, may be queried using their respective controls via :c:func:`VIDIOC_QUERYCTRL`.”h]”(hŒDSupported profiles and levels for the coded format currently set on ”…”�”}”(hj h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj ubhŒD, if applicable, may be queried using their respective controls via ”…”�”}”(hj h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_QUERYCTRL`”h]”jœ)�”}”(hj& h]”hŒVIDIOC_QUERYCTRL()”…”�”}”(hj( h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj$ ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_QUERYCTRL”uh1hh³hÇh´Kûhj ubhŒ.”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Kûhj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‡ h²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jÜjÝjÞhjßjàuh1jhjv h²hh³hÇh´KÚubeh}”(h]”Œquerying-capabilities”ah ]”h"]”Œquerying capabilities”ah$]”h&]”uh1hÖhhØh²hh³hÇh´KØubh×)�”}”(hhh]”(hÜ)�”}”(hŒInitialization”h]”hŒInitialization”…”�”}”(hjd h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhja h²hh³hÇh´Mubj)�”}”(hhh]”(j )�”}”(hXÙSet the coded format on ``OUTPUT`` via :c:func:`VIDIOC_S_FMT`. * **Required fields:** ``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``OUTPUT``. ``pixelformat`` a coded pixel format. ``width``, ``height`` coded resolution of the stream; required only if it cannot be parsed from the stream for the given coded format; otherwise the decoder will use this resolution as a placeholder resolution that will likely change as soon as it can parse the actual coded resolution from the stream. ``sizeimage`` desired size of ``OUTPUT`` buffers; the decoder may adjust it to match hardware requirements. other fields follow standard semantics. * **Returned fields:** ``sizeimage`` adjusted size of ``OUTPUT`` buffers. * The ``CAPTURE`` format will be updated with an appropriate frame buffer resolution instantly based on the width and height returned by :c:func:`VIDIOC_S_FMT`. However, for coded formats that include stream resolution information, after the decoder is done parsing the information from the stream, it will update the ``CAPTURE`` format with new values and signal a source change event, regardless of whether they match the values set by the client or not. .. important:: Changing the ``OUTPUT`` format may change the currently set ``CAPTURE`` format. How the new ``CAPTURE`` format is determined is up to the decoder and the client must ensure it matches its needs afterwards. ”h]”(hì)�”}”(hŒ>Set the coded format on ``OUTPUT`` via :c:func:`VIDIOC_S_FMT`.”h]”(hŒSet the coded format on ”…”�”}”(hjy h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjy ubhŒ via ”…”�”}”(hjy h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_S_FMT`”h]”jœ)�”}”(hj• h]”hŒVIDIOC_S_FMT()”…”�”}”(hj— h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj“ ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒ VIDIOC_S_FMT”uh1hh³hÇh´Mhjy ubhŒ.”…”�”}”(hjy h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mhju ubjÒ )�”}”(hhh]”(j )�”}”(hXg**Required fields:** ``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``OUTPUT``. ``pixelformat`` a coded pixel format. ``width``, ``height`` coded resolution of the stream; required only if it cannot be parsed from the stream for the given coded format; otherwise the decoder will use this resolution as a placeholder resolution that will likely change as soon as it can parse the actual coded resolution from the stream. ``sizeimage`` desired size of ``OUTPUT`` buffers; the decoder may adjust it to match hardware requirements. other fields follow standard semantics. ”h]”(hì)�”}”(hŒ**Required fields:**”h]”hŒstrong”“”)�”}”(hjÅ h]”hŒRequired fields:”…”�”}”(hjÉ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hjà ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mhj¿ ubj)�”}”(hhh]”(j )�”}”(hŒ@``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``OUTPUT``. ”h]”(j)�”}”(hŒ``type``”h]”jœ)�”}”(hjå h]”hŒtype”…”�”}”(hjç h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjã ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Mhjß ubj!)�”}”(hhh]”hì)�”}”(hŒ6a ``V4L2_BUF_TYPE_*`` enum appropriate for ``OUTPUT``.”h]”(hŒa ”…”�”}”(hjý h²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_BUF_TYPE_*``”h]”hŒV4L2_BUF_TYPE_*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjý ubhŒ enum appropriate for ”…”�”}”(hjý h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjý ubhŒ.”…”�”}”(hjý h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mhjú ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjß ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´MhjÜ ubj )�”}”(hŒ&``pixelformat`` a coded pixel format. ”h]”(j)�”}”(hŒ``pixelformat``”h]”jœ)�”}”(hjA h]”hŒ pixelformat”…”�”}”(hjC h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj? ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´M hj; ubj!)�”}”(hhh]”hì)�”}”(hŒa coded pixel format.”h]”hŒa coded pixel format.”…”�”}”(hjY h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M hjV ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj; ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´M hjÜ ubj )�”}”(hX/``width``, ``height`` coded resolution of the stream; required only if it cannot be parsed from the stream for the given coded format; otherwise the decoder will use this resolution as a placeholder resolution that will likely change as soon as it can parse the actual coded resolution from the stream. ”h]”(j)�”}”(hŒ``width``, ``height``”h]”(jœ)�”}”(hŒ ``width``”h]”hŒwidth”…”�”}”(hj{ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjw ubhŒ, ”…”�”}”(hjw h²hh³Nh´Nubjœ)�”}”(hŒ ``height``”h]”hŒheight”…”�”}”(hj� h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjw ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Mhjs ubj!)�”}”(hhh]”hì)�”}”(hXcoded resolution of the stream; required only if it cannot be parsed from the stream for the given coded format; otherwise the decoder will use this resolution as a placeholder resolution that will likely change as soon as it can parse the actual coded resolution from the stream.”h]”hXcoded resolution of the stream; required only if it cannot be parsed from the stream for the given coded format; otherwise the decoder will use this resolution as a placeholder resolution that will likely change as soon as it can parse the actual coded resolution from the stream.”…”�”}”(hj¤ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M hj¡ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjs ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´MhjÜ ubj )�”}”(hŒl``sizeimage`` desired size of ``OUTPUT`` buffers; the decoder may adjust it to match hardware requirements. ”h]”(j)�”}”(hŒ ``sizeimage``”h]”jœ)�”}”(hjÄ h]”hŒ sizeimage”…”�”}”(hjÆ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Mhj¾ ubj!)�”}”(hhh]”hì)�”}”(hŒ]desired size of ``OUTPUT`` buffers; the decoder may adjust it to match hardware requirements.”h]”(hŒdesired size of ”…”�”}”(hjÜ h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjä h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÜ ubhŒC buffers; the decoder may adjust it to match hardware requirements.”…”�”}”(hjÜ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MhjÙ ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj¾ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´MhjÜ ubj )�”}”(hŒ(other fields follow standard semantics. ”h]”(j)�”}”(hŒ other fields”h]”hŒ other fields”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Mhjubj!)�”}”(hhh]”hì)�”}”(hŒfollow standard semantics.”h]”hŒfollow standard semantics.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´MhjÜ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¿ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¼ ubj )�”}”(hŒM**Returned fields:** ``sizeimage`` adjusted size of ``OUTPUT`` buffers. ”h]”(hì)�”}”(hŒ**Returned fields:**”h]”jÈ )�”}”(hjIh]”hŒReturned fields:”…”�”}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hjGubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MhjCubj)�”}”(hhh]”j )�”}”(hŒ3``sizeimage`` adjusted size of ``OUTPUT`` buffers. ”h]”(j)�”}”(hŒ ``sizeimage``”h]”jœ)�”}”(hjgh]”hŒ sizeimage”…”�”}”(hjih²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjeubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Mhjaubj!)�”}”(hhh]”hì)�”}”(hŒ$adjusted size of ``OUTPUT`` buffers.”h]”(hŒadjusted size of ”…”�”}”(hjh²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjubhŒ buffers.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mhj|ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjaubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´Mhj^ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjCubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¼ ubj )�”}”(hXÇThe ``CAPTURE`` format will be updated with an appropriate frame buffer resolution instantly based on the width and height returned by :c:func:`VIDIOC_S_FMT`. However, for coded formats that include stream resolution information, after the decoder is done parsing the information from the stream, it will update the ``CAPTURE`` format with new values and signal a source change event, regardless of whether they match the values set by the client or not. ”h]”hì)�”}”(hXÆThe ``CAPTURE`` format will be updated with an appropriate frame buffer resolution instantly based on the width and height returned by :c:func:`VIDIOC_S_FMT`. However, for coded formats that include stream resolution information, after the decoder is done parsing the information from the stream, it will update the ``CAPTURE`` format with new values and signal a source change event, regardless of whether they match the values set by the client or not.”h]”(hŒThe ”…”�”}”(hj»h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj»ubhŒx format will be updated with an appropriate frame buffer resolution instantly based on the width and height returned by ”…”�”}”(hj»h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_S_FMT`”h]”jœ)�”}”(hj×h]”hŒVIDIOC_S_FMT()”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjÕubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒ VIDIOC_S_FMT”uh1hh³hÇh´Mhj»ubhŒŸ. However, for coded formats that include stream resolution information, after the decoder is done parsing the information from the stream, it will update the ”…”�”}”(hj»h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj»ubhŒ format with new values and signal a source change event, regardless of whether they match the values set by the client or not.”…”�”}”(hj»h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mhj·ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¼ ubeh}”(h]”h ]”h"]”h$]”h&]”jA jB uh1jÑ h³hÇh´Mhju ubhŒ important”“”)�”}”(hŒÍChanging the ``OUTPUT`` format may change the currently set ``CAPTURE`` format. How the new ``CAPTURE`` format is determined is up to the decoder and the client must ensure it matches its needs afterwards.”h]”hì)�”}”(hŒÍChanging the ``OUTPUT`` format may change the currently set ``CAPTURE`` format. How the new ``CAPTURE`` format is determined is up to the decoder and the client must ensure it matches its needs afterwards.”h]”(hŒ Changing the ”…”�”}”(hj"h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj"ubhŒ% format may change the currently set ”…”�”}”(hj"h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj"ubhŒ format. How the new ”…”�”}”(hj"h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj"ubhŒf format is determined is up to the decoder and the client must ensure it matches its needs afterwards.”…”�”}”(hj"h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M)hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhju ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjr h²hh³Nh´Nubj )�”}”(hXÌAllocate source (bytestream) buffers via :c:func:`VIDIOC_REQBUFS` on ``OUTPUT``. * **Required fields:** ``count`` requested number of buffers to allocate; greater than zero. ``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``OUTPUT``. ``memory`` follows standard semantics. * **Returned fields:** ``count`` the actual number of buffers allocated. .. warning:: The actual number of allocated buffers may differ from the ``count`` given. The client must check the updated value of ``count`` after the call returns. Alternatively, :c:func:`VIDIOC_CREATE_BUFS` on the ``OUTPUT`` queue can be used to have more control over buffer allocation. * **Required fields:** ``count`` requested number of buffers to allocate; greater than zero. ``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``OUTPUT``. ``memory`` follows standard semantics. ``format`` follows standard semantics. * **Returned fields:** ``count`` adjusted to the number of allocated buffers. .. warning:: The actual number of allocated buffers may differ from the ``count`` given. The client must check the updated value of ``count`` after the call returns. ”h]”(hì)�”}”(hŒPAllocate source (bytestream) buffers via :c:func:`VIDIOC_REQBUFS` on ``OUTPUT``.”h]”(hŒ)Allocate source (bytestream) buffers via ”…”�”}”(hjvh²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_REQBUFS`”h]”jœ)�”}”(hj€h]”hŒVIDIOC_REQBUFS()”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj~ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_REQBUFS”uh1hh³hÇh´M-hjvubhŒ on ”…”�”}”(hjvh²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj¡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjvubhŒ.”…”�”}”(hjvh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M-hjrubjÒ )�”}”(hhh]”(j )�”}”(hŒÑ**Required fields:** ``count`` requested number of buffers to allocate; greater than zero. ``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``OUTPUT``. ``memory`` follows standard semantics. ”h]”(hì)�”}”(hŒ**Required fields:**”h]”jÈ )�”}”(hjÂh]”hŒRequired fields:”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M0hj¼ubj)�”}”(hhh]”(j )�”}”(hŒF``count`` requested number of buffers to allocate; greater than zero. ”h]”(j)�”}”(hŒ ``count``”h]”jœ)�”}”(hjàh]”hŒcount”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÞubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´M3hjÚubj!)�”}”(hhh]”hì)�”}”(hŒ;requested number of buffers to allocate; greater than zero.”h]”hŒ;requested number of buffers to allocate; greater than zero.”…”�”}”(hjøh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M3hjõubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjÚubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´M3hj×ubj )�”}”(hŒ@``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``OUTPUT``. ”h]”(j)�”}”(hŒ``type``”h]”jœ)�”}”(hjh]”hŒtype”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´M6hjubj!)�”}”(hhh]”hì)�”}”(hŒ6a ``V4L2_BUF_TYPE_*`` enum appropriate for ``OUTPUT``.”•[h]”(hŒa ”…”�”}”(hj0h²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_BUF_TYPE_*``”h]”hŒV4L2_BUF_TYPE_*”…”�”}”(hj8h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj0ubhŒ enum appropriate for ”…”�”}”(hj0h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjJh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj0ubhŒ.”…”�”}”(hj0h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M6hj-ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´M6hj×ubj )�”}”(hŒ'``memory`` follows standard semantics. ”h]”(j)�”}”(hŒ ``memory``”h]”jœ)�”}”(hjth]”hŒmemory”…”�”}”(hjvh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjrubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´M9hjnubj!)�”}”(hhh]”hì)�”}”(hŒfollows standard semantics.”h]”hŒfollows standard semantics.”…”�”}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M9hj‰ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjnubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´M9hj×ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¼ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¹ubj )�”}”(hŒL**Returned fields:** ``count`` the actual number of buffers allocated. ”h]”(hì)�”}”(hŒ**Returned fields:**”h]”jÈ )�”}”(hj¸h]”hŒReturned fields:”…”�”}”(hjºh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hj¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M;hj²ubj)�”}”(hhh]”j )�”}”(hŒ2``count`` the actual number of buffers allocated. ”h]”(j)�”}”(hŒ ``count``”h]”jœ)�”}”(hjÖh]”hŒcount”…”�”}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´M>hjÐubj!)�”}”(hhh]”hì)�”}”(hŒ'the actual number of buffers allocated.”h]”hŒ'the actual number of buffers allocated.”…”�”}”(hjîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M>hjëubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjÐubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´M>hjÍubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj²ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¹ubeh}”(h]”h ]”h"]”h$]”h&]”jA jB uh1jÑ h³hÇh´M0hjrubhŒwarning”“”)�”}”(hŒ˜The actual number of allocated buffers may differ from the ``count`` given. The client must check the updated value of ``count`` after the call returns.”h]”hì)�”}”(hŒ˜The actual number of allocated buffers may differ from the ``count`` given. The client must check the updated value of ``count`` after the call returns.”h]”(hŒ;The actual number of allocated buffers may differ from the ”…”�”}”(hj h²hh³Nh´Nubjœ)�”}”(hŒ ``count``”h]”hŒcount”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj ubhŒ3 given. The client must check the updated value of ”…”�”}”(hj h²hh³Nh´Nubjœ)�”}”(hŒ ``count``”h]”hŒcount”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj ubhŒ after the call returns.”…”�”}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MBhjubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjrubhì)�”}”(hŒ|Alternatively, :c:func:`VIDIOC_CREATE_BUFS` on the ``OUTPUT`` queue can be used to have more control over buffer allocation.”h]”(hŒAlternatively, ”…”�”}”(hjXh²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_CREATE_BUFS`”h]”jœ)�”}”(hjbh]”hŒVIDIOC_CREATE_BUFS()”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj`ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_CREATE_BUFS”uh1hh³hÇh´MFhjXubhŒ on the ”…”�”}”(hjXh²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjXubhŒ? queue can be used to have more control over buffer allocation.”…”�”}”(hjXh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MFhjrubjÒ )�”}”(hhh]”(j )�”}”(hŒý**Required fields:** ``count`` requested number of buffers to allocate; greater than zero. ``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``OUTPUT``. ``memory`` follows standard semantics. ``format`` follows standard semantics. ”h]”(hì)�”}”(hŒ**Required fields:**”h]”jÈ )�”}”(hj¤h]”hŒRequired fields:”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hj¢ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MIhjžubj)�”}”(hhh]”(j )�”}”(hŒF``count`` requested number of buffers to allocate; greater than zero. ”h]”(j)�”}”(hŒ ``count``”h]”jœ)�”}”(hjÂh]”hŒcount”…”�”}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´MLhj¼ubj!)�”}”(hhh]”hì)�”}”(hŒ;requested number of buffers to allocate; greater than zero.”h]”hŒ;requested number of buffers to allocate; greater than zero.”…”�”}”(hjÚh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MLhj×ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj¼ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´MLhj¹ubj )�”}”(hŒ@``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``OUTPUT``. ”h]”(j)�”}”(hŒ``type``”h]”jœ)�”}”(hjúh]”hŒtype”…”�”}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjøubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´MOhjôubj!)�”}”(hhh]”hì)�”}”(hŒ6a ``V4L2_BUF_TYPE_*`` enum appropriate for ``OUTPUT``.”h]”(hŒa ”…”�”}”(hjh²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_BUF_TYPE_*``”h]”hŒV4L2_BUF_TYPE_*”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjubhŒ enum appropriate for ”…”�”}”(hjh²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjubhŒ.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MOhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjôubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´MOhj¹ubj )�”}”(hŒ'``memory`` follows standard semantics. ”h]”(j)�”}”(hŒ ``memory``”h]”jœ)�”}”(hjVh]”hŒmemory”…”�”}”(hjXh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjTubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´MRhjPubj!)�”}”(hhh]”hì)�”}”(hŒfollows standard semantics.”h]”hŒfollows standard semantics.”…”�”}”(hjnh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MRhjkubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjPubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´MRhj¹ubj )�”}”(hŒ'``format`` follows standard semantics. ”h]”(j)�”}”(hŒ ``format``”h]”jœ)�”}”(hjŽh]”hŒformat”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´MUhjˆubj!)�”}”(hhh]”hì)�”}”(hŒfollows standard semantics.”h]”hŒfollows standard semantics.”…”�”}”(hj¦h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MUhj£ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjˆubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´MUhj¹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjžubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj›ubj )�”}”(hŒQ**Returned fields:** ``count`` adjusted to the number of allocated buffers. ”h]”(hì)�”}”(hŒ**Returned fields:**”h]”jÈ )�”}”(hjÒh]”hŒReturned fields:”…”�”}”(hjÔh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hjÐubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MWhjÌubj)�”}”(hhh]”j )�”}”(hŒ7``count`` adjusted to the number of allocated buffers. ”h]”(j)�”}”(hŒ ``count``”h]”jœ)�”}”(hjðh]”hŒcount”…”�”}”(hjòh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjîubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´MZhjêubj!)�”}”(hhh]”hì)�”}”(hŒ,adjusted to the number of allocated buffers.”h]”hŒ,adjusted to the number of allocated buffers.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MZhjubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjêubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´MZhjçubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÌubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj›ubeh}”(h]”h ]”h"]”h$]”h&]”jA jB uh1jÑ h³hÇh´MIhjrubj)�”}”(hŒ˜The actual number of allocated buffers may differ from the ``count`` given. The client must check the updated value of ``count`` after the call returns.”h]”hì)�”}”(hŒ˜The actual number of allocated buffers may differ from the ``count`` given. The client must check the updated value of ``count`` after the call returns.”h]”(hŒ;The actual number of allocated buffers may differ from the ”…”�”}”(hj8h²hh³Nh´Nubjœ)�”}”(hŒ ``count``”h]”hŒcount”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj8ubhŒ3 given. The client must check the updated value of ”…”�”}”(hj8h²hh³Nh´Nubjœ)�”}”(hŒ ``count``”h]”hŒcount”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj8ubhŒ after the call returns.”…”�”}”(hj8h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M^hj4ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjrubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjr h²hh³Nh´Nubj )�”}”(hŒGStart streaming on the ``OUTPUT`` queue via :c:func:`VIDIOC_STREAMON`. ”h]”hì)�”}”(hŒFStart streaming on the ``OUTPUT`` queue via :c:func:`VIDIOC_STREAMON`.”h]”(hŒStart streaming on the ”…”�”}”(hjzh²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjzubhŒ queue via ”…”�”}”(hjzh²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_STREAMON`”h]”jœ)�”}”(hj–h]”hŒVIDIOC_STREAMON()”…”�”}”(hj˜h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj”ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_STREAMON”uh1hh³hÇh´MbhjzubhŒ.”…”�”}”(hjzh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mbhjvubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjr h²hh³hÇh´Nubj )�”}”(hX\**This step only applies to coded formats that contain resolution information in the stream.** Continue queuing/dequeuing bytestream buffers to/from the ``OUTPUT`` queue via :c:func:`VIDIOC_QBUF` and :c:func:`VIDIOC_DQBUF`. The buffers will be processed and returned to the client in order, until required metadata to configure the ``CAPTURE`` queue are found. This is indicated by the decoder sending a ``V4L2_EVENT_SOURCE_CHANGE`` event with ``changes`` set to ``V4L2_EVENT_SRC_CH_RESOLUTION``. * It is not an error if the first buffer does not contain enough data for this to occur. Processing of the buffers will continue as long as more data is needed. * If data in a buffer that triggers the event is required to decode the first frame, it will not be returned to the client, until the initialization sequence completes and the frame is decoded. * If the client has not set the coded resolution of the stream on its own, calling :c:func:`VIDIOC_G_FMT`, :c:func:`VIDIOC_S_FMT`, :c:func:`VIDIOC_TRY_FMT` or :c:func:`VIDIOC_REQBUFS` on the ``CAPTURE`` queue will not return the real values for the stream until a ``V4L2_EVENT_SOURCE_CHANGE`` event with ``changes`` set to ``V4L2_EVENT_SRC_CH_RESOLUTION`` is signaled. .. important:: Any client query issued after the decoder queues the event will return values applying to the just parsed stream, including queue formats, selection rectangles and controls. .. note:: A client capable of acquiring stream parameters from the bytestream on its own may attempt to set the width and height of the ``OUTPUT`` format to non-zero values matching the coded size of the stream, skip this step and continue with the `Capture Setup` sequence. However, it must not rely on any driver queries regarding stream parameters, such as selection rectangles and controls, since the decoder has not parsed them from the stream yet. If the values configured by the client do not match those parsed by the decoder, a `Dynamic Resolution Change` will be triggered to reconfigure them. .. note:: No decoded frames are produced during this phase. ”h]”(hì)�”}”(hXð**This step only applies to coded formats that contain resolution information in the stream.** Continue queuing/dequeuing bytestream buffers to/from the ``OUTPUT`` queue via :c:func:`VIDIOC_QBUF` and :c:func:`VIDIOC_DQBUF`. The buffers will be processed and returned to the client in order, until required metadata to configure the ``CAPTURE`` queue are found. This is indicated by the decoder sending a ``V4L2_EVENT_SOURCE_CHANGE`` event with ``changes`` set to ``V4L2_EVENT_SRC_CH_RESOLUTION``.”h]”(jÈ )�”}”(hŒ^**This step only applies to coded formats that contain resolution information in the stream.**”h]”hŒZThis step only applies to coded formats that contain resolution information in the stream.”…”�”}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hjÇubhŒ; Continue queuing/dequeuing bytestream buffers to/from the ”…”�”}”(hjÇh²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÇubhŒ queue via ”…”�”}”(hjÇh²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_QBUF`”h]”jœ)�”}”(hjñh]”hŒ VIDIOC_QBUF()”…”�”}”(hjóh²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjïubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒ VIDIOC_QBUF”uh1hh³hÇh´MdhjÇubhŒ and ”…”�”}”(hjÇh²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_DQBUF`”h]”jœ)�”}”(hjh]”hŒVIDIOC_DQBUF()”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒ VIDIOC_DQBUF”uh1hh³hÇh´MdhjÇubhŒn. The buffers will be processed and returned to the client in order, until required metadata to configure the ”…”�”}”(hjÇh²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj5h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÇubhŒ= queue are found. This is indicated by the decoder sending a ”…”�”}”(hjÇh²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_EVENT_SOURCE_CHANGE``”h]”hŒV4L2_EVENT_SOURCE_CHANGE”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÇubhŒ event with ”…”�”}”(hjÇh²hh³Nh´Nubjœ)�”}”(hŒ ``changes``”h]”hŒchanges”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÇubhŒ set to ”…”�”}”(hjÇh²hh³Nh´Nubjœ)�”}”(hŒ ``V4L2_EVENT_SRC_CH_RESOLUTION``”h]”hŒV4L2_EVENT_SRC_CH_RESOLUTION”…”�”}”(hjkh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÇubhŒ.”…”�”}”(hjÇh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MdhjÃubjÒ )�”}”(hhh]”(j )�”}”(hŒŸIt is not an error if the first buffer does not contain enough data for this to occur. Processing of the buffers will continue as long as more data is needed. ”h]”hì)�”}”(hŒžIt is not an error if the first buffer does not contain enough data for this to occur. Processing of the buffers will continue as long as more data is needed.”h]”hŒžIt is not an error if the first buffer does not contain enough data for this to occur. Processing of the buffers will continue as long as more data is needed.”…”�”}”(hjŠh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mlhj†ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjƒubj )�”}”(hŒÀIf data in a buffer that triggers the event is required to decode the first frame, it will not be returned to the client, until the initialization sequence completes and the frame is decoded. ”h]”hì)�”}”(hŒ¿If data in a buffer that triggers the event is required to decode the first frame, it will not be returned to the client, until the initialization sequence completes and the frame is decoded.”h]”hŒ¿If data in a buffer that triggers the event is required to decode the first frame, it will not be returned to the client, until the initialization sequence completes and the frame is decoded.”…”�”}”(hj¢h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mphjžubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjƒubj )�”}”(hXoIf the client has not set the coded resolution of the stream on its own, calling :c:func:`VIDIOC_G_FMT`, :c:func:`VIDIOC_S_FMT`, :c:func:`VIDIOC_TRY_FMT` or :c:func:`VIDIOC_REQBUFS` on the ``CAPTURE`` queue will not return the real values for the stream until a ``V4L2_EVENT_SOURCE_CHANGE`` event with ``changes`` set to ``V4L2_EVENT_SRC_CH_RESOLUTION`` is signaled. ”h]”hì)�”}”(hXnIf the client has not set the coded resolution of the stream on its own, calling :c:func:`VIDIOC_G_FMT`, :c:func:`VIDIOC_S_FMT`, :c:func:`VIDIOC_TRY_FMT` or :c:func:`VIDIOC_REQBUFS` on the ``CAPTURE`` queue will not return the real values for the stream until a ``V4L2_EVENT_SOURCE_CHANGE`` event with ``changes`` set to ``V4L2_EVENT_SRC_CH_RESOLUTION`` is signaled.”h]”(hŒQIf the client has not set the coded resolution of the stream on its own, calling ”…”�”}”(hjºh²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_G_FMT`”h]”jœ)�”}”(hjÄh]”hŒVIDIOC_G_FMT()”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjÂubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒ VIDIOC_G_FMT”uh1hh³hÇh´MthjºubhŒ, ”…”�”}”(hjºh²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_S_FMT`”h]”jœ)�”}”(hjçh]”hŒVIDIOC_S_FMT()”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjåubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒ VIDIOC_S_FMT”uh1hh³hÇh´MthjºubhŒ, ”…”�”}”(hjºh²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_TRY_FMT`”h]”jœ)�”}”(hj h]”hŒVIDIOC_TRY_FMT()”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_TRY_FMT”uh1hh³hÇh´MthjºubhŒ or ”…”�”}”(hjºh²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_REQBUFS`”h]”jœ)�”}”(hj-h]”hŒVIDIOC_REQBUFS()”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj+ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_REQBUFS”uh1hh³hÇh´MthjºubhŒ on the ”…”�”}”(hjºh²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjNh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjºubhŒ> queue will not return the real values for the stream until a ”…”�”}”(hjºh²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_EVENT_SOURCE_CHANGE``”h]”hŒV4L2_EVENT_SOURCE_CHANGE”…”�”}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjºubhŒ event with ”…”�”}”(hjºh²hh³Nh´Nubjœ)�”}”(hŒ ``changes``”h]”hŒchanges”…”�”}”(hjrh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjºubhŒ set to ”…”�”}”(hjºh²hh³Nh´Nubjœ)�”}”(hŒ ``V4L2_EVENT_SRC_CH_RESOLUTION``”h]”hŒV4L2_EVENT_SRC_CH_RESOLUTION”…”�”}”(hj„h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjºubhŒ is signaled.”…”�”}”(hjºh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mthj¶ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjƒubeh}”(h]”h ]”h"]”h$]”h&]”jA jB uh1jÑ h³hÇh´MlhjÃubj)�”}”(hŒ­Any client query issued after the decoder queues the event will return values applying to the just parsed stream, including queue formats, selection rectangles and controls.”h]”hì)�”}”(hŒ­Any client query issued after the decoder queues the event will return values applying to the just parsed stream, including queue formats, selection rectangles and controls.”h]”hŒ­Any client query issued after the decoder queues the event will return values applying to the just parsed stream, including queue formats, selection rectangles and controls.”…”�”}”(hj¬h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M}hj¨ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÃubhŒnote”“”)�”}”(hXQA client capable of acquiring stream parameters from the bytestream on its own may attempt to set the width and height of the ``OUTPUT`` format to non-zero values matching the coded size of the stream, skip this step and continue with the `Capture Setup` sequence. However, it must not rely on any driver queries regarding stream parameters, such as selection rectangles and controls, since the decoder has not parsed them from the stream yet. If the values configured by the client do not match those parsed by the decoder, a `Dynamic Resolution Change` will be triggered to reconfigure them.”h]”hì)�”}”(hXQA client capable of acquiring stream parameters from the bytestream on its own may attempt to set the width and height of the ``OUTPUT`` format to non-zero values matching the coded size of the stream, skip this step and continue with the `Capture Setup` sequence. However, it must not rely on any driver queries regarding stream parameters, such as selection rectangles and controls, since the decoder has not parsed them from the stream yet. If the values configured by the client do not match those parsed by the decoder, a `Dynamic Resolution Change` will be triggered to reconfigure them.”h]”(hŒ~A client capable of acquiring stream parameters from the bytestream on its own may attempt to set the width and height of the ”…”�”}”(hjÆh²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÆubhŒg format to non-zero values matching the coded size of the stream, skip this step and continue with the ”…”�”}”(hjÆh²hh³Nh´NubhŒtitle_reference”“”)�”}”(hŒ`Capture Setup`”h]”hŒ Capture Setup”…”�”}”(hjâh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jàhjÆubhX sequence. However, it must not rely on any driver queries regarding stream parameters, such as selection rectangles and controls, since the decoder has not parsed them from the stream yet. If the values configured by the client do not match those parsed by the decoder, a ”…”�”}”(hjÆh²hh³Nh´Nubjá)�”}”(hŒ`Dynamic Resolution Change`”h]”hŒDynamic Resolution Change”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jàhjÆubhŒ' will be triggered to reconfigure them.”…”�”}”(hjÆh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MƒhjÂubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjÃubjÁ)�”}”(hŒ1No decoded frames are produced during this phase.”h]”hì)�”}”(hjh]”hŒ1No decoded frames are produced during this phase.”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M�hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjÃubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjr h²hh³Nh´Nubj )�”}”(hŒ,Continue with the `Capture Setup` sequence. ”h]”hì)�”}”(hŒ+Continue with the `Capture Setup` sequence.”h]”(hŒContinue with the ”…”�”}”(hj3h²hh³Nh´Nubjá)�”}”(hŒ`Capture Setup`”h]”hŒ Capture Setup”…”�”}”(hj;h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jàhj3ubhŒ sequence.”…”�”}”(hj3h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M‘hj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjr h²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jÜjÝjÞhjßjàuh1jhja h²hh³hÇh´Mubeh}”(h]”Œinitialization”ah ]”h"]”Œinitialization”ah$]”h&]”uh1hÖhhØh²hh³hÇh´Mubh×)�”}”(hhh]”(hÜ)�”}”(hŒ Capture Setup”h]”hŒ Capture Setup”…”�”}”(hjjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhjgh²hh³hÇh´M”ubj)�”}”(hhh]”(j )�”}”(hX”Call :c:func:`VIDIOC_G_FMT` on the ``CAPTURE`` queue to get format for the destination buffers parsed/decoded from the bytestream. * **Required fields:** ``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``. * **Returned fields:** ``width``, ``height`` frame buffer resolution for the decoded frames. ``pixelformat`` pixel format for decoded frames. ``num_planes`` (for _MPLANE ``type`` only) number of planes for pixelformat. ``sizeimage``, ``bytesperline`` as per standard semantics; matching frame buffer format. .. note:: The value of ``pixelformat`` may be any pixel format supported by the decoder for the current stream. The decoder should choose a preferred/optimal format for the default configuration. For example, a YUV format may be preferred over an RGB format if an additional conversion step would be required for the latter. ”h]”(hì)�”}”(hŒ‚Call :c:func:`VIDIOC_G_FMT` on the ``CAPTURE`` queue to get format for the destination buffers parsed/decoded from the bytestream.”h]”(hŒCall ”…”�”}”(hjh²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_G_FMT`”h]”jœ)�”}”(hj‰h]”hŒVIDIOC_G_FMT()”…”�”}”(hj‹h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj‡ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒ VIDIOC_G_FMT”uh1hh³hÇh´M–hjubhŒ on the ”…”�”}”(hjh²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjubhŒT queue to get format for the destination buffers parsed/decoded from the bytestream.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M–hj{ubjÒ )�”}”(hhh]”(j )�”}”(hŒ[**Required fields:** ``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``. ”h]”(hì)�”}”(hŒ**Required fields:**”h]”jÈ )�”}”(hjËh]”hŒRequired fields:”…”�”}”(hjÍh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hjÉubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M™hjÅubj)�”}”(hhh]”j )�”}”(hŒA``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``. ”h]”(j)�”}”(hŒ``type``”h]”jœ)�”}”(hjéh]”hŒtype”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjçubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Mœhjãubj!)�”}”(hhh]”hì)�”}”(hŒ7a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``.”h]”(hŒa ”…”�”}”(hjh²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_BUF_TYPE_*``”h]”hŒV4L2_BUF_TYPE_*”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjubhŒ enum appropriate for ”…”�”}”(hjh²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjubhŒ.”…”�”}”(hjh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mœhjþubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjãubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´Mœhjàubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÅubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÂubj )�”}”(hXF**Returned fields:** ``width``, ``height`` frame buffer resolution for the decoded frames. ``pixelformat`` pixel format for decoded frames. ``num_planes`` (for _MPLANE ``type`` only) number of planes for pixelformat. ``sizeimage``, ``bytesperline`` as per standard semantics; matching frame buffer format. ”h]”(hì)�”}”(hŒ**Returned fields:**”h]”jÈ )�”}”(hjQh]”hŒReturned fields:”…”�”}”(hjSh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hjOubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MžhjKubj)�”}”(hhh]”(j )�”}”(hŒF``width``, ``height`` frame buffer resolution for the decoded frames. ”h]”(j)�”}”(hŒ``width``, ``height``”h]”(jœ)�”}”(hŒ ``width``”h]”hŒwidth”…”�”}”(hjqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjmubhŒ, ”…”�”}”(hjmh²hh³Nh´Nubjœ)�”}”(hŒ ``height``”h]”hŒheight”…”�”}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjmubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´M¡hjiubj!)�”}”(hhh]”hì)�”}”(hŒ/frame buffer resolution for the decoded frames.”h]”hŒ/frame buffer resolution for the decoded frames.”…”�”}”(hjšh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M¡hj—ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjiubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´M¡hjfubj )�”}”(hŒ1``pixelformat`` pixel format for decoded frames. ”h]”(j)�”}”(hŒ``pixelformat``”h]”jœ)�”}”(hjºh]”hŒ pixelformat”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´M¤hj´ubj!)�”}”(hhh]”hì)�”}”(hŒ pixel format for decoded frames.”h]”hŒ pixel format for decoded frames.”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M¤hjÏubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj´ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´M¤hjfubj )�”}”(hŒM``num_planes`` (for _MPLANE ``type`` only) number of planes for pixelformat. ”h]”(j)�”}”(hŒ*``num_planes`` (for _MPLANE ``type`` only)”h]”(jœ)�”}”(hŒ``num_planes``”h]”hŒ num_planes”…”�”}”(hjôh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjðubhŒ (for _MPLANE ”…”�”}”(hjðh²hh³Nh´Nubjœ)�”}”(hŒ``type``”h]”hŒtype”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjðubhŒ only)”…”�”}”(hjðh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´M§hjìubj!)�”}”(hhh]”hì)�”}”(hŒ!number of planes for pixelformat.”h]”hŒ!number of planes for pixelformat.”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M§hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjìubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´M§hjfubj )�”}”(hŒY``sizeimage``, ``bytesperline`` as per standard semantics; matching frame buffer format. ”h]”(j)�”}”(hŒ``sizeimage``, ``bytesperline``”h]”(jœ)�”}”(hŒ ``sizeimage``”h]”hŒ sizeimage”…”�”}”(hjCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj?ubhŒ, ”…”�”}”(hj?h²hh³Nh´Nubjœ)�”}”(hŒ``bytesperline``”h]”hŒ bytesperline”…”�”}”(hjUh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Mªhj;ubj!)�”}”(hhh]”hì)�”}”(hŒ8as per standard semantics; matching frame buffer format.”h]”hŒ8as per standard semantics; matching frame buffer format.”…”�”}”(hjlh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mªhjiubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj;ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´Mªhjfubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjKubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÂubeh}”(h]”h ]”h"]”h$]”h&]”jA jB uh1jÑ h³hÇh´M™hj{ubjÁ)�”}”(hX:The value of ``pixelformat`` may be any pixel format supported by the decoder for the current stream. The decoder should choose a preferred/optimal format for the default configuration. For example, a YUV format may be preferred over an RGB format if an additional conversion step would be required for the latter.”h]”hì)�”}”(hX:The value of ``pixelformat`` may be any pixel format supported by the decoder for the current stream. The decoder should choose a preferred/optimal format for the default configuration. For example, a YUV format may be preferred over an RGB format if an additional conversion step would be required for the latter.”h]”(hŒ The value of ”…”�”}”(hjœh²hh³Nh´Nubjœ)�”}”(hŒ``pixelformat``”h]”hŒ pixelformat”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjœubhX may be any pixel format supported by the decoder for the current stream. The decoder should choose a preferred/optimal format for the default configuration. For example, a YUV format may be preferred over an RGB format if an additional conversion step would be required for the latter.”…”�”}”(hjœh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M®hj˜ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj{ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjxh²hh³Nh´Nubj )�”}”(hXÛ**Optional.** Acquire the visible resolution via :c:func:`VIDIOC_G_SELECTION`. * **Required fields:** ``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``. ``target`` set to ``V4L2_SEL_TGT_COMPOSE``. * **Returned fields:** ``r.left``, ``r.top``, ``r.width``, ``r.height`` the visible rectangle; it must fit within the frame buffer resolution returned by :c:func:`VIDIOC_G_FMT` on ``CAPTURE``. * The following selection targets are supported on ``CAPTURE``: ``V4L2_SEL_TGT_CROP_BOUNDS`` corresponds to the coded resolution of the stream. ``V4L2_SEL_TGT_CROP_DEFAULT`` the rectangle covering the part of the ``CAPTURE`` buffer that contains meaningful picture data (visible area); width and height will be equal to the visible resolution of the stream. ``V4L2_SEL_TGT_CROP`` the rectangle within the coded resolution to be output to ``CAPTURE``; defaults to ``V4L2_SEL_TGT_CROP_DEFAULT``; read-only on hardware without additional compose/scaling capabilities. ``V4L2_SEL_TGT_COMPOSE_BOUNDS`` the maximum rectangle within a ``CAPTURE`` buffer, which the cropped frame can be composed into; equal to ``V4L2_SEL_TGT_CROP`` if the hardware does not support compose/scaling. ``V4L2_SEL_TGT_COMPOSE_DEFAULT`` equal to ``V4L2_SEL_TGT_CROP``. ``V4L2_SEL_TGT_COMPOSE`` the rectangle inside a ``CAPTURE`` buffer into which the cropped frame is written; defaults to ``V4L2_SEL_TGT_COMPOSE_DEFAULT``; read-only on hardware without additional compose/scaling capabilities. ``V4L2_SEL_TGT_COMPOSE_PADDED`` the rectangle inside a ``CAPTURE`` buffer which is overwritten by the hardware; equal to ``V4L2_SEL_TGT_COMPOSE`` if the hardware does not write padding pixels. .. warning:: The values are guaranteed to be meaningful only after the decoder successfully parses the stream metadata. The client must not rely on the query before that happens. ”h]”(hì)�”}”(hŒN**Optional.** Acquire the visible resolution via :c:func:`VIDIOC_G_SELECTION`.”h]”(jÈ )�”}”(hŒ **Optional.**”h]”hŒ Optional.”…”�”}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hjÌubhŒ$ Acquire the visible resolution via ”…”�”}”(hjÌh²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_G_SELECTION`”h]”jœ)�”}”(hjäh]”hŒVIDIOC_G_SELECTION()”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjâubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_G_SELECTION”uh1hh³hÇh´M´hjÌubhŒ.”…”�”}”(hjÌh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M´hjÈubjÒ )�”}”(hhh]”(j )�”}”(hŒŒ**Required fields:** ``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``. ``target`` set to ``V4L2_SEL_TGT_COMPOSE``. ”h]”(hì)�”}”(hŒ**Required fields:**”h]”jÈ )�”}”(hjh]”hŒRequired fields:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hjubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M·hjubj)�”}”(hhh]”(j )�”}”(hŒA``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``. ”h]”(j)�”}”(hŒ``type``”h]”jœ)�”}”(hj2h]”hŒtype”…”�”}”(hj4h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Mºhj,ubj!)�”}”(hhh]”hì)�”}”(hŒ7a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``.”h]”(hŒa ”…”�”}”(hjJh²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_BUF_TYPE_*``”h]”hŒV4L2_BUF_TYPE_*”…”�”}”(hjRh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjJubhŒ enum appropriate for ”…”�”}”(hjJh²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjJubhŒ.”…”�”}”(hjJh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MºhjGubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´Mºhj)ubj )�”}”(hŒ,``target`` set to ``V4L2_SEL_TGT_COMPOSE``. ”h]”(j)�”}”(hŒ ``target``”h]”jœ)�”}”(hjŽh]”hŒtarget”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjŒubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´M½hjˆubj!)�”}”(hhh]”hì)�”}”(hŒ set to ``V4L2_SEL_TGT_COMPOSE``.”h]”(hŒset to ”…”�”}”(hj¦h²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_SEL_TGT_COMPOSE``”h]”hŒV4L2_SEL_TGT_COMPOSE”…”�”}”(hj®h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj¦ubhŒ.”…”�”}”(hj¦h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M½hj£ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjˆubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´M½hj)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubj )�”}”(hŒÈ**Returned fields:** ``r.left``, ``r.top``, ``r.width``, ``r.height`` the visible rectangle; it must fit within the frame buffer resolution returned by :c:func:`VIDIOC_G_FMT` on ``CAPTURE``. ”h]”(hì)�”}”(hŒ**Returned fields:**”h]”jÈ )�”}”(hjäh]”hŒReturned fields:”…”�”}”(hjæh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hjâubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M¿hjÞubj)�”}”(hhh]”j )�”}”(hŒª``r.left``, ``r.top``, ``r.width``, ``r.height`` the visible rectangle; it must fit within the frame buffer resolution returned by :c:func:`VIDIOC_G_FMT` on ``CAPTURE``. ”h]”(j)�”}”(hŒ0``r.left``, ``r.top``, ``r.width``, ``r.height``”h]”(jœ)�”}”(hŒ ``r.left``”h]”hŒr.left”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjubhŒ, ”…”�”}”(hjh²hh³Nh´Nubjœ)�”}”(hŒ ``r.top``”h]”hŒr.top”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjubhŒ, ”…”�”}”hjsbjœ)�”}”(hŒ ``r.width``”h]”hŒr.width”…”�”}”(hj(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjubhŒ, ”…”�”}”hjsbjœ)�”}”(hŒ ``r.height``”h]”hŒr.height”…”�”}”(hj:h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´MÃhjüubj!)�”}”(hhh]”hì)�”}”(hŒxthe visible rectangle; it must fit within the frame buffer resolution returned by :c:func:`VIDIOC_G_FMT` on ``CAPTURE``.”h]”(hŒRthe visible rectangle; it must fit within the frame buffer resolution returned by ”…”�”}”(hjQh²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_G_FMT`”h]”jœ)�”}”(hj[h]”hŒVIDIOC_G_FMT()”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjYubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒ VIDIOC_G_FMT”uh1hh³hÇh´MÂhjQubhŒ on ”…”�”}”(hjQh²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjQubhŒ.”…”�”}”(hjQh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MÂhjNubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjüubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´MÃhjùubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÞubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubj )�”}”(hX3The following selection targets are supported on ``CAPTURE``: ``V4L2_SEL_TGT_CROP_BOUNDS`` corresponds to the coded resolution of the stream. ``V4L2_SEL_TGT_CROP_DEFAULT`` the rectangle covering the part of the ``CAPTURE`` buffer that contains meaningful picture data (visible area); width and height will be equal to the visible resolution of the stream. ``V4L2_SEL_TGT_CROP`` the rectangle within the coded resolution to be output to ``CAPTURE``; defaults to ``V4L2_SEL_TGT_CROP_DEFAULT``; read-only on hardware without additional compose/scaling capabilities. ``V4L2_SEL_TGT_COMPOSE_BOUNDS`` the maximum rectangle within a ``CAPTURE`` buffer, which the cropped frame can be composed into; equal to ``V4L2_SEL_TGT_CROP`` if the hardware does not support compose/scaling. ``V4L2_SEL_TGT_COMPOSE_DEFAULT`` equal to ``V4L2_SEL_TGT_CROP``. ``V4L2_SEL_TGT_COMPOSE`` the rectangle inside a ``CAPTURE`` buffer into which the cropped frame is written; defaults to ``V4L2_SEL_TGT_COMPOSE_DEFAULT``; read-only on hardware without additional compose/scaling capabilities. ``V4L2_SEL_TGT_COMPOSE_PADDED`` the rectangle inside a ``CAPTURE`` buffer which is overwritten by the hardware; equal to ``V4L2_SEL_TGT_COMPOSE`` if the hardware does not write padding pixels. ”h]”(hì)�”}”(hŒ=The following selection targets are supported on ``CAPTURE``:”h]”(hŒ1The following selection targets are supported on ”…”�”}”(hj°h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj¸h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj°ubhŒ:”…”�”}”(hj°h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MÅhj¬ubj)�”}”(hhh]”(j )�”}”(hŒP``V4L2_SEL_TGT_CROP_BOUNDS`` corresponds to the coded resolution of the stream. ”h]”(j)�”}”(hŒ``V4L2_SEL_TGT_CROP_BOUNDS``”h]”jœ)�”}”(hjÙh]”hŒV4L2_SEL_TGT_CROP_BOUNDS”…”�”}”(hjÛh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj×ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´MÈhjÓubj!)�”}”(hhh]”hì)�”}”(hŒ2corresponds to the coded resolution of the stream.”h]”hŒ2corresponds to the coded resolution of the stream.”…”�”}”(hjñh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MÈhjîubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjÓubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´MÈhjÐubj )�”}”(hŒÖ``V4L2_SEL_TGT_CROP_DEFAULT`` the rectangle covering the part of the ``CAPTURE`` buffer that contains meaningful picture data (visible area); width and height will be equal to the visible resolution of the stream. ”h]”(j)�”}”(hŒ``V4L2_SEL_TGT_CROP_DEFAULT``”h]”jœ)�”}”(hjh]”hŒV4L2_SEL_TGT_CROP_DEFAULT”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´MÍhj ubj!)�”}”(hhh]”hì)�”}”(hŒ·the rectangle covering the part of the ``CAPTURE`` buffer that contains meaningful picture data (visible area); width and height will be equal to the visible resolution of the stream.”h]”(hŒ'the rectangle covering the part of the ”…”�”}”(hj)h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj1h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj)ubhŒ… buffer that contains meaningful picture data (visible area); width and height will be equal to the visible resolution of the stream.”…”�”}”(hj)h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MËhj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´MÍhjÐubj )�”}”(hŒÏ``V4L2_SEL_TGT_CROP`` the rectangle within the coded resolution to be output to ``CAPTURE``; defaults to ``V4L2_SEL_TGT_CROP_DEFAULT``; read-only on hardware without additional compose/scaling capabilities. ”h]”(j)�”}”(hŒ``V4L2_SEL_TGT_CROP``”h]”jœ)�”}”(hj[h]”hŒV4L2_SEL_TGT_CROP”…”�”}”(hj]h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjYubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´MÒhjUubj!)�”}”(hhh]”hì)�”}”(hŒ¸the rectangle within the coded resolution to be output to ``CAPTURE``; defaults to ``V4L2_SEL_TGT_CROP_DEFAULT``; read-only on hardware without additional compose/scaling capabilities.”h]”(hŒ:the rectangle within the coded resolution to be output to ”…”�”}”(hjsh²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj{h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjsubhŒ; defaults to ”…”�”}”(hjsh²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_SEL_TGT_CROP_DEFAULT``”h]”hŒV4L2_SEL_TGT_CROP_DEFAULT”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjsubhŒH; read-only on hardware without additional compose/scaling capabilities.”…”�”}”(hjsh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MÐhjpubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjUubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´MÒhjÐubj )�”}”(hŒÒ``V4L2_SEL_TGT_COMPOSE_BOUNDS`` the maximum rectangle within a ``CAPTURE`` buffer, which the cropped frame can be composed into; equal to ``V4L2_SEL_TGT_CROP`` if the hardware does not support compose/scaling. ”h]”(j)�”}”(hŒ``V4L2_SEL_TGT_COMPOSE_BOUNDS``”h]”jœ)�”}”(hj·h]”hŒV4L2_SEL_TGT_COMPOSE_BOUNDS”…”�”}”(hj¹h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjµubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´M×hj±ubj!)�”}”(hhh]”hì)�”}”(hŒ±the maximum rectangle within a ``CAPTURE`` buffer, which the cropped frame can be composed into; equal to ``V4L2_SEL_TGT_CROP`` if the hardware does not support compose/scaling.”h]”(hŒthe maximum rectangle within a ”…”�”}”(hjÏh²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj×h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÏubhŒ@ buffer, which the cropped frame can be composed into; equal to ”…”�”}”(hjÏh²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_SEL_TGT_CROP``”h]”hŒV4L2_SEL_TGT_CROP”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÏubhŒ2 if the hardware does not support compose/scaling.”…”�”}”(hjÏh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MÕhjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj±ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´M×hjÐubj )�”}”(hŒA``V4L2_SEL_TGT_COMPOSE_DEFAULT`` equal to ``V4L2_SEL_TGT_CROP``. ”h]”(j)�”}”(hŒ ``V4L2_SEL_TGT_COMPOSE_DEFAULT``”h]”jœ)�”}”(hjh]”hŒV4L2_SEL_TGT_COMPOSE_DEFAULT”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´MÚhj ubj!)�”}”(hhh]”hì)�”}”(hŒequal to ``V4L2_SEL_TGT_CROP``.”h]”(hŒ equal to ”…”�”}”(hj+h²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_SEL_TGT_CROP``”h]”hŒV4L2_SEL_TGT_CROP”…”�”}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj+ubhŒ.”…”�”}”(hj+h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MÚhj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´MÚhjÐubj )�”}”(hŒá``V4L2_SEL_TGT_COMPOSE`` the rectangle inside a ``CAPTURE`` buffer into which the cropped frame is written; defaults to ``V4L2_SEL_TGT_COMPOSE_DEFAULT``; read-only on hardware without additional compose/scaling capabilities. ”h]”(j)�”}”(hŒ``V4L2_SEL_TGT_COMPOSE``”h]”jœ)�”}”(hj]h]”hŒV4L2_SEL_TGT_COMPOSE”…”�”}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj[ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´MßhjWubj!)�”}”(hhh]”hì)�”}”(hŒÇthe rectangle inside a ``CAPTURE`` buffer into which the cropped frame is written; defaults to ``V4L2_SEL_TGT_COMPOSE_DEFAULT``; read-only on hardware without additional compose/scaling capabilities.”h]”(hŒthe rectangle inside a ”…”�”}”(hjuh²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj}h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjuubhŒ= buffer into which the cropped frame is written; defaults to ”…”�”}”(hjuh²hh³Nh´Nubjœ)�”}”(hŒ ``V4L2_SEL_TGT_COMPOSE_DEFAULT``”h]”hŒV4L2_SEL_TGT_COMPOSE_DEFAULT”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjuubhŒH; read-only on hardware without additional compose/scaling capabilities.”…”�”}”(hjuh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MÝhjrubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjWubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´MßhjÐubj )�”}”(hŒÁ``V4L2_SEL_TGT_COMPOSE_PADDED`` the rectangle inside a ``CAPTURE`` buffer which is overwritten by the hardware; equal to ``V4L2_SEL_TGT_COMPOSE`` if the hardware does not write padding pixels. ”h]”(j)�”}”(hŒ``V4L2_SEL_TGT_COMPOSE_PADDED``”h]”jœ)�”}”(hj¹h]”hŒV4L2_SEL_TGT_COMPOSE_PADDED”…”�”}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj·ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Mähj³ubj!)�”}”(hhh]”hì)�”}”(hŒ the rectangle inside a ``CAPTURE`` buffer which is overwritten by the hardware; equal to ``V4L2_SEL_TGT_COMPOSE`` if the hardware does not write padding pixels.”h]”(hŒthe rectangle inside a ”…”�”}”(hjÑh²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÑubhŒ7 buffer which is overwritten by the hardware; equal to ”…”�”}”(hjÑh²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_SEL_TGT_COMPOSE``”h]”hŒV4L2_SEL_TGT_COMPOSE”…”�”}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÑubhŒ/ if the hardware does not write padding pixels.”…”�”}”(hjÑh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MâhjÎubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj³ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´MähjÐubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj ubeh}”(h]”h ]”h"]”h$]”h&]”jA jB uh1jÑ h³hÇh´M·hjÈubj)�”}”(hŒ¥The values are guaranteed to be meaningful only after the decoder successfully parses the stream metadata. The client must not rely on the query before that happens.”h]”hì)�”}”(hŒ¥The values are guaranteed to be meaningful only after the decoder successfully parses the stream metadata. The client must not rely on the query before that happens.”h]”hŒ¥The values are guaranteed to be meaningful only after the decoder successfully parses the stream metadata. The client must not rely on the query before that happens.”…”�”}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mèhj!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÈubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjxh²hh³Nh´Nubj )�”}”(hXS**Optional.** Enumerate ``CAPTURE`` formats via :c:func:`VIDIOC_ENUM_FMT` on the ``CAPTURE`` queue. Once the stream information is parsed and known, the client may use this ioctl to discover which raw formats are supported for given stream and select one of them via :c:func:`VIDIOC_S_FMT`. .. important:: The decoder will return only formats supported for the currently established coded format, as per the ``OUTPUT`` format and/or stream metadata parsed in this initialization sequence, even if more formats may be supported by the decoder in general. In other words, the set returned will be a subset of the initial query mentioned in the `Querying Capabilities` section. For example, a decoder may support YUV and RGB formats for resolutions 1920x1088 and lower, but only YUV for higher resolutions (due to hardware limitations). After parsing a resolution of 1920x1088 or lower, :c:func:`VIDIOC_ENUM_FMT` may return a set of YUV and RGB pixel formats, but after parsing resolution higher than 1920x1088, the decoder will not return RGB, unsupported for this resolution. However, subsequent resolution change event triggered after discovering a resolution change within the same stream may switch the stream into a lower resolution and :c:func:`VIDIOC_ENUM_FMT` would return RGB formats again in that case. ”h]”(hì)�”}”(hX"**Optional.** Enumerate ``CAPTURE`` formats via :c:func:`VIDIOC_ENUM_FMT` on the ``CAPTURE`` queue. Once the stream information is parsed and known, the client may use this ioctl to discover which raw formats are supported for given stream and select one of them via :c:func:`VIDIOC_S_FMT`.”h]”(jÈ )�”}”(hŒ **Optional.**”h]”hŒ Optional.”…”�”}”(hjGh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hjCubhŒ Enumerate ”…”�”}”(hjCh²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjCubhŒ formats via ”…”�”}”(hjCh²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_ENUM_FMT`”h]”jœ)�”}”(hjmh]”hŒVIDIOC_ENUM_FMT()”…”�”}”(hjoh²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjkubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_ENUM_FMT”uh1hh³hÇh´MìhjCubhŒ on the ”…”�”}”(hjCh²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjŽh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjCubhŒ¯ queue. Once the stream information is parsed and known, the client may use this ioctl to discover which raw formats are supported for given stream and select one of them via ”…”�”}”(hjCh²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_S_FMT`”h]”jœ)�”}”(hj¢h]”hŒVIDIOC_S_FMT()”…”�”}”(hj¤h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒ VIDIOC_S_FMT”uh1hh³hÇh´MìhjCubhŒ.”…”�”}”(hjCh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mìhj?ubj)�”}”(hXîThe decoder will return only formats supported for the currently established coded format, as per the ``OUTPUT`` format and/or stream metadata parsed in this initialization sequence, even if more formats may be supported by the decoder in general. In other words, the set returned will be a subset of the initial query mentioned in the `Querying Capabilities` section. For example, a decoder may support YUV and RGB formats for resolutions 1920x1088 and lower, but only YUV for higher resolutions (due to hardware limitations). After parsing a resolution of 1920x1088 or lower, :c:func:`VIDIOC_ENUM_FMT` may return a set of YUV and RGB pixel formats, but after parsing resolution higher than 1920x1088, the decoder will not return RGB, unsupported for this resolution. However, subsequent resolution change event triggered after discovering a resolution change within the same stream may switch the stream into a lower resolution and :c:func:`VIDIOC_ENUM_FMT` would return RGB formats again in that case.”h]”(hì)�”}”(hXpThe decoder will return only formats supported for the currently established coded format, as per the ``OUTPUT`` format and/or stream metadata parsed in this initialization sequence, even if more formats may be supported by the decoder in general. In other words, the set returned will be a subset of the initial query mentioned in the `Querying Capabilities` section.”h]”(hŒfThe decoder will return only formats supported for the currently established coded format, as per the ”…”�”}”(hjÍh²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjÕh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÍubhŒà format and/or stream metadata parsed in this initialization sequence, even if more formats may be supported by the decoder in general. In other words, the set returned will be a subset of the initial query mentioned in the ”…”�”}”(hjÍh²hh³Nh´Nubjá)�”}”(hŒ`Querying Capabilities`”h]”hŒQuerying Capabilities”…”�”}”(hjçh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jàhjÍubhŒ section.”…”�”}”(hjÍh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MóhjÉubhì)�”}”(hX�For example, a decoder may support YUV and RGB formats for resolutions 1920x1088 and lower, but only YUV for higher resolutions (due to hardware limitations). After parsing a resolution of 1920x1088 or lower, :c:func:`VIDIOC_ENUM_FMT` may return a set of YUV and RGB pixel formats, but after parsing resolution higher than 1920x1088, the decoder will not return RGB, unsupported for this resolution.”h]”(hŒÑFor example, a decoder may support YUV and RGB formats for resolutions 1920x1088 and lower, but only YUV for higher resolutions (due to hardware limitations). After parsing a resolution of 1920x1088 or lower, ”…”�”}”(hjÿh²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_ENUM_FMT`”h]”jœ)�”}”(hj h]”hŒVIDIOC_ENUM_FMT()”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_ENUM_FMT”uh1hh³hÇh´MúhjÿubhŒ¥ may return a set of YUV and RGB pixel formats, but after parsing resolution higher than 1920x1088, the decoder will not return RGB, unsupported for this resolution.”…”�”}”(hjÿh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MúhjÉubhì)�”}”(hŒëHowever, subsequent resolution change event triggered after discovering a resolution change within the same stream may switch the stream into a lower resolution and :c:func:`VIDIOC_ENUM_FMT` would return RGB formats again in that case.”h]”(hŒ¥However, subsequent resolution change event triggered after discovering a resolution change within the same stream may switch the stream into a lower resolution and ”…”�”}”(hj0h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_ENUM_FMT`”h]”jœ)�”}”(hj:h]”hŒVIDIOC_ENUM_FMT()”…”�”}”(hj<h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj8ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_ENUM_FMT”uh1hh³hÇh´Mhj0ubhŒ- would return RGB formats again in that case.”…”�”}”(hj0h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MhjÉubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj?ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjxh²hh³Nh´Nubj )�”}”(hXD**Optional.** Set the ``CAPTURE`` format via :c:func:`VIDIOC_S_FMT` on the ``CAPTURE`` queue. The client may choose a different format than selected/suggested by the decoder in :c:func:`VIDIOC_G_FMT`. * **Required fields:** ``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``. ``pixelformat`` a raw pixel format. ``width``, ``height`` frame buffer resolution of the decoded stream; typically unchanged from what was returned with :c:func:`VIDIOC_G_FMT`, but it may be different if the hardware supports composition and/or scaling. ”h]”(hì)�”}”(hŒÈ**Optional.** Set the ``CAPTURE`` format via :c:func:`VIDIOC_S_FMT` on the ``CAPTURE`` queue. The client may choose a different format than selected/suggested by the decoder in :c:func:`VIDIOC_G_FMT`.”h]”(jÈ )�”}”(hŒ **Optional.**”h]”hŒ Optional.”…”�”}”(hjuh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hjqubhŒ Set the ”…”�”}”(hjqh²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj‡h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjqubhŒ format via ”…”�”}”(hjqh²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_S_FMT`”h]”jœ)�”}”(hj›h]”hŒVIDIOC_S_FMT()”…”�”}”(hj�h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj™ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒ VIDIOC_S_FMT”uh1hh³hÇh´MhjqubhŒ on the ”…”�”}”(hjqh²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj¼h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjqubhŒ[ queue. The client may choose a different format than selected/suggested by the decoder in ”…”�”}”(hjqh²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_G_FMT`”h]”jœ)�”}”(hjÐh]”hŒVIDIOC_G_FMT()”…”�”}”(hjÒh²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjÎubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒ VIDIOC_G_FMT”uh1hh³hÇh´MhjqubhŒ.”…”�”}”(hjqh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MhjmubjÒ )�”}”(hhh]”j )�”}”(hXh**Required fields:** ``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``. ``pixelformat`` a raw pixel format. ``width``, ``height`` frame buffer resolution of the decoded stream; typically unchanged from what was returned with :c:func:`VIDIOC_G_FMT`, but it may be different if the hardware supports composition and/or scaling. ”h]”(hì)�”}”(hŒ**Required fields:**”h]”jÈ )�”}”(hjh]”hŒRequired fields:”…”�”}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hjþubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M hjúubj)�”}”(hhh]”(j )�”}”(hŒA``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``. ”h]”(j)�”}”(hŒ``type``”h]”jœ)�”}”(hjh]”hŒtype”…”�”}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´M hjubj!)�”}”(hhh]”hì)�”}”(hŒ7a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``.”h]”(hŒa ”…”�”}”(hj6h²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_BUF_TYPE_*``”h]”hŒV4L2_BUF_TYPE_*”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj6ubhŒ enum appropriate for ”…”�”}”(hj6h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjPh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj6ubhŒ.”…”�”}”(hj6h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M hj3ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´M hjubj )�”}”(hŒ$``pixelformat`` a raw pixel format. ”h]”(j)�”}”(hŒ``pixelformat``”h]”jœ)�”}”(hjzh]”hŒ pixelformat”…”�”}”(hj|h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjxubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Mhjtubj!)�”}”(hhh]”hì)�”}”(hŒa raw pixel format.”h]”hŒa raw pixel format.”…”�”}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mhj�ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjtubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´Mhjubj )�”}”(hŒÚ``width``, ``height`` frame buffer resolution of the decoded stream; typically unchanged from what was returned with :c:func:`VIDIOC_G_FMT`, but it may be different if the hardware supports composition and/or scaling. ”h]”(j)�”}”(hŒ``width``, ``height``”h]”(jœ)�”}”(hŒ ``width``”h]”hŒwidth”…”�”}”(hj´h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj°ubhŒ, ”…”�”}”(hj°h²hh³Nh´Nubjœ)�”}”(hŒ ``height``”h]”hŒheight”…”�”}”(hjÆh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj°ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Mhj¬ubj!)�”}”(hhh]”hì)�”}”(hŒÃframe buffer resolution of the decoded stream; typically unchanged from what was returned with :c:func:`VIDIOC_G_FMT`, but it may be different if the hardware supports composition and/or scaling.”h]”(hŒ_frame buffer resolution of the decoded stream; typically unchanged from what was returned with ”…”�”}”(hjÝh²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_G_FMT`”h]”jœ)�”}”(hjçh]”hŒVIDIOC_G_FMT()”…”�”}”(hjéh²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjåubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒ VIDIOC_G_FMT”uh1hh³hÇh´MhjÝubhŒN, but it may be different if the hardware supports composition and/or scaling.”…”�”}”(hjÝh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MhjÚubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj¬ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´Mhjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjúubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj÷ubah}”(h]”h ]”h"]”h$]”h&]”jA jB uh1jÑ h³hÇh´M hjmubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjxh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jÜjÝjÞhjßjàuh1jhjgh²hh³hÇh´M–ubhŒ block_quote”“”)�”}”(hŒª* Setting the ``CAPTURE`` format will reset the compose selection rectangles to their default values, based on the new resolution, as described in the previous step. ”h]”jÒ )�”}”(hhh]”j )�”}”(hŒ¤Setting the ``CAPTURE`` format will reset the compose selection rectangles to their default values, based on the new resolution, as described in the previous step. ”h]”hì)�”}”(hŒ£Setting the ``CAPTURE`` format will reset the compose selection rectangles to their default values, based on the new resolution, as described in the previous step.”h]”(hŒ Setting the ”…”�”}”(hjE h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjM h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjE ubhŒŒ format will reset the compose selection rectangles to their default values, based on the new resolution, as described in the previous step.”…”�”}”(hjE h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MhjA ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj> ubah}”(h]”h ]”h"]”h$]”h&]”jA jB uh1jÑ h³hÇh´Mhj: ubah}”(h]”h ]”h"]”h$]”h&]”uh1j8 h³hÇh´Mhjgh²hubj)�”}”(hhh]”(j )�”}”(hX **Optional.** Set the compose rectangle via :c:func:`VIDIOC_S_SELECTION` on the ``CAPTURE`` queue if it is desired and if the decoder has compose and/or scaling capabilities. * **Required fields:** ``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``. ``target`` set to ``V4L2_SEL_TGT_COMPOSE``. ``r.left``, ``r.top``, ``r.width``, ``r.height`` the rectangle inside a ``CAPTURE`` buffer into which the cropped frame is written; defaults to ``V4L2_SEL_TGT_COMPOSE_DEFAULT``; read-only on hardware without additional compose/scaling capabilities. * **Returned fields:** ``r.left``, ``r.top``, ``r.width``, ``r.height`` the visible rectangle; it must fit within the frame buffer resolution returned by :c:func:`VIDIOC_G_FMT` on ``CAPTURE``. .. warning:: The decoder may adjust the compose rectangle to the nearest supported one to meet codec and hardware requirements. The client needs to check the adjusted rectangle returned by :c:func:`VIDIOC_S_SELECTION`. ”h]”(hì)�”}”(hŒ®**Optional.** Set the compose rectangle via :c:func:`VIDIOC_S_SELECTION` on the ``CAPTURE`` queue if it is desired and if the decoder has compose and/or scaling capabilities.”h]”(jÈ )�”}”(hŒ **Optional.**”h]”hŒ Optional.”…”�”}”(hj‚ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hj~ ubhŒ Set the compose rectangle via ”…”�”}”(hj~ h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_S_SELECTION`”h]”jœ)�”}”(hj– h]”hŒVIDIOC_S_SELECTION()”…”�”}”(hj˜ h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj” ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_S_SELECTION”uh1hh³hÇh´Mhj~ ubhŒ on the ”…”�”}”(hj~ h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj· h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj~ ubhŒS queue if it is desired and if the decoder has compose and/or scaling capabilities.”…”�”}”(hj~ h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mhjz ubjÒ )�”}”(hhh]”(j )�”}”(hX’**Required fields:** ``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``. ``target`` set to ``V4L2_SEL_TGT_COMPOSE``. ``r.left``, ``r.top``, ``r.width``, ``r.height`` the rectangle inside a ``CAPTURE`` buffer into which the cropped frame is written; defaults to ``V4L2_SEL_TGT_COMPOSE_DEFAULT``; read-only on hardware without additional compose/scaling capabilities. ”•h]”(hì)�”}”(hŒ**Required fields:**”h]”jÈ )�”}”(hjØ h]”hŒRequired fields:”…”�”}”(hjÚ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hjÖ ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MhjÒ ubj)�”}”(hhh]”(j )�”}”(hŒA``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``. ”h]”(j)�”}”(hŒ``type``”h]”jœ)�”}”(hjö h]”hŒtype”…”�”}”(hjø h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjô ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´M"hjð ubj!)�”}”(hhh]”hì)�”}”(hŒ7a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``.”h]”(hŒa ”…”�”}”(hj!h²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_BUF_TYPE_*``”h]”hŒV4L2_BUF_TYPE_*”…”�”}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj!ubhŒ enum appropriate for ”…”�”}”(hj!h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj(!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj!ubhŒ.”…”�”}”(hj!h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M"hj !ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjð ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´M"hjí ubj )�”}”(hŒ,``target`` set to ``V4L2_SEL_TGT_COMPOSE``. ”h]”(j)�”}”(hŒ ``target``”h]”jœ)�”}”(hjR!h]”hŒtarget”…”�”}”(hjT!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjP!ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´M%hjL!ubj!)�”}”(hhh]”hì)�”}”(hŒ set to ``V4L2_SEL_TGT_COMPOSE``.”h]”(hŒset to ”…”�”}”(hjj!h²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_SEL_TGT_COMPOSE``”h]”hŒV4L2_SEL_TGT_COMPOSE”…”�”}”(hjr!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjj!ubhŒ.”…”�”}”(hjj!h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M%hjg!ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjL!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´M%hjí ubj )�”}”(hŒù``r.left``, ``r.top``, ``r.width``, ``r.height`` the rectangle inside a ``CAPTURE`` buffer into which the cropped frame is written; defaults to ``V4L2_SEL_TGT_COMPOSE_DEFAULT``; read-only on hardware without additional compose/scaling capabilities. ”h]”(j)�”}”(hŒ0``r.left``, ``r.top``, ``r.width``, ``r.height``”h]”(jœ)�”}”(hŒ ``r.left``”h]”hŒr.left”…”�”}”(hjž!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjš!ubhŒ, ”…”�”}”(hjš!h²hh³Nh´Nubjœ)�”}”(hŒ ``r.top``”h]”hŒr.top”…”�”}”(hj°!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjš!ubhŒ, ”…”�”}”hjš!sbjœ)�”}”(hŒ ``r.width``”h]”hŒr.width”…”�”}”(hjÂ!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjš!ubhŒ, ”…”�”}”hjš!sbjœ)�”}”(hŒ ``r.height``”h]”hŒr.height”…”�”}”(hjÔ!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjš!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´M*hj–!ubj!)�”}”(hhh]”hì)�”}”(hŒÇthe rectangle inside a ``CAPTURE`` buffer into which the cropped frame is written; defaults to ``V4L2_SEL_TGT_COMPOSE_DEFAULT``; read-only on hardware without additional compose/scaling capabilities.”h]”(hŒthe rectangle inside a ”…”�”}”(hjë!h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjó!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjë!ubhŒ= buffer into which the cropped frame is written; defaults to ”…”�”}”(hjë!h²hh³Nh´Nubjœ)�”}”(hŒ ``V4L2_SEL_TGT_COMPOSE_DEFAULT``”h]”hŒV4L2_SEL_TGT_COMPOSE_DEFAULT”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjë!ubhŒH; read-only on hardware without additional compose/scaling capabilities.”…”�”}”(hjë!h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M(hjè!ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj–!ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´M*hjí ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÒ ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÏ ubj )�”}”(hŒÈ**Returned fields:** ``r.left``, ``r.top``, ``r.width``, ``r.height`` the visible rectangle; it must fit within the frame buffer resolution returned by :c:func:`VIDIOC_G_FMT` on ``CAPTURE``. ”h]”(hì)�”}”(hŒ**Returned fields:**”h]”jÈ )�”}”(hj;"h]”hŒReturned fields:”…”�”}”(hj="h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hj9"ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M,hj5"ubj)�”}”(hhh]”j )�”}”(hŒª``r.left``, ``r.top``, ``r.width``, ``r.height`` the visible rectangle; it must fit within the frame buffer resolution returned by :c:func:`VIDIOC_G_FMT` on ``CAPTURE``. ”h]”(j)�”}”(hŒ0``r.left``, ``r.top``, ``r.width``, ``r.height``”h]”(jœ)�”}”(hŒ ``r.left``”h]”hŒr.left”…”�”}”(hj["h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjW"ubhŒ, ”…”�”}”(hjW"h²hh³Nh´Nubjœ)�”}”(hŒ ``r.top``”h]”hŒr.top”…”�”}”(hjm"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjW"ubhŒ, ”…”�”}”hjW"sbjœ)�”}”(hŒ ``r.width``”h]”hŒr.width”…”�”}”(hj"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjW"ubhŒ, ”…”�”}”hjW"sbjœ)�”}”(hŒ ``r.height``”h]”hŒr.height”…”�”}”(hj‘"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjW"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´M0hjS"ubj!)�”}”(hhh]”hì)�”}”(hŒxthe visible rectangle; it must fit within the frame buffer resolution returned by :c:func:`VIDIOC_G_FMT` on ``CAPTURE``.”h]”(hŒRthe visible rectangle; it must fit within the frame buffer resolution returned by ”…”�”}”(hj¨"h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_G_FMT`”h]”jœ)�”}”(hj²"h]”hŒVIDIOC_G_FMT()”…”�”}”(hj´"h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj°"ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒ VIDIOC_G_FMT”uh1hh³hÇh´M/hj¨"ubhŒ on ”…”�”}”(hj¨"h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjÓ"h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj¨"ubhŒ.”…”�”}”(hj¨"h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M/hj¥"ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjS"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´M0hjP"ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj5"ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÏ ubeh}”(h]”h ]”h"]”h$]”h&]”jA jB uh1jÑ h³hÇh´Mhjz ubj)�”}”(hŒÍThe decoder may adjust the compose rectangle to the nearest supported one to meet codec and hardware requirements. The client needs to check the adjusted rectangle returned by :c:func:`VIDIOC_S_SELECTION`.”h]”hì)�”}”(hŒÍThe decoder may adjust the compose rectangle to the nearest supported one to meet codec and hardware requirements. The client needs to check the adjusted rectangle returned by :c:func:`VIDIOC_S_SELECTION`.”h]”(hŒ°The decoder may adjust the compose rectangle to the nearest supported one to meet codec and hardware requirements. The client needs to check the adjusted rectangle returned by ”…”�”}”(hj #h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_S_SELECTION`”h]”jœ)�”}”(hj#h]”hŒVIDIOC_S_SELECTION()”…”�”}”(hj#h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj#ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_S_SELECTION”uh1hh³hÇh´M4hj #ubhŒ.”…”�”}”(hj #h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M4hj #ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjz ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjw h²hh³Nh´Nubj )�”}”(hXºIf all the following conditions are met, the client may resume the decoding instantly: * ``sizeimage`` of the new format (determined in previous steps) is less than or equal to the size of currently allocated buffers, * the number of buffers currently allocated is greater than or equal to the minimum number of buffers acquired in previous steps. To fulfill this requirement, the client may use :c:func:`VIDIOC_CREATE_BUFS` to add new buffers. In that case, the remaining steps do not apply and the client may resume the decoding by one of the following actions: * if the ``CAPTURE`` queue is streaming, call :c:func:`VIDIOC_DECODER_CMD` with the ``V4L2_DEC_CMD_START`` command, * if the ``CAPTURE`` queue is not streaming, call :c:func:`VIDIOC_STREAMON` on the ``CAPTURE`` queue. However, if the client intends to change the buffer set, to lower memory usage or for any other reasons, it may be achieved by following the steps below. ”h]”(hì)�”}”(hŒVIf all the following conditions are met, the client may resume the decoding instantly:”h]”hŒVIf all the following conditions are met, the client may resume the decoding instantly:”…”�”}”(hjN#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M8hjJ#ubjÒ )�”}”(hhh]”(j )�”}”(hŒ�``sizeimage`` of the new format (determined in previous steps) is less than or equal to the size of currently allocated buffers, ”h]”hì)�”}”(hŒ€``sizeimage`` of the new format (determined in previous steps) is less than or equal to the size of currently allocated buffers,”h]”(jœ)�”}”(hŒ ``sizeimage``”h]”hŒ sizeimage”…”�”}”(hjg#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjc#ubhŒs of the new format (determined in previous steps) is less than or equal to the size of currently allocated buffers,”…”�”}”(hjc#h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M;hj_#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj\#ubj )�”}”(hŒáthe number of buffers currently allocated is greater than or equal to the minimum number of buffers acquired in previous steps. To fulfill this requirement, the client may use :c:func:`VIDIOC_CREATE_BUFS` to add new buffers. ”h]”hì)�”}”(hŒàthe number of buffers currently allocated is greater than or equal to the minimum number of buffers acquired in previous steps. To fulfill this requirement, the client may use :c:func:`VIDIOC_CREATE_BUFS` to add new buffers.”h]”(hŒ°the number of buffers currently allocated is greater than or equal to the minimum number of buffers acquired in previous steps. To fulfill this requirement, the client may use ”…”�”}”(hj‰#h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_CREATE_BUFS`”h]”jœ)�”}”(hj“#h]”hŒVIDIOC_CREATE_BUFS()”…”�”}”(hj•#h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj‘#ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_CREATE_BUFS”uh1hh³hÇh´M>hj‰#ubhŒ to add new buffers.”…”�”}”(hj‰#h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M>hj…#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj\#ubeh}”(h]”h ]”h"]”h$]”h&]”jA jB uh1jÑ h³hÇh´M;hjJ#ubhì)�”}”(hŒvIn that case, the remaining steps do not apply and the client may resume the decoding by one of the following actions:”h]”hŒvIn that case, the remaining steps do not apply and the client may resume the decoding by one of the following actions:”…”�”}”(hjÆ#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MChjJ#ubjÒ )�”}”(hhh]”(j )�”}”(hŒrif the ``CAPTURE`` queue is streaming, call :c:func:`VIDIOC_DECODER_CMD` with the ``V4L2_DEC_CMD_START`` command, ”h]”hì)�”}”(hŒqif the ``CAPTURE`` queue is streaming, call :c:func:`VIDIOC_DECODER_CMD` with the ``V4L2_DEC_CMD_START`` command,”h]”(hŒif the ”…”�”}”(hjÛ#h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjã#h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÛ#ubhŒ queue is streaming, call ”…”�”}”(hjÛ#h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_DECODER_CMD`”h]”jœ)�”}”(hj÷#h]”hŒVIDIOC_DECODER_CMD()”…”�”}”(hjù#h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjõ#ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_DECODER_CMD”uh1hh³hÇh´MFhjÛ#ubhŒ with the ”…”�”}”(hjÛ#h²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_DEC_CMD_START``”h]”hŒV4L2_DEC_CMD_START”…”�”}”(hj$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÛ#ubhŒ command,”…”�”}”(hjÛ#h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MFhj×#ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÔ#ubj )�”}”(hŒdif the ``CAPTURE`` queue is not streaming, call :c:func:`VIDIOC_STREAMON` on the ``CAPTURE`` queue. ”h]”hì)�”}”(hŒcif the ``CAPTURE`` queue is not streaming, call :c:func:`VIDIOC_STREAMON` on the ``CAPTURE`` queue.”h]”(hŒif the ”…”�”}”(hj:$h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjB$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj:$ubhŒ queue is not streaming, call ”…”�”}”(hj:$h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_STREAMON`”h]”jœ)�”}”(hjV$h]”hŒVIDIOC_STREAMON()”…”�”}”(hjX$h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjT$ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_STREAMON”uh1hh³hÇh´MIhj:$ubhŒ on the ”…”�”}”(hj:$h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjw$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj:$ubhŒ queue.”…”�”}”(hj:$h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MIhj6$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjÔ#ubeh}”(h]”h ]”h"]”h$]”h&]”jA jB uh1jÑ h³hÇh´MFhjJ#ubhì)�”}”(hŒ™However, if the client intends to change the buffer set, to lower memory usage or for any other reasons, it may be achieved by following the steps below.”h]”hŒ™However, if the client intends to change the buffer set, to lower memory usage or for any other reasons, it may be achieved by following the steps below.”…”�”}”(hj›$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MLhjJ#ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjw h²hh³hÇh´Nubj )�”}”(hŒ³**If the** ``CAPTURE`` **queue is streaming,** keep queuing and dequeuing buffers on the ``CAPTURE`` queue until a buffer marked with the ``V4L2_BUF_FLAG_LAST`` flag is dequeued. ”h]”hì)�”}”(hŒ²**If the** ``CAPTURE`` **queue is streaming,** keep queuing and dequeuing buffers on the ``CAPTURE`` queue until a buffer marked with the ``V4L2_BUF_FLAG_LAST`` flag is dequeued.”h]”(jÈ )�”}”(hŒ **If the**”h]”hŒIf the”…”�”}”(hj·$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hj³$ubhŒ ”…”�”}”(hj³$h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjÉ$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj³$ubhŒ ”…”�”}”hj³$sbjÈ )�”}”(hŒ**queue is streaming,**”h]”hŒqueue is streaming,”…”�”}”(hjÛ$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hj³$ubhŒ+ keep queuing and dequeuing buffers on the ”…”�”}”(hj³$h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjí$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj³$ubhŒ& queue until a buffer marked with the ”…”�”}”(hj³$h²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_BUF_FLAG_LAST``”h]”hŒV4L2_BUF_FLAG_LAST”…”�”}”(hjÿ$h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj³$ubhŒ flag is dequeued.”…”�”}”(hj³$h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MPhj¯$ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjw h²hh³hÇh´Nubj )�”}”(hX**If the** ``CAPTURE`` **queue is streaming,** call :c:func:`VIDIOC_STREAMOFF` on the ``CAPTURE`` queue to stop streaming. .. warning:: The ``OUTPUT`` queue must remain streaming. Calling :c:func:`VIDIOC_STREAMOFF` on it would abort the sequence and trigger a seek. ”h]”(hì)�”}”(hŒz**If the** ``CAPTURE`` **queue is streaming,** call :c:func:`VIDIOC_STREAMOFF` on the ``CAPTURE`` queue to stop streaming.”h]”(jÈ )�”}”(hŒ **If the**”h]”hŒIf the”…”�”}”(hj%%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hj!%ubhŒ ”…”�”}”(hj!%h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj7%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj!%ubhŒ ”…”�”}”hj!%sbjÈ )�”}”(hŒ**queue is streaming,**”h]”hŒqueue is streaming,”…”�”}”(hjI%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hj!%ubhŒ call ”…”�”}”(hj!%h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_STREAMOFF`”h]”jœ)�”}”(hj]%h]”hŒVIDIOC_STREAMOFF()”…”�”}”(hj_%h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj[%ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_STREAMOFF”uh1hh³hÇh´MThj!%ubhŒ on the ”…”�”}”(hj!%h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj~%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj!%ubhŒ queue to stop streaming.”…”�”}”(hj!%h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MThj%ubj)�”}”(hŒ�The ``OUTPUT`` queue must remain streaming. Calling :c:func:`VIDIOC_STREAMOFF` on it would abort the sequence and trigger a seek.”h]”hì)�”}”(hŒ�The ``OUTPUT`` queue must remain streaming. Calling :c:func:`VIDIOC_STREAMOFF` on it would abort the sequence and trigger a seek.”h]”(hŒThe ”…”�”}”(hjš%h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj¢%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjš%ubhŒ& queue must remain streaming. Calling ”…”�”}”(hjš%h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_STREAMOFF`”h]”jœ)�”}”(hj¶%h]”hŒVIDIOC_STREAMOFF()”…”�”}”(hj¸%h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj´%ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_STREAMOFF”uh1hh³hÇh´MYhjš%ubhŒ3 on it would abort the sequence and trigger a seek.”…”�”}”(hjš%h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MYhj–%ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjw h²hh³Nh´Nubj )�”}”(hX$**If the** ``CAPTURE`` **queue has buffers allocated,** free the ``CAPTURE`` buffers using :c:func:`VIDIOC_REQBUFS`. * **Required fields:** ``count`` set to 0. ``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``. ``memory`` follows standard semantics. ”h]”(hì)�”}”(hŒt**If the** ``CAPTURE`` **queue has buffers allocated,** free the ``CAPTURE`` buffers using :c:func:`VIDIOC_REQBUFS`.”h]”(jÈ )�”}”(hŒ **If the**”h]”hŒIf the”…”�”}”(hjñ%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hjí%ubhŒ ”…”�”}”(hjí%h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjí%ubhŒ ”…”�”}”hjí%sbjÈ )�”}”(hŒ **queue has buffers allocated,**”h]”hŒqueue has buffers allocated,”…”�”}”(hj&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hjí%ubhŒ free the ”…”�”}”(hjí%h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj'&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjí%ubhŒ buffers using ”…”�”}”(hjí%h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_REQBUFS`”h]”jœ)�”}”(hj;&h]”hŒVIDIOC_REQBUFS()”…”�”}”(hj=&h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj9&ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_REQBUFS”uh1hh³hÇh´M]hjí%ubhŒ.”…”�”}”(hjí%h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M]hjé%ubjÒ )�”}”(hhh]”j )�”}”(hŒ **Required fields:** ``count`` set to 0. ``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``. ``memory`` follows standard semantics. ”h]”(hì)�”}”(hŒ**Required fields:**”h]”jÈ )�”}”(hjk&h]”hŒRequired fields:”…”�”}”(hjm&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hji&ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M`hje&ubj)�”}”(hhh]”(j )�”}”(hŒ``count`` set to 0. ”h]”(j)�”}”(hŒ ``count``”h]”jœ)�”}”(hj‰&h]”hŒcount”…”�”}”(hj‹&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj‡&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Mchjƒ&ubj!)�”}”(hhh]”hì)�”}”(hŒ set to 0.”h]”hŒ set to 0.”…”�”}”(hj¡&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mchjž&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjƒ&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´Mchj€&ubj )�”}”(hŒA``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``. ”h]”(j)�”}”(hŒ``type``”h]”jœ)�”}”(hjÁ&h]”hŒtype”…”�”}”(hjÃ&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj¿&ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Mfhj»&ubj!)�”}”(hhh]”hì)�”}”(hŒ7a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``.”h]”(hŒa ”…”�”}”(hjÙ&h²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_BUF_TYPE_*``”h]”hŒV4L2_BUF_TYPE_*”…”�”}”(hjá&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÙ&ubhŒ enum appropriate for ”…”�”}”(hjÙ&h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjó&h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÙ&ubhŒ.”…”�”}”(hjÙ&h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MfhjÖ&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj»&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´Mfhj€&ubj )�”}”(hŒ'``memory`` follows standard semantics. ”h]”(j)�”}”(hŒ ``memory``”h]”jœ)�”}”(hj'h]”hŒmemory”…”�”}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Mihj'ubj!)�”}”(hhh]”hì)�”}”(hŒfollows standard semantics.”h]”hŒfollows standard semantics.”…”�”}”(hj5'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mihj2'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´Mihj€&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhje&ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjb&ubah}”(h]”h ]”h"]”h$]”h&]”jA jB uh1jÑ h³hÇh´M`hjé%ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjw h²hh³Nh´Nubj )�”}”(hX' Allocate ``CAPTURE`` buffers via :c:func:`VIDIOC_REQBUFS` on the ``CAPTURE`` queue. * **Required fields:** ``count`` requested number of buffers to allocate; greater than zero. ``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``. ``memory`` follows standard semantics. * **Returned fields:** ``count`` actual number of buffers allocated. .. warning:: The actual number of allocated buffers may differ from the ``count`` given. The client must check the updated value of ``count`` after the call returns. .. note:: To allocate more than the minimum number of buffers (for pipeline depth), the client may query the ``V4L2_CID_MIN_BUFFERS_FOR_CAPTURE`` control to get the minimum number of buffers required, and pass the obtained value plus the number of additional buffers needed in the ``count`` field to :c:func:`VIDIOC_REQBUFS`. Alternatively, :c:func:`VIDIOC_CREATE_BUFS` on the ``CAPTURE`` queue can be used to have more control over buffer allocation. For example, by allocating buffers larger than the current ``CAPTURE`` format, future resolution changes can be accommodated. * **Required fields:** ``count`` requested number of buffers to allocate; greater than zero. ``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``. ``memory`` follows standard semantics. ``format`` a format representing the maximum framebuffer resolution to be accommodated by newly allocated buffers. * **Returned fields:** ``count`` adjusted to the number of allocated buffers. .. warning:: The actual number of allocated buffers may differ from the ``count`` given. The client must check the updated value of ``count`` after the call returns. .. note:: To allocate buffers for a format different than parsed from the stream metadata, the client must proceed as follows, before the metadata parsing is initiated: * set width and height of the ``OUTPUT`` format to desired coded resolution to let the decoder configure the ``CAPTURE`` format appropriately, * query the ``CAPTURE`` format using :c:func:`VIDIOC_G_FMT` and save it until this step. The format obtained in the query may be then used with :c:func:`VIDIOC_CREATE_BUFS` in this step to allocate the buffers. ”h]”(hì)�”}”(hŒSAllocate ``CAPTURE`` buffers via :c:func:`VIDIOC_REQBUFS` on the ``CAPTURE`` queue.”h]”(hŒ Allocate ”…”�”}”(hjk'h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjs'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjk'ubhŒ buffers via ”…”�”}”(hjk'h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_REQBUFS`”h]”jœ)�”}”(hj‡'h]”hŒVIDIOC_REQBUFS()”…”�”}”(hj‰'h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj…'ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_REQBUFS”uh1hh³hÇh´Mkhjk'ubhŒ on the ”…”�”}”(hjk'h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj¨'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjk'ubhŒ queue.”…”�”}”(hjk'h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mkhjg'ubjÒ )�”}”(hhh]”(j )�”}”(hŒÒ**Required fields:** ``count`` requested number of buffers to allocate; greater than zero. ``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``. ``memory`` follows standard semantics. ”h]”(hì)�”}”(hŒ**Required fields:**”h]”jÈ )�”}”(hjÉ'h]”hŒRequired fields:”…”�”}”(hjË'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hjÇ'ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MnhjÃ'ubj)�”}”(hhh]”(j )�”}”(hŒF``count`` requested number of buffers to allocate; greater than zero. ”h]”(j)�”}”(hŒ ``count``”h]”jœ)�”}”(hjç'h]”hŒcount”…”�”}”(hjé'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjå'ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Mqhjá'ubj!)�”}”(hhh]”hì)�”}”(hŒ;requested number of buffers to allocate; greater than zero.”h]”hŒ;requested number of buffers to allocate; greater than zero.”…”�”}”(hjÿ'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mqhjü'ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjá'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´MqhjÞ'ubj )�”}”(hŒA``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``. ”h]”(j)�”}”(hŒ``type``”h]”jœ)�”}”(hj(h]”hŒtype”…”�”}”(hj!(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Mthj(ubj!)�”}”(hhh]”hì)�”}”(hŒ7a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``.”h]”(hŒa ”…”�”}”(hj7(h²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_BUF_TYPE_*``”h]”hŒV4L2_BUF_TYPE_*”…”�”}”(hj?(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj7(ubhŒ enum appropriate for ”…”�”}”(hj7(h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjQ(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj7(ubhŒ.”…”�”}”(hj7(h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mthj4(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´MthjÞ'ubj )�”}”(hŒ'``memory`` follows standard semantics. ”h]”(j)�”}”(hŒ ``memory``”h]”jœ)�”}”(hj{(h]”hŒmemory”…”�”}”(hj}(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjy(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Mwhju(ubj!)�”}”(hhh]”hì)�”}”(hŒfollows standard semantics.”h]”hŒfollows standard semantics.”…”�”}”(hj“(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mwhj�(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hju(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´MwhjÞ'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÃ'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÀ'ubj )�”}”(hŒH**Returned fields:** ``count`` actual number of buffers allocated. ”h]”(hì)�”}”(hŒ**Returned fields:**”h]”jÈ )�”}”(hj¿(h]”hŒReturned fields:”…”�”}”(hjÁ(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hj½(ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Myhj¹(ubj)�”}”(hhh]”j )�”}”(hŒ.``count`` actual number of buffers allocated. ”h]”(j)�”}”(hŒ ``count``”h]”jœ)�”}”(hjÝ(h]”hŒcount”…”�”}”(hjß(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÛ(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´M|hj×(ubj!)�”}”(hhh]”hì)�”}”(hŒ#actual number of buffers allocated.”h]”hŒ#actual number of buffers allocated.”…”�”}”(hjõ(h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M|hjò(ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj×(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´M|hjÔ(ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¹(ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjÀ'ubeh}”(h]”h ]”h"]”h$]”h&]”jA jB uh1jÑ h³hÇh´Mnhjg'ubj)�”}”(hŒ˜The actual number of allocated buffers may differ from the ``count`` given. The client must check the updated value of ``count`` after the call returns.”h]”hì)�”}”(hŒ˜The actual number of allocated buffers may differ from the ``count`` given. The client must check the updated value of ``count`` after the call returns.”h]”(hŒ;The actual number of allocated buffers may differ from the ”…”�”}”(hj%)h²hh³Nh´Nubjœ)�”}”(hŒ ``count``”h]”hŒcount”…”�”}”(hj-)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj%)ubhŒ3 given. The client must check the updated value of ”…”�”}”(hj%)h²hh³Nh´Nubjœ)�”}”(hŒ ``count``”h]”hŒcount”…”�”}”(hj?)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj%)ubhŒ after the call returns.”…”�”}”(hj%)h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M€hj!)ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjg'ubjÁ)�”}”(hX;To allocate more than the minimum number of buffers (for pipeline depth), the client may query the ``V4L2_CID_MIN_BUFFERS_FOR_CAPTURE`` control to get the minimum number of buffers required, and pass the obtained value plus the number of additional buffers needed in the ``count`` field to :c:func:`VIDIOC_REQBUFS`.”h]”hì)�”}”(hX;To allocate more than the minimum number of buffers (for pipeline depth), the client may query the ``V4L2_CID_MIN_BUFFERS_FOR_CAPTURE`` control to get the minimum number of buffers required, and pass the obtained value plus the number of additional buffers needed in the ``count`` field to :c:func:`VIDIOC_REQBUFS`.”h]”(hŒcTo allocate more than the minimum number of buffers (for pipeline depth), the client may query the ”…”�”}”(hja)h²hh³Nh´Nubjœ)�”}”(hŒ$``V4L2_CID_MIN_BUFFERS_FOR_CAPTURE``”h]”hŒ V4L2_CID_MIN_BUFFERS_FOR_CAPTURE”…”�”}”(hji)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hja)ubhŒˆ control to get the minimum number of buffers required, and pass the obtained value plus the number of additional buffers needed in the ”…”�”}”(hja)h²hh³Nh´Nubjœ)�”}”(hŒ ``count``”h]”hŒcount”…”�”}”(hj{)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hja)ubhŒ field to ”…”�”}”(hja)h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_REQBUFS`”h]”jœ)�”}”(hj�)h]”hŒVIDIOC_REQBUFS()”…”�”}”(hj‘)h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj�)ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_REQBUFS”uh1hh³hÇh´M†hja)ubhŒ.”…”�”}”(hja)h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M†hj])ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjg'ubhì)�”}”(hŒûAlternatively, :c:func:`VIDIOC_CREATE_BUFS` on the ``CAPTURE`` queue can be used to have more control over buffer allocation. For example, by allocating buffers larger than the current ``CAPTURE`` format, future resolution changes can be accommodated.”h]”(hŒAlternatively, ”…”�”}”(hj¼)h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_CREATE_BUFS`”h]”jœ)�”}”(hjÆ)h]”hŒVIDIOC_CREATE_BUFS()”…”�”}”(hjÈ)h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjÄ)ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_CREATE_BUFS”uh1hh³hÇh´MŒhj¼)ubhŒ on the ”…”�”}”(hj¼)h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjç)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj¼)ubhŒ{ queue can be used to have more control over buffer allocation. For example, by allocating buffers larger than the current ”…”�”}”(hj¼)h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjù)h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj¼)ubhŒ7 format, future resolution changes can be accommodated.”…”�”}”(hj¼)h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MŒhjg'ubjÒ )�”}”(hhh]”(j )�”}”(hXN**Required fields:** ``count`` requested number of buffers to allocate; greater than zero. ``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``. ``memory`` follows standard semantics. ``format`` a format representing the maximum framebuffer resolution to be accommodated by newly allocated buffers. ”h]”(hì)�”}”(hŒ**Required fields:**”h]”jÈ )�”}”(hj*h]”hŒRequired fields:”…”�”}”(hj*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hj*ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M‘hj*ubj)�”}”(hhh]”(j )�”}”(hŒF``count`` requested number of buffers to allocate; greater than zero. ”h]”(j)�”}”(hŒ ``count``”h]”jœ)�”}”(hj8*h]”hŒcount”…”�”}”(hj:*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj6*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´M”hj2*ubj!)�”}”(hhh]”hì)�”}”(hŒ;requested number of buffers to allocate; greater than zero.”h]”hŒ;requested number of buffers to allocate; greater than zero.”…”�”}”(hjP*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M”hjM*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj2*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´M”hj/*ubj )�”}”(hŒA``type`` a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``. ”h]”(j)�”}”(hŒ``type``”h]”jœ)�”}”(hjp*h]”hŒtype”…”�”}”(hjr*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjn*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´M—hjj*ubj!)�”}”(hhh]”hì)�”}”(hŒ7a ``V4L2_BUF_TYPE_*`` enum appropriate for ``CAPTURE``.”h]”(hŒa ”…”�”}”(hjˆ*h²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_BUF_TYPE_*``”h]”hŒV4L2_BUF_TYPE_*”…”�”}”(hj�*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjˆ*ubhŒ enum appropriate for ”…”�”}”(hjˆ*h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj¢*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjˆ*ubhŒ.”…”�”}”(hjˆ*h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M—hj…*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjj*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´M—hj/*ubj )�”}”(hŒ'``memory`` follows standard semantics. ”h]”(j)�”}”(hŒ ``memory``”h]”jœ)�”}”(hjÌ*h]”hŒmemory”…”�”}”(hjÎ*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÊ*ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´MšhjÆ*ubj!)�”}”(hhh]”hì)�”}”(hŒfollows standard semantics.”h]”hŒfollows standard semantics.”…”�”}”(hjä*h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mšhjá*ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjÆ*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´Mšhj/*ubj )�”}”(hŒs``format`` a format representing the maximum framebuffer resolution to be accommodated by newly allocated buffers. ”h]”(j)�”}”(hŒ ``format``”h]”jœ)�”}”(hj+h]”hŒformat”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Mžhjþ*ubj!)�”}”(hhh]”hì)�”}”(hŒga format representing the maximum framebuffer resolution to be accommodated by newly allocated buffers.”h]”hŒga format representing the maximum framebuffer resolution to be accommodated by newly allocated buffers.”…”�”}”(hj+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M�hj+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hjþ*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´Mžhj/*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj*ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj*ubj )�”}”(hŒQ**Returned fields:** ``count`` adjusted to the number of allocated buffers. ”h]”(hì)�”}”(hŒ**Returned fields:**”h]”jÈ )�”}”(hjH+h]”hŒReturned fields:”…”�”}”(hjJ+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÇ hjF+ubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M hjB+ubj)�”}”(hhh]”j )�”}”(hŒ7``count`` adjusted to the number of allocated buffers. ”h]”(j)�”}”(hŒ ``count``”h]”jœ)�”}”(hjf+h]”hŒcount”…”�”}”(hjh+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjd+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´M£hj`+ubj!)�”}”(hhh]”hì)�”}”(hŒ,adjusted to the number of allocated buffers.”h]”hŒ,adjusted to the number of allocated buffers.”…”�”}”(hj~+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M£hj{+ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hj`+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j h³hÇh´M£hj]+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjB+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj*ubeh}”(h]”h ]”h"]”h$]”h&]”jA jB uh1jÑ h³hÇh´M‘hjg'ubj)�”}”(hŒ˜The actual number of allocated buffers may differ from the ``count`` given. The client must check the updated value of ``count`` after the call returns.”h]”hì)�”}”(hŒ˜The actual number of allocated buffers may differ from the ``count`` given. The client must check the updated value of ``count`` after the call returns.”h]”(hŒ;The actual number of allocated buffers may differ from the ”…”�”}”(hj®+h²hh³Nh´Nubjœ)�”}”(hŒ ``count``”h]”hŒcount”…”�”}”(hj¶+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj®+ubhŒ3 given. The client must check the updated value of ”…”�”}”(hj®+h²hh³Nh´Nubjœ)�”}”(hŒ ``count``”h]”hŒcount”…”�”}”(hjÈ+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj®+ubhŒ after the call returns.”…”�”}”(hj®+h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M§hjª+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjg'ubjÁ)�”}”(hXTo allocate buffers for a format different than parsed from the stream metadata, the client must proceed as follows, before the metadata parsing is initiated: * set width and height of the ``OUTPUT`` format to desired coded resolution to let the decoder configure the ``CAPTURE`` format appropriately, * query the ``CAPTURE`` format using :c:func:`VIDIOC_G_FMT` and save it until this step. The format obtained in the query may be then used with :c:func:`VIDIOC_CREATE_BUFS` in this step to allocate the buffers.”h]”(hì)�”}”(hŒžTo allocate buffers for a format different than parsed from the stream metadata, the client must proceed as follows, before the metadata parsing is initiated:”h]”hŒžTo allocate buffers for a format different than parsed from the stream metadata, the client must proceed as follows, before the metadata parsing is initiated:”…”�”}”(hjê+h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M­hjæ+ubjÒ )�”}”(hhh]”(j )�”}”(hŒ�set width and height of the ``OUTPUT`` format to desired coded resolution to let the decoder configure the ``CAPTURE`` format appropriately, ”h]”hì)�”}”(hŒŒset width and height of the ``OUTPUT`` format to desired coded resolution to let the decoder configure the ``CAPTURE`` format appropriately,”h]”(hŒset width and height of the ”…”�”}”(hjÿ+h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÿ+ubhŒE format to desired coded resolution to let the decoder configure the ”…”�”}”(hjÿ+h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÿ+ubhŒ format appropriately,”…”�”}”(hjÿ+h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M±hjû+ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjø+ubj )�”}”(hŒWquery the ``CAPTURE`` format using :c:func:`VIDIOC_G_FMT` and save it until this step. ”h]”hì)�”}”(hŒVquery the ``CAPTURE`` format using :c:func:`VIDIOC_G_FMT` and save it until this step.”h]”(hŒ query the ”…”�”}”(hj;,h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjC,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj;,ubhŒ format using ”…”�”}”(hj;,h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_G_FMT`”h]”jœ)�”}”(hjW,h]”hŒVIDIOC_G_FMT()”…”�”}”(hjY,h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjU,ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒ VIDIOC_G_FMT”uh1hh³hÇh´M´hj;,ubhŒ and save it until this step.”…”�”}”(hj;,h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M´hj7,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjø+ubeh}”(h]”h ]”h"]”h$]”h&]”jA jB uh1jÑ h³hÇh´M±hjæ+ubhì)�”}”(hŒyThe format obtained in the query may be then used with :c:func:`VIDIOC_CREATE_BUFS` in this step to allocate the buffers.”h]”(hŒ7The format obtained in the query may be then used with ”…”�”}”(hjŠ,h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_CREATE_BUFS`”h]”jœ)�”}”(hj”,h]”hŒVIDIOC_CREATE_BUFS()”…”�”}”(hj–,h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj’,ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_CREATE_BUFS”uh1hh³hÇh´M·hjŠ,ubhŒ& in this step to allocate the buffers.”…”�”}”(hjŠ,h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M·hjæ+ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjg'ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhjw h²hh³Nh´Nubj )�”}”(hŒRCall :c:func:`VIDIOC_STREAMON` on the ``CAPTURE`` queue to start decoding frames. ”h]”hì)�”}”(hŒQCall :c:func:`VIDIOC_STREAMON` on the ``CAPTURE`` queue to start decoding frames.”h]”(hŒCall ”…”�”}”(hjË,h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_STREAMON`”h]”jœ)�”}”(hjÕ,h]”hŒVIDIOC_STREAMON()”…”�”}”(hj×,h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjÓ,ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_STREAMON”uh1hh³hÇh´MºhjË,ubhŒ on the ”…”�”}”(hjË,h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjö,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjË,ubhŒ queue to start decoding frames.”…”�”}”(hjË,h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MºhjÇ,ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjw h²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jÜjÝjÞhjßjàŒstart”Kuh1jhjgh²hh³hÇh´Mubeh}”(h]”Œ capture-setup”ah ]”h"]”Œ capture setup”ah$]”h&]”uh1hÖhhØh²hh³hÇh´M”ubh×)�”}”(hhh]”(hÜ)�”}”(hŒDecoding”h]”hŒDecoding”…”�”}”(hj&-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhj#-h²hh³hÇh´M¾ubhì)�”}”(hŒìThis state is reached after the `Capture Setup` sequence finishes successfully. In this state, the client queues and dequeues buffers to both queues via :c:func:`VIDIOC_QBUF` and :c:func:`VIDIOC_DQBUF`, following the standard semantics.”h]”(hŒ This state is reached after the ”…”�”}”(hj4-h²hh³Nh´Nubjá)�”}”(hŒ`Capture Setup`”h]”hŒ Capture Setup”…”�”}”(hj<-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jàhj4-ubhŒj sequence finishes successfully. In this state, the client queues and dequeues buffers to both queues via ”…”�”}”(hj4-h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_QBUF`”h]”jœ)�”}”(hjP-h]”hŒ VIDIOC_QBUF()”…”�”}”(hjR-h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjN-ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒ VIDIOC_QBUF”uh1hh³hÇh´MÀhj4-ubhŒ and ”…”�”}”(hj4-h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_DQBUF`”h]”jœ)�”}”(hjs-h]”hŒVIDIOC_DQBUF()”…”�”}”(hju-h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjq-ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒ VIDIOC_DQBUF”uh1hh³hÇh´MÀhj4-ubhŒ#, following the standard semantics.”…”�”}”(hj4-h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MÀhj#-h²hubhì)�”}”(hŒ½The content of the source ``OUTPUT`` buffers depends on the active coded pixel format and may be affected by codec-specific extended controls, as stated in the documentation of each format.”h]”(hŒThe content of the source ”…”�”}”(hjš-h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj¢-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjš-ubhŒ™ buffers depends on the active coded pixel format and may be affected by codec-specific extended controls, as stated in the documentation of each format.”…”�”}”(hjš-h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MÅhj#-h²hubhì)�”}”(hXUBoth queues operate independently, following the standard behavior of V4L2 buffer queues and memory-to-memory devices. In addition, the order of decoded frames dequeued from the ``CAPTURE`` queue may differ from the order of queuing coded frames to the ``OUTPUT`` queue, due to properties of the selected coded format, e.g. frame reordering.”h]”(hŒ²Both queues operate independently, following the standard behavior of V4L2 buffer queues and memory-to-memory devices. In addition, the order of decoded frames dequeued from the ”…”�”}”(hjº-h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjÂ-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjº-ubhŒ@ queue may differ from the order of queuing coded frames to the ”…”�”}”(hjº-h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjÔ-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjº-ubhŒN queue, due to properties of the selected coded format, e.g. frame reordering.”…”�”}”(hjº-h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MÉhj#-h²hubhì)�”}”(hŒ­The client must not assume any direct relationship between ``CAPTURE`` and ``OUTPUT`` buffers and any specific timing of buffers becoming available to dequeue. Specifically:”h]”(hŒ;The client must not assume any direct relationship between ”…”�”}”(hjì-h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjô-h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjì-ubhŒ and ”…”�”}”(hjì-h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjì-ubhŒX buffers and any specific timing of buffers becoming available to dequeue. Specifically:”…”�”}”(hjì-h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MÏhj#-h²hubjÒ )�”}”(hhh]”(j )�”}”(hŒºa buffer queued to ``OUTPUT`` may result in no buffers being produced on ``CAPTURE`` (e.g. if it does not contain encoded data, or if only metadata syntax structures are present in it), ”h]”hì)�”}”(hŒ¹a buffer queued to ``OUTPUT`` may result in no buffers being produced on ``CAPTURE`` (e.g. if it does not contain encoded data, or if only metadata syntax structures are present in it),”h]”(hŒa buffer queued to ”…”�”}”(hj%.h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj-.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj%.ubhŒ, may result in no buffers being produced on ”…”�”}”(hj%.h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj?.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj%.ubhŒe (e.g. if it does not contain encoded data, or if only metadata syntax structures are present in it),”…”�”}”(hj%.h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MÓhj!.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj.h²hh³hÇh´Nubj )�”}”(hXa buffer queued to ``OUTPUT`` may result in more than one buffer produced on ``CAPTURE`` (if the encoded data contained more than one frame, or if returning a decoded frame allowed the decoder to return a frame that preceded it in decode, but succeeded it in the display order), ”h]”hì)�”}”(hXa buffer queued to ``OUTPUT`` may result in more than one buffer produced on ``CAPTURE`` (if the encoded data contained more than one frame, or if returning a decoded frame allowed the decoder to return a frame that preceded it in decode, but succeeded it in the display order),”h]”(hŒa buffer queued to ”…”�”}”(hja.h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hji.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hja.ubhŒ0 may result in more than one buffer produced on ”…”�”}”(hja.h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj{.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hja.ubhŒ¾ (if the encoded data contained more than one frame, or if returning a decoded frame allowed the decoder to return a frame that preceded it in decode, but succeeded it in the display order),”…”�”}”(hja.h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M×hj].ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj.h²hh³hÇh´Nubj )�”}”(hŒãa buffer queued to ``OUTPUT`` may result in a buffer being produced on ``CAPTURE`` later into decode process, and/or after processing further ``OUTPUT`` buffers, or be returned out of order, e.g. if display reordering is used, ”h]”hì)�”}”(hŒâa buffer queued to ``OUTPUT`` may result in a buffer being produced on ``CAPTURE`` later into decode process, and/or after processing further ``OUTPUT`` buffers, or be returned out of order, e.g. if display reordering is used,”h]”(hŒa buffer queued to ”…”�”}”(hj�.h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj¥.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj�.ubhŒ* may result in a buffer being produced on ”…”�”}”(hj�.h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj·.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj�.ubhŒ< later into decode process, and/or after processing further ”…”�”}”(hj�.h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjÉ.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj�.ubhŒJ buffers, or be returned out of order, e.g. if display reordering is used,”…”�”}”(hj�.h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MÜhj™.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj.h²hh³hÇh´Nubj )�”}”(hXbuffers may become available on the ``CAPTURE`` queue without additional buffers queued to ``OUTPUT`` (e.g. during drain or ``EOS``), because of the ``OUTPUT`` buffers queued in the past whose decoding results are only available at later time, due to specifics of the decoding process. ”h]”hì)�”}”(hXbuffers may become available on the ``CAPTURE`` queue without additional buffers queued to ``OUTPUT`` (e.g. during drain or ``EOS``), because of the ``OUTPUT`` buffers queued in the past whose decoding results are only available at later time, due to specifics of the decoding process.”h]”(hŒ$buffers may become available on the ”…”�”}”(hjë.h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjó.h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjë.ubhŒ, queue without additional buffers queued to ”…”�”}”(hjë.h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjë.ubhŒ (e.g. during drain or ”…”�”}”(hjë.h²hh³Nh´Nubjœ)�”}”(hŒ``EOS``”h]”hŒEOS”…”�”}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjë.ubhŒ), because of the ”…”�”}”(hjë.h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj)/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjë.ubhŒ~ buffers queued in the past whose decoding results are only available at later time, due to specifics of the decoding process.”…”�”}”(hjë.h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Máhjç.ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj.h²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jA jB uh1jÑ h³hÇh´MÓhj#-h²hubjÁ)�”}”(hXÕTo allow matching decoded ``CAPTURE`` buffers with ``OUTPUT`` buffers they originated from, the client can set the ``timestamp`` field of the :c:type:`v4l2_buffer` struct when queuing an ``OUTPUT`` buffer. The ``CAPTURE`` buffer(s), which resulted from decoding that ``OUTPUT`` buffer will have their ``timestamp`` field set to the same value when dequeued. In addition to the straightforward case of one ``OUTPUT`` buffer producing one ``CAPTURE`` buffer, the following cases are defined: * one ``OUTPUT`` buffer generates multiple ``CAPTURE`` buffers: the same ``OUTPUT`` timestamp will be copied to multiple ``CAPTURE`` buffers. * multiple ``OUTPUT`` buffers generate one ``CAPTURE`` buffer: timestamp of the ``OUTPUT`` buffer queued first will be copied. * the decoding order differs from the display order (i.e. the ``CAPTURE`` buffers are out-of-order compared to the ``OUTPUT`` buffers): ``CAPTURE`` timestamps will not retain the order of ``OUTPUT`` timestamps.”h]”(hì)�”}”(hXeTo allow matching decoded ``CAPTURE`` buffers with ``OUTPUT`` buffers they originated from, the client can set the ``timestamp`` field of the :c:type:`v4l2_buffer` struct when queuing an ``OUTPUT`` buffer. The ``CAPTURE`` buffer(s), which resulted from decoding that ``OUTPUT`` buffer will have their ``timestamp`` field set to the same value when dequeued.”h]”(hŒTo allow matching decoded ”…”�”}”(hjQ/h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjY/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjQ/ubhŒ buffers with ”…”�”}”(hjQ/h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjk/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjQ/ubhŒ6 buffers they originated from, the client can set the ”…”�”}”(hjQ/h²hh³Nh´Nubjœ)�”}”(hŒ ``timestamp``”h]”hŒ timestamp”…”�”}”(hj}/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjQ/ubhŒ field of the ”…”�”}”(hjQ/h²hh³Nh´Nubh)�”}”(hŒ:c:type:`v4l2_buffer`”h]”jœ)�”}”(hj‘/h]”hŒ v4l2_buffer”…”�”}”(hj“/h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-type”eh"]”h$]”h&]”uh1j›hj�/ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒ v4l2_buffer”uh1hh³hÇh´MèhjQ/ubhŒ struct when queuing an ”…”�”}”(hjQ/h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj²/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjQ/ubhŒ buffer. The ”…”�”}”(hjQ/h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjÄ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjQ/ubhŒ. buffer(s), which resulted from decoding that ”…”�”}”(hjQ/h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjÖ/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjQ/ubhŒ buffer will have their ”…”�”}”(hjQ/h²hh³Nh´Nubjœ)�”}”(hŒ ``timestamp``”h]”hŒ timestamp”…”�”}”(hjè/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjQ/ubhŒ+ field set to the same value when dequeued.”…”�”}”(hjQ/h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MèhjM/ubhì)�”}”(hŒƒIn addition to the straightforward case of one ``OUTPUT`` buffer producing one ``CAPTURE`` buffer, the following cases are defined:”h]”(hŒ/In addition to the straightforward case of one ”…”�”}”(hj0h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj0ubhŒ buffer producing one ”…”�”}”(hj0h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj0ubhŒ) buffer, the following cases are defined:”…”�”}”(hj0h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MîhjM/ubjÒ )�”}”(hhh]”(j )�”}”(hŒŒone ``OUTPUT`` buffer generates multiple ``CAPTURE`` buffers: the same ``OUTPUT`` timestamp will be copied to multiple ``CAPTURE`` buffers. ”h]”hì)�”}”(hŒ‹one ``OUTPUT`` buffer generates multiple ``CAPTURE`` buffers: the same ``OUTPUT`` timestamp will be copied to multiple ``CAPTURE`` buffers.”h]”(hŒone ”…”�”}”(hj90h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjA0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj90ubhŒ buffer generates multiple ”…”�”}”(hj90h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjS0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj90ubhŒ buffers: the same ”…”�”}”(hj90h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hje0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj90ubhŒ& timestamp will be copied to multiple ”…”�”}”(hj90h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjw0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj90ubhŒ buffers.”…”�”}”(hj90h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mñhj50ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj20ubj )�”}”(hŒ}multiple ``OUTPUT`` buffers generate one ``CAPTURE`` buffer: timestamp of the ``OUTPUT`` buffer queued first will be copied. ”h]”hì)�”}”(hŒ|multiple ``OUTPUT`` buffers generate one ``CAPTURE`` buffer: timestamp of the ``OUTPUT`` buffer queued first will be copied.”h]”(hŒ multiple ”…”�”}”(hj™0h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj¡0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj™0ubhŒ buffers generate one ”…”�”}”(hj™0h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj³0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj™0ubhŒ buffer: timestamp of the ”…”�”}”(hj™0h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjÅ0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj™0ubhŒ$ buffer queued first will be copied.”…”�”}”(hj™0h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Môhj•0ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj20ubj )�”}”(hŒÐthe decoding order differs from the display order (i.e. the ``CAPTURE`` buffers are out-of-order compared to the ``OUTPUT`` buffers): ``CAPTURE`` timestamps will not retain the order of ``OUTPUT`` timestamps.”h]”hì)�”}”(hŒÐthe decoding order differs from the display order (i.e. the ``CAPTURE`` buffers are out-of-order compared to the ``OUTPUT`` buffers): ``CAPTURE`` timestamps will not retain the order of ``OUTPUT`` timestamps.”h]”(hŒ queues are streaming. For compatibility reasons, the call to ”…”�”}”(hjÍ=h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_DECODER_CMD`”h]”jœ)�”}”(hjû=h]”hŒVIDIOC_DECODER_CMD()”…”�”}”(hjý=h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjù=ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_DECODER_CMD”uh1hh³hÇh´MhjÍ=ubhŒi will not fail even if any of the queues is not streaming, but at the same time it will not initiate the ”…”�”}”(hjÍ=h²hh³Nh´Nubjá)�”}”(hŒ`Drain`”h]”hŒDrain”…”�”}”(hj>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jàhjÍ=ubhŒC sequence and so the steps described below would not be applicable.”…”�”}”(hjÍ=h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MhjÉ=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj§<ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¤<h²hh³Nh´Nubj )�”}”(hX§Any ``OUTPUT`` buffers queued by the client before the :c:func:`VIDIOC_DECODER_CMD` was issued will be processed and decoded as normal. The client must continue to handle both queues independently, similarly to normal decode operation. This includes: * handling any operations triggered as a result of processing those buffers, such as the `Dynamic Resolution Change` sequence, before continuing with the drain sequence, * queuing and dequeuing ``CAPTURE`` buffers, until a buffer marked with the ``V4L2_BUF_FLAG_LAST`` flag is dequeued, .. warning:: The last buffer may be empty (with :c:type:`v4l2_buffer` ``bytesused`` = 0) and in that case it must be ignored by the client, as it does not contain a decoded frame. .. note:: Any attempt to dequeue more ``CAPTURE`` buffers beyond the buffer marked with ``V4L2_BUF_FLAG_LAST`` will result in a -EPIPE error from :c:func:`VIDIOC_DQBUF`. * dequeuing processed ``OUTPUT`` buffers, until all the buffers queued before the ``V4L2_DEC_CMD_STOP`` command are dequeued, * dequeuing the ``V4L2_EVENT_EOS`` event, if the client subscribed to it. .. note:: For backwards compatibility, the decoder will signal a ``V4L2_EVENT_EOS`` event when the last frame has been decoded and all frames are ready to be dequeued. It is a deprecated behavior and the client must not rely on it. The ``V4L2_BUF_FLAG_LAST`` buffer flag should be used instead. ”h]”(hì)�”}”(hŒúAny ``OUTPUT`` buffers queued by the client before the :c:func:`VIDIOC_DECODER_CMD` was issued will be processed and decoded as normal. The client must continue to handle both queues independently, similarly to normal decode operation. This includes:”h]”(hŒAny ”…”�”}”(hjD>h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjL>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjD>ubhŒ) buffers queued by the client before the ”…”�”}”(hjD>h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_DECODER_CMD`”h]”jœ)�”}”(hj`>h]”hŒVIDIOC_DECODER_CMD()”…”�”}”(hjb>h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj^>ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_DECODER_CMD”uh1hh³hÇh´MhjD>ubhŒ§ was issued will be processed and decoded as normal. The client must continue to handle both queues independently, similarly to normal decode operation. This includes:”…”�”}”(hjD>h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mhj@>ubjÒ )�”}”(hhh]”(j )�”}”(hŒ¨handling any operations triggered as a result of processing those buffers, such as the `Dynamic Resolution Change` sequence, before continuing with the drain sequence, ”h]”hì)�”}”(hŒ§handling any operations triggered as a result of processing those buffers, such as the `Dynamic Resolution Change` sequence, before continuing with the drain sequence,”h]”(hŒWhandling any operations triggered as a result of processing those buffers, such as the ”…”�”}”(hjŽ>h²hh³Nh´Nubjá)�”}”(hŒ`Dynamic Resolution Change`”h]”hŒDynamic Resolution Change”…”�”}”(hj–>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jàhjŽ>ubhŒ5 sequence, before continuing with the drain sequence,”…”�”}”(hjŽ>h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M hjŠ>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‡>ubj )�”}”(hXçqueuing and dequeuing ``CAPTURE`` buffers, until a buffer marked with the ``V4L2_BUF_FLAG_LAST`` flag is dequeued, .. warning:: The last buffer may be empty (with :c:type:`v4l2_buffer` ``bytesused`` = 0) and in that case it must be ignored by the client, as it does not contain a decoded frame. .. note:: Any attempt to dequeue more ``CAPTURE`` buffers beyond the buffer marked with ``V4L2_BUF_FLAG_LAST`` will result in a -EPIPE error from :c:func:`VIDIOC_DQBUF`. ”h]”(hì)�”}”(hŒrqueuing and dequeuing ``CAPTURE`` buffers, until a buffer marked with the ``V4L2_BUF_FLAG_LAST`` flag is dequeued,”h]”(hŒqueuing and dequeuing ”…”�”}”(hj¸>h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjÀ>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj¸>ubhŒ) buffers, until a buffer marked with the ”…”�”}”(hj¸>h²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_BUF_FLAG_LAST``”h]”hŒV4L2_BUF_FLAG_LAST”…”�”}”(hjÒ>h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj¸>ubhŒ flag is dequeued,”…”�”}”(hj¸>h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mhj´>ubj)�”}”(hŒ¦The last buffer may be empty (with :c:type:`v4l2_buffer` ``bytesused`` = 0) and in that case it must be ignored by the client, as it does not contain a decoded frame.”h]”hì)�”}”(hŒ¦The last buffer may be empty (with :c:type:`v4l2_buffer` ``bytesused`` = 0) and in that case it must be ignored by the client, as it does not contain a decoded frame.”h]”(hŒ#The last buffer may be empty (with ”…”�”}”(hjî>h²hh³Nh´Nubh)�”}”(hŒ:c:type:`v4l2_buffer`”h]”jœ)�”}”(hjø>h]”hŒ v4l2_buffer”…”�”}”(hjú>h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-type”eh"]”h$]”h&]”uh1j›hjö>ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒ v4l2_buffer”uh1hh³hÇh´Mhjî>ubhŒ ”…”�”}”(hjî>h²hh³Nh´Nubjœ)�”}”(hŒ ``bytesused``”h]”hŒ bytesused”…”�”}”(hj?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjî>ubhŒ` = 0) and in that case it must be ignored by the client, as it does not contain a decoded frame.”…”�”}”(hjî>h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mhjê>ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj´>ubjÁ)�”}”(hŒŸAny attempt to dequeue more ``CAPTURE`` buffers beyond the buffer marked with ``V4L2_BUF_FLAG_LAST`` will result in a -EPIPE error from :c:func:`VIDIOC_DQBUF`.”h]”hì)�”}”(hŒŸAny attempt to dequeue more ``CAPTURE`` buffers beyond the buffer marked with ``V4L2_BUF_FLAG_LAST`` will result in a -EPIPE error from :c:func:`VIDIOC_DQBUF`.”h]”(hŒAny attempt to dequeue more ”…”�”}”(hj;?h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjC?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj;?ubhŒ' buffers beyond the buffer marked with ”…”�”}”(hj;?h²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_BUF_FLAG_LAST``”h]”hŒV4L2_BUF_FLAG_LAST”…”�”}”(hjU?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj;?ubhŒ$ will result in a -EPIPE error from ”…”�”}”(hj;?h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_DQBUF`”h]”jœ)�”}”(hji?h]”hŒVIDIOC_DQBUF()”…”�”}”(hjk?h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjg?ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒ VIDIOC_DQBUF”uh1hh³hÇh´Mhj;?ubhŒ.”…”�”}”(hj;?h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mhj7?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj´>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj‡>ubj )�”}”(hŒ|dequeuing processed ``OUTPUT`` buffers, until all the buffers queued before the ``V4L2_DEC_CMD_STOP`` command are dequeued, ”h]”hì)�”}”(hŒ{dequeuing processed ``OUTPUT`` buffers, until all the buffers queued before the ``V4L2_DEC_CMD_STOP`` command are dequeued,”h]”(hŒdequeuing processed ”…”�”}”(hj ?h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj¨?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj ?ubhŒ2 buffers, until all the buffers queued before the ”…”�”}”(hj ?h²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_DEC_CMD_STOP``”h]”hŒV4L2_DEC_CMD_STOP”…”�”}”(hjº?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj ?ubhŒ command are dequeued,”…”�”}”(hj ?h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´Mhjœ?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‡>ubj )�”}”(hŒHdequeuing the ``V4L2_EVENT_EOS`` event, if the client subscribed to it. ”h]”hì)�”}”(hŒGdequeuing the ``V4L2_EVENT_EOS`` event, if the client subscribed to it.”h]”(hŒdequeuing the ”…”�”}”(hjÜ?h²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_EVENT_EOS``”h]”hŒV4L2_EVENT_EOS”…”�”}”(hjä?h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÜ?ubhŒ' event, if the client subscribed to it.”…”�”}”(hjÜ?h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M!hjØ?ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj‡>ubeh}”(h]”h ]”h"]”h$]”h&]”jA jB uh1jÑ h³hÇh´M hj@>ubjÁ)�”}”(hXFor backwards compatibility, the decoder will signal a ``V4L2_EVENT_EOS`` event when the last frame has been decoded and all frames are ready to be dequeued. It is a deprecated behavior and the client must not rely on it. The ``V4L2_BUF_FLAG_LAST`` buffer flag should be used instead.”h]”hì)�”}”(hXFor backwards compatibility, the decoder will signal a ``V4L2_EVENT_EOS`` event when the last frame has been decoded and all frames are ready to be dequeued. It is a deprecated behavior and the client must not rely on it. The ``V4L2_BUF_FLAG_LAST`` buffer flag should be used instead.”h]”(hŒ7For backwards compatibility, the decoder will signal a ”…”�”}”(hj @h²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_EVENT_EOS``”h]”hŒV4L2_EVENT_EOS”…”�”}”(hj@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj @ubhŒ™ event when the last frame has been decoded and all frames are ready to be dequeued. It is a deprecated behavior and the client must not rely on it. The ”…”�”}”(hj @h²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_BUF_FLAG_LAST``”h]”hŒV4L2_BUF_FLAG_LAST”…”�”}”(hj&@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj @ubhŒ$ buffer flag should be used instead.”…”�”}”(hj @h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M%hj@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÀhj@>ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¤<h²hh³Nh´Nubj )�”}”(hX]Once all the ``OUTPUT`` buffers queued before the ``V4L2_DEC_CMD_STOP`` call are dequeued and the last ``CAPTURE`` buffer is dequeued, the decoder is stopped and it will accept, but not process, any newly queued ``OUTPUT`` buffers until the client issues any of the following operations: * ``V4L2_DEC_CMD_START`` - the decoder will not be reset and will resume operation normally, with all the state from before the drain, * a pair of :c:func:`VIDIOC_STREAMOFF` and :c:func:`VIDIOC_STREAMON` on the ``CAPTURE`` queue - the decoder will resume the operation normally, however any ``CAPTURE`` buffers still in the queue will be returned to the client, * a pair of :c:func:`VIDIOC_STREAMOFF` and :c:func:`VIDIOC_STREAMON` on the ``OUTPUT`` queue - any pending source buffers will be returned to the client and the `Seek` sequence will be triggered. ”h]”(hì)�”}”(hXOnce all the ``OUTPUT`` buffers queued before the ``V4L2_DEC_CMD_STOP`` call are dequeued and the last ``CAPTURE`` buffer is dequeued, the decoder is stopped and it will accept, but not process, any newly queued ``OUTPUT`` buffers until the client issues any of the following operations:”h]”(hŒ Once all the ”…”�”}”(hjN@h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjV@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjN@ubhŒ buffers queued before the ”…”�”}”(hjN@h²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_DEC_CMD_STOP``”h]”hŒV4L2_DEC_CMD_STOP”…”�”}”(hjh@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjN@ubhŒ call are dequeued and the last ”…”�”}”(hjN@h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjz@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjN@ubhŒb buffer is dequeued, the decoder is stopped and it will accept, but not process, any newly queued ”…”�”}”(hjN@h²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjŒ@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjN@ubhŒA buffers until the client issues any of the following operations:”…”�”}”(hjN@h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M*hjJ@ubjÒ )�”}”(hhh]”(j )�”}”(hŒ…``V4L2_DEC_CMD_START`` - the decoder will not be reset and will resume operation normally, with all the state from before the drain, ”h]”hì)�”}”(hŒ„``V4L2_DEC_CMD_START`` - the decoder will not be reset and will resume operation normally, with all the state from before the drain,”h]”(jœ)�”}”(hŒ``V4L2_DEC_CMD_START``”h]”hŒV4L2_DEC_CMD_START”…”�”}”(hj¯@h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj«@ubhŒn - the decoder will not be reset and will resume operation normally, with all the state from before the drain,”…”�”}”(hj«@h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M/hj§@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¤@ubj )�”}”(hŒáa pair of :c:func:`VIDIOC_STREAMOFF` and :c:func:`VIDIOC_STREAMON` on the ``CAPTURE`` queue - the decoder will resume the operation normally, however any ``CAPTURE`` buffers still in the queue will be returned to the client, ”h]”hì)�”}”(hŒàa pair of :c:func:`VIDIOC_STREAMOFF` and :c:func:`VIDIOC_STREAMON` on the ``CAPTURE`` queue - the decoder will resume the operation normally, however any ``CAPTURE`` buffers still in the queue will be returned to the client,”h]”(hŒ a pair of ”…”�”}”(hjÑ@h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_STREAMOFF`”h]”jœ)�”}”(hjÛ@h]”hŒVIDIOC_STREAMOFF()”…”�”}”(hjÝ@h²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjÙ@ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_STREAMOFF”uh1hh³hÇh´M2hjÑ@ubhŒ and ”…”�”}”(hjÑ@h²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_STREAMON`”h]”jœ)�”}”(hjþ@h]”hŒVIDIOC_STREAMON()”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjü@ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_STREAMON”uh1hh³hÇh´M2hjÑ@ubhŒ on the ”…”�”}”(hjÑ@h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÑ@ubhŒE queue - the decoder will resume the operation normally, however any ”…”�”}”(hjÑ@h²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj1Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjÑ@ubhŒ; buffers still in the queue will be returned to the client,”…”�”}”(hjÑ@h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M2hjÍ@ubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¤@ubj )�”}”(hŒÂa pair of :c:func:`VIDIOC_STREAMOFF` and :c:func:`VIDIOC_STREAMON` on the ``OUTPUT`` queue - any pending source buffers will be returned to the client and the `Seek` sequence will be triggered. ”h]”hì)�”}”(hŒÁa pair of :c:func:`VIDIOC_STREAMOFF` and :c:func:`VIDIOC_STREAMON` on the ``OUTPUT`` queue - any pending source buffers will be returned to the client and the `Seek` sequence will be triggered.”h]”(hŒ a pair of ”…”�”}”(hjSAh²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_STREAMOFF`”h]”jœ)�”}”(hj]Ah]”hŒVIDIOC_STREAMOFF()”…”�”}”(hj_Ah²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj[Aubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_STREAMOFF”uh1hh³hÇh´M7hjSAubhŒ and ”…”�”}”(hjSAh²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_STREAMON`”h]”jœ)�”}”(hj€Ah]”hŒVIDIOC_STREAMON()”…”�”}”(hj‚Ah²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hj~Aubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_STREAMON”uh1hh³hÇh´M7hjSAubhŒ on the ”…”�”}”(hjSAh²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj¡Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjSAubhŒK queue - any pending source buffers will be returned to the client and the ”…”�”}”(hjSAh²hh³Nh´Nubjá)�”}”(hŒ`Seek`”h]”hŒSeek”…”�”}”(hj³Ah²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jàhjSAubhŒ sequence will be triggered.”…”�”}”(hjSAh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M7hjOAubah}”(h]”h ]”h"]”h$]”h&]”uh1jhj¤@ubeh}”(h]”h ]”h"]”h$]”h&]”jA jB uh1jÑ h³hÇh´M/hjJ@ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jhj¤<h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jÜjÝjÞhjßjàuh1jhjO<h²hh³hÇh´MñubjÁ)�”}”(hXOnce the drain sequence is initiated, the client needs to drive it to completion, as described by the steps above, unless it aborts the process by issuing :c:func:`VIDIOC_STREAMOFF` on any of the ``OUTPUT`` or ``CAPTURE`` queues. The client is not allowed to issue ``V4L2_DEC_CMD_START`` or ``V4L2_DEC_CMD_STOP`` again while the drain sequence is in progress and they will fail with -EBUSY error code if attempted. Although not mandatory, the availability of decoder commands may be queried using :c:func:`VIDIOC_TRY_DECODER_CMD`.”h]”(hì)�”}”(hXŸOnce the drain sequence is initiated, the client needs to drive it to completion, as described by the steps above, unless it aborts the process by issuing :c:func:`VIDIOC_STREAMOFF` on any of the ``OUTPUT`` or ``CAPTURE`` queues. The client is not allowed to issue ``V4L2_DEC_CMD_START`` or ``V4L2_DEC_CMD_STOP`` again while the drain sequence is in progress and they will fail with -EBUSY error code if attempted.”•è7h]”(hŒ›Once the drain sequence is initiated, the client needs to drive it to completion, as described by the steps above, unless it aborts the process by issuing ”…”�”}”(hjçAh²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_STREAMOFF`”h]”jœ)�”}”(hjñAh]”hŒVIDIOC_STREAMOFF()”…”�”}”(hjóAh²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjïAubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_STREAMOFF”uh1hh³hÇh´M=hjçAubhŒ on any of the ”…”�”}”(hjçAh²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjçAubhŒ or ”…”�”}”(hjçAh²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj$Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjçAubhŒ- queues. The client is not allowed to issue ”…”�”}”(hjçAh²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_DEC_CMD_START``”h]”hŒV4L2_DEC_CMD_START”…”�”}”(hj6Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjçAubhŒ or ”…”�”}”(hjçAh²hh³Nh´Nubjœ)�”}”(hŒ``V4L2_DEC_CMD_STOP``”h]”hŒV4L2_DEC_CMD_STOP”…”�”}”(hjHBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjçAubhŒf again while the drain sequence is in progress and they will fail with -EBUSY error code if attempted.”…”�”}”(hjçAh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M=hjãAubhì)�”}”(hŒsAlthough not mandatory, the availability of decoder commands may be queried using :c:func:`VIDIOC_TRY_DECODER_CMD`.”h]”(hŒRAlthough not mandatory, the availability of decoder commands may be queried using ”…”�”}”(hj`Bh²hh³Nh´Nubh)�”}”(hŒ :c:func:`VIDIOC_TRY_DECODER_CMD`”h]”jœ)�”}”(hjjBh]”hŒVIDIOC_TRY_DECODER_CMD()”…”�”}”(hjlBh²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjhBubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_TRY_DECODER_CMD”uh1hh³hÇh´MDhj`BubhŒ.”…”�”}”(hj`Bh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MDhjãAubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÀhjO<h²hh³hÇh´Nubeh}”(h]”Œdrain”ah ]”h"]”Œdrain”ah$]”h&]”uh1hÖhhØh²hh³hÇh´Méubh×)�”}”(hhh]”(hÜ)�”}”(hŒ End of Stream”h]”hŒ End of Stream”…”�”}”(hj¢Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhjŸBh²hh³hÇh´MHubhì)�”}”(hŒÕIf the decoder encounters an end of stream marking in the stream, the decoder will initiate the `Drain` sequence, which the client must handle as described above, skipping the initial :c:func:`VIDIOC_DECODER_CMD`.”h]”(hŒ`If the decoder encounters an end of stream marking in the stream, the decoder will initiate the ”…”�”}”(hj°Bh²hh³Nh´Nubjá)�”}”(hŒ`Drain`”h]”hŒDrain”…”�”}”(hj¸Bh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jàhj°BubhŒQ sequence, which the client must handle as described above, skipping the initial ”…”�”}”(hj°Bh²hh³Nh´Nubh)�”}”(hŒ:c:func:`VIDIOC_DECODER_CMD`”h]”jœ)�”}”(hjÌBh]”hŒVIDIOC_DECODER_CMD()”…”�”}”(hjÎBh²hh³Nh´Nubah}”(h]”h ]”(j§j¨Œc-func”eh"]”h$]”h&]”uh1j›hjÊBubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”j´Œ refdomain”j¨Œreftype”Œfunc”Œ refexplicit”‰Œrefwarn”‰jºj¾jÉŒVIDIOC_DECODER_CMD”uh1hh³hÇh´MJhj°BubhŒ.”…”�”}”(hj°Bh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MJhjŸBh²hubeh}”(h]”Œ end-of-stream”ah ]”h"]”Œ end of stream”ah$]”h&]”uh1hÖhhØh²hh³hÇh´MHubh×)�”}”(hhh]”(hÜ)�”}”(hŒ Commit Points”h]”hŒ Commit Points”…”�”}”(hjþBh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhjûBh²hh³hÇh´MOubhì)�”}”(hŒVSetting formats and allocating buffers trigger changes in the behavior of the decoder.”h]”hŒVSetting formats and allocating buffers trigger changes in the behavior of the decoder.”…”�”}”(hj Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MQhjûBh²hubj)�”}”(hhh]”(j )�”}”(hX Setting the format on the ``OUTPUT`` queue may change the set of formats supported/advertised on the ``CAPTURE`` queue. In particular, it also means that the ``CAPTURE`` format may be reset and the client must not rely on the previously set format being preserved. ”h]”hì)�”}”(hXSetting the format on the ``OUTPUT`` queue may change the set of formats supported/advertised on the ``CAPTURE`` queue. In particular, it also means that the ``CAPTURE`` format may be reset and the client must not rely on the previously set format being preserved.”h]”(hŒSetting the format on the ”…”�”}”(hj!Ch²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj)Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj!CubhŒA queue may change the set of formats supported/advertised on the ”…”�”}”(hj!Ch²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj;Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj!CubhŒ. queue. In particular, it also means that the ”…”�”}”(hj!Ch²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjMCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj!CubhŒ_ format may be reset and the client must not rely on the previously set format being preserved.”…”�”}”(hj!Ch²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MThjCubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjCh²hh³hÇh´Nubj )�”}”(hŒvEnumerating formats on the ``CAPTURE`` queue always returns only formats supported for the current ``OUTPUT`` format. ”h]”hì)�”}”(hŒuEnumerating formats on the ``CAPTURE`` queue always returns only formats supported for the current ``OUTPUT`` format.”h]”(hŒEnumerating formats on the ”…”�”}”(hjoCh²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjwCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjoCubhŒ= queue always returns only formats supported for the current ”…”�”}”(hjoCh²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj‰Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjoCubhŒ format.”…”�”}”(hjoCh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MYhjkCubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjCh²hh³hÇh´Nubj )�”}”(hX7Setting the format on the ``CAPTURE`` queue does not change the list of formats available on the ``OUTPUT`` queue. An attempt to set a ``CAPTURE`` format that is not supported for the currently selected ``OUTPUT`` format will result in the decoder adjusting the requested ``CAPTURE`` format to a supported one. ”h]”hì)�”}”(hX6Setting the format on the ``CAPTURE`` queue does not change the list of formats available on the ``OUTPUT`` queue. An attempt to set a ``CAPTURE`` format that is not supported for the currently selected ``OUTPUT`` format will result in the decoder adjusting the requested ``CAPTURE`` format to a supported one.”h]”(hŒSetting the format on the ”…”�”}”(hj«Ch²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj³Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj«CubhŒ< queue does not change the list of formats available on the ”…”�”}”(hj«Ch²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjÅCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj«CubhŒ queue. An attempt to set a ”…”�”}”(hj«Ch²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj×Ch²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj«CubhŒ9 format that is not supported for the currently selected ”…”�”}”(hj«Ch²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjéCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj«CubhŒ; format will result in the decoder adjusting the requested ”…”�”}”(hj«Ch²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjûCh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj«CubhŒ format to a supported one.”…”�”}”(hj«Ch²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´M\hj§Cubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjCh²hh³hÇh´Nubj )�”}”(hŒ–Enumerating formats on the ``OUTPUT`` queue always returns the full set of supported coded formats, irrespectively of the current ``CAPTURE`` format. ”h]”hì)�”}”(hŒ•Enumerating formats on the ``OUTPUT`` queue always returns the full set of supported coded formats, irrespectively of the current ``CAPTURE`` format.”h]”(hŒEnumerating formats on the ”…”�”}”(hjDh²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj%Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjDubhŒ] queue always returns the full set of supported coded formats, irrespectively of the current ”…”�”}”(hjDh²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hj7Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjDubhŒ format.”…”�”}”(hjDh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MbhjDubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjCh²hh³hÇh´Nubj )�”}”(hŒÙWhile buffers are allocated on any of the ``OUTPUT`` or ``CAPTURE`` queues, the client must not change the format on the ``OUTPUT`` queue. Drivers will return the -EBUSY error code for any such format change attempt. ”h]”hì)�”}”(hŒØWhile buffers are allocated on any of the ``OUTPUT`` or ``CAPTURE`` queues, the client must not change the format on the ``OUTPUT`` queue. Drivers will return the -EBUSY error code for any such format change attempt.”h]”(hŒ*While buffers are allocated on any of the ”…”�”}”(hjYDh²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjaDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjYDubhŒ or ”…”�”}”(hjYDh²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjsDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjYDubhŒ6 queues, the client must not change the format on the ”…”�”}”(hjYDh²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj…Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hjYDubhŒU queue. Drivers will return the -EBUSY error code for any such format change attempt.”…”�”}”(hjYDh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MehjUDubah}”(h]”h ]”h"]”h$]”h&]”uh1jhjCh²hh³hÇh´Nubeh}”(h]”h ]”h"]”h$]”h&]”jÜjÝjÞhjßjàuh1jhjûBh²hh³hÇh´MTubhì)�”}”(hŒÄTo summarize, setting formats and allocation must always start with the ``OUTPUT`` queue and the ``OUTPUT`` queue is the master that governs the set of supported formats for the ``CAPTURE`` queue.”h]”(hŒHTo summarize, setting formats and allocation must always start with the ”…”�”}”(hj©Dh²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hj±Dh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj©DubhŒ queue and the ”…”�”}”(hj©Dh²hh³Nh´Nubjœ)�”}”(hŒ ``OUTPUT``”h]”hŒOUTPUT”…”�”}”(hjÃDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj©DubhŒG queue is the master that governs the set of supported formats for the ”…”�”}”(hj©Dh²hh³Nh´Nubjœ)�”}”(hŒ ``CAPTURE``”h]”hŒCAPTURE”…”�”}”(hjÕDh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j›hj©DubhŒ queue.”…”�”}”(hj©Dh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hëh³hÇh´MihjûBh²hubeh}”(h]”Œ commit-points”ah ]”h"]”Œ commit points”ah$]”h&]”uh1hÖhhØh²hh³hÇh´MOubeh}”(h]”(Œ1memory-to-memory-stateful-video-decoder-interface”hÕeh ]”h"]”(Œ1memory-to-memory stateful video decoder interface”Œdecoder”eh$]”h&]”uh1hÖhhh²hh³hÇh´Kj }”jûDhÊsj }”hÕhÊsubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)�”}”(hÛNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”j#EŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”(hÕ]”hÊajë]”jáauŒnameids”}”(jûDhÕjúDj÷Djñjîjbj_j jëj j js jp j^ j[ jdjaj -j-j 3j3jð7jí7jL<jI<jœBj™BjøBjõBjòDjïDuŒ nametypes”}”(jûDˆjúD‰jñ‰jbˆj ˆj ‰js ‰j^ ‰jd‰j -‰j 3‰jð7‰jL<‰jœB‰jøB‰jòD‰uh}”(hÕhØj÷DhØjîj j_jYjëjôj jôjp j j[ jv jaja j-jgj3j#-jí7j#3jI<jó7j™BjO<jõBjŸBjïDjûBjg j2 uŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”j1EKs…”R”Œparse_messages”]”hŒsystem_message”“”)�”}”(hhh]”hì)�”}”(hŒ:Enumerated list start value not ordinal-1: "5" (ordinal 5)”h]”hŒ>Enumerated list start value not ordinal-1: “5â€� (ordinal 5)”…”�”}”(hjŒEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj‰Eubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œsource”hÇŒline”Kuh1j‡Ehjgh²hh³hÇh´MubaŒtransform_messages”]”(jˆE)�”}”(hhh]”hì)�”}”(hhh]”hŒ-Hyperlink target "decoder" is not referenced.”…”�”}”hjªEsbah}”(h]”h ]”h"]”h$]”h&]”uh1hëhj§Eubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”j¢EŒsource”hÇŒline”Kuh1j‡EubjˆE)�”}”(hhh]”hì)�”}”(hhh]”hŒ6Hyperlink target "decoder-glossary" is not referenced.”…”�”}”hjÄEsbah}”(h]”h ]”h"]”h$]”h&]”uh1hëhjÁEubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”j¢EŒsource”hÇŒline”K-uh1j‡EubeŒ transformer”NŒ include_log”]”Œ decoration”Nh²hub.