Huw Davies (@huw) commented about dlls/winepulse.drv/mmdevdrv.c:
- if (fmt->nChannels == 0) - return AUDCLNT_E_UNSUPPORTED_FORMAT; - - closest = clone_format(fmt); - if (!closest) - return E_OUTOFMEMORY; - dump_fmt(fmt);
- switch (fmt->wFormatTag) { - case WAVE_FORMAT_EXTENSIBLE: { - WAVEFORMATEXTENSIBLE *ext = (WAVEFORMATEXTENSIBLE*)closest; + switch (mode) { + case AUDCLNT_SHAREMODE_SHARED: + if (!out) + return E_POINTER; Since the other drivers have fairly consistent implementations on the PE-side and unixlib prologues, it would make more sense to copy those. If you want to change them after merging you could do that later.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/2869#note_33368