summaryrefslogtreecommitdiffstats
path: root/osdep/timer-darwin.c
diff options
context:
space:
mode:
authorKacper Michajłow <kasper93@gmail.com>2023-09-10 02:09:28 +0200
committerDudemanguy <random342@airmail.cc>2023-09-29 20:48:58 +0000
commit9606c3fca9d568dc43711017dcb35a408c0d2883 (patch)
tree6261962679c5b86514dc0e08193daed9ecd5fa03 /osdep/timer-darwin.c
parent40e0fea6ebede9452a430cfd6d39bf132e89472d (diff)
downloadmpv-9606c3fca9d568dc43711017dcb35a408c0d2883.tar.bz2
mpv-9606c3fca9d568dc43711017dcb35a408c0d2883.tar.xz
timer: teach it about nanoseconds
Those changes will alow to change vsync base to more precise time base. In general there is no reason to truncate values returned by system.
Diffstat (limited to 'osdep/timer-darwin.c')
-rw-r--r--osdep/timer-darwin.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/osdep/timer-darwin.c b/osdep/timer-darwin.c
index 2e7122eabf..a114d0d727 100644
--- a/osdep/timer-darwin.c
+++ b/osdep/timer-darwin.c
@@ -26,18 +26,18 @@
#include "common/msg.h"
#include "timer.h"
-static double timebase_ratio;
+static double timebase_ratio_ns;
void mp_sleep_us(int64_t us)
{
- uint64_t deadline = us / 1e6 / timebase_ratio + mach_absolute_time();
+ uint64_t deadline = us * 1e3 / timebase_ratio_ns + mach_absolute_time();
mach_wait_until(deadline);
}
-uint64_t mp_raw_time_us(void)
+uint64_t mp_raw_time_ns(void)
{
- return mach_absolute_time() * timebase_ratio * 1e6;
+ return mach_absolute_time() * timebase_ratio_ns;
}
void mp_raw_time_init(void)
@@ -45,5 +45,5 @@ void mp_raw_time_init(void)
struct mach_timebase_info timebase;
mach_timebase_info(&timebase);
- timebase_ratio = (double)timebase.numer / (double)timebase.denom * 1e-9;
+ timebase_ratio_ns = (double)timebase.numer / (double)timebase.denom;
}