7.45. ioctl VIDIOC_PREPARE_BUF

7.45.1. 名称

VIDIOC_PREPARE_BUF - 准备用于I/O的缓冲区

7.45.2. 概要

VIDIOC_PREPARE_BUF

int ioctl(int fd, VIDIOC_PREPARE_BUF, struct v4l2_buffer *argp)

7.45.3. 参数

fd

open() 返回的文件描述符。

argp

指向结构体 v4l2_buffer 的指针。

7.45.4. 描述

应用程序可以选择调用 ioctl VIDIOC_PREPARE_BUF ioctl,以便在使用 VIDIOC_QBUF ioctl 实际入队之前将缓冲区的所有权传递给驱动程序,并为将来的I/O做好准备。此类准备工作可能包括缓存失效或清理。提前执行这些操作可以节省实际I/O期间的时间。

结构体 v4l2_buffer 结构在 缓冲区 中指定。

7.45.5. 返回值

成功时返回0,出错时返回-1,并且会适当地设置 errno 变量。通用错误代码在 通用错误代码 章节中描述。

EBUSY

文件I/O正在进行中。

EINVAL

不支持缓冲区 type,或者 index 超出范围,或者尚未分配任何缓冲区,或者 userptrlength 无效。