xiMU subminiature cameras are connected to PC with USB 2.0.
BULK data transfer is used.
This transfer guaranties data delivery, but it doesn't guarantee constant bandwidth.
With Compatible-Size the camera will work correctly on more USB controllers.
With Enhanced-Size setting - the camera can deliver approx. 25% higher frame-rate and lower CPU usage.
Note - not all controllers and operating systems support Enhanced-Size packets. Please test your configuration first for stability issues.
Since API V3_17_05 we changed communication settings on xiMU cameras to Compatible-Size as default.
For setting of Enhanced-Size use next registry patch: MU_Set_PacketSize__Enhanced.reg
For setting of Compatible-Size use next registry patch: MU_Set_PacketSize__Compatible.reg
More details about configuration and results - TD-MU-0001-USB-Packet-Size-Setting-REV1.pdf
The user application should calculate the available bus speed using function mmGetBusSpeed.
It returns current bus speed in megabits per second and it should be called once on the application startup.
Then the application should call mmSetBusSpeed to set maximum available speed for camera data transfer.
Available bandwidth depends on USB devices connected to host and manufacture of USB host.
It also depends on OS/PC power managment.
On our systems we use
mmSetBusSpeed(handle, 350);
The bus speed is limited when xiMU camera is connected to USB hub. If possible - connect the camera directly to USB port of PC.
In case multiple xiMU cameras are used, each camera has to be connected to a separate USB2 controller, otherwise streaming will not work properly and the user will observe the "Fifo overflow" message in debug output of the application.