From c6e5f59b2cc28addb24a885f0c92173129d94a38 Mon Sep 17 00:00:00 2001 From: Havard Graff Date: Thu, 20 Sep 2018 01:42:48 -0700 Subject: [PATCH] systemclock: pre-calculate the ratio for multiplying the perf-count on win Saves a lot of computations. --- gst/gstsystemclock.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gst/gstsystemclock.c b/gst/gstsystemclock.c index 508ef21..c5260f2 100644 --- a/gst/gstsystemclock.c +++ b/gst/gstsystemclock.c @@ -89,6 +89,7 @@ struct _GstSystemClockPrivate #ifdef G_OS_WIN32 LARGE_INTEGER start; LARGE_INTEGER frequency; + guint64 ratio; #endif /* G_OS_WIN32 */ #ifdef __APPLE__ struct mach_timebase_info mach_timebase; @@ -195,6 +196,7 @@ gst_system_clock_init (GstSystemClock * clock) if (priv->frequency.QuadPart != 0) /* we take a base time so that time starts from 0 to ease debugging */ QueryPerformanceCounter (&priv->start); + priv->ratio = GST_SECOND / priv->frequency.QuadPart; #endif /* G_OS_WIN32 */ #ifdef __APPLE__ @@ -580,8 +582,7 @@ gst_system_clock_get_internal_time (GstClock * clock) /* we prefer the highly accurate performance counters on windows */ QueryPerformanceCounter (&now); - return gst_util_uint64_scale (now.QuadPart - sysclock->priv->start.QuadPart, - GST_SECOND, sysclock->priv->frequency.QuadPart); + return ((now.QuadPart - sysclock->priv->start.QuadPart) * sysclock->priv->ratio); } else #endif /* G_OS_WIN32 */ #if !defined HAVE_POSIX_TIMERS || !defined HAVE_CLOCK_GETTIME -- 2.7.4