具有VIDIOC_QUERYCAP请求的函数调用ioctl不会返回

时间:2015-10-30 05:18:55

标签: v4l2

我编写了一个从/ dev / video0捕获视频的程序。 (打开VLC即可)。 我使用v4l2 api(在http://linuxtv.org/downloads/v4l-dvb-apis/capture-example.html

当init设备,函数调用 ioctl(fd,VIDIOC_QUERYCAP,& cap)没有返回时,它会阻止我的程序。

if (-1 == xioctl (fd, VIDIOC_QUERYCAP, &cap))
{
    if (EINVAL == errno)
    {
        fprintf (stderr, "%s is no V4L2 device\n", dev_name);
        opened = false;
        return false;
    } else
    {
        return errno_exit("VIDIOC_QUERYCAP");
    }
}

我必须杀死这个过程。之后,我再次在VLC中打开/ dev / video0,VLC无法播放视频,直到我重新启动电脑。

如何为ioctl设置超时?谢谢!

0 个答案:

没有答案