[vlc-devel] [PATCH v2 00/21] Refactor OpenGL converters

Steve Lhomme robux4 at ycbcr.xyz
Tue Jan 7 16:19:05 CET 2020


Do you have a branch with all these patches ?

On 2020-01-07 12:41, Romain Vimont wrote:
> 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...).
> 
> Changes since patchset v1:
>   - rename "importer" to "interop"
>   - implement interop for cvpx
>   - fix matrix multiplication order (OrientationMatrix * TransformMatrix)
>   - remove vlc_object_t from opengl_tex_converter_t
>   - rename "glconv" to "glinterop"
>   - rename module libs from libglconv_* to libglinterop_*
> 
> Romain Vimont (21):
>    opengl: use common fragment shader for Android
>    opengl: extract interop from converter
>    opengl: expose software chroma in interop
>    opengl: remove tex converter usages
>    opengl: split yuv_base_init()
>    opengl: use interop for rgb_base_init()
>    opengl: split xyz12_init()
>    opengl: extract interop initialization
>    opengl: init swizzle separately
>    opengl: expose opengl_interop_init()
>    opengl: initialize fshader from vout_helper
>    opengl: refactor generic_init()
>    opengl: make interop a vlc_object_t
>    opengl: pass interop to "glconv" modules
>    opengl: remove vlc_object_t tex converter
>    opengl: remove pf_fragment_shader_init()
>    opengl: rename converter_*.c to interop_*.c
>    opengl: rename "glconv" capability to "glinterop"
>    opengl: rename libglconv_* to libglinterop_*
>    opengl: move compatibility defines to gl_common.h
>    opengl: move interop-specific code to interop.c
> 
>   modules/hw/nvdec/nvdec_gl.c                   |   2 +-
>   modules/video_output/Makefile.am              |  50 +--
>   modules/video_output/opengl/converter.h       | 117 +-----
>   .../video_output/opengl/fragment_shaders.c    | 357 +++++-------------
>   modules/video_output/opengl/gl_common.h       |  27 ++
>   modules/video_output/opengl/internal.h        |   9 +-
>   modules/video_output/opengl/interop.c         | 241 ++++++++++++
>   modules/video_output/opengl/interop.h         | 170 +++++++++
>   ...{converter_android.c => interop_android.c} | 122 +++---
>   .../{converter_cvpx.c => interop_cvpx.c}      | 158 ++++----
>   .../opengl/{converter_sw.c => interop_sw.c}   | 195 +++++-----
>   .../{converter_vaapi.c => interop_vaapi.c}    | 123 +++---
>   .../{converter_vdpau.c => interop_vdpau.c}    |  60 +--
>   modules/video_output/opengl/vout_helper.c     | 240 +++++++-----
>   modules/video_output/opengl/vout_helper.h     |   8 +-
>   modules/video_output/win32/direct3d9.c        |   2 +-
>   16 files changed, 1047 insertions(+), 834 deletions(-)
>   create mode 100644 modules/video_output/opengl/interop.c
>   create mode 100644 modules/video_output/opengl/interop.h
>   rename modules/video_output/opengl/{converter_android.c => interop_android.c} (53%)
>   rename modules/video_output/opengl/{converter_cvpx.c => interop_cvpx.c} (56%)
>   rename modules/video_output/opengl/{converter_sw.c => interop_sw.c} (56%)
>   rename modules/video_output/opengl/{converter_vaapi.c => interop_vaapi.c} (75%)
>   rename modules/video_output/opengl/{converter_vdpau.c => interop_vdpau.c} (80%)
> 
> -- 
> 2.25.0.rc0
> 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
> 


More information about the vlc-devel mailing list