3

我有 2 个 USB 网络摄像头连接到我的 debian 6 盒子。一个是a Logitech QuickCam Orbit,另一个是a Logitech QuickCam 4000 Pro

目前 Orbit 显示为/dev/video04000 Pro 为/dev/video1.

两个摄像头似乎都工作正常,也就是说,我可以同时打开它们/dev/video0并且/dev/video1没有错误。我可以使用video4Linux ioctl(). 我可以使用video4linux ioctl()--all 设置他们的捕获格式而不会出错。司机似乎工作得很好。

select()然后我为这两个文件描述符进行了设置,但select()从未为/dev/video1文件描述符触发。

这是我的select()相关代码:

FD_ZERO(&readFDS);
FD_SET(nCaptureReadPipeFD, &readFDS);   // this is a control channel for my thread
FD_SET(nCameraOneFD, &readFDS);
if (nNumberOfCameras == 2) FD_SET(nCameraTwoFD, &readFDS);

nReturnCode = select(nSelectFD, &readFDS, NULL, NULL, NULL);

我想我是select()正确的——我已经检查了所有相关的文件描述符,它们对应于open()调用返回的相应文件描述符。select()调用中使用的文件描述符nSelectFD确实比最大的文件描述符多 1。

但仍然没有采取任何行动/dev/video1

使用多台相机时,我是否必须处理主要/次要设备编号?

4

0 回答 0