[PATCH v12 0/8] MR337: winepulse: Return device-specific values for GetMixFormat and GetDevicePeriod

Claire (@ClearlyClaire) wine at gitlab.winehq.org
Wed Jul 6 05:53:22 CDT 2022


On Wed Jul  6 06:50:31 2022 +0000, **** wrote:
> Marvin replied on the mailing list:
> ```
> Hi,
> It looks like your patch introduced the new failures shown below.
> Please investigate and fix them before resubmitting your patch.
> If they are not new, fixing them anyway would help a lot. Otherwise
> please ask for the known failures list to be updated.
> The full results can be found at:
> https://testbot.winehq.org/JobDetails.pl?Key=118336
> Your paranoid android.
> === debian11 (build log) ===
> ../wine/dlls/winepulse.drv/pulse.c:696:18: error: ‘pulse_name’
> undeclared (first use in this function); did you mean ‘pulse_fmt’?
> Task: The win32 Wine build failed
> === debian11 (build log) ===
> ../wine/dlls/winepulse.drv/pulse.c:696:18: error: ‘pulse_name’
> undeclared (first use in this function); did you mean ‘pulse_fmt’?
> Task: The wow64 Wine build failed
> ```
So, from your last comment, probing the default audio source (even when not doing anything with the result…) a first time before enumerating devices and probing the audio sinks works, but if the first probe of the default source happens after enumerating devices and probing the discovered sinks, it fails.

I cannot reproduce this issue, and I don't have a definite explanation on what may be going on.

My only guesses are that either the following happens:
1. probing sinks alters the way in which PulseAudio will subsequently chose a source when no device name is specified (the documentation states “Name of the source to connect to, or NULL to let the server decide”, it does not explain how PulseAudio selects the source, and https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/767 suggests it's more complicated)
2. probing one of the sinks causes subsequent issues when probing other devices, and the error handling is lacking

For these reasons, I have chosen to special-case the probing of the default sink and source to be performed before any enumeration and probing of other devices. I have also added error logging in case that change would obscure errors when probing other devices.

It may also make sense considering using the `@DEFAULT_SINK@` and `@DEFAULT_SOURCE` names instead of blank names, though this would require more investigation and if possible i would like to defer that to another PR.

-- 
https://gitlab.winehq.org/wine/wine/-/merge_requests/337#note_3437



More information about the wine-devel mailing list