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 JeffSorry 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 processorsHi 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=subscribeUnsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribeModerator: 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/