diff options
Diffstat (limited to 'src/modules/alsa/alsa-util.c')
-rw-r--r-- | src/modules/alsa/alsa-util.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/modules/alsa/alsa-util.c b/src/modules/alsa/alsa-util.c index 61fb4903c..b91a0e987 100644 --- a/src/modules/alsa/alsa-util.c +++ b/src/modules/alsa/alsa-util.c @@ -1187,6 +1187,7 @@ int pa_alsa_safe_delay(snd_pcm_t *pcm, snd_pcm_status_t *status, snd_pcm_sframes size_t abs_k; int err; snd_pcm_sframes_t avail = 0; + snd_pcm_audio_tstamp_config_t tstamp_config; pa_assert(pcm); pa_assert(delay); @@ -1200,6 +1201,12 @@ int pa_alsa_safe_delay(snd_pcm_t *pcm, snd_pcm_status_t *status, snd_pcm_sframes * avail, delay and timestamp values in a single kernel call to improve * timer-based scheduling */ + /* The time stamp configuration needs to be set so that the + * ALSA code will use the internal delay reported by the driver */ + tstamp_config.type_requested = 1; /* ALSA default time stamp type */ + tstamp_config.report_delay = 1; + snd_pcm_status_set_audio_htstamp_config(status, &tstamp_config); + if ((err = snd_pcm_status(pcm, status)) < 0) return err; |