Alexandre Julliard pushed to branch master at wine / wine
Commits: 3237d949 by Giovanni Mascellani at 2025-11-07T16:18:42+01:00 dsound: Use AUTOCONVERTPCM when initializing the render audio client.
Initializing the audio client without AUTOCONVERTPCM is expected to fail when the requested sampling rate or channel count does not match the mixing format. Such behavior is not currently modeled on Wine, but it should be introduced, and since here we expect automatic format conversion to work we add the flag.
- - - - - bfa7387c by Giovanni Mascellani at 2025-11-07T16:18:42+01:00 dsound: Always require a floating-point mixing format.
The mixer algorithm only supports floating-point, any other format is just unusable for us. Also, AUTOCONVERTPCM is expected to do automatic conversion anyway.
- - - - - a3fd8815 by Giovanni Mascellani at 2025-11-07T16:18:42+01:00 dsound: Simplify computing the mixing format.
- - - - - 94341f9a by Giovanni Mascellani at 2025-11-07T16:18:42+01:00 dsound: Do not query for mixing format support.
Despite its name, IsFormatSupported() doesn't really predict what Initialize() will return, especially when AUTOCONVERTPCM is used. So there's no point querying it, let's just call Initialize() and that will tell whether the format is accepted or not.
It is also useless to change to the recommended format: both if we're going to use a primary buffer or not, the format that is computer in DSOUND_WaveFormat() is what everything else expects, and if it cannot be satisfied there's not point continuing.
- - - - - b1ee321e by Giovanni Mascellani at 2025-11-07T16:18:42+01:00 dsound: Do not query for supported formats for the primary buffer.
We use AUTOCONVERTPCM, so everything is supported anyway.
- - - - -
3 changed files:
- dlls/dsound/dsound.c - dlls/dsound/dsound_private.h - dlls/dsound/primary.c
View it on GitLab: https://gitlab.winehq.org/wine/wine/-/compare/5aa01fd8111e8b8ffcee054f3d1c09...