diff --git a/8921.patch b/8921.patch new file mode 100644 index 0000000..13baafd --- /dev/null +++ b/8921.patch @@ -0,0 +1,125 @@ +From 62b5f87ed9af884298fe6e637d5fa55d0fe246a5 Mon Sep 17 00:00:00 2001 +From: Marvin Scholz +Date: Thu, 5 Feb 2026 16:33:37 +0100 +Subject: [PATCH 1/2] buildsystem: detect new libspatialaudio + +We can use the presence of the version header to detect libspatialaudio +0.4.0 or higher. (For more granular checks in the future, the defines +from the version header can be checked) + +(cherry picked from commit 93c2e6ec320016a3b3a3764db44fc7434d37d031) (edited) +edited: +- VLC 3 doesn't have meson +Signed-off-by: Steve Lhomme +--- + configure.ac | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/configure.ac b/configure.ac +index e3d5fc62790..ed8274f7c61 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2895,6 +2895,15 @@ dnl Ambisonic channel mixer and binauralizer plugin + dnl + PKG_ENABLE_MODULES_VLC([SPATIALAUDIO], [], [spatialaudio], [Ambisonic channel mixer and binauralizer], [auto]) + ++AS_IF([test -n ${SPATIALAUDIO_CFLAGS+set}], [ ++ VLC_SAVE_FLAGS ++ AX_APPEND_FLAG([$SPATIALAUDIO_CFLAGS], [CFLAGS]) ++ AC_CHECK_HEADER([spatialaudio/SpatialaudioVersion.h], [ ++ AX_APPEND_FLAG([-DHAVE_SPATIALAUDIOVERSION_H=1], [SPATIALAUDIO_CFLAGS]) ++ ]) ++ VLC_RESTORE_FLAGS ++]) ++ + dnl + dnl theora decoder plugin + dnl +-- +GitLab + + +From ea82edcc10c2daad60fa4be8013eac25b7ed8f0f Mon Sep 17 00:00:00 2001 +From: Marvin Scholz +Date: Thu, 5 Feb 2026 16:34:35 +0100 +Subject: [PATCH 2/2] modules: spatialaudio: compat with new API + +This merely makes it build with the new API and doesn't yet migrate +to newer APIs. + +(cherry picked from commit a41efcaf1d0b799f0d85d2ca0c59a9c677153cc4) (rebased) +rebased: +- VLC 3 still has the spatialaudio-headphones option +Signed-off-by: Steve Lhomme +--- + .../channel_mixer/spatialaudio.cpp | 39 +++++++++++++++++-- + 1 file changed, 35 insertions(+), 4 deletions(-) + +diff --git a/modules/audio_filter/channel_mixer/spatialaudio.cpp b/modules/audio_filter/channel_mixer/spatialaudio.cpp +index ec3b0e7489c..311ab0c462e 100644 +--- a/modules/audio_filter/channel_mixer/spatialaudio.cpp ++++ b/modules/audio_filter/channel_mixer/spatialaudio.cpp +@@ -43,6 +43,23 @@ + #include + #include + ++#ifdef HAVE_SPATIALAUDIOVERSION_H ++# include ++#else ++# define SPATIALAUDIO_API_VERSION_MAJOR 0 ++#endif ++ ++#if SPATIALAUDIO_API_VERSION_MAJOR >= 2 ++ using namespace spaudio; ++ using CAmbisonicBinauralizer = spaudio::AmbisonicBinauralizer; ++ using CAmbisonicDecoder = spaudio::AmbisonicDecoder; ++ using CAmbisonicProcessor = spaudio::AmbisonicProcessor; ++ using CAmbisonicZoomer = spaudio::AmbisonicZoomer; ++ using CAmbisonicSpeaker = spaudio::AmbisonicSpeaker; ++ using CBFormat = spaudio::BFormat; ++ #define kAmblib_CustomSpeakerSetUp Amblib_SpeakerSetUps::kAmblib_CustomSpeakerSetUp ++#endif ++ + #define CFG_PREFIX "spatialaudio-" + + #define DEFAULT_HRTF_PATH "hrtfs" DIR_SEP "dodeca_and_7channel_3DSL_HRTF.sofa" +@@ -460,10 +477,18 @@ static int Open(vlc_object_t *p_this) + p_sys->mode = filter_spatialaudio::AMBISONICS_DECODER; + + unsigned i_nbChannels = aout_FormatNbChannels(&p_filter->fmt_out.audio); +- if (i_nbChannels == 1 +- || !p_sys->speakerDecoder.Configure(p_sys->i_order, true, +- kAmblib_CustomSpeakerSetUp, +- i_nbChannels)) ++ bool ok = false; ++ if (i_nbChannels > 1) { ++#if SPATIALAUDIO_API_VERSION_MAJOR >= 2 ++ ok = p_sys->speakerDecoder.Configure(p_sys->i_order, true, ++ AMB_BLOCK_TIME_LEN, p_filter->fmt_in.audio.i_rate, ++ kAmblib_CustomSpeakerSetUp, i_nbChannels); ++#else ++ ok = p_sys->speakerDecoder.Configure(p_sys->i_order, true, ++ kAmblib_CustomSpeakerSetUp, i_nbChannels); ++#endif ++ } ++ if (!ok) + { + msg_Err(p_filter, "Error creating the Ambisonics decoder."); + delete p_sys; +@@ -509,7 +534,13 @@ static int Open(vlc_object_t *p_this) + return VLC_EGENERIC; + } + ++#if SPATIALAUDIO_API_VERSION_MAJOR >= 2 ++ if (!p_sys->zoomer.Configure(p_sys->i_order, true, ++ AMB_BLOCK_TIME_LEN, ++ p_filter->fmt_in.audio.i_rate)) ++#else + if (!p_sys->zoomer.Configure(p_sys->i_order, true, 0)) ++#endif + { + msg_Err(p_filter, "Error creating the ambisonic zoomer."); + delete p_sys; +-- +GitLab + diff --git a/gstreamer128.patch b/gstreamer128.patch new file mode 100644 index 0000000..66bdd8b --- /dev/null +++ b/gstreamer128.patch @@ -0,0 +1,17 @@ +The addition of gstvideodmabufpool.h, which depends on gstvideopool.h, +causes this include to pull things in the wrong order. + +https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/10411 + +diff -up ./modules/codec/gstreamer/gstvlcvideopool.h.orig ./modules/codec/gstreamer/gstvlcvideopool.h +--- ./modules/codec/gstreamer/gstvlcvideopool.h.orig 2025-12-23 05:49:20.000000000 -0500 ++++ ./modules/codec/gstreamer/gstvlcvideopool.h 2026-02-10 01:45:40.557003527 -0500 +@@ -28,7 +28,7 @@ + #define VLC_GST_VIDEO_POOL_H + + #include +-#include ++#include + + #include "gstvlcpictureplaneallocator.h" + diff --git a/libupnp118.patch b/libupnp118.patch new file mode 100644 index 0000000..fcbbf65 --- /dev/null +++ b/libupnp118.patch @@ -0,0 +1,13 @@ +diff --git a/modules/services_discovery/upnp.hpp b/modules/services_discovery/upnp.hpp +index b90e3cf..bc17189 100644 +--- a/modules/services_discovery/upnp.hpp ++++ b/modules/services_discovery/upnp.hpp +@@ -37,7 +37,7 @@ + #include + #include + +-#if UPNP_VERSION < 10800 ++#if (UPNP_VERSION < 10800) || (UPNP_VERSION >= 11800) + typedef void* UpnpEventPtr; + #else + typedef const void* UpnpEventPtr; diff --git a/vlc.spec b/vlc.spec index f4e95c6..adbfada 100644 --- a/vlc.spec +++ b/vlc.spec @@ -19,7 +19,6 @@ # some dependencies are not yet in EPEL 10 %bcond daala 1 %bcond lirc 1 -%bcond schro %[!(0%{?rhel} >= 10)] %bcond sdl %[!(0%{?rhel} >= 10)] %ifnarch s390x @@ -52,6 +51,8 @@ Source: https://get.videolan.org/vlc/%{version}/vlc-%{version}.tar.xz Source: macros.vlc ## upstream patches +# spatialaudio: fix compilation with libspatialaudio 4.0 +Patch: 8921.patch ## backported patches from master # freerdp: update to freerdp 2.0 api (#2278) @@ -74,6 +75,10 @@ Patch: libidn2.patch Patch: lua-math.patch # avoid "stale plugin cache" warnings in flatpaks Patch: flatpak-cache.patch +# fix build with gstreamer-1.28 +Patch: gstreamer128.patch +# fix build with libupnp-1.18 +Patch: libupnp118.patch %{load:%{S:1}} %global __provides_exclude_from ^%{vlc_plugindir}/.*$ @@ -209,9 +214,6 @@ BuildRequires: pkgconfig(Qt5Svg) >= 5.5 BuildRequires: pkgconfig(Qt5Widgets) >= 5.5 BuildRequires: pkgconfig(Qt5X11Extras) >= 5.5 BuildRequires: pkgconfig(samplerate) -%if %{with schro} -BuildRequires: pkgconfig(schroedinger-1.0) >= 1.0.10 -%endif %if %{with sdl} BuildRequires: pkgconfig(SDL_image) >= 1.2.10 %endif @@ -670,7 +672,6 @@ export LIVE555_PREFIX=%{_prefix} --enable-theora \ --enable-oggspots \ --enable-daala%{!?with_daala:=no} \ - --enable-schroedinger%{!?with_schro:=no} \ --enable-png \ --enable-jpeg \ --disable-bpg \ @@ -1153,9 +1154,6 @@ make check %if %{with vpl} %{vlc_plugindir}/codec/libqsv_plugin.so %endif -%if %{with schro} -%{vlc_plugindir}/codec/libschroedinger_plugin.so -%endif %if %{with sdl} %{vlc_plugindir}/codec/libsdl_image_plugin.so %endif