From b2f6be639c064b74a60c5079c665e1d17177e474 Mon Sep 17 00:00:00 2001 From: aymeric Date: Thu, 6 Aug 2009 13:28:47 +0000 Subject: [PATCH] fix buggy driver git-svn-id: svn+ssh://svn.savannah.nongnu.org/linphone/trunk@563 3f6dc0c8-ddfe-455d-9043-3cd528dc4637 --- linphone/mediastreamer2/src/alsa.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/linphone/mediastreamer2/src/alsa.c b/linphone/mediastreamer2/src/alsa.c index b1a160459..65f0df720 100644 --- a/linphone/mediastreamer2/src/alsa.c +++ b/linphone/mediastreamer2/src/alsa.c @@ -287,6 +287,8 @@ static int alsa_can_read(snd_pcm_t *dev) int err; avail = snd_pcm_avail_update(dev); + /* A buggy driver does not return an error while being in Xrun */ + if (avail >= 0 && snd_pcm_state(dev) == SND_PCM_STATE_XRUN) avail=-EPIPE; if (avail < 0) { ms_error("snd_pcm_avail_update: %s", snd_strerror(avail)); // most probably -EPIPE /* overrun occured, snd_pcm_state() would return SND_PCM_STATE_XRUN