Skip to content

Update and modernize the integration of libplacebo into vout_opengl

Niklas Haas requested to merge haasn/vlc:pl_opengl into master

This series accomplishes the major goal of rewriting the pl_shader-based integration of libplacebo features into the vout_opengl sampler to use the pl_opengl subsystem. This subsystem has already become available in the current minimum version of libplacebo, so there's no more barrier to using it.

This change broadly accomplishes three goals:

  1. Fixes a regression in tone-mapping functionality caused by the switch from shader-based to LUT-based tone-mapping in recent versions of libplacebo.
  2. Allows extra functionality, including inverse tone-mapping (if the user has enabled an HDR output function)
  3. Improves the quality of the existing dithering code by allowing it to use larger LUT sizes

This potentially also paves the path for some future integrations of more libplacebo features into vout_opengl (e.g. dolby vision support, AV1/H.274 film grain, ICC profile, .cube LUT, ...), by removing another hurdle.

Let me know if you want me to split up this MR in any way, although note that almost all commits depend on at least one previous commit in this series, so splitting it up would only add unnecessary MR interdependency.

Edited by Niklas Haas

Merge request reports