From: Takashi Iwai Date: Mon, 21 Nov 2005 10:51:43 +0000 (+0000) Subject: Abort from snd_pcm_dshare_drain in XRUN state X-Git-Tag: v1.0.11rc1~18 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=d4bbf241baa22cbaf57ed1b430c705de8cd48562;p=alsa-lib.git Abort from snd_pcm_dshare_drain in XRUN state Fixed the hang-up in snd_pcm_dshare_drain() when the state is XRUN. --- 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;