Skip to content
Snippets Groups Projects

YCbCr output support

Merged Niklas Haas requested to merge yuv_output into master
Compare changes
  • Side-by-side
  • Inline
Files
5
  • f9f2e985
    This is a major overhaul of the target rendering code, and the renderer
    code in general (to keep things organized and understandable).
    
    The motivation comes from vf_libplacebo, which wants to let users render
    out subsampled YCbCr content directly. Unfortunately, we're still pretty
    much forced to upconvert to RGB internally, if only for the sake of
    things like tone mapping, linear scaling, and so forth. Plus, the entire
    pl_renderer architecture is very much designed around the idea that
    there's only one plane currently being rendered. While it's not entirely
    impossible to change this, it'd be _way_ outside the scope of this
    already massive change.
    
    Due to the major change of a core API, I decided to make the old `pl_tex
    *fbo` interface merely deprecated, rather than removing it entirely. Due
    to the increasing unification between `pl_image` and `pl_render_target`,
    I may choose to merge these into a single `pl_frame` at some point in
    the future, but that would also imply dropping this bit of backwards
    compatibility, so I'll postpone that refactor until after the next major
    release.
    
    Pick up a few bugs related to the dithering/compute indirection code
    while we're at it.
    
    Added a new test case to make sure it round trips, even for oddly-sized
    planes.
Loading