On 01/05/2012 12:55 PM, Joerg-Cyril.Hoehle at t-systems.com wrote: > David Henningsson wrote: > >> in Oneiric (and PulseAudio 1.0) > Do you mean "in PA 1.0, which is the one included in Oneiric"? Yes, PulseAudio 1.0, and an alsa-plugins package that makes use of the new information, are both included in Oneiric. Sorry for the ambiguity. > Or do you really mean Ubuntu-specific patches? > Or simply a backport of 1.0 into Oneiric? > > >> [...caused by the asynchronous nature of PulseAudio...] > Very interesting read, thank you. > > I'll summarize your explanation saying that XRUN mode is not reliable in PA< 1.0. > > A few month ago, we had ALSA run in what I call streaming or nonstop mode, i.e. > with stop_threshold = boundary and some values of silence_size&threshold. > > Would you recommend using the nonstop mode with PA? I feel I know too little about wine to give a recommendation, but I'd think that wine is a big enough project to justify a pulseaudio driver, one that talks to PulseAudio directly without passing through the ALSA-Pulse plugin. If that is not an option, I'd suggest relying on the XRUN message for PulseAudio 1.0 and not relying on XRUN for PulseAudio < 1.0. If there still are XRUN related bugs in PulseAudio 1.0, we should try to sort them out. > We reverted that for several reasons as it didn't work well with ALSA in general (I can't > remember exactly, but to detect underruns it needs reliable avail_update> buffer_size, > also I remember issues with dmix when trying snd_pcm_forward to catch up after > an underrun, as well as dmix' behaviour of playing silence while catching up, which > explains why people hear silence despite megabytes fed to ALSA -- it was simply > considered too late, e.g. snd_pcm_delay< 0). > > Yet I could imagine changing Wine to behave as follows: > if pulse is detected as the ALSA plugin backend, use nonstop mode and rely on > avail_update>buffer_size to detect underruns; otherwise rely on XRUN. > > Underrun detection and recovery is an essential requirement for producing sound reliably. For some applications, yes. -- David Henningsson, Canonical Ltd. http://launchpad.net/~diwic