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>