-
Niklas Haas authored
The API for `pl_frame_mix` is currently a bit abstract and high-level. Most clients will probably not care to reimplement the massive amounts of logic that go into constructing a proper frame queue. Enter `pl_queue`, the solution for all your frame queuing needs! This will interface with the decoder via your choice of a push or pull API, and translate all decoded frames into an abstract internal timeline, `pl_frame_mix` slices of which can be probed for arbitrary timestamps. As an extra bonus, this also contains code for things like FPS estimation and VPS (vsyncs per second) estimation, somewhat mirroring the logic in e.g. mpv's interpolation/display-sync code. It's worth pointing out that this is a rather severe API break for `pl_frame_mix`, but I'm pretty sure this API has absolutely zero users, given the massive amount of effort required to use it before this commit. So I didn't bother with backwards compatibility, aside from an API bump as usualy.
0e594407