aplay: enable timestamps by default

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>
This commit is contained in:
Pierre-Louis Bossart 2023-10-27 15:09:56 -05:00 committed by Jaroslav Kysela
parent 6e9be2a3f3
commit 35f45c50ee

View 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);