[wdmaudiodev] Re: WavePCI issue with multiple processors

  • From: "Jeff Pages" <jeff@xxxxxxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Wed, 28 Mar 2007 09:07:06 +1000

Hi Jerry,

Actually I'm not using an event, I have a timer loop that periodically calls GetBuffer on each endpoint's IAudioCaptureClient interface. I read all the problems you were having with the event method a few weeks back, and if time permits I might do a bit of experimenting myself.

The problem I'm currently having with my WavePCI drivers running beneath this thing is that occasionally, randomly, maybe once a day perhaps, the stream just stops - the driver receives no more mappings and the application's calls to GetBuffer receive no more buffers. I thought I'd finally nailed it yesterday with a race condition I found in my calls to GetMapping, but it stopped again late in the afternoon :-(.

Jeff

----- Original Message ----- From: "Jerry Evans" <jerry@xxxxxxxxxxx>
To: <wdmaudiodev@xxxxxxxxxxxxx>
Sent: Tuesday, March 27, 2007 9:32 PM
Subject: [wdmaudiodev] Re: WavePCI issue with multiple processors


Hi Jeff

Sorry to hj your thread - I've a question about Vista Core Audio and Exclusive mode. Does your test app create its notification event set up in manual or auto-reset mode? And does this impact your driver at all?

The docs are unclear and no one else seems to know!

Thx

Jerry.

----- Original Message ----- From: "Jeff Pages" <jeff@xxxxxxxxxxxxxxxx>
To: <wdmaudiodev@xxxxxxxxxxxxx>
Sent: Tuesday, March 27, 2007 2:58 AM
Subject: [wdmaudiodev] Re: WavePCI issue with multiple processors


Hi Eugene,

A probability of that a new mapping becomes available exactly within
this window, is almost zero.

You're right, of course. I was thinking I had to reacquire my spin lock after the unsuccessful call to GetMapping, but looking at it now, that's not necessary, and I can just call InterlockedDecrement on my InAcquisitionLoop variable and exit.

And a well-optimized driver itself cannot guarantee that all Windows
audio subsystems will function quickly and reliably. Even DirectSound
with hardware buffers introduces a significant overhead and software
buffers and/or MME introduce much more overhead. So you can achieve a
reproducible high performance only if your well-optimized application
uses your well-optimized audio driver directly via its wave/topology
interfaces.

For this particular application, I'm using the Vista Core Audio API in exclusive mode, and this was when some of the wrinkles in my WavePCI drivers started showing up. I'm now using your suggestion with the interlocked InAcquisitionLoop variable and so far it's all hanging in there!

Thanks for your help.

Jeff
******************

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/



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

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/




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

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: