MonotonicClock
interface MonotonicClock
The source of wall time for the engine.
Every timing decision in KitePlayer reads time through this interface and never through a platform clock directly. That is what makes synchronisation, seeking, buffering and frame dropping testable: a test supplies a clock it controls and drives a whole playback session through hours of media in a few milliseconds, deterministically.
Implementations must be monotonic. A clock that can go backwards, such as a wall calendar clock adjusted by NTP, will make the engine present frames in the wrong order.