mirror of https://github.com/mpv-player/mpv
5728295dab
It's conceivable that the OS time source is subject to clock changes. The time could jump back to before when mpv was started, which would cause mp_time_us() to return values smaller than 1. This is unexpected by the code and could trigger assertions. If there's no monotonic time source there's not much we can do anyway, so just sanitize the return value. It will cause strange behavior until the "lost" time offset has passed, but if you make such huge changes to the system clock while everything is running, you're asking for trouble anyway. (Normally we try to get a monotonic time source, though. This problem sometimes happened on Windows when compiled without winpthreads, when the code was falling back to gettimeofday(). This was already fixed by always using another method.) |
||
---|---|---|
.. | ||
ar | ||
win32 | ||
atomics.h | ||
compiler.h | ||
endian.h | ||
glob-win.c | ||
io.c | ||
io.h | ||
macosx_application.h | ||
macosx_application.m | ||
macosx_application_objc.h | ||
macosx_compat.h | ||
macosx_events.h | ||
macosx_events.m | ||
macosx_events_objc.h | ||
macosx_versions.h | ||
main-fn-cocoa.c | ||
main-fn-unix.c | ||
main-fn-win.c | ||
main-fn.h | ||
mpv.exe.manifest | ||
mpv.rc | ||
path-macosx.m | ||
path-unix.c | ||
path-win.c | ||
path.h | ||
semaphore.h | ||
semaphore_osx.c | ||
subprocess-posix.c | ||
subprocess-win.c | ||
subprocess.c | ||
subprocess.h | ||
terminal-unix.c | ||
terminal-win.c | ||
terminal.h | ||
threads.c | ||
threads.h | ||
timer-darwin.c | ||
timer-linux.c | ||
timer-win2.c | ||
timer.c | ||
timer.h | ||
w32_keyboard.c | ||
w32_keyboard.h | ||
win32-console-wrapper.c |