Skip to content
  • Niklas Haas's avatar
    utils/frame_queue: add new interpolation helper · 0e594407
    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