]> git.alsa-project.org Git - alsa-utils.git/commitdiff
aplay: enable timestamps by default
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Fri, 27 Oct 2023 20:09:56 +0000 (15:09 -0500)
committerJaroslav Kysela <perex@perex.cz>
Tue, 12 Dec 2023 13:25:37 +0000 (14:25 +0100)
When the '-v' or '--test-position' options are used, the 'tstamp' is
shown as zero. Unconditionally enable the timestamps and choose the
timestamp time based on the 'monotonic' variable.

Example log:

Status(R/W) (standalone avail=36 delay=924):
  state       : RUNNING
  trigger_time: 2045.504937
  tstamp      : 2190.754602
  delay       : 924
  avail       : 36
  avail_max   : 444
Status(R/W) (standalone avail=44 delay=912):
  state       : RUNNING
  trigger_time: 2045.504937
  tstamp      : 2190.754852
  delay       : 912
  avail       : 48
  avail_max   : 48
underrun!!! (at least 471.161 ms long)
Status:
  state       : XRUN
  trigger_time: 2190.786234
  tstamp      : 2191.257392
  delay       : 0
  avail       : 1412
  avail_max   : 1412
aplay: xrun:1690: fatal underrun: Success

Closes: https://github.com/alsa-project/alsa-utils/pull/242
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
aplay/aplay.c

index ed58a1ec8c7f002cb6e5fe030544655f624fb139..2a75de72523d20c653d07ab7aa42463b2be21df9 100644 (file)
@@ -1494,6 +1494,15 @@ static void set_params(void)
        err = snd_pcm_sw_params_set_stop_threshold(handle, swparams, stop_threshold);
        assert(err >= 0);
 
+       err = snd_pcm_sw_params_set_tstamp_mode(handle, swparams, SND_PCM_TSTAMP_ENABLE);
+       assert(err >= 0);
+
+       if (monotonic)
+               err = snd_pcm_sw_params_set_tstamp_type(handle, swparams, SND_PCM_TSTAMP_TYPE_MONOTONIC);
+       else
+               err = snd_pcm_sw_params_set_tstamp_type(handle, swparams, SND_PCM_TSTAMP_TYPE_GETTIMEOFDAY);
+       assert(err >= 0);
+
        if (snd_pcm_sw_params(handle, swparams) < 0) {
                error(_("unable to install sw params:"));
                snd_pcm_sw_params_dump(swparams, log);