[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