Hi folks, Now that I have your attention ... :) As some of you may have seen on IRC, I've been trying to rip out the echo-cancellation and related bits from the GIPS code that Google put out under the WebRTC project. The basic stuff is working quite well, and there are lots of handy knobs for us to play with. Most interesting among these are the ones that allow analog gain control and APIs to handle drift between source and sink (which will give us the ability to handle echo between say a webcam mic and internal speakers -- something that we can't handle currently). And as you might have guessed by now, the problem is that the WebRTC code is all C++. It's not very C++-y really (it's even built with -fno-rtti), and fairly straight-forward to use. I was originally thinking of pulling this code into our tree, but there's quite a bit of it, and Colin and I both think it makes sense to package the WebRTC audio processing bits separately. That said, I'd still prefer to just use the code as-is instead of maintaining a C wrapper library around it. This means a conditional build-time dependency on the C++ compiler and libstdc++ for module-echo-cancel (conditional depending on whether you want the WebRTC bits or not). The impact on other code is mainly the addition of PA_C_DECL_BEGIN/END in various headers that didn't previously care about being included in C++ code. IMO this shouldn't affect people who really care about not having C++ as a dep, and gives us the potential to use some nifty features in the WebRTC code. Given this, does anyone have any objections? Cheers, Arun