Streaming on USB 2.0 bulk camera device
- From: Victor <Victor@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Sun, 18 Jun 2006 04:02:45 GMT
I have written a streaming isochronous client driver to support our USB 2.0
camera device. In USB 2.0, each isochronous endpoint can only transmit 3 x
1024 bytes per microframe, which means a transfer rate of 24 MB/s. It is not
fast enough to handle data coming from our camera, which can go up to 40 MB/s
and above.
Since the camera is the only device on the whole USB bus, I have modified
the driver and the camera firmware to do bulk transfer in order to maximize
the throughput. The problem I have encountered is that I can only send one
IRP to lower driver if I do bulk (for isochronous, I can send multiple IRPs
down). If I send more than one IRP, it will stop incoming data from device
(I don't understand why). Since data stream from camera is continuous, there
will be severe data loss between the period that lower driver returns the IRP
to my driver and my driver sends the IRP down to lower driver.
Could someone point me to a right approach to tackle this problem. Thanks
in advance.
Victor
.
- Follow-Ups:
- Re: Streaming on USB 2.0 bulk camera device
- From: Tim Roberts
- Re: Streaming on USB 2.0 bulk camera device
- From: Maxim S. Shatskih
- Re: Streaming on USB 2.0 bulk camera device
- Prev by Date: Re: 25 microseconds?
- Next by Date: Re: sync/async NdisTransferData()
- Previous by thread: Re: 25 microseconds?
- Next by thread: Re: Streaming on USB 2.0 bulk camera device
- Index(es):
Relevant Pages
|