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
Linux-uvc-devel@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/linux-uvc-devel

Reply via email to