From: Alexander E. Patrakov Date: Mon, 1 Sep 2014 19:29:36 +0000 (+0600) Subject: pcm: fix return value of snd_pcm_share_slave_avail X-Git-Tag: v1.0.29~53 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=622b1b6bdbb34baca885b65643d4796057574eb7;p=alsa-lib.git pcm: fix return value of snd_pcm_share_slave_avail The return value was wrong for playback if slave->hw_ptr was near the boundary and *pcm->appl.ptr was near zero. The wrong result was greater than the boundary. Signed-off-by: Alexander E. Patrakov Signed-off-by: Takashi Iwai --- diff --git a/src/pcm/pcm_share.c b/src/pcm/pcm_share.c index 97705447..c301c7af 100644 --- a/src/pcm/pcm_share.c +++ b/src/pcm/pcm_share.c @@ -128,6 +128,8 @@ static snd_pcm_uframes_t snd_pcm_share_slave_avail(snd_pcm_share_slave_t *slave) avail += pcm->buffer_size; if (avail < 0) avail += pcm->boundary; + else if ((snd_pcm_uframes_t) avail >= pcm->boundary) + avail -= pcm->boundary; return avail; }