Re: Polypaudio action plan



On Wed, 24 Nov 2004 20:19:05 -0500, Colin Walters wrote:
> > Solitare in Windows doesn't use DirectShow to make ding sounds.
> 
> Directly, probably not.  But indirectly via a wrapper API?  Sounds
> reasonable to me.

No, the Windows multimedia architecture looks like this:

Kernel level: drivers and kmixer (for software mixing if hw doesn't
support it)

One level up: WinMM + DirectSound. DirectSound can use WinMM in "hardware
emulation mode" if the drivers don't directly support it otherwise it
talks direct to the hardware via the kernel (mapping the ring buffer etc)

Two levels up: MCI/ACM, legacy Win3.1 API but still used because it
basically does its job quite well. Can play simple media files, some basic
support for WAV and MP3, maybe these days even WMA. It's enough for
simple media players and PlaySound() is implemented in terms of this. MCI
== Media Control Interface, ACM == Audio Compression Manager. No fancy
pipelining here, just "here's some data compressed with codec Foo, play
it". Sits on top of WinMM.

Three levels up: DirectShow. GStreamer equivalent. Audio output operates
in terms of the DirectSound API. WMP uses it, DirectShow is where all the
fancier codecs are implemented.

In other words, it looks pretty much like what you'd expect. At least,
this is my current understanding.

Some pro audio tools uses a totally different architecture on Windows
called ASIO which is designed to work around the limitations of the
Windows audio subsystem - fortunately ALSA was designed with pro audio in
mind and so this isn't necessary on Linux. Of course we might end up just
pushing the bits that are replaced out of the kernel ...



thanks -mike




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]