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