Find a way for opengl interop to make it work as a video converter
After the last rework of the OpenGL pipeline, the opengl interop is finally clearly separated from the video output and is reusable in filters, while providing huge simplification to the interop implementations compared to the previous glconv capability.
However, it can still only work within an OpenGL module (vout or filter with a vlc_gl_t implementation) and it cannot currently be used to directly provide OpenGL textures to those clients from the outside, or said otherwise it cannot be used to implement an OpenGL private chroma.
The main symptoms of this missing part is that the vout display is typically re-uploading the same picture over and over again when it's being drawn, which happens under display lock though it doesn't depend on the display state at all, and a change in format will introduce additional (potentially cpu) conversions, which could have been done in OpenGL directly.
This issue is a bit hard though, because there is no global concept of "OpenGL texture". An OpenGL texture is an identifier in an OpenGL context, which can use different underlying implementation which are not compatible, and is local to a given thread. In addition, when creating the video converter, the OpenGL context for the display or filter might actually not be available since it's later in the chain.
This is one of the final step before stabilizing the OpenGL layer for good.