alsa: only use avail_update when woken up with IRQ

When we are following a different clock or resampling, use update
to get more accurate update results.
This commit is contained in:
Wim Taymans 2023-10-18 14:42:33 +02:00
parent 8735d07c0a
commit 2e066e6b1e

View file

@ -2132,10 +2132,12 @@ recover:
static inline snd_pcm_sframes_t alsa_avail(struct state *state) static inline snd_pcm_sframes_t alsa_avail(struct state *state)
{ {
if (state->disable_tsched) snd_pcm_sframes_t avail;
return snd_pcm_avail_update(state->hndl); if (state->disable_tsched && !state->resample)
avail = snd_pcm_avail_update(state->hndl);
else else
return snd_pcm_avail(state->hndl); avail = snd_pcm_avail(state->hndl);
return avail;
} }
static int get_avail(struct state *state, uint64_t current_time, snd_pcm_uframes_t *delay) static int get_avail(struct state *state, uint64_t current_time, snd_pcm_uframes_t *delay)