Merge branch 'v0.21.x'
This commit is contained in:
commit
30ca6b8881
2
NEWS
2
NEWS
|
@ -18,6 +18,8 @@ ver 0.21.11 (not yet released)
|
||||||
* decoder
|
* decoder
|
||||||
- wildmidi: log error if library initialization fails
|
- wildmidi: log error if library initialization fails
|
||||||
* output
|
* output
|
||||||
|
- 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()
|
||||||
/* 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)
|
||||||
|
@ -774,6 +774,24 @@ AlsaOutput::DrainInternal()
|
||||||
don't need to drain it */
|
don't need to drain it */
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
switch (snd_pcm_state(pcm)) {
|
||||||
|
case SND_PCM_STATE_PREPARED:
|
||||||
|
case SND_PCM_STATE_RUNNING:
|
||||||
|
/* these states require a call to snd_pcm_drain() */
|
||||||
|
break;
|
||||||
|
|
||||||
|
case SND_PCM_STATE_DRAINING:
|
||||||
|
/* already draining, but not yet finished; this is
|
||||||
|
probably a spurious epoll event, and we should wait
|
||||||
|
for the next one */
|
||||||
|
return false;
|
||||||
|
|
||||||
|
default:
|
||||||
|
/* all other states cannot be drained, and we're
|
||||||
|
done */
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/* .. and finally drain the ALSA hardware buffer */
|
/* .. and finally drain the ALSA hardware buffer */
|
||||||
|
|
||||||
int result;
|
int result;
|
||||||
|
|
Loading…
Reference in New Issue