[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