On 04/27/2010 04:52 AM, Paulo Assis wrote:
Dennis,
Can anyone suggest a way to configure the cameras at a higher framerate
without overloading the USB bus? Suppose I can read at 10 fps right now
without overloading the USB bus. I'd like to set the framerate to 15, but
still just capture around 10.
You can grab frames at whatever speed you want, but it's the camera
framerate that will make a difference in the usb bandwidth and not the
amount of frames you get with your application.
This is correct. No matter what speed I dequeue buffers at, if the
cameras are configured to capture at 15 fps I can't start more than
about 3 at a time. The rest will error with "No space left on device"
which is passed up from the usb layer when the UVC drivers tries to
queue the USB URBs. (Note that the error happens when URBs are
submitted, not when the interface is claimed, which tells me that
perhaps there is a way modify something in the kernel to not submit as
many URBs but still capture the images from all the cameras since it's
at the point the interface is claimed that the camera is ready to send
images at 15 fps.)
Is the 10 fps limit achieved with compressed (MJPG) or uncompressed
(YUV) frames ?
MJPG. I can read a lot more frames/sec with MJPG than with YUYV.
Using compressed frames should allow for much higher framerates when
using multiple cameras. Resolution will also have an impact on the
bandwidth.
True again. I can read up to 20 fps with 8 cameras in VGA mode. I'm
interested in capturing as high a resolution as possible. Above 960x720
and I can only do 10 fps before the bandwidth limit.
Another alternative is to add another usb controler to you system, (a
usb pci card if you are using a standard pc).
As an example using MJPG I have no problem in using 3 cameras
simultaneous (800x...@20 fps)
It's actually an embedded device. I am using an external hub to connect
the cameras but there is only one USB bus on the base unit. I'm not
sure exactly where the "No space left on device" error is originating.
Anyone know if this is an error propagated back from the physical USB
hub or if somewhere in the kernel there is code attempting to follow the
USB spec and not allocate over a certain percentage of the bandwidth to
ISO endpoints?
-Dennis
_______________________________________________
Linux-uvc-devel mailing list
Linux-uvc-devel@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/linux-uvc-devel