On Wed Jul 6 06:17:09 2022 +0000, Huw Davies wrote:
It's definitely this patch that causes a regression for me. Specifically, removal of only the second `pulse_probe_settings()` call is enough to trigger it.
ok… that is definitely weird, and I'm not sure how that could happen. Are you using PulseAudio our pipewire-pulse? Could you apply something like the following and see if/how the output differs when doing the second `pulse_probe_settings` vs not doing it?
```patch diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c index bd918b6f260..f3cf3a2c012 100644 --- a/dlls/winepulse.drv/pulse.c +++ b/dlls/winepulse.drv/pulse.c @@ -699,12 +699,20 @@ static void pulse_probe_settings(int render, const char *pulse_name, WAVEFORMATE pa_stream_get_state(stream) == PA_STREAM_CREATING) {} if (pa_stream_get_state(stream) == PA_STREAM_READY) { + if (!pulse_name) + FIXME("Stream ready (render? %d): %s\n", render, pa_stream_get_device_name(stream)); ss = *pa_stream_get_sample_spec(stream); map = *pa_stream_get_channel_map(stream); if (render) length = pa_stream_get_buffer_attr(stream)->minreq; else length = pa_stream_get_buffer_attr(stream)->fragsize; + if (!pulse_name) { + FIXME(" Sample format (size, rate, format): %ld, %u\n", pa_sample_size_of_format(ss.format), ss.rate); + FIXME(" Nb channels: %d\n", map.channels); + FIXME(" Period (bytes): %u\n", length); + FIXME(" Def period: %ld\n", pa_bytes_to_usec(10 * length, &ss)); + } pa_stream_disconnect(stream); while (pa_mainloop_iterate(pulse_ml, 1, &ret) >= 0 && pa_stream_get_state(stream) == PA_STREAM_READY) ```