http://bugs.winehq.org/show_bug.cgi?id=28517
--- Comment #19 from Andrew Eikum aeikum@codeweavers.com 2011-10-05 10:01:07 CDT --- (In reply to comment #15)
Created attachment 36724 [details] Underrun recovery requires a fast forward.
My patch likely conflicts with Andrew Eikum's but addresses something different, yet still related to underruns. In "streaming mode" (which dmix and pulse use), when an underrun happens, for instance because the apps sends no data, which it is perfectly allowed to do, ALSA must be told to skip over the N seconds of underruns that it keeps counting while playing nothing.
I'd be interested to hear how that patch helps. Such a mechanism is needed regardless of Andrew's other changes.
Would you agree that this is addressed by the patch I just attached in Comment 18? Take a look at http://bugs.winehq.org/attachment.cgi?id=36726&action=diff#a/dlls/winealsa.drv/mmdevdrv.c_sec10. When an underrun occurs, the PCM handle is recovered, reset, and prepared, which is about the same as what your patch in Comment 15 does.