Comment 43 for bug 355846

Revision history for this message
In , Benjamin Drung (bdrung) wrote :

Created an attachment (id=60)
tentative patch to recover from playback underrun

More investigation from Per Ã
ngström and a patch:

I think I have identified where the problem lies: in the underrun handling of
the playback stream. I don't know what causes the underrun, but the recovery
mechanism does not have the desired effect, so both capture and playback remain
frozen.

In the attached path, which is not of production quality, I call AlsaRestart
when a playback underrun is detected. That seems to recover the situation
without causing apparent problems but it is probably too blunt to be acceptable
as a long-term solution. I am, after all, completely unfamiliar with alsa
programming.

The patch also contains some output statements in the affected functions,
producing the following console output:

playback xrun
capture xrun
AlsaRestart
playback xrun
capture xrun
AlsaRestart
playback xrun
capture xrun
AlsaRestart
[repeated]