使用V4L2库打开摄像头,获取摄像头数据,
ioctl(fd,VIDIOC_DQBUF,&buf)
错误
VIDIOC_DQBUF:Invalid argument
错误代码:
bool quit = false;
struct v4l2_buffer buf;
int retry = 0;
while(!quit)
{
if(ioctl(fd,VIDIOC_DQBUF,&buf) == -1)
{
perror("VIDIOC_DQBUF failed!\n");
usleep(10000);
retry ++;
if(retry > 10)
quit = true;
continue;
}
//Process ...
if(ioctl(fd,VIDIOC_QBUF,&buf) == -1)
{
perror("VIDIOC_QBUF failed!\n");
continue;
}
waitKey(100);
}
错误原因: 传入参数 buf未初始化,没用指定type和memory参数
修改:
调用ioctl函数之前初始化buf部分参数
buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
buf.memory = V4L2_MEMORY_MMAP;
之后错误修复
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)