[alsa-devel] [PATCH alsa-lib] pcm: fix return value of snd_pcm_share_slave_avail
Alexander E. Patrakov
patrakov at gmail.com
Mon Sep 1 21:29:36 CEST 2014
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 <patrakov at gmail.com>
---
src/pcm/pcm_share.c | 2 ++
1 file changed, 2 insertions(+)
Only compile-tested, as I don't know how to setup the "share" pcm.
diff --git a/src/pcm/pcm_share.c b/src/pcm/pcm_share.c
index 9770544..c301c7a 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;
}
--
2.1.0
More information about the Alsa-devel
mailing list