| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
- .. c:namespace:: V4L
- .. _VIDIOC_REMOVE_BUFS:
- ************************
- ioctl VIDIOC_REMOVE_BUFS
- ************************
- Name
- ====
- VIDIOC_REMOVE_BUFS - Removes buffers from a queue
- Synopsis
- ========
- .. c:macro:: VIDIOC_REMOVE_BUFS
- ``int ioctl(int fd, VIDIOC_REMOVE_BUFS, struct v4l2_remove_buffers *argp)``
- Arguments
- =========
- ``fd``
- File descriptor returned by :c:func:`open()`.
- ``argp``
- Pointer to struct :c:type:`v4l2_remove_buffers`.
- Description
- ===========
- Applications can optionally call the :ref:`VIDIOC_REMOVE_BUFS` ioctl to
- remove buffers from a queue.
- :ref:`VIDIOC_CREATE_BUFS` ioctl support is mandatory to enable :ref:`VIDIOC_REMOVE_BUFS`.
- This ioctl is available if the ``V4L2_BUF_CAP_SUPPORTS_REMOVE_BUFS`` capability
- is set on the queue when :c:func:`VIDIOC_REQBUFS` or :c:func:`VIDIOC_CREATE_BUFS`
- are invoked.
- .. c:type:: v4l2_remove_buffers
- .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.5cm}|
- .. flat-table:: struct v4l2_remove_buffers
- :header-rows: 0
- :stub-columns: 0
- :widths: 1 1 2
- * - __u32
- - ``index``
- - The starting buffer index to remove. This field is ignored if count == 0.
- * - __u32
- - ``count``
- - The number of buffers to be removed with indices 'index' until 'index + count - 1'.
- All buffers in this range must be valid and in DEQUEUED state.
- :ref:`VIDIOC_REMOVE_BUFS` will always check the validity of ``type``, if it is
- invalid it returns ``EINVAL`` error code.
- If count is set to 0 :ref:`VIDIOC_REMOVE_BUFS` will do nothing and return 0.
- * - __u32
- - ``type``
- - Type of the stream or buffers, this is the same as the struct
- :c:type:`v4l2_format` ``type`` field. See
- :c:type:`v4l2_buf_type` for valid values.
- * - __u32
- - ``reserved``\ [13]
- - A place holder for future extensions. Drivers and applications
- must set the array to zero.
- Return Value
- ============
- 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 <gen-errors>` chapter. If an error occurs, no
- buffers will be freed and one of the error codes below will be returned:
- EBUSY
- File I/O is in progress.
- One or more of the buffers in the range ``index`` to ``index + count - 1`` are not
- in DEQUEUED state.
- EINVAL
- One or more of the buffers in the range ``index`` to ``index + count - 1`` do not
- exist in the queue.
- The buffer type (``type`` field) is not valid.
|