[wdmaudiodev] Re: GFX/LFX fullduplex support.

  • From: Hakon Strande <hakons@xxxxxxxxxxxxxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Fri, 5 Sep 2008 15:22:41 -0700

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.

Other related posts: