ioctl VIDIOC_PREPARE_BUF
Prev | Appendix A. Function Reference | Next

## Name

VIDIOC_PREPARE_BUF — Prepare a buffer for I/O

## Synopsis

`int ioctl(` | int fd,
| int request,
| struct v4l2_buffer *argp`)`;

## Arguments

`fd`

  File descriptor returned by `open()`.

`request`

  VIDIOC_PREPARE_BUF

`argp`

## Description

### Experimental

This is an experimental interface and may change in the future.

Applications can optionally call the `VIDIOC_PREPARE_BUF` ioctl to pass ownership of the buffer to the driver before actually enqueuing it, using the `VIDIOC_QBUF` ioctl, and to prepare it for future I/O. Such preparations may include cache invalidation or cleaning. Performing them in advance saves time during the actual I/O. In case such cache operations are not required, the application can use one of `V4L2_BUF_FLAG_NO_CACHE_INVALIDATE` and `V4L2_BUF_FLAG_NO_CACHE_CLEAN` flags to skip the respective step.

The v4l2_buffer structure is specified in the section called “Buffers”.

## 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 Generic Error Codes chapter.

EBUSY

  File I/O is in progress.

EINVAL

  The buffer `type` is not supported, or the `index` is out of bounds, or no buffers have been allocated yet, or the `userptr` or `length` are invalid.

Prev | Up | Next
ioctl VIDIOC_OVERLAY | Home | ioctl VIDIOC_QBUF, VIDIOC_DQBUF