summaryrefslogtreecommitdiffstats
path: root/video/out/wayland_common.c
diff options
context:
space:
mode:
authorDudemanguy <random342@airmail.cc>2023-09-17 21:34:32 -0500
committerDudemanguy <random342@airmail.cc>2023-10-10 19:10:55 +0000
commita899e14bccb667af243f8fce454160e17ae45c2a (patch)
tree77fede3fe581c4cedbe6cf04f456e16937374dfb /video/out/wayland_common.c
parentc82c55b4b9d4015ba79fb36170defb328563cdea (diff)
downloadmpv-a899e14bccb667af243f8fce454160e17ae45c2a.tar.bz2
mpv-a899e14bccb667af243f8fce454160e17ae45c2a.tar.xz
vo: change vo->driver->wait_events to nanoseconds
In many cases, this is purely cosmetic because poll still only accepts microseconds. There's still a gain here however since pthread_cond_timedwait can take a realtime ts now. Additionally, 37d6604d70c8c594de2817db26356c4c950ac0fd changed the value added to timeout_ms in X11 and Wayland to ensure that it would never be 0 and rounded up. This was both incomplete, several other parts of the player have this same problem like drm, and not really needed. Instead the MPCLAMP is just adjusted to have a min of 1.
Diffstat (limited to 'video/out/wayland_common.c')
-rw-r--r--video/out/wayland_common.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/video/out/wayland_common.c b/video/out/wayland_common.c
index 47dc4d9605..04b7d1f7bd 100644
--- a/video/out/wayland_common.c
+++ b/video/out/wayland_common.c
@@ -2604,12 +2604,12 @@ void vo_wayland_wait_frame(struct vo_wayland_state *wl)
wl->timeout_count = 0;
}
-void vo_wayland_wait_events(struct vo *vo, int64_t until_time_us)
+void vo_wayland_wait_events(struct vo *vo, int64_t until_time_ns)
{
struct vo_wayland_state *wl = vo->wl;
- int64_t wait_us = until_time_us - mp_time_us();
- int timeout_ms = MPCLAMP((wait_us + 999) / 1000, 0, 10000);
+ int64_t wait_ns = until_time_ns - mp_time_ns();
+ int timeout_ms = MPCLAMP(wait_ns / 1e6, 1, 10000);
wayland_dispatch_events(wl, 2, timeout_ms);
}