87 lines
2.5 KiB
ReStructuredText
87 lines
2.5 KiB
ReStructuredText
.. 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.
|