I’ve previously mentioned that we’re adding a new low level multimedia audio rendering api for Vista called WASAPI (Windows Audio Session API). As I’d mentioned, all the existing audio rendering APIs in Windows have been replumbed to use this new API.
I just got an email from someone asking for more details about WASAPI.
One of his questions was “How does WASAPI fit in the big picture of multimedia APIs”. It’s actually a good question, because there are so darned many APIs to chose from.
We’re currently targeting WASAPI for people who need to be as absolutely close to the metal as they need to be. We’re not intending it to be a general purpose audio rendering API, frankly WASAPI pushes too many requirements on the application that’s rendering audio for it to be useful as a general purpose API. The biggest hurdle is that to successfully use WASAPI, you need to be able to write a sample rate converter – using WASAPI to render audio requires that you be able to generate audio samples at the sample rate specified by the audio engine – the engine won’t do the SRC for you.
On the other hand, there ARE a set of vendors who have a need for a low level, low latency audio rendering API – most of the applications that fit into this category tend to be pro-audio rendering applications, so we’re publishing the WASAPI interfaces to allow those ISVs to build their applications. These ISVs need to run as close to the metal as humanly possible, and WASAPI will let them get pretty darned close.
For Vista, we’re adding a new high level multimedia API called Media Foundation, or MF. MF is intended to fix some of the limitations in the DirectShow architecture that really can’t be solved without a significant architectural change. In particular, MF streamlines the ability to render media content, fixing several serious deficiencies in the DShow threading model, and allowing for dynamic multimedia graphs. In addition, MF filters are self-contained – they can be built and tested outside the multimedia pipeline. Oh, and MF makes it possible to play back next generation premium content☺.
For the vast majority of applications, they should just stick with the existing audio rendering APIs – none of the changes we’ve done for Vista should break any existing APIs (with the exception of the AUX family of APIs). If you’re interested in playing back the next generation of multimedia content, then you should seriously look at MF – it provides some critical infrastructure that is necessary for high quality multimedia playback that simply isn’t there in previous versions.
It’s my understanding that full documentation of WASAPI will be available for Vista Beta2 (our team has been doing documentation reviews for the past month or so).