From 212c6c18c4317af48c007a0866efc029b9c3a593 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Mon, 21 Jun 2021 09:23:02 +0200 Subject: [PATCH] pcm: dmix - use pcm_frame_diff() in snd_pcm_dmix_sync_ptr0() Signed-off-by: Jaroslav Kysela --- src/pcm/pcm_dmix.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/pcm/pcm_dmix.c b/src/pcm/pcm_dmix.c index 608593f1..0d0d0bff 100644 --- a/src/pcm/pcm_dmix.c +++ b/src/pcm/pcm_dmix.c @@ -393,17 +393,13 @@ static int snd_pcm_dmix_sync_ptr0(snd_pcm_t *pcm, snd_pcm_uframes_t slave_hw_ptr old_slave_hw_ptr = dmix->slave_hw_ptr; dmix->slave_hw_ptr = slave_hw_ptr; - diff = slave_hw_ptr - old_slave_hw_ptr; + diff = pcm_frame_diff(slave_hw_ptr, old_slave_hw_ptr, dmix->slave_boundary); if (diff == 0) /* fast path */ return 0; if (dmix->state != SND_PCM_STATE_RUNNING && dmix->state != SND_PCM_STATE_DRAINING) /* not really started yet - don't update hw_ptr */ return 0; - if (diff < 0) { - slave_hw_ptr += dmix->slave_boundary; - diff = slave_hw_ptr - old_slave_hw_ptr; - } dmix->hw_ptr += diff; dmix->hw_ptr %= pcm->boundary; if (pcm->stop_threshold >= pcm->boundary) /* don't care */ -- 2.47.1