[wdmaudiodev] Re: Capture latency with USB card

Hello Michael,

As you point out, the devices and the applications themselves are
wildcards in determining the latency. For example, submitting data
buffers greater than 10 ms will increase the latency due to the need to
wait for a second 10 ms request to complete. Submitting buffers less
than 10 ms may have similar affects if that value is not evenly
divisible into 10 though to a lesser degree. (For example, if you submit
a 7 ms sized data buffer it will be filled by the first URB submitted by
the driver, but the second would have to wait for the second to complete
at 20 ms). It should be stable across a single record pass given these
constraints. The latency through the driver itself is not published. I
will try to make these calculations and report them to you.

Thanks,
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 Michael Webster
Sent: Wednesday, June 25, 2003 11:16 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: Capture latency with USB card

Hi DJ,

You mention that we can expect AT LEAST 10mS of latency with the USB
audio
driver. Obviously the devices and applications that are using the driver
will have varied latency, but is there a variability in the latency of
the
driver itself?  If so, can we at least count on it being stable for a
single
record pass?  Is the latency through the driver published anywhere, or
can
it be calculated?

Thanks,

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


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/



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

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: