32 lines
1.1 KiB
Diff
32 lines
1.1 KiB
Diff
|
From 688004a6acf7d1d568a660546816a092b6cc32ed Mon Sep 17 00:00:00 2001
|
||
|
From: "MONTANARO Luciano (MM)" <luciano.montanaro@magnetimarelli.com>
|
||
|
Date: Tue, 4 Mar 2014 12:51:36 +0100
|
||
|
Subject: [PATCH] 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>
|
||
|
---
|
||
|
src/pcm/pcm_ioplug.c | 2 +-
|
||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/src/pcm/pcm_ioplug.c b/src/pcm/pcm_ioplug.c
|
||
|
index a90c844598bd..c1c3a9835d47 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;
|
||
|
--
|
||
|
1.9.0
|
||
|
|