[alsa-devel] [PATCH RFC 5/9] ALSA: core: selection of audio_tstamp type and accuracy reports
Pierre-Louis Bossart
pierre-louis.bossart at linux.intel.com
Thu Dec 11 00:04:40 CET 2014
On 12/10/14, 4:27 PM, Takashi Iwai wrote:
> At Wed, 10 Dec 2014 15:48:06 -0600,
> Pierre-Louis Bossart wrote:
>>
>>> - Another concern is the compatibility with the current wallclock
>>> implementation. Judging from your patch, the audio_tstamp won't be
>>> obtained from get_time_info callback in the default tstamp mode,
>>> right? This may result in a regression, as currently the driver
>>> always gives the h/w audio_tstamp when the driver supports the
>>> wallclock.
>>
>> Is this that big of a deal? To the best of my knowledge this wallclk
>> thing was implemented for HDaudio only when we were prototyping the new
>> hardware, and I don't think we ended-up contributing the corresponding
>> patches for PulseAudio. We've since realized that the wallclock can't be
>> available in all cases and that we need this selection capability in a
>> variety of cases.
>>
>> Also even if we kept the .wall_clock callback, the wallclock handling
>> could be relative (start at zero) or absolute. I implemented a reset to
>> zero on stream startup, since the counter is not maintained when the
>> hardware is idle, but there are implementations where the wallclock is
>> really absolute and not reset (see below).
>
> I'm not asking for keeping the wall_clock callback itself. The
> requirement is the compatible kernel *behavior*. This is essentially
> a MUST, especially when the backward compatibility isn't too
> difficult to achieve.
>
> For example, leave the type zero = TSTAMP_TYPE_COMPAT or such, and
> makes the PCM core and driver behaving as compatible as wall_clock.
> This should be relatively easy.
if someone used alsa-lib with the .get_wall_clock(), the new user-space
code will provide the same results as today, no change (wall clock if
supported, hw_ptr otherwise). So the library compatibility is preserved.
I don't mind adding a compatible kernel behavior for HDAudio only, but
is this really necessary?
>
> BTW, what if the driver doesn't support the requested tstamp type?
> Isn't there any need to query the capability beforehand?
if the timestamp type requested is not supported then the logic defaults
to using the hw_ptr, same behavior as today.
I added a set of INFO defines and the matching is_supported queries in
alsa-lib. I just did a pretty dumb copy/paste/edit there, maybe we can
refactor the code here with a single routine taking a type parameter.
feedback welcome there.
More information about the Alsa-devel
mailing list