Skip to content

Refactor OpenGL converters

Romain Vimont requested to merge glrefactor.12 into master

The purpose of this refactor is to minimize the scope of OpenGL converter modules, to only initialize what is hardware-specific: the interop part.

An interop is responsible to upload picture planes to OpenGL textures, and keep track of some metadata about the format and context. It is specific to the input picture format (software, VDPAU, VAAPI, Android, CVPX). It is loaded via the VLC module mechanism.

The remaining parts, including the generation of the whole fragment shader code and the callbacks to prepare the shader for drawing every picture, are kept in the opengl_tex_converter_t. It is now initialized by the "core" (the OpenGL vout module), i.e. not by hardware-specific "glconv" modules anymore.

This also paves the way to refactor the fragment shader generation and loading to use modular components (chroma converters, filters, renderers...).

Merge request reports