diff --git a/src/pcm/pcm_dshare.c b/src/pcm/pcm_dshare.c index 8d58ecce..aebe64c4 100644 --- a/src/pcm/pcm_dshare.c +++ b/src/pcm/pcm_dshare.c @@ -385,6 +385,12 @@ static int snd_pcm_dshare_drain(snd_pcm_t *pcm) return 0; } } + + if (dshare->state == SND_PCM_STATE_XRUN) { + snd_pcm_dshare_drop(pcm); + return 0; + } + stop_threshold = pcm->stop_threshold; if (pcm->stop_threshold > pcm->buffer_size) pcm->stop_threshold = pcm->buffer_size;