From: Jaroslav Kysela Date: Mon, 21 Jun 2021 07:23:02 +0000 (+0200) Subject: pcm: dmix - use pcm_frame_diff() in snd_pcm_dmix_sync_ptr0() X-Git-Tag: v1.2.6~46 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=212c6c18c4317af48c007a0866efc029b9c3a593;p=alsa-lib.git pcm: dmix - use pcm_frame_diff() in snd_pcm_dmix_sync_ptr0() Signed-off-by: Jaroslav Kysela --- 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 */