[wdmaudiodev] Re: WaveRT model conceptual flaw

  • From: "Jose Catena" <jc1@xxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Thu, 4 Jun 2009 22:53:51 +0200

Thanks Frank!

Thanks God! I missed it in the docs, everywhere the timed polling is used
and recommended.
I'm very excited with WaveRT for mapping the buffer and playback position to
user memory, among other advantages. What a clever design!
Still I think MS should review what I wrote about using a timer instead of a
callback based on audio driver interrupt. I think something important were
overlooked when someone decided to use a timer, like doubled latency for a
given interrupt rate to begin with.
The intended avoidance of extra kernel/user transitions is not true, both
methods are originated by an interrupt and ended in signaling user code. So
I think the recommendation to use timers should be changed.

Thanksfully there's the right thing I missed, so now everything looks
perfect.

Well, well, well, and here is it the right way from
http://msdn.microsoft.com/en-us/library/dd370844(VS.85).aspx

In addition, the IAudioClient::Initialize method supports an
AUDCLNT_STREAMFLAGS_EVENTCALLBACK flag that enables an application's
buffer-servicing thread to schedule its execution to occur when a new buffer
becomes available from the audio device. By using these features, an
application thread can reduce uncertainty about when it will execute,
thereby decreasing the risk of glitches in a low-latency audio stream.

Thanks God there's finally the right people designing these very needed and
key architectural improvements.

Jose Catena
DIGIWAVES S.L.


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

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.com/

Other related posts: