参考 http://blog.chinaunix.net/uid-23424741-id-3977591.html
2.3 分配内存
接下来可以为视频捕获分配内存:
struct v4l2_requestbuffers req;
if (ioctl(fd, VIDIOC_REQBUFS, &req) == -1) {
return -1;
}
v4l2_requestbuffers 结构如下:
struct v4l2_requestbuffers
{
__u32 count; // 缓存数量
enum v4l2_buf_type type; // 数据流类型,必须永远是V4L2_BUF_TYPE_VIDEO_CAPTURE
enum v4l2_memory memory; // V4L2_MEMORY_MMAP 或 V4L2_MEMORY_USERPTR
__u32 reserved[2];
};
使用VIDIOC_REQBUFS,我们获取了req.count个缓存,下一步通过调用VIDIOC_