.. 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 ` 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.