[wdmaudiodev] Re: MSVAD: synchronization of MSVAD and WMP with a real soundcard

  • From: "Richard Fricks" <Richard.Fricks@xxxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Thu, 13 Oct 2005 09:34:44 -0700

WMP will send the data based on the clock time returned by the driver it has 
opened. If that clock is running at a different rate then the clock that 
represents actual audio playback I could see where you would get the condition 
you are describing below. Is what I am describing sound like your scenario?

 

Richard Fricks

Technical Lead, Microsoft DDK

 

 

-----Original Message-----
From: wdmaudiodev-bounce@xxxxxxxxxxxxx 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Bosser Frédéric
Sent: Wednesday, October 12, 2005 8:38 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] MSVAD: synchronization of MSVAD and WMP with a real 
soundcard

 

hello,

 

I am developping a virtual audio driver based on the MSVAD sample. The goal is 
to get the sound coming from windows media player (for example...) in the 
driver and add it to the speech in a visioconference application. I have 
modified the CopyTo function and I have the sound buffers in my application ( I 
used shared buffer between kernel and user mode). In my visioconference 
application, I put the sound buffer in a FIFO and add the "music" sound buffer 
with the speech coming from the visioconference.

 

My problem is that my driver seems to not be synchronized! If I play a sound 
file at the same frequency that the one used by the real soundcard (used by the 
visioconference application) my FIFO becomes nearly EMPTY! Then I miss some 
"music" sound buffers when I add the speech samples (from visioconference) with 
the music samples*. 

So my conclusion is that WMP sends the sound data (10 ms. We cannot change this 
value, can we?) too slowly. Since MSVAD is virtual, the interrupt notification 
are not hardware but software with a timer. Each 10 ms this timer simulates the 
real harware interrupt. This timer doesn't seem to be accurate enougth... 

 

So, here are my questions:

- Can I use multimedia timers in the driver? I think they are more accurate.I 
would like to use them in my driver in order to tell WMP to send 10ms of sound 
date EACH 7ms (for example). Is it possible?

- How can I synchronize WMP with my soundcard? but it is important to know that 
the sound coming from WMP passes by my virtual driver , THEN by my 
visioconference application, and FINALLY by the soundcard.

 

Tell me if you want more details.

 

thank you for your answers.

 

Fred

Software engineer

________________________________

Appel audio GRATUIT partout dans le monde avec le nouveau Yahoo! Messenger
Téléchargez le ici ! 
<http://us.rd.yahoo.com/messenger/mail_taglines/default/*http:/fr.messenger.yahoo.com>
  

Other related posts: