€• }Œ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”Œ9/translations/zh_CN/userspace-api/media/v4l/vidioc-expbuf”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ9/translations/zh_TW/userspace-api/media/v4l/vidioc-expbuf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ9/translations/it_IT/userspace-api/media/v4l/vidioc-expbuf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ9/translations/ja_JP/userspace-api/media/v4l/vidioc-expbuf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ9/translations/ko_KR/userspace-api/media/v4l/vidioc-expbuf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ9/translations/pt_BR/userspace-api/media/v4l/vidioc-expbuf”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ9/translations/sp_SP/userspace-api/media/v4l/vidioc-expbuf”Œ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Œ8SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later”h]”hŒ8SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later”…””}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒS/var/lib/git/docbuild/linux/Documentation/userspace-api/media/v4l/vidioc-expbuf.rst”h´KubhŒtarget”“”)”}”(hŒ.. _VIDIOC_EXPBUF:”h]”h}”(h]”h ]”h"]”h$]”h&]”Œrefid”Œ vidioc-expbuf”uh1hÈh´Khhh²hh³hÇubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒioctl VIDIOC_EXPBUF”h]”hŒioctl VIDIOC_EXPBUF”…””}”(hhÝh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhhØh²hh³hÇh´Kubh×)”}”(hhh]”(hÜ)”}”(hŒName”h]”hŒName”…””}”(hhîh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhhëh²hh³hÇh´K ubhŒ paragraph”“”)”}”(hŒ` I/O method, therefore it is available only for ``V4L2_MEMORY_MMAP`` buffers. It can be used to export a buffer as a DMABUF file at any time after buffers have been allocated with the :ref:`VIDIOC_REQBUFS` ioctl.”h]”(hŒ"This ioctl is an extension to the ”…””}”(hj¶h²hh³Nh´Nubh)”}”(hŒ:ref:`memory mapping `”h]”hŒinline”“”)”}”(hjÀh]”hŒmemory mapping”…””}”(hjÄh²hh³Nh´Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1jÂhj¾ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jÎŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆj$Œmmap”uh1hh³hÇh´K"hj¶ubhŒ0 I/O method, therefore it is available only for ”…””}”(hj¶h²hh³Nh´Nubj—)”}”(hŒ``V4L2_MEMORY_MMAP``”h]”hŒV4L2_MEMORY_MMAP”…””}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj¶ubhŒt buffers. It can be used to export a buffer as a DMABUF file at any time after buffers have been allocated with the ”…””}”(hj¶h²hh³Nh´Nubh)”}”(hŒ:ref:`VIDIOC_REQBUFS`”h]”jÃ)”}”(hjøh]”hŒVIDIOC_REQBUFS”…””}”(hjúh²hh³Nh´Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1jÂhjöubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jŒreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj$Œvidioc_reqbufs”uh1hh³hÇh´K"hj¶ubhŒ ioctl.”…””}”(hj¶h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K"hj¥h²hubhý)”}”(hXãTo export a buffer, applications fill struct :c:type:`v4l2_exportbuffer`. The ``type`` field is set to the same buffer type as was previously used with struct :c:type:`v4l2_requestbuffers` ``type``. Applications must also set the ``index`` field. Valid index numbers range from zero to the number of buffers allocated with :ref:`VIDIOC_REQBUFS` (struct :c:type:`v4l2_requestbuffers` ``count``) minus one. For the multi-planar API, applications set the ``plane`` field to the index of the plane to be exported. Valid planes range from zero to the maximal number of valid planes for the currently active format. For the single-planar API, applications must set ``plane`` to zero. Additional flags may be posted in the ``flags`` field. Refer to a manual for open() for details. Currently only O_CLOEXEC, O_RDONLY, O_WRONLY, and O_RDWR are supported. All other fields must be set to zero. In the case of multi-planar API, every plane is exported separately using multiple :ref:`VIDIOC_EXPBUF` calls.”h]”(hŒ-To export a buffer, applications fill struct ”…””}”(hj h²hh³Nh´Nubh)”}”(hŒ:c:type:`v4l2_exportbuffer`”h]”j—)”}”(hj*h]”hŒv4l2_exportbuffer”…””}”(hj,h²hh³Nh´Nubah}”(h]”h ]”(jj‡Œc-type”eh"]”h$]”h&]”uh1j–hj(ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j‡Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jjj$Œv4l2_exportbuffer”uh1hh³hÇh´K(hj ubhŒ. The ”…””}”(hj h²hh³Nh´Nubj—)”}”(hŒ``type``”h]”hŒtype”…””}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj ubhŒI field is set to the same buffer type as was previously used with struct ”…””}”(hj h²hh³Nh´Nubh)”}”(hŒ:c:type:`v4l2_requestbuffers`”h]”j—)”}”(hj_h]”hŒv4l2_requestbuffers”…””}”(hjah²hh³Nh´Nubah}”(h]”h ]”(jj‡Œc-type”eh"]”h$]”h&]”uh1j–hj]ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j‡Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jjj$Œv4l2_requestbuffers”uh1hh³hÇh´K(hj ubhŒ ”…””}”(hj h²hh³Nh´Nubj—)”}”(hŒ``type``”h]”hŒtype”…””}”(hj€h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj ubhŒ!. Applications must also set the ”…””}”(hj h²hh³Nh´Nubj—)”}”(hŒ ``index``”h]”hŒindex”…””}”(hj’h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj ubhŒT field. Valid index numbers range from zero to the number of buffers allocated with ”…””}”(hj h²hh³Nh´Nubh)”}”(hŒ:ref:`VIDIOC_REQBUFS`”h]”jÃ)”}”(hj¦h]”hŒVIDIOC_REQBUFS”…””}”(hj¨h²hh³Nh´Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1jÂhj¤ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j²Œreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj$Œvidioc_reqbufs”uh1hh³hÇh´K(hj ubhŒ (struct ”…””}”(hj h²hh³Nh´Nubh)”}”(hŒ:c:type:`v4l2_requestbuffers`”h]”j—)”}”(hjÊh]”hŒv4l2_requestbuffers”…””}”(hjÌh²hh³Nh´Nubah}”(h]”h ]”(jj‡Œc-type”eh"]”h$]”h&]”uh1j–hjÈubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j‡Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jjj$Œv4l2_requestbuffers”uh1hh³hÇh´K(hj ubhŒ ”…””}”hj sbj—)”}”(hŒ ``count``”h]”hŒcount”…””}”(hjëh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj ubhŒ<) minus one. For the multi-planar API, applications set the ”…””}”(hj h²hh³Nh´Nubj—)”}”(hŒ ``plane``”h]”hŒplane”…””}”(hjýh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj ubhŒÆ field to the index of the plane to be exported. Valid planes range from zero to the maximal number of valid planes for the currently active format. For the single-planar API, applications must set ”…””}”(hj h²hh³Nh´Nubj—)”}”(hŒ ``plane``”h]”hŒplane”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj ubhŒ0 to zero. Additional flags may be posted in the ”…””}”(hj h²hh³Nh´Nubj—)”}”(hŒ ``flags``”h]”hŒflags”…””}”(hj!h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj ubhŒó field. Refer to a manual for open() for details. Currently only O_CLOEXEC, O_RDONLY, O_WRONLY, and O_RDWR are supported. All other fields must be set to zero. In the case of multi-planar API, every plane is exported separately using multiple ”…””}”(hj h²hh³Nh´Nubh)”}”(hŒ:ref:`VIDIOC_EXPBUF`”h]”jÃ)”}”(hj5h]”hŒ VIDIOC_EXPBUF”…””}”(hj7h²hh³Nh´Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1jÂhj3ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jAŒreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj$Œ vidioc_expbuf”uh1hh³hÇh´K(hj ubhŒ calls.”…””}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K(hj¥h²hubhý)”}”(hX€After calling :ref:`VIDIOC_EXPBUF` the ``fd`` field will be set by a driver. This is a DMABUF file descriptor. The application may pass it to other DMABUF-aware devices. Refer to :ref:`DMABUF importing ` for details about importing DMABUF files into V4L2 nodes. It is recommended to close a DMABUF file when it is no longer used to allow the associated memory to be reclaimed.”h]”(hŒAfter calling ”…””}”(hj]h²hh³Nh´Nubh)”}”(hŒ:ref:`VIDIOC_EXPBUF`”h]”jÃ)”}”(hjgh]”hŒ VIDIOC_EXPBUF”…””}”(hjih²hh³Nh´Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1jÂhjeubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jsŒreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj$Œ vidioc_expbuf”uh1hh³hÇh´K:hj]ubhŒ the ”…””}”(hj]h²hh³Nh´Nubj—)”}”(hŒ``fd``”h]”hŒfd”…””}”(hj‰h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj]ubhŒ† field will be set by a driver. This is a DMABUF file descriptor. The application may pass it to other DMABUF-aware devices. Refer to ”…””}”(hj]h²hh³Nh´Nubh)”}”(hŒ :ref:`DMABUF importing `”h]”jÃ)”}”(hjh]”hŒDMABUF importing”…””}”(hjŸh²hh³Nh´Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1jÂhj›ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j©Œreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆj$Œdmabuf”uh1hh³hÇh´K:hj]ubhŒ­ for details about importing DMABUF files into V4L2 nodes. It is recommended to close a DMABUF file when it is no longer used to allow the associated memory to be reclaimed.”…””}”(hj]h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K:hj¥h²hubeh}”(h]”Œ description”ah ]”h"]”Œ description”ah$]”h&]”uh1hÖhhØh²hh³hÇh´K ubh×)”}”(hhh]”(hÜ)”}”(hŒExamples”h]”hŒExamples”…””}”(hjÐh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhjÍh²hh³hÇh´KBubhŒ literal_block”“”)”}”(hXdint buffer_export(int v4lfd, enum v4l2_buf_type bt, int index, int *dmafd) { struct v4l2_exportbuffer expbuf; memset(&expbuf, 0, sizeof(expbuf)); expbuf.type = bt; expbuf.index = index; if (ioctl(v4lfd, VIDIOC_EXPBUF, &expbuf) == -1) { perror("VIDIOC_EXPBUF"); return -1; } *dmafd = expbuf.fd; return 0; }”h]”hXdint buffer_export(int v4lfd, enum v4l2_buf_type bt, int index, int *dmafd) { struct v4l2_exportbuffer expbuf; memset(&expbuf, 0, sizeof(expbuf)); expbuf.type = bt; expbuf.index = index; if (ioctl(v4lfd, VIDIOC_EXPBUF, &expbuf) == -1) { perror("VIDIOC_EXPBUF"); return -1; } *dmafd = expbuf.fd; return 0; }”…””}”hjàsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆŒforce”‰Œlanguage”j‡Œhighlight_args”}”uh1jÞh³hÇh´KDhjÍh²hubjß)”}”(hX)int buffer_export_mp(int v4lfd, enum v4l2_buf_type bt, int index, int dmafd[], int n_planes) { int i; for (i = 0; i < n_planes; ++i) { struct v4l2_exportbuffer expbuf; memset(&expbuf, 0, sizeof(expbuf)); expbuf.type = bt; expbuf.index = index; expbuf.plane = i; if (ioctl(v4lfd, VIDIOC_EXPBUF, &expbuf) == -1) { perror("VIDIOC_EXPBUF"); while (i) close(dmafd[--i]); return -1; } dmafd[i] = expbuf.fd; } return 0; }”h]”hX)int buffer_export_mp(int v4lfd, enum v4l2_buf_type bt, int index, int dmafd[], int n_planes) { int i; for (i = 0; i < n_planes; ++i) { struct v4l2_exportbuffer expbuf; memset(&expbuf, 0, sizeof(expbuf)); expbuf.type = bt; expbuf.index = index; expbuf.plane = i; if (ioctl(v4lfd, VIDIOC_EXPBUF, &expbuf) == -1) { perror("VIDIOC_EXPBUF"); while (i) close(dmafd[--i]); return -1; } dmafd[i] = expbuf.fd; } return 0; }”…””}”hjòsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆjî‰jïj‡jð}”uh1jÞh³hÇh´KWhjÍh²hubj&)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œentries”]”(j2ŒV4L.v4l2_exportbuffer (C type)”Œc.V4L.v4l2_exportbuffer”hNt”auh1j%hjÍh²hh³Nh´Nubj7)”}”(hhh]”(j<)”}”(hŒv4l2_exportbuffer”h]”jB)”}”(hŒtype v4l2_exportbuffer”h]”(hŒdesc_sig_keyword”“”)”}”(hŒtype”h]”hŒtype”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”Œk”ah"]”h$]”h&]”uh1jhjh²hh³hÇh´KqubhŒdesc_sig_space”“”)”}”(hŒ ”h]”hŒ ”…””}”(hj-h²hh³Nh´Nubah}”(h]”h ]”Œw”ah"]”h$]”h&]”uh1j+hjh²hh³hÇh´KqubjH)”}”(hŒv4l2_exportbuffer”h]”jN)”}”(hjh]”hŒv4l2_exportbuffer”…””}”(hj@h²hh³Nh´Nubah}”(h]”h ]”jYah"]”h$]”h&]”uh1jMhj<ubah}”(h]”h ]”(j`jaeh"]”h$]”h&]”hÅhÆuh1jGhjh²hh³hÇh´Kqubeh}”(h]”h ]”h"]”h$]”h&]”hÅhÆjkˆuh1jAjljmhjh²hh³hÇh´Kqubah}”(h]”j ah ]”(jqjreh"]”h$]”h&]”jvˆjw)jxhuh1j;h³hÇh´Kqhjh²hubjz)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”uh1jyhjh²hh³hÇh´Kqubeh}”(h]”h ]”(j‡Œtype”eh"]”h$]”h&]”jŒj‡jjkjŽjkj‰j‰j‘‰uh1j6h²hhjÍh³Nh´NubhŒtabular_col_spec”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œspec”Œ|p{4.4cm}|p{4.4cm}|p{8.5cm}|”uh1joh³hÇh´KshjÍh²hubhŒtable”“”)”}”(hhh]”(hÜ)”}”(hŒstruct v4l2_exportbuffer”h]”hŒstruct v4l2_exportbuffer”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛh³hÇh´Kuhj~ubhŒtgroup”“”)”}”(hhh]”(hŒcolspec”“”)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j”hj‘ubj•)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j”hj‘ubj•)”}”(hhh]”h}”(h]”h ]”h"]”h$]”h&]”Œcolwidth”Kuh1j”hj‘ubhŒtbody”“”)”}”(hhh]”(hŒrow”“”)”}”(hhh]”(hŒentry”“”)”}”(hhh]”hý)”}”(hŒ__u32”h]”hŒ__u32”…””}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´KzhjÀubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hj»ubj¿)”}”(hhh]”hý)”}”(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&]”uh1hüh³hÇh´K{hj×ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hj»ubj¿)”}”(hhh]”hý)”}”(hŒ§Type of the buffer, same as struct :c:type:`v4l2_format` ``type`` or struct :c:type:`v4l2_requestbuffers` ``type``, set by the application. See :c:type:`v4l2_buf_type`”h]”(hŒ#Type of the buffer, same as struct ”…””}”(hjúh²hh³Nh´Nubh)”}”(hŒ:c:type:`v4l2_format`”h]”j—)”}”(hjh]”hŒ v4l2_format”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”(jj‡Œc-type”eh"]”h$]”h&]”uh1j–hjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j‡Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jjj$Œ v4l2_format”uh1hh³hÇh´K|hjúubhŒ ”…””}”(hjúh²hh³Nh´Nubj—)”}”(hŒ``type``”h]”hŒtype”…””}”(hj%h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjúubhŒ or struct ”…””}”(hjúh²hh³Nh´Nubh)”}”(hŒ:c:type:`v4l2_requestbuffers`”h]”j—)”}”(hj9h]”hŒv4l2_requestbuffers”…””}”(hj;h²hh³Nh´Nubah}”(h]”h ]”(jj‡Œc-type”eh"]”h$]”h&]”uh1j–hj7ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j‡Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jjj$Œv4l2_requestbuffers”uh1hh³hÇh´K|hjúubhŒ ”…””}”hjúsbj—)”}”(hŒ``type``”h]”hŒtype”…””}”(hjZh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjúubhŒ, set by the application. See ”…””}”(hjúh²hh³Nh´Nubh)”}”(hŒ:c:type:`v4l2_buf_type`”h]”j—)”}”(hjnh]”hŒ v4l2_buf_type”…””}”(hjph²hh³Nh´Nubah}”(h]”h ]”(jj‡Œc-type”eh"]”h$]”h&]”uh1j–hjlubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j‡Œreftype”Œtype”Œ refexplicit”‰Œrefwarn”‰jjj$Œ v4l2_buf_type”uh1hh³hÇh´K|hjúubeh}”(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¹hj¶ubjº)”}”(hhh]”(j¿)”}”(hhh]”hý)”}”(hŒ__u32”h]”hŒ__u32”…””}”(hj£h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K€hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hjubj¿)”}”(hhh]”hý)”}”(hŒ ``index``”h]”j—)”}”(hj¼h]”hŒindex”…””}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjºubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Khj·ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hjubj¿)”}”(hhh]”hý)”}”(hŒíNumber of the buffer, set by the application. This field is only used for :ref:`memory mapping ` I/O and can range from zero to the number of buffers allocated with the :ref:`VIDIOC_REQBUFS` and/or :ref:`VIDIOC_CREATE_BUFS` ioctls.”h]”(hŒJNumber of the buffer, set by the application. This field is only used for ”…””}”(hjÚh²hh³Nh´Nubh)”}”(hŒ:ref:`memory mapping `”h]”jÃ)”}”(hjäh]”hŒmemory mapping”…””}”(hjæh²hh³Nh´Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1jÂhjâubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jðŒreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆj$Œmmap”uh1hh³hÇh´K‚hjÚubhŒI I/O and can range from zero to the number of buffers allocated with the ”…””}”(hjÚh²hh³Nh´Nubh)”}”(hŒ:ref:`VIDIOC_REQBUFS`”h]”jÃ)”}”(hjh]”hŒVIDIOC_REQBUFS”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1jÂhjubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jŒreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj$Œvidioc_reqbufs”uh1hh³hÇh´K‚hjÚubhŒ and/or ”…””}”(hjÚh²hh³Nh´Nubh)”}”(hŒ:ref:`VIDIOC_CREATE_BUFS`”h]”jÃ)”}”(hj,h]”hŒVIDIOC_CREATE_BUFS”…””}”(hj.h²hh³Nh´Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1jÂhj*ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”j8Œreftype”Œref”Œ refexplicit”‰Œrefwarn”ˆj$Œvidioc_create_bufs”uh1hh³hÇh´K‚hjÚubhŒ ioctls.”…””}”(hjÚh²hh³Nh´Nubeh}”(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¹hj¶ubjº)”}”(hhh]”(j¿)”}”(hhh]”hý)”}”(hŒ__u32”h]”hŒ__u32”…””}”(hjfh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K‡hjcubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hj`ubj¿)”}”(hhh]”hý)”}”(hŒ ``plane``”h]”j—)”}”(hjh]”hŒplane”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj}ubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Kˆhjzubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hj`ubj¿)”}”(hhh]”hý)”}”(hŒlIndex of the plane to be exported when using the multi-planar API. Otherwise this value must be set to zero.”h]”hŒlIndex of the plane to be exported when using the multi-planar API. Otherwise this value must be set to zero.”…””}”(hjh²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¹hj¶ubjº)”}”(hhh]”(j¿)”}”(hhh]”hý)”}”(hŒ__u32”h]”hŒ__u32”…””}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K‹hjºubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hj·ubj¿)”}”(hhh]”hý)”}”(hŒ ``flags``”h]”j—)”}”(hjÖh]”hŒflags”…””}”(hjØh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjÔubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´KŒhjÑubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hj·ubj¿)”}”(hhh]”hý)”}”(hŒ©Flags for the newly created file, currently only ``O_CLOEXEC``, ``O_RDONLY``, ``O_WRONLY``, and ``O_RDWR`` are supported, refer to the manual of open() for more details.”h]”(hŒ1Flags for the newly created file, currently only ”…””}”(hjôh²hh³Nh´Nubj—)”}”(hŒ ``O_CLOEXEC``”h]”hŒ O_CLOEXEC”…””}”(hjüh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjôubhŒ, ”…””}”(hjôh²hh³Nh´Nubj—)”}”(hŒ ``O_RDONLY``”h]”hŒO_RDONLY”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjôubhŒ, ”…””}”(hjôh²hh³Nh´Nubj—)”}”(hŒ ``O_WRONLY``”h]”hŒO_WRONLY”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjôubhŒ, and ”…””}”(hjôh²hh³Nh´Nubj—)”}”(hŒ ``O_RDWR``”h]”hŒO_RDWR”…””}”(hj2h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjôubhŒ? are supported, refer to the manual of open() for more details.”…””}”(hjôh²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Khjñubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hj·ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹hj¶ubjº)”}”(hhh]”(j¿)”}”(hhh]”hý)”}”(hŒ__s32”h]”hŒ__s32”…””}”(hj\h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´KhjYubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hjVubj¿)”}”(hhh]”hý)”}”(hŒ``fd``”h]”j—)”}”(hjuh]”hŒfd”…””}”(hjwh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjsubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K‘hjpubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hjVubj¿)”}”(hhh]”hý)”}”(hŒGThe DMABUF file descriptor associated with a buffer. Set by the driver.”h]”hŒGThe DMABUF file descriptor associated with a buffer. Set by the driver.”…””}”(hj“h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K’hjubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hjVubeh}”(h]”h ]”h"]”h$]”h&]”uh1j¹hj¶ubjº)”}”(hhh]”(j¿)”}”(hhh]”hý)”}”(hŒ__u32”h]”hŒ__u32”…””}”(hj³h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K”hj°ubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hj­ubj¿)”}”(hhh]”hý)”}”(hŒ``reserved[11]``”h]”j—)”}”(hjÌh]”hŒ reserved[11]”…””}”(hjÎh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hjÊubah}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K•hjÇubah}”(h]”h ]”h"]”h$]”h&]”uh1j¾hj­ubj¿)”}”(hhh]”hý)”}”(hŒSReserved field for future use. Drivers and applications must set the array to zero.”h]”hŒSReserved field for future use. Drivers and applications must set the array to zero.”…””}”(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¹hj¶ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j´hj‘ubeh}”(h]”h ]”h"]”h$]”h&]”Œcols”Kuh1jhj~ubeh}”(h]”Œid1”ah ]”h"]”h$]”h&]”uh1j|hjÍh²hh³Nh´Nubeh}”(h]”Œexamples”ah ]”h"]”Œexamples”ah$]”h&]”uh1hÖhhØh²hh³hÇh´KBubh×)”}”(hhh]”(hÜ)”}”(hŒ Return Value”h]”hŒ Return Value”…””}”(hj# h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÛhj h²hh³hÇh´Kšubhý)”}”(hŒ´On success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter.”h]”(hŒ.On success 0 is returned, on error -1 and the ”…””}”(hj1 h²hh³Nh´Nubj—)”}”(hŒ ``errno``”h]”hŒerrno”…””}”(hj9 h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj1 ubhŒM variable is set appropriately. The generic error codes are described at the ”…””}”(hj1 h²hh³Nh´Nubh)”}”(hŒ':ref:`Generic Error Codes `”h]”jÃ)”}”(hjM h]”hŒGeneric Error Codes”…””}”(hjO h²hh³Nh´Nubah}”(h]”h ]”(jŒstd”Œstd-ref”eh"]”h$]”h&]”uh1jÂhjK ubah}”(h]”h ]”h"]”h$]”h&]”Œrefdoc”jŒ refdomain”jY Œreftype”Œref”Œ refexplicit”ˆŒrefwarn”ˆj$Œ gen-errors”uh1hh³hÇh´Kœhj1 ubhŒ chapter.”…””}”(hj1 h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´Kœhj h²hubjÅ)”}”(hhh]”jÊ)”}”(hŒŽEINVAL A queue is not in MMAP mode or DMABUF exporting is not supported or ``flags`` or ``type`` or ``index`` or ``plane`` fields are invalid.”h]”(jÐ)”}”(hŒEINVAL”h]”hŒEINVAL”…””}”(hj| h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jÏh³hÇh´K¡hjx ubjé)”}”(hhh]”hý)”}”(hŒ‡A queue is not in MMAP mode or DMABUF exporting is not supported or ``flags`` or ``type`` or ``index`` or ``plane`` fields are invalid.”h]”(hŒDA queue is not in MMAP mode or DMABUF exporting is not supported or ”…””}”(hj h²hh³Nh´Nubj—)”}”(hŒ ``flags``”h]”hŒflags”…””}”(hj• h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj ubhŒ or ”…””}”(hj h²hh³Nh´Nubj—)”}”(hŒ``type``”h]”hŒtype”…””}”(hj§ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj ubhŒ or ”…””}”hj sbj—)”}”(hŒ ``index``”h]”hŒindex”…””}”(hj¹ h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj ubhŒ or ”…””}”hj sbj—)”}”(hŒ ``plane``”h]”hŒplane”…””}”(hjË h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1j–hj ubhŒ fields are invalid.”…””}”(hj h²hh³Nh´Nubeh}”(h]”h ]”h"]”h$]”h&]”uh1hüh³hÇh´K¡hjŠ ubah}”(h]”h ]”h"]”h$]”h&]”uh1jèhjx ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jÉh³hÇh´K¡hju ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÄhj h²hh³hÇh´Nubeh}”(h]”Œ return-value”ah ]”h"]”Œ return value”ah$]”h&]”uh1hÖhhØh²hh³hÇh´Kšubeh}”(h]”(Œioctl-vidioc-expbuf”hÕeh ]”h"]”(Œioctl vidioc_expbuf”Œ vidioc_expbuf”eh$]”h&]”uh1hÖhhh²hh³hÇh´KŒexpect_referenced_by_name”}”j hÊsŒexpect_referenced_by_id”}”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”j¾Œ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, Œ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ÊasŒnameids”}”(j hÕj jÿ jjj°j­j¢jŸjÊjÇj j jú j÷ uŒ nametypes”}”(j ˆj ‰j‰j°‰j¢‰jʉj ‰jú ‰uh}”(hÕhØjÿ hØjhëj­jj4j=jŸj³jÇj¥j jÍj jj÷ j j j~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”“”}”j: Ks…”R”Œparse_messages”]”Œtransform_messages”]”hŒsystem_message”“”)”}”(hhh]”hý)”}”(hhh]”hŒ3Hyperlink target "vidioc-expbuf" is not referenced.”…””}”hj– sbah}”(h]”h ]”h"]”h$]”h&]”uh1hühj“ ubah}”(h]”h ]”h"]”h$]”h&]”Œlevel”KŒtype”ŒINFO”Œsource”hÇŒline”Kuh1j‘ ubaŒ transformer”NŒ include_log”]”Œ decoration”Nh²hub.