/|sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget9/translations/zh_CN/userspace-api/media/v4l/vidioc-expbufmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget9/translations/zh_TW/userspace-api/media/v4l/vidioc-expbufmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget9/translations/it_IT/userspace-api/media/v4l/vidioc-expbufmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget9/translations/ja_JP/userspace-api/media/v4l/vidioc-expbufmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget9/translations/ko_KR/userspace-api/media/v4l/vidioc-expbufmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget9/translations/sp_SP/userspace-api/media/v4l/vidioc-expbufmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h8SPDX-License-Identifier: GFDL-1.1-no-invariants-or-laterh]h8SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhS/var/lib/git/docbuild/linux/Documentation/userspace-api/media/v4l/vidioc-expbuf.rsthKubhtarget)}(h.. _VIDIOC_EXPBUF:h]h}(h]h ]h"]h$]h&]refid vidioc-expbufuh1hhKhhhhhhubhsection)}(hhh](htitle)}(hioctl VIDIOC_EXPBUFh]hioctl VIDIOC_EXPBUF}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hNameh]hName}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhK 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 }(hjhhhNhNubh)}(h:ref:`memory mapping `h]hinline)}(hjh]hmemory mapping}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnjmmapuh1hhhhK"hjubh0 I/O method, therefore it is available only for }(hjhhhNhNubj)}(h``V4L2_MEMORY_MMAP``h]hV4L2_MEMORY_MMAP}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubht buffers. It can be used to export a buffer as a DMABUF file at any time after buffers have been allocated with the }(hjhhhNhNubh)}(h:ref:`VIDIOC_REQBUFS`h]j)}(hjh]hVIDIOC_REQBUFS}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnjvidioc_reqbufsuh1hhhhK"hjubh ioctl.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK"hjhhubh)}(hXTo 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 hhhNhNubh)}(h:c:type:`v4l2_exportbuffer`h]j)}(hjh]hv4l2_exportbuffer}(hjhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_exportbufferuh1hhhhK(hj ubh. The }(hj hhhNhNubj)}(h``type``h]htype}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubhI field is set to the same buffer type as was previously used with struct }(hj hhhNhNubh)}(h:c:type:`v4l2_requestbuffers`h]j)}(hjKh]hv4l2_requestbuffers}(hjMhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjIubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_requestbuffersuh1hhhhK(hj ubh }(hj hhhNhNubj)}(h``type``h]htype}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh!. Applications must also set the }(hj hhhNhNubj)}(h ``index``h]hindex}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubhT field. Valid index numbers range from zero to the number of buffers allocated with }(hj hhhNhNubh)}(h:ref:`VIDIOC_REQBUFS`h]j)}(hjh]hVIDIOC_REQBUFS}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnjvidioc_reqbufsuh1hhhhK(hj ubh (struct }(hj hhhNhNubh)}(h:c:type:`v4l2_requestbuffers`h]j)}(hjh]hv4l2_requestbuffers}(hjhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_requestbuffersuh1hhhhK(hj ubh }hj sbj)}(h ``count``h]hcount}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh<) minus one. For the multi-planar API, applications set the }(hj hhhNhNubj)}(h ``plane``h]hplane}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 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 hhhNhNubj)}(h ``plane``h]hplane}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh0 to zero. Additional flags may be posted in the }(hj hhhNhNubj)}(h ``flags``h]hflags}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj 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 hhhNhNubh)}(h:ref:`VIDIOC_EXPBUF`h]j)}(hj!h]h VIDIOC_EXPBUF}(hj#hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainj-reftyperef refexplicitrefwarnj vidioc_expbufuh1hhhhK(hj ubh calls.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK(hjhhubh)}(hXAfter 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](hAfter calling }(hjIhhhNhNubh)}(h:ref:`VIDIOC_EXPBUF`h]j)}(hjSh]h VIDIOC_EXPBUF}(hjUhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjQubah}(h]h ]h"]h$]h&]refdocj refdomainj_reftyperef refexplicitrefwarnj vidioc_expbufuh1hhhhK:hjIubh the }(hjIhhhNhNubj)}(h``fd``h]hfd}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjIubh 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 }(hjIhhhNhNubh)}(h :ref:`DMABUF importing `h]j)}(hjh]hDMABUF importing}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnjdmabufuh1hhhhK:hjIubh 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.}(hjIhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK:hjhhubeh}(h] descriptionah ]h"] descriptionah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(hExamplesh]hExamples}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKBubh 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; }}hjsbah}(h]h ]h"]h$]h&]hhforcelanguagejshighlight_args}uh1jhhhKDhjhhubj)}(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; }}hjsbah}(h]h ]h"]h$]h&]hhjjjsj}uh1jhhhKWhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jV4L.v4l2_exportbuffer (C type)c.V4L.v4l2_exportbufferhNtauh1jhjhhhNhNubj#)}(hhh](j()}(hv4l2_exportbufferh]j.)}(htype v4l2_exportbufferh](hdesc_sig_keyword)}(htypeh]htype}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhjhhhhhKqubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjhhhhhKqubj4)}(hv4l2_exportbufferh]j:)}(hjh]hv4l2_exportbuffer}(hj,hhhNhNubah}(h]h ]jEah"]h$]h&]uh1j9hj(ubah}(h]h ](jLjMeh"]h$]h&]hhuh1j3hjhhhhhKqubeh}(h]h ]h"]h$]h&]hhjWuh1j-jXjYhjhhhhhKqubah}(h]jah ](j]j^eh"]h$]h&]jbjc)jdhuh1j'hhhKqhjhhubjf)}(hhh]h}(h]h ]h"]h$]h&]uh1jehjhhhhhKqubeh}(h]h ](jstypeeh"]h$]h&]jxjsjyjWjzjWj{j|j}uh1j"hhhjhNhNubhtabular_col_spec)}(hhh]h}(h]h ]h"]h$]h&]spec|p{4.4cm}|p{4.4cm}|p{8.5cm}|uh1j[hhhKshjhhubhtable)}(hhh](h)}(hstruct v4l2_exportbufferh]hstruct v4l2_exportbuffer}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKuhjjubhtgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj}ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj}ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj}ubhtbody)}(hhh](hrow)}(hhh](hentry)}(hhh]h)}(h__u32h]h__u32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKzhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h``type``h]j)}(hjh]htype}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhK{hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hType 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 }(hjhhhNhNubh)}(h:c:type:`v4l2_format`h]j)}(hjh]h v4l2_format}(hjhhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjj v4l2_formatuh1hhhhK|hjubh }(hjhhhNhNubj)}(h``type``h]htype}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh or struct }(hjhhhNhNubh)}(h:c:type:`v4l2_requestbuffers`h]j)}(hj%h]hv4l2_requestbuffers}(hj'hhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjjv4l2_requestbuffersuh1hhhhK|hjubh }hjsbj)}(h``type``h]htype}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, set by the application. See }(hjhhhNhNubh)}(h:c:type:`v4l2_buf_type`h]j)}(hjZh]h v4l2_buf_type}(hj\hhhNhNubah}(h]h ](jjsc-typeeh"]h$]h&]uh1jhjXubah}(h]h ]h"]h$]h&]refdocj refdomainjsreftypetype refexplicitrefwarnjjj v4l2_buf_typeuh1hhhhK|hjubeh}(h]h ]h"]h$]h&]uh1hhhhK|hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h ``index``h]j)}(hjh]hindex}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hNumber 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](hJNumber of the buffer, set by the application. This field is only used for }(hjhhhNhNubh)}(h:ref:`memory mapping `h]j)}(hjh]hmemory mapping}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnjmmapuh1hhhhKhjubhI I/O and can range from zero to the number of buffers allocated with the }(hjhhhNhNubh)}(h:ref:`VIDIOC_REQBUFS`h]j)}(hjh]hVIDIOC_REQBUFS}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainjreftyperef refexplicitrefwarnjvidioc_reqbufsuh1hhhhKhjubh and/or }(hjhhhNhNubh)}(h:ref:`VIDIOC_CREATE_BUFS`h]j)}(hjh]hVIDIOC_CREATE_BUFS}(hjhhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]refdocj refdomainj$reftyperef refexplicitrefwarnjvidioc_create_bufsuh1hhhhKhjubh ioctls.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjOubah}(h]h ]h"]h$]h&]uh1jhjLubj)}(hhh]h)}(h ``plane``h]j)}(hjkh]hplane}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjiubah}(h]h ]h"]h$]h&]uh1hhhhKhjfubah}(h]h ]h"]h$]h&]uh1jhjLubj)}(hhh]h)}(hlIndex of the plane to be exported when using the multi-planar API. Otherwise this value must be set to zero.h]hlIndex of the plane to be exported when using the multi-planar API. Otherwise this value must be set to zero.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h ``flags``h]j)}(hjh]hflags}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hFlags 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](h1Flags for the newly created file, currently only }(hjhhhNhNubj)}(h ``O_CLOEXEC``h]h O_CLOEXEC}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, }(hjhhhNhNubj)}(h ``O_RDONLY``h]hO_RDONLY}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, }(hjhhhNhNubj)}(h ``O_WRONLY``h]hO_WRONLY}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh, and }(hjhhhNhNubj)}(h ``O_RDWR``h]hO_RDWR}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh? are supported, refer to the manual of open() for more details.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__s32h]h__s32}(hjHhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjEubah}(h]h ]h"]h$]h&]uh1jhjBubj)}(hhh]h)}(h``fd``h]j)}(hjah]hfd}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1jhj_ubah}(h]h ]h"]h$]h&]uh1hhhhKhj\ubah}(h]h ]h"]h$]h&]uh1jhjBubj)}(hhh]h)}(hGThe DMABUF file descriptor associated with a buffer. Set by the driver.h]hGThe DMABUF file descriptor associated with a buffer. Set by the driver.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj|ubah}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h__u32h]h__u32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h``reserved[11]``h]j)}(hjh]h reserved[11]}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hSReserved field for future use. Drivers and applications must set the array to zero.h]hSReserved field for future use. Drivers and applications must set the array to zero.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]colsKuh1j{hjjubeh}(h]id1ah ]h"]h$]h&]uh1jhhjhhhNhNubeh}(h]examplesah ]h"]examplesah$]h&]uh1hhhhhhhhKBubh)}(hhh](h)}(h Return Valueh]h Return Value}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubh)}(hOn success 0 is returned, on error -1 and the ``errno`` variable is set appropriately. The generic error codes are described at the :ref:`Generic Error Codes ` chapter.h](h.On success 0 is returned, on error -1 and the }(hj hhhNhNubj)}(h ``errno``h]herrno}(hj% hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubhM variable is set appropriately. The generic error codes are described at the }(hj hhhNhNubh)}(h':ref:`Generic Error Codes `h]j)}(hj9 h]hGeneric Error Codes}(hj; hhhNhNubah}(h]h ](jstdstd-refeh"]h$]h&]uh1jhj7 ubah}(h]h ]h"]h$]h&]refdocj refdomainjE reftyperef refexplicitrefwarnj gen-errorsuh1hhhhKhj ubh chapter.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj hhubj)}(hhh]j)}(hEINVAL 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)}(hEINVALh]hEINVAL}(hjh hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjd ubj)}(hhh]h)}(hA queue is not in MMAP mode or DMABUF exporting is not supported or ``flags`` or ``type`` or ``index`` or ``plane`` fields are invalid.h](hDA queue is not in MMAP mode or DMABUF exporting is not supported or }(hjy hhhNhNubj)}(h ``flags``h]hflags}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjy ubh or }(hjy hhhNhNubj)}(h``type``h]htype}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjy ubh or }hjy sbj)}(h ``index``h]hindex}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjy ubh or }hjy sbj)}(h ``plane``h]hplane}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjy ubh fields are invalid.}(hjy hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjv ubah}(h]h ]h"]h$]h&]uh1jhjd ubeh}(h]h ]h"]h$]h&]uh1jhhhKhja ubah}(h]h ]h"]h$]h&]uh1jhj hhhhhNubeh}(h] return-valueah ]h"] return valueah$]h&]uh1hhhhhhhhKubeh}(h](ioctl-vidioc-expbufheh ]h"](ioctl vidioc_expbuf vidioc_expbufeh$]h&]uh1hhhhhhhhKexpect_referenced_by_name}j hsexpect_referenced_by_id}hhsubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksjfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}h]hasnameids}(j hj j hhjjjjjjj j j j u nametypes}(j j hjjjj j uh}(hhj hhhjjj j)jjjjj jjjj j jjju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}j& KsRparse_messages]transform_messages]hsystem_message)}(hhh]h)}(hhh]h3Hyperlink target "vidioc-expbuf" is not referenced.}hj sbah}(h]h ]h"]h$]h&]uh1hhj ubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehlineKuh1j} uba transformerN include_log] decorationNhhub.