[alsa-devel] [PATCH] alsa-lib: Provide a CLOCK_MONOTONIC_RAW timestamp type

Takashi Iwai tiwai at suse.de
Thu Jul 10 12:22:36 CEST 2014


At Wed, 09 Jul 2014 21:40:02 +0200,
Clemens Ladisch wrote:
> 
> Takashi Iwai wrote:
> > Currently, the timestamp mode is set implicitly in alsa-lib pcm_hw.c:
> > - When kernel PCM protocol version is high enough, alsa-lib hw prefers
> >   the monotonic always (if available), then set pcm->monotonic = 1.
> > - Application can ask whether the current timestamp is monotonic or
> >   not via snd_pcm_hw_params_is_monotonic().
> > So, only adding the flag above doesn't suffice.  If we need to add a
> > new mode, the API has to be extended as well.
> >
> > But how?  The current API assumes that the monotonic mode was already
> > determined before hw_params.  We may add a set of new hw_params get
> > and set calls for tstamp mode while keeping the old API.  This would
> > be one option.  Another option would be to add a new PCM open flag
> > SND_PCM_TSTAMP_MONOTONIC_RAW, and snd_pcm_hw_params_is_monotonic_raw()
> > function.  The latter is easier (a simpler addition), while the former
> > is more extensible to newer formats in future.
> 
> These timestamps cannot be handled by hardware drivers; they are always
> read by the ALSA framework, in software.  Furthermore, switching between
> MONOTONIC and MONOTONIC_RAW is possible at any time.  Therefore, the
> timestamp mode should be made a part of sw_params; just add a field
> named tstamp_mode ...

Sounds reasonable.  I'll respin the kernel patches as well.


Takashi


More information about the Alsa-devel mailing list