On Monday 02 February 2009, Jan Ciger wrote: > Hi Laurent, > > I have applied your patch and here are the data: > > - luvcview -s 640x480 -i 30 -d /dev/video0 > uvcvideo: device Vimicro USB2.0 PC Camera requested 3072 bytes per payload. > > - luvcview -s 320x240 -i 30 -d /dev/video0 > uvcvideo: device Vimicro USB2.0 PC Camera requested 3072 bytes per payload. > > - luvcview -s 176x144 -i 30 -d /dev/video0 > uvcvideo: device Vimicro USB2.0 PC Camera requested 3072 bytes per payload. > > - luvcview -s 160x120 -i 30 -d /dev/video0 > uvcvideo: device Vimicro USB2.0 PC Camera requested 3072 bytes per payload. > > It makes no difference whether I am asking for 30 or 15fps neither - > always 3072 bytes are requested.
That's bad. The USB EHCI driver will reject 2x 3072 bytes per microframe as exceeding the available bandwidth. I suppose you'll object that the cameras work on Windows, so I'll try to address that :-) I see three possible reasons why Windows would stream video from both cameras at the same time. - The Windows UVC driver might query the cameras slightly differently and receive a different bandwidth. A USB sniffer would help confirm or infirm this explanation. - The Windows UVC driver might ignore the requested bandwidth and compute a value itself. - Windows might accept 2x 3072 bytes per microframe. I seem to remember this might be the case, and that that behaviour is buggy according to the USB 2.0 spec. You would have to contact the linux-usb mailing list for more information on that. It would be helpful if you could capture all USB control traffic from device enumeration to video streaming using a USB analyser (a software one will do). It would show what bandwidth the device requests, and what bandwidth the Windows UVC driver selects. Best regards, Laurent Pinchart _______________________________________________ Linux-uvc-devel mailing list [email protected] https://lists.berlios.de/mailman/listinfo/linux-uvc-devel
