[wdmaudiodev] Re: Capture latency with USB card

  • From: "DJ Sisolak" <dsisolak@xxxxxxxxxxxxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Wed, 25 Jun 2003 10:46:56 -0700

Hello Pierre et al,

In the USB Audio driver as it exists in XP you can expect at least a
latency of 10 ms by design plus whatever time it takes to do the data
copy to the submitted buffers. There are several factors which cause
this. 10 milliseconds of data are gathered by the USB Audio driver in a
single URB request. When capturing from USB there is no guarantee that
the device will completely fill the submitted data buffer for the
packet. The URB indicates the amount of data filled in. Thus it is
necessary to copy that data from the request to the data buffer
submitted by the application instead of filling that buffer directly. It
was not an option not to compact the data this way since applications
like sndrec32 depended on the data being supplied this way.

Granted the choice of 10 milliseconds per request was based on making
the math for the driver easier and decreasing IRP overhead. It could
likely be trimmed down in future versions, but that is how it works now.

DJ Sisolak
Microsoft Corp.

This posting is provided "AS IS" with no warranties, and confers no
rights.

-----Original Message-----
From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Andrew Sherbrooke
Sent: Wednesday, June 25, 2003 10:23 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: Capture latency with USB card

Hi Pierre,

>With a USB audio device though, the minimum stable delay I can get is
>around 20-25 ms.
>The cause of the problem seems to be the instability of the capture
side.
>I measure the time
>between capture events and I get delays up to 20ms on USB where it
should
>be 5ms.
> 
>I am using Microsoft USB audio driver (latest version) and I heard that
>it can achieve better
>performance. Did anybody experienced such problems with USB audio? 
> 
I had similar experiences. The events I was waiting on were being
signaled
at such uneven intervals that my latency was fairly unusable - it would
tick along regularly for a while (every few ms, corresponding to my
buffer
size), then I'd suddenly get a delay which was greater by at least a
factor of 10. Although this problem seemed to be more significant when I
added capture, I don't recall verifying that it was explicitly because
of
the capture side, as opposed to a result of running capture and render
together...

Sincerely,

Andrew Sherbrooke
Art & Logic
Lead Engineer, Audio/Media Development
asher@xxxxxxxxxxxx
www.artlogic.com


******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:
mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.de/

******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.de/

Other related posts: