[vlc-devel] [PATCH] core: fix vlc_tick_now on darwin platform

Steve Lhomme robux4 at ycbcr.xyz
Wed Sep 26 20:38:06 CEST 2018


An extra VLC_TICK_FROM_US() should do the trick but it's a pity we don't 
end up with a nanosecond value that is then converted to ticks. If we 
ever want to go down to the nanosecond precision.

On 26/09/2018 20:19, Steve Lhomme wrote:
> Indeed CLOCK_FREQ wasn't directly involved. Which is wrong.
> But reverting is probably better for now.
>
> On 26/09/2018 19:23, Zhao Zhili wrote:
>> regression by fdc5af257000eda4b44533005c27a7064275428e
>> 1. The math was incorrect. date * vlc_clock_conversion_factor.numer / 
>> denom
>> is in the unit of microsecond, not second
>> 2. It has overflow problem
>> ---
>>   src/darwin/thread.c | 4 +++-
>>   1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/darwin/thread.c b/src/darwin/thread.c
>> index f5eb4f234e..884483fb8a 100644
>> --- a/src/darwin/thread.c
>> +++ b/src/darwin/thread.c
>> @@ -523,7 +523,9 @@ vlc_tick_t vlc_tick_now (void)
>>       denom *= UINT64_C(1000);
>>         /* Split the division to prevent overflow */
>> -    return vlc_tick_from_frac( date * 
>> vlc_clock_conversion_factor.numer, denom );
>> +    lldiv_t d = lldiv (vlc_clock_conversion_factor.numer, denom);
>> +
>> +    return (d.quot * date) + ((d.rem * date) / denom);
>>   }
>>     #undef vlc_tick_wait
>> -- 
>> 2.15.2 (Apple Git-101.1)
>>
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel



More information about the vlc-devel mailing list