[PATCH] dsound: Use event based threads

Andrew Eikum aeikum at codeweavers.com
Mon Dec 3 10:59:37 CST 2012


On Mon, Dec 03, 2012 at 02:59:07PM +0100, Joerg-Cyril.Hoehle at t-systems.com wrote:
> BTW, I still believe that mixing and resampling would find their best place
> in mmdevapi, not DSound.
> 

Perhaps, but that's provably not what Windows does. Given a format with:
    dwChannelMask = (CHANNEL_BACK_LEFT | CHANNEL_BACK_RIGHT)
and a physical speaker setup containing only:
    (CHANNEL_FRONT_LEFT | CHANNEL_FRONT_RIGHT)
dsound and mmdevapi behave differently. mmdevapi maps the BACK_X
channel entirely out of the respective FRONT_X speaker. dsound splits
about 2/3 of the matching channel, and 1/3 out of the other FRONT
channel, so you hear both signals out of both speakers.

I think the best solution is to have dsound call into the system
openal to perform multichannel mixing and 3D processing. We can start
by getting dsound to have rudimentary support for those features, then
plug openal in as the last step.

Andrew



More information about the wine-devel mailing list