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

Clemens Ladisch clemens at ladisch.de
Wed Jul 9 21:40:02 CEST 2014


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 ...


Regards,
Clemens


More information about the Alsa-devel mailing list