On 26/05/2011 6:11 PM, Chandrashekhar Lavania wrote:
Hi,

I am using linux kernel 2.6.34. I needed to capture VGA frames in YUV format with my Logitech E3500 camera. When I try to do that then I get the following error::

uvcvideo: Failed to submit URB 0 (-90).
VIDIOC_STREAMON: Message too long

This is apparently because the musb does not support high bandwith transfer.


Hence I was trying to reduce the max packet size for ISO transfer. Any idea how this can be done.

I tried to limit the wMaxPacketSize in the uvc_parse_control of uvc_deriver.c file, but it did not work.



The host does not have any control over packet size with uvc, this is decided entirely by the device, this is why gadget has these settings, gadget is a device driver, not a host driver.

The only control a host can have is it can request/limit total bandwidth, but this is only if the device is set up to allow this, for example some devices will have different bandwidth configurations that it can switch between if the host gives a bandwidth limit. For YUV (uncompressed) however the bandwidth is tied directly to the frame size & rate, so there's no way to change bandwidth without compromising on frame rate or size, and again these can only be set to settings that the camera explicitly supports. Even then, for each setting, the packet size is still up to the camera, there's a good chance at lower bandwidths it'll still send the same size packets, just doing it less often.

What hardware are you using for the host? I would look at why it's not supporting the high bandwidth transfer?

Andrew
_______________________________________________
Linux-uvc-devel mailing list
Linux-uvc-devel@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/linux-uvc-devel

Reply via email to