Matteo Bruni (@Mystral) commented about dlls/dsound/dsound_convert.c:
} }
+void put_quad2surround71(const IDirectSoundBufferImpl *dsb, DWORD pos, DWORD channel, float value) +{ + if (channel == 0) { /* Front left */ + dsb->put_aux(dsb, pos, 0, value); /* Front left */ + + dsb->put_aux(dsb, pos, 2, 0.0f); /* Mute front center */ + dsb->put_aux(dsb, pos, 3, 0.0f); /* Mute LFE */ + dsb->put_aux(dsb, pos, 6, 0.0f); /* Mute side left */ + dsb->put_aux(dsb, pos, 7, 0.0f); /* Mute side right */
This and the next conversion mute the side speakers, while the two in the next patch replicate the front speakers into them. I think we should be consistent one way or another unless there is a good reason not to. Ideally this should be checked on Windows, or at least it should replicate what pipewire / pulseaudio / ffmpeg / some other commonly used sound demuxer does. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/11154#note_143221