The GL_OES_EGL_image_external extension needed by by the interop code for android is not compatible with GLSL >= 300, since it doesn't support texture2D(), and texture() wasn't part of the extension before.
The extension GL_OES_EGL_image_external_essl3 must be used instead, but of course it is not compatible with GLSL < 300 and thus the correct extension must be chosen depending on the version used.
This patch enables the renderer filter and other filters compatible with glsl_version >= 300 to use the interop_android code to fix current shader compilation issues, which is all of the current use case in the codebase that we need to ensure correct support, and reenable hardware decoding interop when GLSL version is >= 300.
It doesn't provide a way for filters to request a lower glsl version from the sampler yet, in particular to ensure compatibility with filters not compatible with them. It also doesn't move this part of the sampler code to the interop yet, where the extension is really used.
Fixes #28421 (closed)
VideoLAN code repository instance