Want to Backup your DVDs? Learn How!
Learn to Burn Videos, Movies & TV Shows onto CDs!
Learn to create, capture, copy, edit, and burn your own genuine DVDs!
Copy DVDs with ease!
Want to Create Your Own Video CDs?
Complete DVD burning solution
Find out everything about anything. Click here!
The Windows Audio Compression Manager (MSACM32.DLL) allows an application to convert data between different formats. By itself, the ACM is not capable of performing any conversions. Instead, it relies on installable drivers to perform specific conversions. These drivers are called codecs, converters, or filters. (Sometimes the term “codec” is used in a more generic sense, to refer to all three types of ACM drivers.)
A codec converts from one format to another; for example, from PCM to MS-ADPCM.
A converter converts between different types of the same format; for example, between 8- and 16-bit PCM, between mono and stereo, and between different PCM sampling frequencies.
A filter modifies the audio data without changing the format; for example, an echo filter might make a 44,100 Hz PCM wave file sound different, but it would still be a 44,100 Hz PCM file.
There are several ACM drivers that are automatically installed with the Windows 98 system (other ACM drivers can be installed at any time). There are drivers that provide support for the compressed formats MS-ADPCM, IMA ADPCM, the GSM 6.10 standard, the TrueSpeech voice and the MPEG Layer-3 coding format.
The Fraunhofer IIS MPEG Layer-3 Codec (advanced) codec (L3CODECA.ACM) can encode PCM data to MPEG Layer-3 and decode the resulting MPEG Layer-3 data. Unfortunately the “advanced” version shipped with Windows 98, NetShow 2.0 and Internet Explorer 4.01 was crippled by its makers so that it supports MPEG Layer-3 encoding only at low bitrates (max. 56 kBit/s, 24,000 Hz, Stereo) that is approximately only half as good as the CD digital audio sound quality (128 kBit/s, 44,100 Hz, Stereo). The “professional” version of this codec (L3CODECP.ACM) which is sold separately by a distributor Opticom supports higher encoding bitrates too. We were also told that the full-featured version of a MPEG Layer-3 ACM codec (all bitrates) is also included in an application named ‘MP3 Compressor’ (Filename: mp3compr.exe, Size: 1,143,723 Bytes) available on different ftp sites over the Internet. However this free application is probably an illegal or a patched copy of a commercial product so you should avoid using it.
Audio Compression Manager (ACM) is an extension of MMSYSTEM and is installed as a mapper. This means the ACM uses the driver-interface mapper hooks for WAVE devices. Using these hooks allows the ACM to decode or encode WAVE data before passing it to or from the WAVE device driver. The ACM can search for a CODEC or converter that supports the given source format for translation to the destination format acceptable by the target WAVE device.
When an application uses the waveOutOpen( ) or waveInOpen( ) functions to ask MMSYSTEM to open a WAVE device for input or output, the function specifies the WAVE data format in the fdwOpen and the device in the uDeviceID parameters:
If fdwOpen does not specify the WAVE_MAPPED flag, MMSYSTEM tries to use the specified format directly with the specified device ID, and the function fails if the device does not support the format.
If fdwOpen specifies the WAVE_MAPPED flag, the uDeviceID parameter must specify the waveform-audio device that the ACM will map to. The ACM queries the WAVE device to see if the device supports the given format. If the device does not support the format, the ACM searches for a CODEC or converter that converts the specified format into a format that is supported by the device specified by uDeviceID. If the search is successful, the ACM can honor requests to play or record the format originally requested, even though the waveform-audio device does not directly support that format. All of this occurs transparently to the application.
The ACM also offers additional services to support compression, decompression, filtering, format selection, and filter selection. It provides a standard API set that it supports by calling its own drivers.