Ubuntu虚拟机用V4L2图像采集总是隔一段时间就卡死在VIDIOC

您所在的位置:网站首页 pve运行一段时间就死机 Ubuntu虚拟机用V4L2图像采集总是隔一段时间就卡死在VIDIOC

Ubuntu虚拟机用V4L2图像采集总是隔一段时间就卡死在VIDIOC

2024-07-15 13:42| 来源: 网络整理| 查看: 265

Ubuntu虚拟机用V4L2图像采集总是隔一段时间就卡死在VIDIOC_DQBUF

最近在编写一个项目时使用v4l2进行图像采集,持续采集一段时间后程序就会卡死在 ioctl(camfd , VIDIOC_DQBUF, &v4lbuf); 这个语句中。 经过在网络上进行搜索,发现用一个select函数可以对阻塞进行监听:

int ts; fd_set fds; struct timeval tv; FD_ZERO (&fds); FD_SET (camfd, &fds); /* Timeout. */ tv.tv_sec = 2; tv.tv_usec = 0; ts = select (camfd + 1, &fds, NULL, NULL, &tv); if(ts == 0) { //重新初始化视频采集 } ioctl(camfd , VIDIOC_DQBUF, &v4lbuf);

如果出现阻塞,那么ts返回值为0,就ts的值进行判断,如果ts为0,那么就重新初始化视频采集的流程,即可避免程序一直阻塞在VIDIOC_DQBUF这里。 出现阻塞的原因还不能确定,排除了分辨率的原因,应该和虚拟机有关系。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3