不知道为什么,我的程序一直在这里exit跳出,是什么设置错了吗?求大佬帮忙
错误为:
2
VIDIOC_DQBUF Error: Invalid argument
代码:
RMVideoCapture cap("/dev/video4", 1);
RMVideoCapture::RMVideoCapture(const char *device, int size_buffer) : video_path(device)
{
fd = open(device, O_RDWR);
buffer_size = size_buffer;
buffr_idx = 0;
cur_frame = 0;
capture_width = 0;
capture_height = 0;
mb = new MapBuffer[buffer_size];
}
RMVideoCapture &RMVideoCapture:perator>>(cv::Mat &image)
{
// std::cout << "current buffr idx: " << buffr_idx << std::endl;
struct v4l2_buffer bufferinfo = {0};
bufferinfo.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
bufferinfo.memory = V4L2_MEMORY_MMAP;
bufferinfo.index = buffr_idx;
if (ioctl(fd, VIDIOC_DQBUF, &bufferinfo) < 0)
{
std:: cout<<2<<std::endl;//myself测试时使用
perror("VIDIOC_DQBUF Error");
exit(1);
}
|