[vlc-devel] [PATCH] core: fix vlc_tick_now on darwin platform
Steve Lhomme
robux4 at ycbcr.xyz
Thu Sep 27 10:09:19 CEST 2018
On 27/09/2018 05:42, Zhao Zhili wrote:
> ---
> src/darwin/thread.c | 10 +++-------
> 1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/src/darwin/thread.c b/src/darwin/thread.c
> index f5eb4f2..0dd1e3c 100644
> --- a/src/darwin/thread.c
> +++ b/src/darwin/thread.c
> @@ -516,14 +516,10 @@ vlc_tick_t vlc_tick_now (void)
> vlc_clock_setup();
> uint64_t date = mach_absolute_time();
>
> - /* denom is uint32_t, switch to 64 bits to prevent overflow. */
> - uint64_t denom = vlc_clock_conversion_factor.denom;
> -
> - /* Switch to microsecs */
> - 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, vlc_clock_conversion_factor.denom);
If we're using this, we might store the lldiv result once and for all in
vlc_clock_setup_once().
> + date = (d.quot * date) + ((d.rem * date) / vlc_clock_conversion_factor.denom);
> + return VLC_TICK_FROM_NS(date);
> }
>
> #undef vlc_tick_wait
> --
> 2.9.5
>
>
>
> _______________________________________________
> 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