diff options
author | Jaroslav Kysela <perex@perex.cz> | 2021-06-21 09:23:02 +0200 |
---|---|---|
committer | Jaroslav Kysela <perex@perex.cz> | 2021-06-21 09:23:02 +0200 |
commit | 212c6c18c4317af48c007a0866efc029b9c3a593 (patch) | |
tree | 7d33da60f18a97ef7d07d1e90b8aaa98bc486444 | |
parent | 3f737a2a2c8d20e78dea3ea836997f9d74f602a0 (diff) | |
download | alsa-lib-212c6c18c4317af48c007a0866efc029b9c3a593.tar.gz |
pcm: dmix - use pcm_frame_diff() in snd_pcm_dmix_sync_ptr0()
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
-rw-r--r-- | src/pcm/pcm_dmix.c | 6 |
1 files changed, 1 insertions, 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 */ |