[Linux-uvc-devel] Minoru stereo webcam

Laurent Pinchart laurent.pinchart at skynet.be
Mon Feb 2 18:51:34 CET 2009


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



More information about the Linux-uvc-devel mailing list