This file contains information about the implementation of the multimedia layer of Wine.
The implementation can be found in the dlls/winmm/ directory (and in many of its subdirectories), but also in dlls/msacm/ (for the audio compression/decompression manager) and dlls/msvideo/ (for the video compression/decompression manager).
Written by Eric Pouech <Eric.Pouech@wanadoo.fr> (Last updated: 02/16/2001)
The multimedia stuff is split into 3 layers. The low level (device drivers), mid level (MCI commands) and high level abstraction layers. The low level layer has also some helper DLLs (like the MSACM/MSACM32 and MSVIDEO/MSVFW32 pairs).
The low level layer may depend on current hardware and OS services (like OSS on Unix). Mid level (MCI) and high level layers must be written independently from the hardware and OS services.
There are two specific low level drivers (one for wave input/output, another one for MIDI output only), whose role is:
help choosing one low level driver between many
add the possibility to convert streams (ie ADPCM => PCM)
add the possibility to filter a stream (adding echo, equalizer... to a wave stream), or modify the instruments that have to be played (MIDI).
All of those components are defined as DLLs (one by one).