The msacm32 DLL provides a way to map a given wave format to another format. It also provides filtering capabilities. Those DLLs only implement the proper switch between a caller and a driver providing the implementation of the requested format change or filter operation.
There's nothing specific in Wine implementation compared to Windows one. Here's however a list of the builtin format change drivers (there's no filter driver yet):
Table 13-2. Wine ACM drivers
|imaadp32||IMA ADPCM (adaptative PCM)|
|msadp32||Microsoft ADPCM (adaptative PCM)|
|msg711||Microsoft G.711 (A-Law and μ-Law)|
|msgsm32||Microsoft GSM 06.10|
|winemp3||Wine MP3 (MPEG Layer 3), based on mpglib library|
Note that Wine also supports native audio codecs as well.
All builtin ACM drivers are 32-bit Unicode DLLs.
msacm32 keeps some data cached for all known ACM drivers. Under the key
Software\Microsoft\AudioCompressionManager\DriverCache\driver_nameare kept for values:
aFormatTagCache which contains an array of DWORD. There are two DWORDs per cFormatTags entry. The first DWORD contains a format tag value, and the second the associated maximum size for a
cFilterTags contains the number of tags supported by the driver for filtering.
cFormatTags contains the number of tags support by the driver for conversions.
fdwSupport (the same as the one returned from
fdwSupport are the same values as the
ones returned from