Просмотр исходного кода

libobs: use clock_gettime_nsec_np() for macOS

macOS should use the function clock_gettime_nsec_np() to get the
current clock in nanoseconds, instead of manually using
mach_absolute_time() and manually adjusting the timebase. This
greatly simplifies the platform-specific code to manage the
current time in nanoseconds.
Doug Kelly 4 лет назад
Родитель
Сommit
4ab5a3bea1
1 измененных файлов с 1 добавлено и 36 удалено
  1. 1 36
      libobs/util/platform-cocoa.m

+ 1 - 36
libobs/util/platform-cocoa.m

@@ -38,44 +38,9 @@
 
 #include "apple/cfstring-utils.h"
 
-/* clock function selection taken from libc++ */
-static uint64_t ns_time_simple()
-{
-	return mach_absolute_time();
-}
-
-static double ns_time_compute_factor()
-{
-	mach_timebase_info_data_t info = {1, 1};
-	mach_timebase_info(&info);
-	return ((double)info.numer) / info.denom;
-}
-
-static uint64_t ns_time_full()
-{
-	static double factor = 0.;
-	if (factor == 0.)
-		factor = ns_time_compute_factor();
-	return (uint64_t)(mach_absolute_time() * factor);
-}
-
-typedef uint64_t (*time_func)();
-
-static time_func ns_time_select_func()
-{
-	mach_timebase_info_data_t info = {1, 1};
-	mach_timebase_info(&info);
-	if (info.denom == info.numer)
-		return ns_time_simple;
-	return ns_time_full;
-}
-
 uint64_t os_gettime_ns(void)
 {
-	static time_func f = NULL;
-	if (!f)
-		f = ns_time_select_func();
-	return f();
+	return clock_gettime_nsec_np(CLOCK_UPTIME_RAW);
 }
 
 /* gets the location [domain mask]/Library/Application Support/[name] */