Jean-Baptiste Kempf pushed to branch master at VideoLAN / VLC


Commits:
00cab251 by Alexandre Janniaux at 2026-01-23T20:40:41+01:00
meson: video_output: move egl up

It's used by modules from opengl/ folder.

- - - - -
9bdb9cc1 by Alexandre Janniaux at 2026-01-23T20:40:41+01:00
meson: video_output: move drm_dep declaration before opengl subdir

The egl_display_gbm module needs drm_dep to be available, so move
the declaration before subdir('opengl') is called.

- - - - -
4ca69620 by Alexandre Janniaux at 2026-01-23T20:40:41+01:00
meson: opengl: add generic gl_vout_dep and gles2 module

- - - - -
180fb64b by Alexandre Janniaux at 2026-01-23T20:40:41+01:00
meson: opengl: add glinterop_vaapi module

- - - - -
3877483d by Alexandre Janniaux at 2026-01-23T20:40:41+01:00
meson: opengl: add glfilter_draw module

- - - - -
8d42df43 by Alexandre Janniaux at 2026-01-23T20:40:41+01:00
meson: opengl: add glfilter_mock module

- - - - -
bf73375a by Alexandre Janniaux at 2026-01-23T20:40:41+01:00
meson: video_filter: add pl_scale module

- - - - -
cf4ddc9d by Alexandre Janniaux at 2026-01-23T20:40:41+01:00
meson: opengl: add egl_display_generic module

- - - - -
795c21c6 by Alexandre Janniaux at 2026-01-23T20:40:41+01:00
meson: opengl: add egl_display_gbm module

- - - - -
64af60ce by Alexandre Janniaux at 2026-01-23T20:40:41+01:00
meson: video_filter: add egl_pbuffer_filter module

- - - - -
424f5fbb by Alexandre Janniaux at 2026-01-23T20:40:41+01:00
meson: video_filter: add egl_surfacetexture module

- - - - -
b39334e8 by Alexandre Janniaux at 2026-01-23T20:40:41+01:00
opengl: meson: refactor interop_sw definition

- - - - -


3 changed files:

- modules/video_filter/meson.build
- modules/video_output/meson.build
- modules/video_output/opengl/meson.build


Changes:

=====================================
modules/video_filter/meson.build
=====================================
@@ -62,6 +62,36 @@ vlc_modules += {
     'enabled' : opengl_dep.found() and host_system == 'windows'
 }
 
+# pl_scale - libplacebo scale filter
+vlc_modules += {
+    'name' : 'pl_scale',
+    'sources' : files('../video_output/opengl/pl_scale.c'),
+    'dependencies' : [gl_common_dep, gl_vout_dep, libplacebo_dep],
+    'link_with' : [libplacebo_utils],
+    'enabled' : libplacebo_dep.found() and gl_vout_dep.found(),
+}
+
+# egl_pbuffer_filter
+vlc_modules += {
+    'name' : 'egl_pbuffer_filter',
+    'sources' : files(
+        'egl_pbuffer.c',
+        '../video_output/opengl/egl_display.c',
+    ),
+    'dependencies' : [gl_common_dep, gl_vout_dep, egl_dep],
+    'enabled' : egl_dep.found() and gl_vout_dep.found() and host_system != 
'emscripten',
+}
+
+# egl_surfacetexture (Android only)
+vlc_modules += {
+    'name' : 'egl_surfacetexture',
+    'sources' : files('egl_surfacetexture.c'),
+    'dependencies' : [egl_dep, opengles2_dep],
+    'c_args' : ['-DUSE_OPENGL_ES2'],
+    'link_with' : [libandroid_env, libandroid_utils, libvlc_opengles],
+    'enabled' : host_system == 'android' and egl_dep.found(),
+}
+
 if host_system == 'windows'
     vlc_modules += {
         'name' : 'amf_frc',


=====================================
modules/video_output/meson.build
=====================================
@@ -20,6 +20,10 @@ else
     opengl_dep = dependency('gl', required: false)
 endif
 opengles2_dep = dependency('glesv2', required: get_option('gles2'))
+egl_dep = dependency('egl', required: false)
+
+# Declared here so it's available in opengl subdir for egl_display_gbm
+drm_dep = dependency('libdrm', version: '>= 2.4.83', required: 
get_option('drm'))
 
 if host_system == 'darwin'
     subdir('apple')
@@ -98,7 +102,6 @@ vlc_modules += {
 }
 
 # Kernel Mode Setting
-drm_dep = dependency('libdrm', version: '>= 2.4.83', required: 
get_option('drm'))
 if drm_dep.found()
     vlc_modules += {
         'name' : 'kms',
@@ -164,8 +167,6 @@ if xcb_dep.found()
     endif
 endif
 
-egl_dep = dependency('egl', required: false)
-
 if x11_dep.found() and egl_dep.found()
     vlc_modules += {
         'name' : 'egl_x11',


=====================================
modules/video_output/opengl/meson.build
=====================================
@@ -52,29 +52,57 @@ if opengles2_dep.found()
                                      c_args: '-DUSE_OPENGL_ES2')
 endif
 
-# interop_sw
-interop_sw_deps = [gl_common_dep, m_lib]
-interop_sw_libs = []
-interop_sw_cargs = []
-if host_system in ['darwin', 'android'] or opengl_dep.found() or 
opengles2_dep.found()
-    if have_osx and opengl_dep.found()
-        interop_sw_libs += libvlc_opengl
-    elif host_system in ['darwin', 'android'] and opengles2_dep.found()
-        interop_sw_libs += libvlc_opengles
-    endif
-
-    if opengles2_dep.found() or host_system == 'android'
-        interop_sw_cargs += '-DUSE_OPENGL_ES2'
-    endif
+# Unified dependency for modules that work with either OpenGL or OpenGL ES
+# NOTE: This does not provide linkage, but only headers for access to the
+#       common OpenGL/OpenGLES definitions for modules using the dynamic
+#       loading of symbols from the OpenGL provider.
+gl_vout_dep = disabler()
+if opengl_dep.found() and not (have_ios or have_tvos or host_system == 
'android')
+    gl_vout_dep = declare_dependency(
+        link_with: libvlc_opengl,
+    )
+elif opengles2_dep.found() or have_ios or have_tvos or host_system == 'android'
+    gl_vout_dep = declare_dependency(
+        link_with: libvlc_opengles,
+        compile_args: ['-DUSE_OPENGL_ES2'],
+    )
 endif
 
+# gles2 vout display module
+vlc_modules += {
+    'name' : 'gles2',
+    'sources' : [
+            files('display.c'),
+            opengl_vout_commonsources
+        ],
+    'link_with' : [libvlc_opengles],
+    'dependencies' : [gl_common_dep, m_lib],
+    'c_args' : ['-DUSE_OPENGL_ES2'],
+    'enabled' : opengles2_dep.found(),
+}
+
+# glfilter_draw
+vlc_modules += {
+    'name' : 'glfilter_draw',
+    'sources' : files('filter_draw.c'),
+    'dependencies' : [gl_common_dep, gl_vout_dep, m_lib],
+    'enabled' : gl_vout_dep.found(),
+}
+
+# glfilter_mock (test module)
+vlc_modules += {
+    'name' : 'glfilter_mock',
+    'sources' : files('filter_mock.c'),
+    'dependencies' : [gl_common_dep, gl_vout_dep, m_lib],
+    'enabled' : gl_vout_dep.found(),
+}
+
+# interop_sw
 vlc_modules += {
     'name' : 'glinterop_sw',
     'sources' : files('interop_sw.c'),
-    'dependencies' : interop_sw_deps,
-    'c_args' : interop_sw_cargs,
-    'link_with' : interop_sw_libs,
-    'enabled' : host_system in ['darwin', 'android'] or opengl_dep.found() or 
opengles2_dep.found(),
+    'dependencies' : [gl_common_dep, gl_vout_dep, m_lib],
+    'enabled' : gl_vout_dep.found(),
 }
 
 # interop_dxva2
@@ -88,3 +116,39 @@ vlc_modules += {
     'link_with' : [ d3d9_common_lib ],
     'enabled' : have_win_desktop and opengl32_lib.found() and 
dxva2_dep.found() and not missing_win_glew,
 }
+
+# glinterop_vaapi - VAAPI (E)GL interop
+vlc_modules += {
+    'name' : 'glinterop_vaapi',
+    'sources' : files(
+        'interop_vaapi.c',
+        '../../hw/vaapi/vlc_vaapi.c',
+    ),
+    'dependencies' : [gl_common_dep, libva_dep, egl_dep],
+    'enabled' : opengl_dep.found() and egl_dep.found() and libva_dep.found(),
+}
+
+# egl_display_generic
+vlc_modules += {
+    'name' : 'egl_display_generic',
+    'sources' : files('egl_display_generic.c'),
+    'dependencies' : [egl_dep],
+    'enabled' : egl_dep.found(),
+}
+
+# egl_display_gbm
+gbm_dep = dependency('gbm', required: false)
+egl_display_gbm_cargs = []
+egl_display_gbm_deps = [egl_dep, gbm_dep]
+if drm_dep.found()
+    egl_display_gbm_cargs += '-DHAVE_KMS=1'
+    egl_display_gbm_deps += drm_dep
+endif
+
+vlc_modules += {
+    'name' : 'egl_display_gbm',
+    'sources' : files('egl_display_gbm.c'),
+    'dependencies' : egl_display_gbm_deps,
+    'c_args' : egl_display_gbm_cargs,
+    'enabled' : egl_dep.found() and gbm_dep.found(),
+}



View it on GitLab: 
https://code.videolan.org/videolan/vlc/-/compare/7090b77191639b36725e33476efdf58bb0819ad5...b39334e89f49cfabae90557432d46b5fbe70d7fc

-- 
View it on GitLab: 
https://code.videolan.org/videolan/vlc/-/compare/7090b77191639b36725e33476efdf58bb0819ad5...b39334e89f49cfabae90557432d46b5fbe70d7fc
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance
_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to