From 20d9a26dbbbec32aa7c9da49b979f201bd7104b9 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Thu, 30 Sep 2010 00:16:50 +0200 Subject: ALSA: snd-aloop - fix capture buffer silence In a special case, some old samples are left in the capture ring buffer. Fix it. Signed-off-by: Jaroslav Kysela --- sound/drivers/aloop.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'sound/drivers/aloop.c') diff --git a/sound/drivers/aloop.c b/sound/drivers/aloop.c index f2b8f868d97a..2748fee8d405 100644 --- a/sound/drivers/aloop.c +++ b/sound/drivers/aloop.c @@ -347,7 +347,7 @@ static void copy_play_buf(struct loopback_pcm *play, unsigned int bytes) { struct snd_pcm_runtime *runtime = play->substream->runtime; - char *src = play->substream->runtime->dma_area; + char *src = runtime->dma_area; char *dst = capt->substream->runtime->dma_area; unsigned int src_off = play->buf_pos; unsigned int dst_off = capt->buf_pos; @@ -385,8 +385,10 @@ static void copy_play_buf(struct loopback_pcm *play, dst_off = (dst_off + size) % capt->pcm_buffer_size; } - if (clear_bytes > 0) + if (clear_bytes > 0) { clear_capture_buf(capt, clear_bytes); + capt->silent_size = 0; + } } #define BYTEPOS_UPDATE_POSONLY 0 -- cgit v1.2.3