[wdmaudiodev] AEC in Vista

  • From: Tim Roberts <timr@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Tue, 03 Oct 2006 10:46:43 -0700

I was excited to find an AEC/microphone array sample in the Vista SDK,
until I realized that it was just a demo application showing how to use
the existing Voice Capture DMO, rather than a sample showing how to
WRITE such a DMO.  I have a client with a proprietary hardware-assisted
AEC mechanism in 2K and XP, and they want to know how to implement that
in Vista.  Thus, I have a couple of questions about MFWMADMO.DLL, if I
may.  (Hmm, how do you pronounce MFWMADMO? ;)

This DMO snaggles both incoming and outgoing audio streams, as it must
to do echo cancellation.  How does it do that?  I mean, I think I now
understand the proper way to connect to a microphone source, but I don't
think I know how to eavesdrop on the output end in the same APO. 
Further, the documents say "If AEC is enabled, the DMO can capture
speaker streams only after the audio mixer.  This means that all system
sounds are canceled (per-system cancellation) as well as the far-end
voice."  Again, how does it do that?  I was under the impression that
the only way to accomplish such a thing was by writing GFX sAPO, and
even that is wired to a single output device.  Does the DMO make itself
the GFX sAPO?

This DMO will only work in an application that specifically instantiates
it.  Is there a way to create things so that, for example, I can get AEC
while using the standard Sound Recorder application?

Is there any chance of getting source code for this DMO, or for
providing hooks to allow 3rd party replacement of some of the processing

Tim Roberts, timr@xxxxxxxxx
Providenza & Boekelheide, Inc.

Other related posts: