[pulseaudio-discuss] [PATCH v4] Make module loopback honor requested latency

Georg Chini georg at chini.tk
Sun Feb 8 11:30:42 PST 2015


On 08.02.2015 19:54, Alexander E. Patrakov wrote:
> 01.02.2015 03:43, Georg Chini wrote:
>> +    /* Minimum number of adjust times + 1 needed to adjust at 0.75% 
>> deviation from base rate */
>> +    min_cycles = (double)abs(latency_difference) / u->adjust_time / 
>> 0.0075 + 1;
>> +
>> +    /* Rate calculation, maximum deviation from base rate will be 
>> less than 0.75% due to min_cycles */
>> +    new_rate = base_rate * (1.0 + latency_difference / min_cycles / 
>> u->adjust_time) + 0.5;
>
> What's the aim here with min_cycles? Why not just clamp new_rate 
> post-factum to 0.75% vicinity of base_rate, as this is done in the 2‰ 
> case?
>
Without min_cycles you will far more often hit the 2 ‰ limit and when 
you are approaching the
base_rate. This seriously disturbs the regulation. The goal was to get 
out to 0.75% as quick as
possible while approaching the base rate cautiously (with a weak 
regulator when latency is far off).
Also without min_cycles you see the rates hopping up and down (due to 
the 2‰ limitation), you do
not see a (more or less) continuous rate function.


More information about the pulseaudio-discuss mailing list