summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMONTANARO Luciano (MM) <luciano.montanaro@magnetimarelli.com>2014-03-04 12:51:36 +0100
committerJaroslav Kysela <perex@perex.cz>2014-03-04 13:02:29 +0100
commit688004a6acf7d1d568a660546816a092b6cc32ed (patch)
treef3dc4b03f34ed27d867a5d956c55c647d9bae75d
parent48f1b308cc66152eb6db66742dd0d08d888cda8d (diff)
downloadalsa-lib-688004a6acf7d1d568a660546816a092b6cc32ed.tar.gz
pcm: Wrap hw_ptr to boundary in pcm_ioplug
The function snd_pcm_ioplug_hw_ptr_update() always increased the hw_ptr by delta, without wrapping it to the boundary. This would lead to problems when after many hours, the hw_ptr would overflow. Signed-off-by: Luciano Montanaro <luciano.montanaro@magnetimarelli.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
-rw-r--r--src/pcm/pcm_ioplug.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/pcm/pcm_ioplug.c b/src/pcm/pcm_ioplug.c
index a90c8445..c1c3a983 100644
--- a/src/pcm/pcm_ioplug.c
+++ b/src/pcm/pcm_ioplug.c
@@ -60,7 +60,7 @@ static void snd_pcm_ioplug_hw_ptr_update(snd_pcm_t *pcm)
delta = hw - io->last_hw;
else
delta = pcm->buffer_size + hw - io->last_hw;
- io->data->hw_ptr += delta;
+ snd_pcm_mmap_hw_forward(io->data->pcm, delta);
io->last_hw = hw;
} else
io->data->state = SNDRV_PCM_STATE_XRUN;