Commit e4093f05 authored by Håvard Graff's avatar Håvard Graff Committed by Sebastian Dröge

systemclock: pre-calculate the ratio for multiplying the perf-count on win

Saves a lot of computations.
parent d819f691
......@@ -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;
......@@ -201,6 +202,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__
......@@ -586,8 +588,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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment