Commit c9260215 authored by Max Kellermann's avatar Max Kellermann

output/alsa: always redo DrainInternal() after writing

Draining isn't finished just because the period_buffer has run empty. It is only finished after snd_pcm_drain() has succeeded.
parent 543776d9
...@@ -5,6 +5,7 @@ ver 0.21.11 (not yet released) ...@@ -5,6 +5,7 @@ ver 0.21.11 (not yet released)
- wildmidi: log error if library initialization fails - wildmidi: log error if library initialization fails
* output * output
- alsa: fix busy loop while draining - alsa: fix busy loop while draining
- alsa: fix missing drain call
- alsa, osx: fix distortions with DSD_U32 and DoP on 32 bit CPUs - alsa, osx: fix distortions with DSD_U32 and DoP on 32 bit CPUs
* protocol * protocol
- fix "list" with multiple "group" levels - fix "list" with multiple "group" levels
......
...@@ -766,7 +766,7 @@ AlsaOutput::DrainInternal() ...@@ -766,7 +766,7 @@ AlsaOutput::DrainInternal()
/* need to call CopyRingToPeriodBuffer() and /* need to call CopyRingToPeriodBuffer() and
WriteFromPeriodBuffer() again in the next WriteFromPeriodBuffer() again in the next
iteration, so don't finish the drain just yet */ iteration, so don't finish the drain just yet */
return period_buffer.IsEmpty(); return false;
} }
if (!written) if (!written)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment