We have a USB 2.0 device that outputs small multiples of MPEG2 TS
packets(188 bytes), and therefore need to queue
up multiple BULK requests to the USB bus driver(USBD) in order to keep the
MPEG2 video flowing without
dropping packets. Since in BULK mode our requests are not aligned on 512
byte boundaries, submitting a
large buffer to the USBD does not help, since in BULK mode a transaction of
less than 512 bytes ends the session.
So the question is: What is the best way to queue up multiple BULK
requests with small buffers in the driver?
Are System Work Items a way to go, queue up multiple initially, then requeue
in the callback?
The DDK docs indicate that the System thread pool is a shared resource and
should be used sparingly...
Any suggestions would be appreciated.
Thanks
-decoder