IsFormatSupported tests & compatibility affects winmm's acceptable formats

Chris Robinson chris.kcat at gmail.com
Thu Aug 4 12:18:16 CDT 2011


On Thursday, August 04, 2011 12:55:51 PM Joerg-Cyril.Hoehle at t-systems.com 
wrote:
> - Except for 48000x2x16 and 48000x2x8, all standard PCM formats I
>   tested yield S_FALSE, i.e. they are rejected.  That means that the
>   native mixer accepts integer formats at its nominal rate (48000),
>   but does not even convert mono to stereo.

MMDevAPI does not normally remix channels or do rate conversions, according to 
MSDN:

http://msdn.microsoft.com/en-us/library/dd370811(v=vs.85).aspx
"An application that uses WASAPI to manage shared-mode streams can rely on the 
audio engine to perform only limited format conversions. The audio engine can 
convert between a standard PCM sample size used by the application and the 
floating-point samples that the engine uses for its internal processing. 
However, the format for an application stream typically must have the same 
number of channels and the same sample rate as the stream format used by the 
device."

However, it is possible to circumvent that:

http://msdn.microsoft.com/en-us/library/dd370876(v=vs.85).aspx
"The audio engine might be able to support an even wider range of shared-mode 
formats if the installation package for the audio device includes a local 
effects (LFX) audio processing object (APO) that can handle format 
conversions."

I don't know how visible APOs are to applications, but accepting multiple 
channel formats and sample rates isn't technically a problem. It's just not 
something typically done.



More information about the wine-devel mailing list