video_output: opengl: add basic support for libplacebo
commit77d8be7e6387a81bc1749d8a7fb62a366bd652d6
authorNiklas Haas <git@haasn.xyz>
Tue, 31 Oct 2017 21:04:49 +0000 (31 22:04 +0100)
committerThomas Guillem <thomas@gllm.fr>
Fri, 3 Nov 2017 09:59:24 +0000 (3 10:59 +0100)
tree651d92763c988573a5ea016babb3f069b06ee645
parentf023eb4bfa550174cdead9dfd53641179ef60fa1
video_output: opengl: add basic support for libplacebo

This adds support for conversion between color spaces, in particular HDR
tone mapping and wide gamut -> standard gamut conversion.

Things that this commit does not (yet) address:

- It does not use libplacebo's scaling features. This is blocked by the
  fact that libplacebo does not currently support OpenGL (only Vulkan).

- It does not add support for BT.2020 YCbCr. This would be easy to
  implement in much the same way as the tone mapping support, by using
  pl_shader_decode_color, replacing the hard-coded matrices. This would
  also allow adding support for hue, saturation etc. controls.

- It does not hook up the pl_color_map_params options to the VLC GUI.
  This would have to be done to let users influence the subjective
  configuration options, as well as specify their display device's
  configuration.

All of the new code is optional, due to the lack of rigorous testing of
libplacebo (especially on other platforms) and the short timeframe
between this commit and the VLC 3.0 release. This may be changed later
on (possibly for VLC 4.0).

Signed-off-by: Thomas Guillem <thomas@gllm.fr>
configure.ac
modules/video_output/Makefile.am
modules/video_output/opengl/converter.h
modules/video_output/opengl/fragment_shaders.c
modules/video_output/opengl/vout_helper.c