I knew we were not going to agree. That’s’ ok. ☺ In any case, by fragmented I mean: USB Webcams USB Headsets USB Handsets USB external Mic array USB speakers in display monitor USB microphone in bezel of display monitor Bluetooth Headsets (A2DP and Handset/free profiles) HD Audio integrated endpoints (yes, very common) USB integrated mic array (in laptop bezel with the integrated webcam for instance) HD Audio based integrated HDMI (audio enabled) output HD Audio based external (add-in) HDMI (audio enabled) output Proprietary add-in cards with its own set of endpoints USB audio dongles All of the above endpoints can exist on any PC and while having all are rare a common scenario is combining USB webcam (w/ USB Audio microphone) and the laptop/desktop speaker output. This of course makes it impossible for one driver covering one piece of silicon to properly implement AEC and other algorithms that require sink/source data access. Only the OS infrastructure and the application has both in these cases and since the app IMO should own the experience (and not a piece of hardware) it makes sense (to me) for the app to own the graph and have total control over it. Sincerely, Hakon Strande<mailto:HakonS@xxxxxxxxxxxxx> | Software PM | Microsoft Hardware | (p) 425.705.0637 From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Rian Chung Sent: Friday, September 05, 2008 3:07 PM To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Re: GFX/LFX fullduplex support. Hey Tim, The RTMedia stack itself is not public but it does have some public interfaces. The public interfaces go by the names UCCP/UCCA (Client) and OOTY (Server). Office communicator and Live messenger are built using UCCP/UCCA. -Rian From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Tim Roberts Sent: Friday, September 05, 2008 1:32 PM To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Re: GFX/LFX fullduplex support. Hakon Strande wrote: It is also there to be USED by applications in their audio graph and as an example of that the Microsoft RTMedia API includes this AEC DMO and most other communication processing algorithms an application will need. I have never encountered the phrase "Microsoft RTMedia API" before, and neither Google nor MSDN provides any help. Is that an official name for something I might know by some other name? In Vista I don’t see the need to ship AEC, mic array processing, etc in a device centric fashion anymore especially because you cannot guarantee that YOUR input and output endpoints controlled by your driver will BOTH be the ones used by the user’s communication applications. In the most general case, you are correct. However, more than 99.99% of the time, a system has exactly one output device, and I only care about my own input device. It's hard to see how that can go wrong. Given the fragmented device ecosystem... Is that really the case any more? At one time, long ago, this was certainly true. Today, however, audio is becoming one of the most homogenous subsystems there is. Intel claims that 95% of PCs and 100% of Macs on sale today include HDAudio hardware. Excluding special-purpose professional audio systems, the audio ecosystem is FAR more homogenous today than the graphics ecosystem, or even the networking ecosystem. ...AEC really belongs in the app graph and not as a device (one piece of silicon) specific feature although I am sure the community will disagree with me Based on the feedback I get from my clients, yes, the community disagrees. ;) -- Tim Roberts, timr@xxxxxxxxx<mailto:timr@xxxxxxxxx> Providenza & Boekelheide, Inc.