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