Projects
Extra
vlc-beta
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 245
View file
_service:obs_scm:vlc-beta-20260123.ed053b67e.obscpio/bin/vlc.c -> _service:obs_scm:vlc-beta-20260125.e23555302.obscpio/bin/vlc.c
Changed
@@ -116,15 +116,22 @@ *****************************************************************************/ int main(int argc, const char *argv) { - /* The so-called POSIX-compliant MacOS X reportedly processes SIGPIPE even - * if it is blocked in all thread. - * Note: this is NOT an excuse for not protecting against SIGPIPE. If - * LibVLC runs outside of VLC, we cannot rely on this code snippet. */ - signal (SIGPIPE, SIG_IGN); - /* Restore SIGCHLD in case our parent process ignores it. */ + /* + * Contrary to popular belief, `execl()`, `execv()` et al. do **not** reset + * signal handling to `SIG_DFL` default from `SIG_IGN`. So we restore the + * `SIGCHLD` handler to `SIG_DFL` here in the unlikely case that the parent + * had it set to `SIG_IGN`. Otherwise `waitpid()` will not work properly. + * NOTE WELL: This is a documented requirement of `libvlc_new()`. + */ signal (SIGCHLD, SIG_DFL); - -#ifndef NDEBUG +#ifdef NDEBUG + /* + * Writing to a pipe with no open read end will raise `SIGPIPE` and kill + * the process *unless* proper care is taken. In principles, our code does + * take said care, but we are better safe than sorry in non-debug builds. + */ + signal (SIGPIPE, SIG_IGN); +#else /* Activate malloc checking routines to detect heap corruptions. */ setenv ("MALLOC_CHECK_", "2", 1); @@ -136,6 +143,7 @@ setenv ("VLC_PLUGIN_PATH", TOP_BUILDDIR"/modules", 1); setenv ("VLC_DATA_PATH", TOP_SRCDIR"/share", 1); setenv ("VLC_LIB_PATH", TOP_BUILDDIR"/modules", 1); + setenv ("VLC_LIBEXEC_PATH", TOP_BUILDDIR"/modules", 1); #endif /* Clear the X.Org startup notification ID. Otherwise the UI might try to
View file
_service:obs_scm:vlc-beta-20260123.ed053b67e.obscpio/contrib/src/qt/rules.mak -> _service:obs_scm:vlc-beta-20260125.e23555302.obscpio/contrib/src/qt/rules.mak
Changed
@@ -64,6 +64,8 @@ QTBASE_CONFIG += -DFEATURE_freetype=ON -DFEATURE_system_freetype=ON endif +QTBASE_CONFIG += -DFEATURE_framework=OFF + ifdef HAVE_CROSS_COMPILE # This is necessary to make use of qmake QTBASE_CONFIG += -DQT_QMAKE_DEVICE_OPTIONS:STRING=CROSS_COMPILE=$(HOST)-
View file
_service:obs_scm:vlc-beta-20260123.ed053b67e.obscpio/extras/ci/gitlab-ci.yml -> _service:obs_scm:vlc-beta-20260125.e23555302.obscpio/extras/ci/gitlab-ci.yml
Changed
@@ -24,7 +24,7 @@ VLC_WIN64_IMAGE: registry.videolan.org/vlc-debian-win64-posix:20241118101328 VLC_WIN_LLVM_MSVCRT_IMAGE: registry.videolan.org/vlc-debian-llvm-msvcrt:20251223015425 VLC_WIN_LLVM_UCRT_IMAGE: registry.videolan.org/vlc-debian-llvm-ucrt:20251223015425 - VLC_DEBIAN_IMAGE: registry.videolan.org/vlc-debian-unstable:20241112155431 + VLC_DEBIAN_IMAGE: registry.videolan.org/vlc-debian-unstable:20260121072258 VLC_ANDROID_IMAGE: registry.videolan.org/vlc-debian-android:20250626142950 VLC_SNAP_IMAGE: registry.videolan.org/vlc-ubuntu-snap:20251117145936 VLC_RASPBIAN_IMAGE: registry.videolan.org/vlc-ubuntu-raspberry:20240806085528
View file
_service:obs_scm:vlc-beta-20260123.ed053b67e.obscpio/modules/demux/mkv/matroska_segment_parse.cpp -> _service:obs_scm:vlc-beta-20260125.e23555302.obscpio/modules/demux/mkv/matroska_segment_parse.cpp
Changed
@@ -478,6 +478,7 @@ } E_CASE( KaxContentCompSettings, kccs ) { + delete vars.tk->p_compression_data; vars.tk->p_compression_data = new KaxContentCompSettings( kccs ); } E_CASE( KaxTrackVideo, tkv )
View file
_service:obs_scm:vlc-beta-20260123.ed053b67e.obscpio/modules/gui/qt/tests/vlc_stub_modules.cpp -> _service:obs_scm:vlc-beta-20260125.e23555302.obscpio/modules/gui/qt/tests/vlc_stub_modules.cpp
Changed
@@ -193,10 +193,15 @@ { //see test/libvlc/test.h QByteArray alarm_timeout = qgetenv("VLC_TEST_TIMEOUT"); - if (alarm_timeout.isEmpty()) + bool has_timeout; + auto vlc_timeout = alarm_timeout.toLongLong(&has_timeout); + if (!has_timeout) qputenv("QTEST_FUNCTION_TIMEOUT", "5000"); else + { + alarm_timeout.setNum(vlc_timeout * 1000); qputenv("QTEST_FUNCTION_TIMEOUT", alarm_timeout); + } setenv("VLC_PLUGIN_PATH", TOP_BUILDDIR"/modules", 1); setenv("VLC_LIB_PATH", TOP_BUILDDIR"/modules", 1); @@ -212,5 +217,3 @@ return true; } - -
View file
_service:obs_scm:vlc-beta-20260123.ed053b67e.obscpio/modules/hw/meson.build -> _service:obs_scm:vlc-beta-20260125.e23555302.obscpio/modules/hw/meson.build
Changed
@@ -3,6 +3,9 @@ # nvdec hw module subdir('nvdec') +# vaapi hw module +subdir('vaapi') + if host_system == 'windows' # d3d11 interface module subdir('d3d11')
View file
_service:obs_scm:vlc-beta-20260125.e23555302.obscpio/modules/hw/vaapi/meson.build
Added
@@ -0,0 +1,57 @@ +# VAAPI decoder device modules + +vaapi_common_sources = files( + 'decoder_device.c', + 'vlc_vaapi.c', +) + +# Check for VA-API backends (only if libva is available) +if libva_dep.found() + libva_x11_dep = dependency('libva-x11', required: false) + libva_drm_dep = dependency('libva-drm', required: false) + libva_wayland_dep = dependency('libva-wayland', required: false) +else + libva_x11_dep = disabler() + libva_drm_dep = disabler() + libva_wayland_dep = disabler() +endif + +# VAAPI decoder device for X11 +vlc_modules += { + 'name' : 'decdev_vaapi_x11', + 'sources' : vaapi_common_sources, + 'c_args' : '-DHAVE_VA_X11', + 'dependencies' : libva_dep, libva_x11_dep, x11_dep, + 'enabled' : libva_dep.found() and libva_x11_dep.found() and x11_dep.found(), +} + +# VAAPI decoder device for DRM +vlc_modules += { + 'name' : 'decdev_vaapi_drm', + 'sources' : vaapi_common_sources, + 'c_args' : '-DHAVE_VA_DRM', + 'dependencies' : libva_dep, libva_drm_dep, + 'enabled' : libva_dep.found() and libva_drm_dep.found(), +} + +# VAAPI decoder device for Wayland +vlc_modules += { + 'name' : 'decdev_vaapi_wl', + 'sources' : vaapi_common_sources, + 'c_args' : '-DHAVE_VA_WL', + 'dependencies' : libva_dep, libva_wayland_dep + wayland_deps, + 'enabled' : libva_dep.found() and libva_wayland_dep.found() and have_wayland, +} + +# VAAPI filters plugin +vlc_modules += { + 'name' : 'vaapi_filters', + 'sources' : files( + 'filters.c', + 'vlc_vaapi.c', + 'chroma.c', + ), + 'dependencies' : libva_dep, + 'link_with' : chroma_copy_lib, + 'enabled' : libva_dep.found(), +}
View file
_service:obs_scm:vlc-beta-20260123.ed053b67e.obscpio/modules/meson.build -> _service:obs_scm:vlc-beta-20260125.e23555302.obscpio/modules/meson.build
Changed
@@ -57,6 +57,7 @@ endif else have_wayland = false + wayland_deps = disabler() endif # PipeWire
View file
_service:obs_scm:vlc-beta-20260123.ed053b67e.obscpio/modules/stream_out/chromecast/chromecast_ctrl.cpp -> _service:obs_scm:vlc-beta-20260125.e23555302.obscpio/modules/stream_out/chromecast/chromecast_ctrl.cpp
Changed
@@ -130,6 +130,7 @@ : m_module(p_this) , m_device_port(device_port) , m_device_addr(device_addr) + , m_device_name(_("Unknown")) , m_last_request_id( 0 ) , m_mediaSessionId( 0 ) , m_on_input_event( NULL ) @@ -154,7 +155,6 @@ , m_cc_time_date( VLC_TICK_INVALID ) , m_cc_time( VLC_TICK_INVALID ) , m_pingRetriesLeft( PING_WAIT_RETRIES ) - , m_device_name(_("Unknown")) { m_communication = new ChromecastCommunication( p_this, getHttpStreamPath(), getHttpStreamPort(),
View file
_service:obs_scm:vlc-beta-20260123.ed053b67e.obscpio/modules/video_filter/meson.build -> _service:obs_scm:vlc-beta-20260125.e23555302.obscpio/modules/video_filter/meson.build
Changed
@@ -62,6 +62,36 @@ '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',
View file
_service:obs_scm:vlc-beta-20260123.ed053b67e.obscpio/modules/video_output/meson.build -> _service:obs_scm:vlc-beta-20260125.e23555302.obscpio/modules/video_output/meson.build
Changed
@@ -20,6 +20,10 @@ 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 @@ } # 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 @@ endif endif -egl_dep = dependency('egl', required: false) - if x11_dep.found() and egl_dep.found() vlc_modules += { 'name' : 'egl_x11',
View file
_service:obs_scm:vlc-beta-20260123.ed053b67e.obscpio/modules/video_output/opengl/meson.build -> _service:obs_scm:vlc-beta-20260125.e23555302.obscpio/modules/video_output/opengl/meson.build
Changed
@@ -52,29 +52,57 @@ 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 @@ '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 file
_service:obs_scm:vlc-beta-20260123.ed053b67e.obscpio/src/posix/dirs.c -> _service:obs_scm:vlc-beta-20260125.e23555302.obscpio/src/posix/dirs.c
Changed
@@ -50,7 +50,7 @@ static const char env_vars16 = { VLC_PKG_DATA_DIR = "VLC_DATA_PATH", VLC_PKG_LIB_DIR = "VLC_LIB_PATH", - VLC_PKG_LIBEXEC_DIR = "VLC_LIB_PATH", + VLC_PKG_LIBEXEC_DIR = "VLC_LIBEXEC_PATH", }; if (type < ARRAY_SIZE(env_vars)) {
View file
_service:obs_scm:vlc-beta-20260123.ed053b67e.obscpio/test/meson.build -> _service:obs_scm:vlc-beta-20260125.e23555302.obscpio/test/meson.build
Changed
@@ -26,6 +26,8 @@ 'objc_args', 'include_directories', 'env', + 'enabled', + 'wrapper', foreach key : vlc_test.keys() @@ -35,6 +37,11 @@ endif endforeach + # Skip disabled tests + if not vlc_test.get('enabled', true) + continue + endif + common_args = '-DSRCDIR="@0@"'.format(vlc_src_root + '/test/'), '-DTOP_BUILDDIR="@0@"'.format(vlc_build_root), @@ -72,22 +79,41 @@ dependencies: qt6_dep) endif - test(vlc_test'name', - executable(vlc_test'name', vlc_test'sources', moc_sources, - build_by_default: false, - link_with: vlc_test.get('link_with', ), - vlc_libcompat, - link_args: vlc_test.get('link_args', ), - include_directories: vlc_test.get('include_directories', ), - vlc_include_dirs, - dependencies: vlc_test.get('dependencies', ), - libvlccore_deps, opengl_dep, - c_args: vlc_test.get('c_args', ), common_args, - cpp_args: vlc_test.get('cpp_args', ), common_args, - objc_args: vlc_test.get('objc_args', ), common_args), + test_exe = executable(vlc_test'name', vlc_test'sources', moc_sources, + build_by_default: false, + link_with: vlc_test.get('link_with', ), + vlc_libcompat, + link_args: vlc_test.get('link_args', ), + include_directories: vlc_test.get('include_directories', ), + vlc_include_dirs, + dependencies: vlc_test.get('dependencies', ), + libvlccore_deps, opengl_dep, + c_args: vlc_test.get('c_args', ), common_args, + cpp_args: vlc_test.get('cpp_args', ), common_args, + objc_args: vlc_test.get('objc_args', ), common_args) + + # Handle optional test wrapper (e.g., xvfb-run for X11 tests) + # The wrapper must be a program object + if vlc_test.has_key('wrapper') + test_wrapper = vlc_test'wrapper' + if test_wrapper.found() + test(vlc_test'name', + test_wrapper, + args: test_exe, + env: vlc_test.get('env', ), + suite: vlc_test.get('suite', ), 'test', + depends: test_modules_deps) + else + warning('Test \'@0@\' skipped: wrapper not found'.format( + vlc_test'name')) + endif + else + test(vlc_test'name', + test_exe, env: vlc_test.get('env', ), - suite: vlc_test.get('suite', ), 'test', - depends: test_modules_deps) + suite: vlc_test.get('suite', ), 'test', + depends: test_modules_deps) + endif endforeach libvlc_demux_defines =
View file
_service:obs_scm:vlc-beta-20260123.ed053b67e.obscpio/test/modules/meson.build -> _service:obs_scm:vlc-beta-20260125.e23555302.obscpio/test/modules/meson.build
Changed
@@ -108,7 +108,6 @@ 'module_depends' : vlc_plugins_targets.keys() } -if opengl_dep.found() vlc_tests += { 'name' : 'test_modules_video_output_opengl_filters', 'sources' : files( @@ -125,11 +124,10 @@ 'suite' : 'modules', 'test_modules', 'link_with' : libvlc, libvlccore, 'c_args' : '-DVLC_TEST_OPENGL_API=VLC_OPENGL', - 'module_depends' : vlc_plugins_targets.keys() + 'module_depends' : vlc_plugins_targets.keys(), + 'enabled' : opengl_dep.found(), } -endif -if opengles2_dep.found() vlc_tests += { 'name' : 'test_modules_video_output_opengl_es2_filters', 'sources' : files( @@ -146,9 +144,9 @@ 'suite' : 'modules', 'test_modules', 'link_with' : libvlc, libvlccore, 'c_args' : '-DVLC_TEST_OPENGL_API=VLC_OPENGL_ES2', - 'module_depends' : vlc_plugins_targets.keys() + 'module_depends' : vlc_plugins_targets.keys(), + 'enabled' : opengles2_dep.found(), } -endif vlc_tests += { 'name' : 'test_modules_stream_out_transcode',
View file
_service:obs_scm:vlc-beta.obsinfo
Changed
@@ -1,4 +1,4 @@ name: vlc-beta -version: 20260123.ed053b67e -mtime: 1769163521 -commit: ed053b67e2fdef0e3614a37d3ee87369780ef2d7 +version: 20260125.e23555302 +mtime: 1769325750 +commit: e23555302f928e3ad750e2c8c8960ccf9ecffd58
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.