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