[vlc-devel] [PATCH 00/18] Refactor OpenGL converters

Thomas Guillem thomas at gllm.fr
Mon Dec 23 11:59:59 CET 2019


I sent few small remarks, otherwise I'm OK for the whole set.

On Fri, Dec 20, 2019, at 16:37, Romain Vimont wrote:
> Here is a branch: <https://github.com/rom1v/vlc/commits/glrefactor>
> 
>     git fetch https://github.com/rom1v/vlc glrefactor:glrefactor
> 
> On Fri, Dec 20, 2019 at 03:48:42PM +0100, 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 _importer_ part.
> > 
> > An _importer_ 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...).
> > 
> > The first commit is a new version of a patch already submitted:
> > <https://mailman.videolan.org/pipermail/vlc-devel/2019-December/130108.html>
> > 
> > TODO: adapt converter_cvpx (for mac/iphone)
> > 
> > Romain Vimont (18):
> >   opengl: use common fragment shader for Android
> >   opengl: extract importer from converter
> >   opengl: expose software chroma in importer
> >   opengl: remove tex converter usages
> >   opengl: split yuv_base_init()
> >   opengl: use importer for rgb_base_init()
> >   opengl: split xyz12_init()
> >   opengl: extract importer initialization
> >   opengl: init swizzle separately
> >   opengl: expose opengl_importer_init()
> >   opengl: initialize fshader from vout_helper
> >   opengl: refactor generic_init()
> >   opengl: make importer a vlc_object_t
> >   opengl: pass importer to "glconv" modules
> >   opengl: remove pf_fragment_shader_init()
> >   opengl: rename converters modules to importers
> >   opengl: move compatibility defines to gl_common.h
> >   opengl: move importer-specific code to importer.c
> > 
> >  modules/video_output/Makefile.am              |  16 +-
> >  modules/video_output/opengl/converter.h       | 115 +-----
> >  .../video_output/opengl/fragment_shaders.c    | 357 +++++-------------
> >  modules/video_output/opengl/gl_common.h       |  27 ++
> >  modules/video_output/opengl/importer.c        | 241 ++++++++++++
> >  modules/video_output/opengl/importer.h        | 170 +++++++++
> >  ...converter_android.c => importer_android.c} | 120 +++---
> >  .../opengl/{converter_sw.c => importer_sw.c}  | 190 +++++-----
> >  .../{converter_vaapi.c => importer_vaapi.c}   | 121 +++---
> >  .../{converter_vdpau.c => importer_vdpau.c}   |  58 +--
> >  modules/video_output/opengl/internal.h        |   9 +-
> >  modules/video_output/opengl/vout_helper.c     | 226 +++++++----
> >  12 files changed, 926 insertions(+), 724 deletions(-)
> >  create mode 100644 modules/video_output/opengl/importer.c
> >  create mode 100644 modules/video_output/opengl/importer.h
> >  rename modules/video_output/opengl/{converter_android.c => importer_android.c} (54%)
> >  rename modules/video_output/opengl/{converter_sw.c => importer_sw.c} (59%)
> >  rename modules/video_output/opengl/{converter_vaapi.c => importer_vaapi.c} (77%)
> >  rename modules/video_output/opengl/{converter_vdpau.c => importer_vdpau.c} (82%)
> > 
> > -- 
> > 2.24.1
> > 
> > _______________________________________________
> > vlc-devel mailing list
> > To unsubscribe or modify your subscription options:
> > https://mailman.videolan.org/listinfo/vlc-devel
> _______________________________________________
> 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