From 0d08f41c282f1f16075e1a6cf92486c66625ff0e Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Fri, 9 Sep 2022 18:13:02 +0200 Subject: [PATCH] alsa: calculate elapsed time only when running --- pipewire-alsa/alsa-plugins/pcm_pipewire.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pipewire-alsa/alsa-plugins/pcm_pipewire.c b/pipewire-alsa/alsa-plugins/pcm_pipewire.c index 9f430cfd5..a6f446bfb 100644 --- a/pipewire-alsa/alsa-plugins/pcm_pipewire.c +++ b/pipewire-alsa/alsa-plugins/pcm_pipewire.c @@ -251,7 +251,8 @@ static int snd_pcm_pipewire_delay(snd_pcm_ioplug_t *io, snd_pcm_sframes_t *delay seq2 = SEQ_READ(pw->seq); } while (!SEQ_READ_SUCCESS(seq1, seq2)); - if (now != 0) { + if (now != 0 && (io->state == SND_PCM_STATE_RUNNING || + io->state == SND_PCM_STATE_DRAINING)) { clock_gettime(CLOCK_MONOTONIC, &ts); diff = SPA_TIMESPEC_TO_NSEC(&ts) - now; elapsed = (io->rate * diff) / SPA_NSEC_PER_SEC;