[pulseaudio-discuss] [PATCH] alsa-util: Use time stamp config only for alsa versions >= 1.1.0

Georg Chini georg at chini.tk
Wed May 16 13:14:37 UTC 2018


On 15.05.2018 21:12, Pierre-Louis Bossart wrote:
> On 5/15/18 8:12 AM, Arun Raghavan wrote:
>> On Tue, 15 May 2018, at 11:30 AM, Georg Chini wrote:
>>> The commit "alsa-util: Set ALSA report_delay flag in 
>>> pa_alsa_safe_delay()"
>>> broke the build on ALSA versions below 1.1.0 because the time stamp
>>> configuration function was introduced in 1.1.0.
>>>
>>> This patch makes the usage of snd_pcm_status_set_audio_htstamp_config()
>>> dependent on ALSA version.
>>> ---
>>>   src/modules/alsa/alsa-util.c | 8 +++++++-
>>>   1 file changed, 7 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/src/modules/alsa/alsa-util.c 
>>> b/src/modules/alsa/alsa-util.c
>>> index b91a0e98..41134ea5 100644
>>> --- a/src/modules/alsa/alsa-util.c
>>> +++ b/src/modules/alsa/alsa-util.c
>>> @@ -1187,7 +1187,9 @@ int pa_alsa_safe_delay(snd_pcm_t *pcm,
>>> snd_pcm_status_t *status, snd_pcm_sframes
>>>       size_t abs_k;
>>>       int err;
>>>       snd_pcm_sframes_t avail = 0;
>>> +#if (SND_LIB_VERSION >= ((1<<16)|(1<<8)|0)) /* API additions in 1.1.0
>>> */
>>>       snd_pcm_audio_tstamp_config_t tstamp_config;
>>> +#endif
>>>         pa_assert(pcm);
>>>       pa_assert(delay);
>>> @@ -1201,11 +1203,15 @@ int pa_alsa_safe_delay(snd_pcm_t *pcm,
>>> snd_pcm_status_t *status, snd_pcm_sframes
>>>        * avail, delay and timestamp values in a single kernel call to
>>> improve
>>>        * timer-based scheduling */
>>>   +#if (SND_LIB_VERSION >= ((1<<16)|(1<<8)|0)) /* API additions in 
>>> 1.1.0 */
>>> +
>>>       /* The time stamp configuration needs to be set so that the
>>> -     * ALSA code will use the internal delay reported by the driver */
>>> +     * ALSA code will use the internal delay reported by the driver.
>>> +     * The time stamp configuration was introduced in alsa version 
>>> 1.1.0. */
>>>       tstamp_config.type_requested = 1; /* ALSA default time stamp 
>>> type */
>>>       tstamp_config.report_delay = 1;
>>>       snd_pcm_status_set_audio_htstamp_config(status, &tstamp_config);
>>> +#endif
>>>         if ((err = snd_pcm_status(pcm, status)) < 0)
>>>           return err;
>>> -- 
>>
>> Looks good.
>
> Takashi and I mentioned it's not quite right but what can I say...
I don't understand - Takashi explicitly stated that the flag needs to be 
set.
So what do you think is not quite right and how should it be?


More information about the pulseaudio-discuss mailing list