Compare commits

..

64 commits

Author SHA1 Message Date
Dominik 'Rathann' Mierzejewski
5a7aad739b Rebuilt for FFmpeg 9 2026-09-03 22:08:31 +02:00
Yaakov Selkowitz
5638ebdaf6 Drop schroedinger plugin
This plugin has been dropped from 3.0.24 in favour of avcodec:

https://code.videolan.org/videolan/vlc/-/merge_requests/9433
2026-07-27 13:53:13 -04:00
Gwyn Ciesla
9e3b2daaf7 libupnp rebuild 2026-07-21 11:09:27 -05:00
Fedora Release Engineering
cf6d76a464 Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild 2026-07-17 08:34:36 +00:00
Gwyn Ciesla
1e82a6562c libupnp rebuild 2026-06-26 09:31:12 -05:00
Yaakov Selkowitz
af1da39482 Rebuilt for abseil-cpp 20260526.0 2026-06-24 19:46:35 -04:00
Dominik 'Rathann' Mierzejewski
453c035755 Rebuilt for live555 2026-06-24 18:15:11 +02:00
Dominik 'Rathann' Mierzejewski
da450d86d8 Rebuilt for live555 2026-04-26 10:06:03 +02:00
Yaakov Selkowitz
ded7dd48e9 Re-enable spatialaudio
https://code.videolan.org/videolan/vlc/-/merge_requests/8921
2026-04-17 16:32:50 -04:00
Yaakov Selkowitz
a66b943e54 Fix spatialaudio disablement 2026-03-23 23:27:00 -04:00
Nicolas Chauvet
b08b4c1e46 Temporary drop libspatialaudio#2 2026-03-19 23:02:06 +01:00
Nicolas Chauvet
30190f2a3c Temporary drop libspatialaudio 2026-03-19 22:47:16 +01:00
Dominik 'Rathann' Mierzejewski
b80724c805 Rebuilt for libvpx-1.16.0 and live555-2026.02.26 2026-03-09 21:29:57 +01:00
Yaakov Selkowitz
7d8dce4f92 Rebuilt for lua 5.5 2026-03-08 11:39:44 -04:00
Yaakov Selkowitz
515c87fa57 Fix build with libupnp-1.18 2026-02-11 12:35:46 -05:00
Yaakov Selkowitz
2fd65df894 Fix build with gstreamer 1.28 2026-02-10 11:08:42 -05:00
Yaakov Selkowitz
e6738b5b7f Rebuilt for https://fedoraproject.org/wiki/Changes/TagLib2 2026-01-25 01:39:04 -05:00
Yaakov Selkowitz
666833679c 3.0.23 2026-01-18 19:39:28 -05:00
Fedora Release Engineering
26219570e9 Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-17 20:00:27 +00:00
Nicolas Chauvet
31268b10bc Rebuilt for libspatialaudio 2026-01-07 18:48:15 +01:00
FeRD (Frank Dana)
9a9eaa57b5 spec: Make opencv exclude conditional
If the opencv plugin isn't being built, don't %%exclude it from
the main package. Prevents a file-not-found build warning.

[skip changelog]
2026-01-02 13:40:02 -05:00
Yaakov Selkowitz
ab86867987 3.0.22 2025-12-02 18:22:12 -05:00
Yaakov Selkowitz
f9c0b66715 3.0.22-rc2 2025-12-02 18:22:12 -05:00
Yaakov Selkowitz
95099bfd16 3.0.22-rc1 2025-12-02 18:22:12 -05:00
Yaakov Selkowitz
0d8114ae39 Enable daala in EPEL 10
daala is available as of EPEL 10.1, and 10.0 is out of support.
2025-12-02 18:22:12 -05:00
Dominik 'Rathann' Mierzejewski
841df9659c correct postproc bcond to account for EPEL 11 2025-11-07 20:29:28 +01:00
Dominik 'Rathann' Mierzejewski
0eecef99dd Fix build with FFmpeg 8
Stop building libpostproc plugin (removed by FFmpeg upstream)

Backport upstream patches to avoid using deprecated fields and
definitions.
2025-11-06 12:12:17 +01:00
Dominik 'Rathann' Mierzejewski
8fc10c6411 Rebuilt for live555 2025-11-02 16:38:50 +01:00
Yaakov Selkowitz
8f8be22ee5 Disable crystalhd
libcrystalhd was retired from F43:

https://src.fedoraproject.org/rpms/libcrystalhd/c/79d27384e8f33077bd176f25a71bc0e8e05951e8

Also, added upgrade helpers for other conditional subpackages.
2025-07-29 15:22:54 -04:00
Fedora Release Engineering
100ba3ead9 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 20:10:48 +00:00
Yaakov Selkowitz
aa1a2ca368 Enable faad2 2025-06-25 12:14:53 -04:00
Yaakov Selkowitz
ea31b61b3e Update EPEL 10 dependencies
daala has been built for 10.0 but not 10.1, so can't be enabled quite yet.
lirc is now available in 10.0+, and the others still aren't in 10 and
therefore can (at this point) be assumed not to be in 11 either.
2025-06-25 12:06:07 -04:00
Jitka Plesnikova
16d129dec9 Rebuilt for flac 1.5.0 2025-05-27 17:04:54 +02:00
Gwyn Ciesla
11325cc086 gstreamer1-plugins-bad-free rebuild 2025-03-12 10:07:05 -05:00
Robert-André Mauchin
e8bf78f81c Rebuilt for aom 3.11.0 2025-02-05 21:36:59 +01:00
Yaakov Selkowitz
a51435bc98 vlc-plugin-ffmpeg Requires: vlc-plugins-video-out
'libvlc_vdpau.so.0()(64bit)' is required by libvdpau_avcodec_plugin.so, so
per the guidelines, this dependency needs to be explicit and NVR-locked.
2025-01-23 15:03:49 -05:00
Adam Williamson
11c2eec2ba Backport MR #6527 to support libnfs 6+
libnfs 6 changes some API we build against. This patch from
upstream adapts to the new API (while maintaining support for the
old one, so it can even be merged ahead of the libnfs bump).

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2025-01-23 10:20:52 -08:00
Fedora Release Engineering
59b52d12ef Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 14:31:38 +00:00
Yaakov Selkowitz
07a6018ad5 Disable some dependencies not yet available in EPEL 10 2025-01-10 01:41:46 -05:00
Yaakov Selkowitz
a3d726f79e Avoid "stale plugin cache" warnings in flatpaks
flatpak (and ostree) report an st_mtime of 0 (or 1 in past versions)
for all files it controls, which does not match the real time recorded
when installing the plugins in the mock buildroot.  Therefore, check
this only when it appears to be real.
2025-01-10 00:58:48 -05:00
Yaakov Selkowitz
db2b332ca1 Update ffmpeg-7 patches, enable VA-API
https://code.videolan.org/videolan/vlc/-/merge_requests/6168
https://code.videolan.org/videolan/vlc/-/merge_requests/6606
2025-01-10 00:50:35 -05:00
Dominik 'Rathann' Mierzejewski
7b9cb9e242 rebuild for live555
Adapt to new EventLoopWatchVariable type in live555-2024.11.28.
2024-12-08 13:49:07 +01:00
Yaakov Selkowitz
08f81804eb Rebuild for libdvbpsi ABI bump 2024-10-13 00:46:53 -04:00
Yaakov Selkowitz
750e615d65 Enable aribcam
The aribb25 dependency was just added to Fedora.
2024-10-06 14:08:34 -04:00
2676457f7a Rebuild for live555 update 2024-10-04 18:17:14 -04:00
Yaakov Selkowitz
6b4e045a54 Port to ffmpeg 7.0
https://code.videolan.org/videolan/vlc/-/merge_requests/5574
https://salsa.debian.org/multimedia-team/vlc/-/blob/master/debian/patches/0013-mux-avformat-fix-avio-callbacks-signature-with-ffmpe.patch
2024-09-29 18:54:28 -04:00
Yaakov Selkowitz
a0f88ebdc5 Fix file listing for EPEL 9 2024-09-24 22:54:37 -04:00
Yaakov Selkowitz
d327156e62 Enable aribsub
The aribb24 dependency was just added to Fedora.
2024-09-16 18:48:19 -04:00
Yaakov Selkowitz
08adee3a8b Fix opus channel mapping family one parsing
https://code.videolan.org/videolan/vlc/-/merge_requests/5590

Fixes: rhbz#2307919
2024-09-06 16:15:46 -04:00
Yaakov Selkowitz
b23e91999d Add plugins-all, separate plugins-extra
This allows basic use of vlc (e.g. vlc-cli from the command line, or
through phonon-backend-vlc) to handle the most common formats without
extra dependencies.
2024-09-06 16:15:46 -04:00
Fedora Release Engineering
c76474e08e Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 08:55:55 +00:00
Yaakov Selkowitz
50c8c3bc9f Enable RDP access plugin 2024-07-14 19:17:26 -04:00
Yaakov Selkowitz
0ce07d6745 Adjust libplacebo dependency for EPEL 9
EPEL 9 now has libplacebo (4.x) and libplacebo6 packages, both -devel
packages provide the same pkgconfig (and therefore conflict) but the
runtimes are parallel-installable.
2024-06-06 11:26:28 -04:00
Yaakov Selkowitz
85645b1acd Update to 3.0.21
Resolves: rhbz#2290641
2024-06-06 00:45:53 -04:00
Yaakov Selkowitz
9ff5b8688c Fix lua web interface
math.pow was deprecated in lua-5.3 in favour of the ^ operator:
https://www.lua.org/manual/5.3/manual.html#8.2

Resolves: rhbz#2280091
2024-06-02 23:40:01 -04:00
Yaakov Selkowitz
8ec5a0c653 Convert spaces to tabs for consistency
Based on eclipseo's https://src.fedoraproject.org/rpms/vlc/pull-request/3

[skip changelog]
2024-06-02 23:37:34 -04:00
Yaakov Selkowitz
8ca0cf8659 Port to libidn2 2024-06-02 22:26:06 -04:00
Yaakov Selkowitz
67f7fe14aa Update kde-filesystem dependency for F40
The KDE filesystem packages were rearranged for F40; version-specific
directories are now in kf(N)-filesystem, versionless directories in
kde-filesystem.  vlc only uses the solid actions directory.

Related: rhbz#2279372
2024-05-17 17:58:39 -04:00
Dominik 'Rathann' Mierzejewski
d413807d10 rebuild for live555 2024.03.08 2024-04-09 14:27:52 +02:00
edb9dbcde0 Rebuild for libvpx 1.14.x 2024-02-08 00:05:23 +00:00
Yaakov Selkowitz
157d950c86 Fix build with GCC 14
Also, avoid all the redefinition warnings for _FORTIFY_SOURCE.

Resolves: rhbz#2261777
2024-01-29 21:24:05 -05:00
Fedora Release Engineering
173cc55927 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-27 08:03:51 +00:00
Yaakov Selkowitz
9a3013c349 Fix appstream data
While the upstream appdata passes appstream-util validate-relax
(mandated by packaging guidelines), appstreamcli validate shows issues.
Since the latter's library is used in Software and Discover nowadays,
this may be why neither our package nor the Flathub flatpak are listed.

Resolves: rhbz#2258611
2024-01-16 13:32:06 -05:00
Fabio Valentini
c89dd01cd3
Rebuild for dav1d 1.3.0 2024-01-12 19:11:03 +01:00
12 changed files with 997 additions and 126 deletions

3
.gitignore vendored
View file

@ -1 +1,2 @@
/vlc-3.0.20.tar.xz
/vlc-*.tar.bz2
/vlc-*.tar.xz

125
8921.patch Normal file
View file

@ -0,0 +1,125 @@
From 62b5f87ed9af884298fe6e637d5fa55d0fe246a5 Mon Sep 17 00:00:00 2001
From: Marvin Scholz <epirat07@gmail.com>
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 <robux4@ycbcr.xyz>
---
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 <epirat07@gmail.com>
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 <robux4@ycbcr.xyz>
---
.../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 <spatialaudio/Ambisonics.h>
#include <spatialaudio/SpeakersBinauralizer.h>
+#ifdef HAVE_SPATIALAUDIOVERSION_H
+# include <spatialaudio/SpatialaudioVersion.h>
+#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

15
appdata.patch Normal file
View file

@ -0,0 +1,15 @@
diff --git a/share/org.videolan.vlc.appdata.xml.in.in b/share/org.videolan.vlc.appdata.xml.in.in
index cc9c39a..3c55620 100644
--- a/share/org.videolan.vlc.appdata.xml.in.in
+++ b/share/org.videolan.vlc.appdata.xml.in.in
@@ -18,8 +18,9 @@
<url type="bugtracker">https://trac.videolan.org/vlc/</url>
<url type="donation">https://www.videolan.org/contribute.html</url>
<releases>
- <release version="@VERSION@" />
+ <release version="@VERSION@" date="@DATE@" />
</releases>
+ <replaces><id>org.videolan.VLC</id></replaces>
<provides>
<library>libvlc.so.5</library>
</provides>

23
flatpak-cache.patch Normal file
View file

@ -0,0 +1,23 @@
Based on the Flathub patch but only skip the mtime test when in an ostree
(different versions have used 0 or 1 as the mtime for all files).
https://github.com/flathub/org.videolan.VLC/blob/master/vlc-ignore-time-for-cache.patch
diff --git a/src/modules/bank.c b/src/modules/bank.c
index 2e67a0d07e..ab2915fbb7 100644
--- a/src/modules/bank.c
+++ b/src/modules/bank.c
@@ -275,7 +275,8 @@ static int AllocatePluginFile (module_bank_t *bank, const char *abspath,
plugin = vlc_cache_lookup(&bank->cache, relpath);
if (plugin != NULL
- && (plugin->mtime != (int64_t)st->st_mtime
+ && (((int64_t)st->st_mtime > (int64_t)1
+ && plugin->mtime != (int64_t)st->st_mtime)
|| plugin->size != (uint64_t)st->st_size))
{
msg_Err(bank->obj, "stale plugins cache: modified %s",
plugin->abspath);
--
2.21.0

239
freerdp2.patch Normal file
View file

@ -0,0 +1,239 @@
From 1c27f57498b7e0f52acc7b4520c4172a2462632d Mon Sep 17 00:00:00 2001
From: Juliane de Sartiges <jill@videolabs.io>
Date: Wed, 27 Jul 2022 09:32:25 +0200
Subject: [PATCH] freerdp: update to freerdp2 api
---
configure.ac | 2 +-
modules/access/rdp.c | 85 ++++++++++++++++++++------------------------
2 files changed, 40 insertions(+), 47 deletions(-)
diff --git a/configure.ac b/configure.ac
index b454198157..cb23a9b2ab 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2094,7 +2094,7 @@ PKG_ENABLE_MODULES_VLC([VNC], [vnc], [libvncclient >= 0.9.9], (VNC/rfb client su
dnl RDP/Remote Desktop access module
dnl
-PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp >= 1.0.1], (RDP/Remote Desktop client support) )
+PKG_ENABLE_MODULES_VLC([FREERDP], [rdp], [freerdp2 >= 2.0.0], (RDP/Remote Desktop client support) )
dnl
dnl Real RTSP plugin
diff --git a/modules/access/rdp.c b/modules/access/rdp.c
index 0c39663c64..04ae005938 100644
--- a/modules/access/rdp.c
+++ b/modules/access/rdp.c
@@ -45,18 +45,6 @@
# include <freerdp/version.h>
#endif
-#if !defined(FREERDP_VERSION_MAJOR) || \
- (defined(FREERDP_VERSION_MAJOR) && !(FREERDP_VERSION_MAJOR > 1 || (FREERDP_VERSION_MAJOR == 1 && FREERDP_VERSION_MINOR >= 1)))
-# define SoftwareGdi sw_gdi
-# define Fullscreen fullscreen
-# define ServerHostname hostname
-# define Username username
-# define Password password
-# define ServerPort port
-# define EncryptionMethods encryption
-# define ContextSize context_size
-#endif
-
#include <errno.h>
#ifdef HAVE_POLL
# include <poll.h>
@@ -75,6 +63,8 @@
#define CFG_PREFIX "rdp-"
+#define FREERDP_PIXEL_BPP(_format) (_format >> 24)
+
/*****************************************************************************
* Module descriptor
*****************************************************************************/
@@ -139,11 +129,12 @@ typedef struct vlcrdp_context_t vlcrdp_context_t;
/* updates handlers */
-static void desktopResizeHandler( rdpContext *p_context )
+static BOOL desktopResizeHandler( rdpContext *p_context )
{
vlcrdp_context_t * p_vlccontext = (vlcrdp_context_t *) p_context;
demux_sys_t *p_sys = p_vlccontext->p_demux->p_sys;
rdpGdi *p_gdi = p_context->gdi;
+ int i_colordepth = FREERDP_PIXEL_BPP( p_gdi->dstFormat );
if ( p_sys->es )
{
@@ -151,11 +142,13 @@ static void desktopResizeHandler( rdpContext *p_context )
p_sys->es = NULL;
}
- /* Now init and fill es format */
vlc_fourcc_t i_chroma;
- switch( p_gdi->bytesPerPixel )
+ /* Now init and fill es format */
+ switch ( i_colordepth )
{
default:
+ msg_Dbg( p_vlccontext->p_demux, "invalid color depth %d", i_colordepth);
+ /* fallthrough */
case 16:
i_chroma = VLC_CODEC_RGB16;
break;
@@ -163,7 +156,7 @@ static void desktopResizeHandler( rdpContext *p_context )
i_chroma = VLC_CODEC_RGB24;
break;
case 32:
- i_chroma = VLC_CODEC_RGB32;
+ i_chroma = VLC_CODEC_ARGB;
break;
}
es_format_t fmt;
@@ -176,7 +169,7 @@ static void desktopResizeHandler( rdpContext *p_context )
fmt.video.i_height = p_gdi->height;
fmt.video.i_frame_rate_base = 1000;
fmt.video.i_frame_rate = 1000 * p_sys->f_fps;
- p_sys->i_framebuffersize = p_gdi->width * p_gdi->height * p_gdi->bytesPerPixel;
+ p_sys->i_framebuffersize = p_gdi->width * p_gdi->height * (i_colordepth >> 3);
if ( p_sys->p_block )
p_sys->p_block = block_Realloc( p_sys->p_block, 0, p_sys->i_framebuffersize );
@@ -184,20 +177,21 @@ static void desktopResizeHandler( rdpContext *p_context )
p_sys->p_block = block_Alloc( p_sys->i_framebuffersize );
p_sys->es = es_out_Add( p_vlccontext->p_demux->out, &fmt );
+ return TRUE;
}
-static void beginPaintHandler( rdpContext *p_context )
+static BOOL beginPaintHandler( rdpContext *p_context )
{
vlcrdp_context_t * p_vlccontext = (vlcrdp_context_t *) p_context;
demux_sys_t *p_sys = p_vlccontext->p_demux->p_sys;
rdpGdi *p_gdi = p_context->gdi;
- p_gdi->primary->hdc->hwnd->invalid->null = 1;
- p_gdi->primary->hdc->hwnd->ninvalid = 0;
+ p_gdi->primary->hdc->hwnd->invalid->null = TRUE;
if ( ! p_sys->p_block && p_sys->i_framebuffersize )
p_sys->p_block = block_Alloc( p_sys->i_framebuffersize );
+ return TRUE;
}
-static void endPaintHandler( rdpContext *p_context )
+static BOOL endPaintHandler( rdpContext *p_context )
{
vlcrdp_context_t * p_vlccontext = (vlcrdp_context_t *) p_context;
demux_sys_t *p_sys = p_vlccontext->p_demux->p_sys;
@@ -208,11 +202,12 @@ static void endPaintHandler( rdpContext *p_context )
p_sys->p_block->i_buffer = p_sys->i_framebuffersize;
memcpy( p_sys->p_block->p_buffer, p_gdi->primary_buffer, p_sys->p_block->i_buffer );
}
+ return TRUE;
}
/* instance handlers */
-static bool preConnectHandler( freerdp *p_instance )
+static BOOL preConnectHandler( freerdp *p_instance )
{
vlcrdp_context_t * p_vlccontext = (vlcrdp_context_t *) p_instance->context;
demux_sys_t *p_sys = p_vlccontext->p_demux->p_sys;
@@ -229,49 +224,54 @@ static bool preConnectHandler( freerdp *p_instance )
p_instance->settings->EncryptionMethods =
var_InheritBool( p_vlccontext->p_demux, CFG_PREFIX "encrypt" );
- return true;
+ return TRUE;
}
-static bool postConnectHandler( freerdp *p_instance )
+static BOOL postConnectHandler( freerdp *p_instance )
{
vlcrdp_context_t * p_vlccontext = (vlcrdp_context_t *) p_instance->context;
msg_Dbg( p_vlccontext->p_demux, "connected to desktop %dx%d (%d bpp)",
-#if defined(FREERDP_VERSION_MAJOR) && (FREERDP_VERSION_MAJOR > 1 || (FREERDP_VERSION_MAJOR == 1 && FREERDP_VERSION_MINOR >= 1))
p_instance->settings->DesktopWidth,
p_instance->settings->DesktopHeight,
p_instance->settings->ColorDepth
-#else
- p_instance->settings->width,
- p_instance->settings->height,
- p_instance->settings->color_depth
-#endif
);
p_instance->update->DesktopResize = desktopResizeHandler;
p_instance->update->BeginPaint = beginPaintHandler;
p_instance->update->EndPaint = endPaintHandler;
+ UINT32 format;
+ switch ( p_instance->settings->ColorDepth )
+ {
+ default:
+ msg_Dbg( p_vlccontext->p_demux, "no valid pixel format found for color depth %d bpp", p_instance->settings->ColorDepth);
+ /* fallthrough */
+ case 16:
+ format = PIXEL_FORMAT_RGB16;
+ break;
+ case 24:
+ format = PIXEL_FORMAT_RGB24;
+ break;
+ case 32:
+ format = PIXEL_FORMAT_ARGB32;
+ break;
+ }
gdi_init( p_instance,
- CLRBUF_16BPP |
-#if defined(FREERDP_VERSION_MAJOR) && defined(FREERDP_VERSION_MINOR) && \
- !(FREERDP_VERSION_MAJOR > 1 || (FREERDP_VERSION_MAJOR == 1 && FREERDP_VERSION_MINOR >= 2))
- CLRBUF_24BPP |
-#endif
- CLRBUF_32BPP, NULL );
+ format );
desktopResizeHandler( p_instance->context );
- return true;
+ return TRUE;
}
-static bool authenticateHandler( freerdp *p_instance, char** ppsz_username,
+static BOOL authenticateHandler( freerdp *p_instance, char** ppsz_username,
char** ppsz_password, char** ppsz_domain )
{
VLC_UNUSED(ppsz_domain);
vlcrdp_context_t * p_vlccontext = (vlcrdp_context_t *) p_instance->context;
*ppsz_username = var_InheritString( p_vlccontext->p_demux, CFG_PREFIX "user" );
*ppsz_password = var_InheritString( p_vlccontext->p_demux, CFG_PREFIX "password" );
- return true;
+ return TRUE;
}
/*****************************************************************************
@@ -432,10 +432,6 @@ static int Open( vlc_object_t *p_this )
if ( p_sys->f_fps <= 0 ) p_sys->f_fps = 1.0;
p_sys->i_frame_interval = 1000000 / p_sys->f_fps;
-#if FREERDP_VERSION_MAJOR == 1 && FREERDP_VERSION_MINOR < 2
- freerdp_channels_global_init();
-#endif
-
p_sys->p_instance = freerdp_new();
if ( !p_sys->p_instance )
{
@@ -512,9 +508,6 @@ static void Close( vlc_object_t *p_this )
freerdp_disconnect( p_sys->p_instance );
freerdp_free( p_sys->p_instance );
-#if FREERDP_VERSION_MAJOR == 1 && FREERDP_VERSION_MINOR < 2
- freerdp_channels_global_uninit();
-#endif
if ( p_sys->p_block )
block_Release( p_sys->p_block );
--
2.45.2

17
gstreamer128.patch Normal file
View file

@ -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 <gst/gstbufferpool.h>
-#include <gst/video/gstvideopool.h>
+#include <gst/video/video.h>
#include "gstvlcpictureplaneallocator.h"

49
libidn2.patch Normal file
View file

@ -0,0 +1,49 @@
diff --git a/configure.ac b/configure.ac
index 78b9ce2..b9c1563 100644
--- a/configure.ac
+++ b/configure.ac
@@ -910,9 +910,9 @@ AM_CONDITIONAL(HAVE_MINIZIP, [ test "${have_minizip}" = "yes" ])
dnl
-dnl Domain name i18n support via GNU libidn
+dnl Domain name i18n support via GNU libidn2
dnl
-PKG_CHECK_MODULES([IDN], [libidn], [
+PKG_CHECK_MODULES([IDN], [libidn2], [
have_libidn="yes"
AC_DEFINE([HAVE_IDN], 1, [Define to 1 if you have GNU libidn.])
], [
diff --git a/src/text/url.c b/src/text/url.c
index 2eb4b8d..467b7f3 100644
--- a/src/text/url.c
+++ b/src/text/url.c
@@ -873,7 +873,7 @@ char *vlc_uri_fixup(const char *str)
}
#if defined (HAVE_IDN)
-# include <idna.h>
+# include <idn2.h>
#elif defined (_WIN32)
# include <windows.h>
# include <vlc_charset.h>
@@ -914,16 +914,13 @@ static char *vlc_idna_to_ascii (const char *idn)
#if defined (HAVE_IDN)
char *adn;
- switch (idna_to_ascii_8z(idn, &adn, IDNA_ALLOW_UNASSIGNED))
+ switch (idn2_to_ascii_8z(idn, &adn, IDN2_ALLOW_UNASSIGNED|IDN2_NFC_INPUT|IDN2_NONTRANSITIONAL))
{
- case IDNA_SUCCESS:
+ case IDN2_OK:
return adn;
- case IDNA_MALLOC_ERROR:
+ case IDN2_MALLOC:
errno = ENOMEM;
return NULL;
- case IDNA_DLOPEN_ERROR:
- errno = ENOSYS;
- return NULL;
default:
errno = EINVAL;
return NULL;

13
libupnp118.patch Normal file
View file

@ -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 <vlc_common.h>
#include <vlc_url.h>
-#if UPNP_VERSION < 10800
+#if (UPNP_VERSION < 10800) || (UPNP_VERSION >= 11800)
typedef void* UpnpEventPtr;
#else
typedef const void* UpnpEventPtr;

11
lua-math.patch Normal file
View file

@ -0,0 +1,11 @@
--- ./share/lua/intf/modules/httprequests.lua.Orig 2023-08-05 06:03:51.000000000 -0400
+++ ./share/lua/intf/modules/httprequests.lua 2024-05-28 14:02:41.569002601 -0400
@@ -34,7 +34,7 @@
what = common.us_tonumber(what)
end
if type(what) == "number" then
- return math.floor(what*math.pow(10,precision)+0.5) / math.pow(10,precision)
+ return math.floor(what*(10^precision)+0.5) / (10^precision)
end
return nil
end

View file

@ -1 +1 @@
SHA512 (vlc-3.0.20.tar.xz) = 02e58fb52dd75bf483ac4b298aecf86463b13d4782173d164adba6e4552d9262ff5e2ee1cbe1bce2c8a809801b79f328c6a8c475d34ae62aefaea02ae5ade406
SHA512 (vlc-3.0.23.tar.xz) = 557e4ac76a17158877a4a86f27c9a5bc189b7ac559687552117dc8b44961d1172cf93bf8e1eb70fecb05999bdfc3f69ab79b55126c71486fe3a8cdfbf92e6df6

View file

@ -1,18 +0,0 @@
avcodec_vaapi requires ffmpeg-4, but other vaapi modules can be built
diff --git a/configure.ac b/configure.ac
index 69beb77..c7f7142 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2454,9 +2454,9 @@ AS_IF([test "${have_vaapi}" = "yes" -a "${have_avcodec}" = "yes"], [
have_avcodec_vaapi="yes"
],[
AS_IF([test -n "${enable_libva}"], [
- AC_MSG_ERROR([libva is present but libavcodec/vaapi.h is missing])
+ AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing])
], [
- AC_MSG_WARN([libva is present but libavcodec/vaapi.h is missing ])
+ AC_MSG_NOTICE([libva is present but libavcodec/vaapi.h is missing ])
])
])
VLC_RESTORE_FLAGS

608
vlc.spec
View file

@ -1,6 +1,5 @@
# codecs which cannot be shipped in Fedora proper
%bcond freeworld 0
%bcond faad2 %{with freeworld}
%bcond x264 %{with freeworld}
%bcond x265 %{with freeworld}
@ -12,11 +11,19 @@
# not compatible with libplacebo-6
# https://code.videolan.org/videolan/vlc/-/merge_requests/3950
%bcond placebo %[!(0%{?fedora} >= 39 || 0%{?rhel} >= 10)]
# libpostproc was removed in FFmpeg 8 (F44+)
%bcond postproc %[!(0%{?fedora} >= 44 || 0%{?rhel} >= 11)]
# disabled due to various issues
%bcond projectm 0
# some dependencies are not yet in EPEL 10
%bcond daala 1
%bcond lirc 1
%bcond sdl %[!(0%{?rhel} >= 10)]
%ifnarch s390x
%bcond crystalhd %[0%{?fedora} || 0%{?rhel} < 9]
# retired from F43, was never in EPEL 9+
%bcond crystalhd 0
%bcond ieee1394 1
%endif
@ -24,23 +31,54 @@
%bcond vpl 1
%endif
#global commit f9020c4df073c861a28f0cda5c6c5dccb58a49ef
#global gitdate 20251124
%global app_id org.videolan.vlc
Name: vlc
Epoch: 1
Version: 3.0.20
Release: %autorelease -b 3
Version: 3.0.23
Release: %autorelease
Summary: The cross-platform open-source multimedia framework, player and server
License: GPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-2-Clause AND BSD-3-Clause
URL: https://www.videolan.org
%if 0%{?commit:1}
Source: https://code.videolan.org/videolan/vlc/-/archive/%{commit}/vlc-%{commit}.tar.bz2
%else
Source: https://get.videolan.org/vlc/%{version}/vlc-%{version}.tar.xz
Source: macros.vlc
%endif
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)
Patch: freerdp2.patch
## upstreamable patches
## downstream patches
# https://fedoraproject.org/wiki/Changes/CryptoPolicy
Patch: 0001-Use-SYSTEM-wide-ciphers-for-gnutls.patch
# Fix building with fdk-aac-2.0; backport for 3.0 from flathub
Patch: fdk-aac2.patch
# separate avcodec-vaapi conditional from other vaapi modules
Patch: vaapi-without-ffmepg4.patch
# port from intel-mediasdk to oneVPL
Patch: oneVPL.patch
Patch: oneVPL.patch
# fix appstreamcli validate to show in Software (rhbz#2258611)
Patch: appdata.patch
# port from libidn to libidn2
Patch: libidn2.patch
# fix deprecated lua math functions (rhbz#2280091)
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}/.*$
@ -53,11 +91,9 @@ BuildRequires: gcc-c++
BuildRequires: desktop-file-utils
BuildRequires: libappstream-glib
BuildRequires: a52dec-devel
#BuildRequires: a52dec-devel
BuildRequires: aalib-devel
%if %{with faad2}
BuildRequires: faad2-devel
%endif
BuildRequires: hostname
BuildRequires: kernel-headers
%if %{with crystalhd}
@ -68,21 +104,25 @@ BuildRequires: libjpeg-devel
BuildRequires: libmad-devel
BuildRequires: libmpcdec-devel
BuildRequires: libpng-devel
%if %{with lirc}
BuildRequires: lirc-devel
%endif
BuildRequires: live555-devel
BuildRequires: lua-devel
BuildRequires: pkgconfig(alsa) >= 1.0.24
BuildRequires: pkgconfig(aom)
#BuildRequires: pkgconfig(aribb24)
#BuildRequires: pkgconfig(aribb25)
BuildRequires: pkgconfig(aribb24)
BuildRequires: pkgconfig(aribb25)
%if %{with asdcp}
BuildRequires: pkgconfig(asdcplib)
%endif
BuildRequires: pkgconfig(avahi-client) >= 0.6
#BuildRequires: pkgconfig(breakpad-client)
BuildRequires: pkgconfig(caca) >= 0.99.beta14
%if %{with daala}
BuildRequires: pkgconfig(daaladec)
BuildRequires: pkgconfig(daalaenc)
%endif
BuildRequires: pkgconfig(dav1d)
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(dvdnav) > 4.9.0
@ -94,7 +134,7 @@ BuildRequires: pkgconfig(flac)
#BuildRequires: pkgconfig(fluidlite)
BuildRequires: pkgconfig(fluidsynth) >= 1.1.2
BuildRequires: pkgconfig(fontconfig) >= 2.11
#BuildRequires: pkgconfig(freerdp)
BuildRequires: pkgconfig(freerdp2)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(fribidi)
BuildRequires: pkgconfig(gl)
@ -116,24 +156,26 @@ BuildRequires: pkgconfig(libchromaprint)
%if %{with ieee1394}
BuildRequires: pkgconfig(libdc1394-2) >= 2.1.0
%endif
BuildRequires: pkgconfig(libdca) >= 0.0.5
#BuildRequires: pkgconfig(libdca) >= 0.0.5
#BuildRequires: pkgconfig(libdsm) >= 0.2.0
BuildRequires: pkgconfig(libdvbpsi)
BuildRequires: pkgconfig(libebml) >= 1.3.6
BuildRequires: pkgconfig(libgme)
#BuildRequires: pkgconfig(libgoom2)
BuildRequires: pkgconfig(libidn)
BuildRequires: pkgconfig(libidn2)
BuildRequires: pkgconfig(libmatroska)
BuildRequires: pkgconfig(libmodplug) >= 0.8.9.0
BuildRequires: pkgconfig(libmpeg2) >= 0.3.2
#BuildRequires: pkgconfig(libmpeg2) >= 0.3.2
BuildRequires: pkgconfig(libmpg123)
BuildRequires: pkgconfig(libmtp) >= 1.0.0
BuildRequires: pkgconfig(libnfs) >= 1.10.0
BuildRequires: pkgconfig(libnotify) pkgconfig(gtk+-3.0)
%if %{with placebo}
BuildRequires: pkgconfig(libplacebo) >= 0.2.1
BuildRequires: pkgconfig(libplacebo) < 6
%endif
%if %{with postproc}
BuildRequires: pkgconfig(libpostproc)
%endif
%if %{with projectm}
BuildRequires: pkgconfig(libprojectM)
%endif
@ -172,8 +214,9 @@ BuildRequires: pkgconfig(Qt5Svg) >= 5.5
BuildRequires: pkgconfig(Qt5Widgets) >= 5.5
BuildRequires: pkgconfig(Qt5X11Extras) >= 5.5
BuildRequires: pkgconfig(samplerate)
BuildRequires: pkgconfig(schroedinger-1.0) >= 1.0.10
%if %{with sdl}
BuildRequires: pkgconfig(SDL_image) >= 1.2.10
%endif
#BuildRequires: pkgconfig(shine) >= 3.0.0
BuildRequires: pkgconfig(shout) >= 2.1
BuildRequires: pkgconfig(smbclient)
@ -224,12 +267,14 @@ Requires: %{name}-gui-qt%{?_isa} = %{epoch}:%{version}-%{release}
Recommends: %{name}-gui-skins2%{?_isa} = %{epoch}:%{version}-%{release}
Recommends: %{name}-plugin-ffmpeg%{?_isa} = %{epoch}:%{version}-%{release}
Requires: hicolor-icon-theme
%if %{undefined flatpak}
Requires: kf5-filesystem
Requires: hicolor-icon-theme
%if 0%{?fedora} >= 40 || 0%{?rhel} >= 10
Requires: kde-filesystem
%else
Requires: kf5-filesystem
%endif
# For xdg-screensaver (libxdg_screensaver_plugin)
Recommends: xdg-utils
Recommends: xdg-utils xset
%description
@ -272,13 +317,15 @@ Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release}
Requires: %{name}-plugins-video-out%{?_isa} = %{epoch}:%{version}-%{release}
Requires: %{name}-plugin-lua%{?_isa} = %{epoch}:%{version}-%{release}
Requires: (%{name}-plugin-pipewire%{?_isa} if pipewire)
Requires: (%{name}-plugin-pulseaudio%{?_isa} = %{epoch}:%{version}-%{release} if (pipewire-pulseaudio or pulseaudio))
Requires: (qt5-qtwayland%{?_isa} if libwayland-client%{?_isa})
Recommends: %{name}-plugins-extra%{?_isa} = %{epoch}:%{version}-%{release}
Recommends: %{name}-plugin-ffmpeg%{?_isa} = %{epoch}:%{version}-%{release}
Recommends: %{name}-plugin-visualization%{?_isa} = %{epoch}:%{version}-%{release}
Recommends: (%{name}-plugin-gnome%{?_isa} = %{epoch}:%{version}-%{release} if gnome-keyring)
Recommends: (%{name}-plugin-kde%{?_isa} = %{epoch}:%{version}-%{release} if kf5-kwallet)
Recommends: (%{name}-plugin-kde%{?_isa} = %{epoch}:%{version}-%{release} if (kf6-kwallet or kf5-wallet))
Recommends: (%{name}-plugin-notify%{?_isa} = %{epoch}:%{version}-%{release} if gtk3)
Recommends: (%{name}-plugin-pulseaudio%{?_isa} = %{epoch}:%{version}-%{release} or vlc-plugin-pipewire%{?_isa})
%description gui-qt
VLC media player Qt graphical interface
@ -287,10 +334,45 @@ Summary: VLC media player Skins2 GUI
Requires: %{name}-cli%{?_isa} = %{epoch}:%{version}-%{release}
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
Requires: %{name}-gui-qt%{?_isa} = %{epoch}:%{version}-%{release}
Requires: gnu-free-sans-fonts
Requires: gnu-free-sans-fonts
%description gui-skins2
VLC media player skinnable graphical interface
%package plugins-all
Summary: VLC media player - all plugins
Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release}
Requires: %{name}-plugins-extra%{?_isa} = %{epoch}:%{version}-%{release}
Requires: %{name}-plugins-video-out%{?_isa} = %{epoch}:%{version}-%{release}
%if %{with crystalhd}
Requires: %{name}-plugin-crystalhd%{?_isa} = %{epoch}:%{version}-%{release}
%endif
Requires: %{name}-plugin-ffmpeg%{?_isa} = %{epoch}:%{version}-%{release}
Requires: %{name}-plugin-fluidsynth%{?_isa} = %{epoch}:%{version}-%{release}
Requires: (%{name}-plugin-gnome%{?_isa} = %{epoch}:%{version}-%{release} if gnome-keyring)
Requires: %{name}-plugin-gstreamer%{?_isa} = %{epoch}:%{version}-%{release}
%if %{with ieee1394}
Requires: %{name}-plugin-ieee1394%{?_isa} = %{epoch}:%{version}-%{release}
%endif
Requires: (%{name}-plugin-jack%{?_isa} = %{epoch}:%{version}-%{release} if (jack-audio-connection-kit or pipewire-jack-audio-connection-kit))
Requires: (%{name}-plugin-kde%{?_isa} = %{epoch}:%{version}-%{release} if (kf6-kwallet or kf5-wallet))
Requires: %{name}-plugin-lua%{?_isa} = %{epoch}:%{version}-%{release}
Requires: (%{name}-plugin-notify%{?_isa} = %{epoch}:%{version}-%{release} if gtk3)
%if %{with opencv}
Requires: %{name}-plugin-opencv%{?_isa} = %{epoch}:%{version}-%{release}
%endif
Requires: (%{name}-plugin-pulseaudio%{?_isa} = %{epoch}:%{version}-%{release} if (pipewire-pulseaudio or pulseaudio))
Requires: %{name}-plugin-rdp%{?_isa} = %{epoch}:%{version}-%{release}
Requires: %{name}-plugin-samba%{?_isa} = %{epoch}:%{version}-%{release}
Requires: %{name}-plugin-svg%{?_isa} = %{epoch}:%{version}-%{release}
Requires: %{name}-plugin-visualization%{?_isa} = %{epoch}:%{version}-%{release}
Requires: %{name}-plugin-vnc%{?_isa} = %{epoch}:%{version}-%{release}
# separate plugins
Requires: %{name}-plugin-bittorrent%{?_isa}
Requires: %{name}-plugin-pause-click%{?_isa}
Requires: (%{name}-plugin-pipewire%{?_isa} if pipewire)
%description plugins-all
Installs all available plugins for VLC media player
%package plugins-base
Summary: VLC media player core
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
@ -303,9 +385,26 @@ Requires: google-noto-serif-vf-fonts
%endif
Recommends: libv4l%{?_isa}
Conflicts: %{name}-core < %{epoch}:%{version}-%{release}
%if %{without crystalhd}
Obsoletes: %{name}-plugin-crystalhd < %{epoch}:%{version}-%{release}
%endif
%if %{without ieee1394}
Obsoletes: %{name}-plugin-ieee1394 < %{epoch}:%{version}-%{release}
%endif
%if %{without opencv}
Obsoletes: %{name}-plugin-opencv < %{epoch}:%{version}-%{release}
%endif
%description plugins-base
VLC media player core components
%package plugins-extra
Summary: VLC media player extra plugins
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
Conflicts: %{name}-plugins-base < %{epoch}:%{version}-%{release}
%description plugins-extra
VLC media player additional components
# libcrystalhd requires crystalhd-firmware, is for specific hardware
%if %{with crystalhd}
%package plugin-crystalhd
@ -323,6 +422,7 @@ Crystal HD plugin for VLC media player
Summary: VLC media player FFmpeg plugins
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release}
Requires: %{name}-plugins-video-out%{?_isa} = %{epoch}:%{version}-%{release}
%description plugin-ffmpeg
FFmpeg support plugins for VLC media player
@ -331,7 +431,7 @@ FFmpeg support plugins for VLC media player
Summary: VLC media player MIDI playback plugin
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release}
Recommends: fluid-soundfont-gm
Recommends: fluid-soundfont-gm
%description plugin-fluidsynth
MIDI playback support plugin for VLC media player
@ -370,7 +470,7 @@ IEEE 1394 (FireWire) plugins for VLC media player
Summary: VLC media player JACK plugins
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release}
Suggests: pipewire-jack-audio-connection-kit
Suggests: pipewire-jack-audio-connection-kit
%description plugin-jack
PulseAudio plugins for VLC media player
@ -418,6 +518,14 @@ Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release}
%description plugin-pulseaudio
PulseAudio plugins for VLC media player
# requires freerdp2, for RDP remote desktop support
%package plugin-rdp
Summary: VLC media player RDP plugin
Requires: %{name}-libs%{?_isa} = %{epoch}:%{version}-%{release}
Requires: %{name}-plugins-base%{?_isa} = %{epoch}:%{version}-%{release}
%description plugin-rdp
RDP access plugin for VLC media player
# requires libsmbclient, for SMB protocol support
%package plugin-samba
Summary: VLC media player SMB plugin
@ -465,7 +573,7 @@ developing applications and plugins that use %{name}.
%prep
%autosetup -p1
%autosetup -p1 %{?commit:-n %{name}-%{commit}}
rm -f aclocal.m4 m4/lib*.m4 m4/lt*.m4
./bootstrap
@ -473,13 +581,16 @@ rm -f aclocal.m4 m4/lib*.m4 m4/lt*.m4
# switch "Allow automatic icon change" to opt-in
sed -i -e 's|\("qt-icon-change",\) true|\1 false|' modules/gui/qt/qt.cpp
# sync appstream app-id with Flathub
sed -i -e 's|org\.videolan\.vlc|org.videolan.VLC|' share/vlc.appdata.xml.in.in
# fill in release date from appstream.patch
# https: https://code.videolan.org/videolan/vlc/-/merge_requests/1555 (4.0)
sed -e 's|@DATE@|%(date +%F -r %{S:0})|' \
-e 's|http:|https:|g' \
-i share/%{app_id}.appdata.xml.in.in
%if 0%{?flatpak}
# icons are renamed in order to be exported
sed -i -e '/icon_theme_load/s|"vlc"|"org.videolan.VLC"|' modules/notify/notify.c
sed -i -e '/fromTheme/s|"vlc"|"org.videolan.VLC"|' \
sed -i -e '/icon_theme_load/s|"vlc"|"%{app_id}"|' modules/notify/notify.c
sed -i -e '/fromTheme/s|"vlc"|"%{app_id}"|' \
modules/gui/qt/main_interface.cpp modules/gui/qt/qt.cpp
%endif
@ -519,7 +630,7 @@ export LIVE555_PREFIX=%{_prefix}
--enable-libcddb \
--enable-screen \
--enable-vnc \
--disable-freerdp \
--enable-freerdp \
--enable-realrtsp \
--enable-asdcp%{!?with_asdcp:=no} \
\
@ -542,17 +653,17 @@ export LIVE555_PREFIX=%{_prefix}
--enable-libva \
--enable-avformat \
--enable-swscale \
--enable-postproc \
--enable-faad%{!?with_faad2:=no} \
--enable-postproc%{!?with_postproc:=no} \
--enable-faad \
--enable-aom \
--enable-dav1d \
--enable-vpx \
--enable-twolame \
--enable-fdkaac \
--enable-a52 \
--enable-dca \
--disable-a52 \
--disable-dca \
--enable-flac \
--enable-libmpeg2 \
--disable-libmpeg2 \
--enable-vorbis \
--enable-tremor \
--enable-speex \
@ -560,8 +671,7 @@ export LIVE555_PREFIX=%{_prefix}
--enable-spatialaudio \
--enable-theora \
--enable-oggspots \
--enable-daala \
--enable-schroedinger \
--enable-daala%{!?with_daala:=no} \
--enable-png \
--enable-jpeg \
--disable-bpg \
@ -575,8 +685,8 @@ export LIVE555_PREFIX=%{_prefix}
--enable-zvbi \
--disable-telx \
--enable-libass \
--disable-aribsub \
--disable-aribb25 \
--enable-aribsub \
--enable-aribb25 \
--enable-kate \
--enable-tiger \
--enable-css \
@ -586,7 +696,7 @@ export LIVE555_PREFIX=%{_prefix}
--enable-xvideo \
--enable-vdpau \
--enable-wayland \
--enable-sdl-image \
--enable-sdl-image%{!?with_sdl:=no} \
--enable-freetype \
--enable-fribidi \
--enable-harfbuzz \
@ -611,7 +721,7 @@ export LIVE555_PREFIX=%{_prefix}
--enable-qt \
--enable-skins2 \
--disable-libtar \
--enable-lirc \
--enable-lirc%{!?with_lirc:=no} \
--enable-srt \
\
--disable-goom \
@ -638,6 +748,8 @@ export LIVE555_PREFIX=%{_prefix}
# clean unused-direct-shlib-dependencies
sed -i -e 's! -shared ! -Wl,--as-needed\0!g' libtool
# avoid redefinition warnings
sed -i -e '/^#define _FORTIFY_SOURCE/d' config.h
%make_build
@ -677,7 +789,7 @@ rm -rf %{buildroot}%{_docdir}/vlc
%check
desktop-file-validate %{buildroot}%{_datadir}/applications/vlc.desktop
appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/vlc.appdata.xml
appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/%{app_id}.appdata.xml
# chroma_copy_test fails on s390x (big endian?)
%ifnarch s390x
@ -699,7 +811,7 @@ make check
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%{_datadir}/solid/actions/%{name}-*.desktop
%{_datadir}/vlc/utils/
%{_metainfodir}/%{name}.appdata.xml
%{_metainfodir}/%{app_id}.appdata.xml
%files libs -f %{name}.lang
%license COPYING.LIB
@ -732,74 +844,340 @@ make check
%{vlc_plugindir}/gui/libskins2_plugin.so
%{_datadir}/vlc/skins2/
%files plugins-all
%files plugins-base
%license COPYING COPYING.LIB
%exclude %{vlc_plugindir}/access/libaccess_jack_plugin.so
%exclude %{vlc_plugindir}/access/libavio_plugin.so
%if %{with ieee1394}
%exclude %{vlc_plugindir}/access/libdc1394_plugin.so
%exclude %{vlc_plugindir}/access/libdv1394_plugin.so
%endif
%exclude %{vlc_plugindir}/access/libpulsesrc_plugin.so
%exclude %{vlc_plugindir}/access/libsmb_plugin.so
%exclude %{vlc_plugindir}/access/libvnc_plugin.so
%{vlc_plugindir}/access/
%{vlc_plugindir}/access_output/
%{vlc_plugindir}/audio_filter/
%{vlc_plugindir}/audio_mixer/
%exclude %{vlc_plugindir}/audio_output/libjack_plugin.so
%exclude %{vlc_plugindir}/audio_output/libpulse_plugin.so
%{vlc_plugindir}/audio_output/
%exclude %{vlc_plugindir}/codec/libavcodec_plugin.so
%if %{with crystalhd}
%exclude %{vlc_plugindir}/codec/libcrystalhd_plugin.so
%endif
%exclude %{vlc_plugindir}/codec/libfluidsynth_plugin.so
%exclude %{vlc_plugindir}/codec/libgstdecode_plugin.so
%exclude %{vlc_plugindir}/codec/libsvgdec_plugin.so
%{vlc_plugindir}/codec/
%exclude %{vlc_plugindir}/control/libxcb_hotkeys_plugin.so
%{vlc_plugindir}/control/
%exclude %{vlc_plugindir}/demux/libavformat_plugin.so
%{vlc_plugindir}/demux/
%dir %{vlc_plugindir}/access/
%dir %{vlc_plugindir}/access_output/
%dir %{vlc_plugindir}/audio_filter/
%dir %{vlc_plugindir}/audio_mixer/
%dir %{vlc_plugindir}/audio_output/
%dir %{vlc_plugindir}/codec/
%dir %{vlc_plugindir}/control/
%dir %{vlc_plugindir}/demux/
%dir %{vlc_plugindir}/gui/
%exclude %{vlc_plugindir}/keystore/libkwallet_plugin.so
%exclude %{vlc_plugindir}/keystore/libsecret_plugin.so
%{vlc_plugindir}/keystore/
%{vlc_plugindir}/logger/
%{vlc_plugindir}/meta_engine/
%{vlc_plugindir}/misc/
%{vlc_plugindir}/mux/
%dir %{vlc_plugindir}/keystore/
%dir %{vlc_plugindir}/logger/
%dir %{vlc_plugindir}/meta_engine/
%dir %{vlc_plugindir}/misc/
%dir %{vlc_plugindir}/mux/
%dir %{vlc_plugindir}/notify/
%exclude %{vlc_plugindir}/packetizer/libpacketizer_avparser_plugin.so
%{vlc_plugindir}/packetizer/
%exclude %{vlc_plugindir}/services_discovery/libpulselist_plugin.so
%exclude %{vlc_plugindir}/services_discovery/libxcb_apps_plugin.so
%{vlc_plugindir}/services_discovery/
%{vlc_plugindir}/spu/
%{vlc_plugindir}/stream_extractor/
%{vlc_plugindir}/stream_filter/
%exclude %{vlc_plugindir}/stream_out/libstream_out_chromaprint_plugin.so
%{vlc_plugindir}/stream_out/
%exclude %{vlc_plugindir}/text_renderer/libsvg_plugin.so
%{vlc_plugindir}/text_renderer/
%dir %{vlc_plugindir}/packetizer/
%dir %{vlc_plugindir}/services_discovery/
%dir %{vlc_plugindir}/spu/
%dir %{vlc_plugindir}/stream_extractor/
%dir %{vlc_plugindir}/stream_filter/
%dir %{vlc_plugindir}/stream_out/
%dir %{vlc_plugindir}/text_renderer/
%dir %{vlc_plugindir}/vaapi/
%dir %{vlc_plugindir}/vdpau/
%dir %{vlc_plugindir}/video_chroma/
%dir %{vlc_plugindir}/video_filter/
%dir %{vlc_plugindir}/video_output/
%dir %{vlc_plugindir}/video_splitter/
%dir %{vlc_plugindir}/visualization/
%dir %{_datadir}/vlc/
%{vlc_plugindir}/access/libaccess_alsa_plugin.so
%{vlc_plugindir}/access/libaccess_concat_plugin.so
%{vlc_plugindir}/access/libaccess_imem_plugin.so
%{vlc_plugindir}/access/libaccess_mms_plugin.so
%{vlc_plugindir}/access/libaccess_realrtsp_plugin.so
%{vlc_plugindir}/access/libattachment_plugin.so
%{vlc_plugindir}/access/libdtv_plugin.so
%{vlc_plugindir}/access/libfilesystem_plugin.so
%{vlc_plugindir}/access/libftp_plugin.so
%{vlc_plugindir}/access/libhttp_plugin.so
%{vlc_plugindir}/access/libhttps_plugin.so
%{vlc_plugindir}/access/libidummy_plugin.so
%{vlc_plugindir}/access/libimem_plugin.so
%{vlc_plugindir}/access/librist_plugin.so
%{vlc_plugindir}/access/librtp_plugin.so
%{vlc_plugindir}/access/libsatip_plugin.so
%{vlc_plugindir}/access/libsdp_plugin.so
%{vlc_plugindir}/access/libshm_plugin.so
%{vlc_plugindir}/access/libtcp_plugin.so
%{vlc_plugindir}/access/libtimecode_plugin.so
%{vlc_plugindir}/access/libudp_plugin.so
%{vlc_plugindir}/access/libvcd_plugin.so
%{vlc_plugindir}/access/libvdr_plugin.so
%{vlc_plugindir}/access_output/libaccess_output_dummy_plugin.so
%{vlc_plugindir}/access_output/libaccess_output_file_plugin.so
%{vlc_plugindir}/access_output/libaccess_output_http_plugin.so
%{vlc_plugindir}/access_output/libaccess_output_livehttp_plugin.so
%{vlc_plugindir}/access_output/libaccess_output_rist_plugin.so
%{vlc_plugindir}/access_output/libaccess_output_shout_plugin.so
%{vlc_plugindir}/access_output/libaccess_output_udp_plugin.so
%{vlc_plugindir}/audio_filter/libaudio_format_plugin.so
%{vlc_plugindir}/audio_filter/libaudiobargraph_a_plugin.so
%{vlc_plugindir}/audio_filter/libchorus_flanger_plugin.so
%{vlc_plugindir}/audio_filter/libcompressor_plugin.so
%{vlc_plugindir}/audio_filter/libdolby_surround_decoder_plugin.so
%{vlc_plugindir}/audio_filter/libequalizer_plugin.so
%{vlc_plugindir}/audio_filter/libgain_plugin.so
%{vlc_plugindir}/audio_filter/libheadphone_channel_mixer_plugin.so
%{vlc_plugindir}/audio_filter/libkaraoke_plugin.so
%{vlc_plugindir}/audio_filter/libmono_plugin.so
%{vlc_plugindir}/audio_filter/libnormvol_plugin.so
%{vlc_plugindir}/audio_filter/libparam_eq_plugin.so
%{vlc_plugindir}/audio_filter/libremap_plugin.so
%{vlc_plugindir}/audio_filter/libscaletempo_pitch_plugin.so
%{vlc_plugindir}/audio_filter/libscaletempo_plugin.so
%{vlc_plugindir}/audio_filter/libsimple_channel_mixer_plugin.so
%{vlc_plugindir}/audio_filter/libspatializer_plugin.so
%{vlc_plugindir}/audio_filter/libstereo_widen_plugin.so
%{vlc_plugindir}/audio_filter/libtospdif_plugin.so
%{vlc_plugindir}/audio_filter/libtrivial_channel_mixer_plugin.so
%{vlc_plugindir}/audio_filter/libugly_resampler_plugin.so
%{vlc_plugindir}/audio_mixer/libfloat_mixer_plugin.so
%{vlc_plugindir}/audio_mixer/libinteger_mixer_plugin.so
%{vlc_plugindir}/audio_output/libadummy_plugin.so
%{vlc_plugindir}/audio_output/libafile_plugin.so
%{vlc_plugindir}/audio_output/libalsa_plugin.so
%{vlc_plugindir}/audio_output/libamem_plugin.so
%{vlc_plugindir}/codec/libadpcm_plugin.so
%{vlc_plugindir}/codec/libaes3_plugin.so
%{vlc_plugindir}/codec/libaraw_plugin.so
%{vlc_plugindir}/codec/libcc_plugin.so
%{vlc_plugindir}/codec/libcdg_plugin.so
%{vlc_plugindir}/codec/libcvdsub_plugin.so
%{vlc_plugindir}/codec/libdav1d_plugin.so
%{vlc_plugindir}/codec/libddummy_plugin.so
%{vlc_plugindir}/codec/libdvbsub_plugin.so
%{vlc_plugindir}/codec/libedummy_plugin.so
%{vlc_plugindir}/codec/libfaad_plugin.so
%{vlc_plugindir}/codec/libfdkaac_plugin.so
%{vlc_plugindir}/codec/libflac_plugin.so
%{vlc_plugindir}/codec/libg711_plugin.so
%{vlc_plugindir}/codec/libjpeg_plugin.so
%{vlc_plugindir}/codec/liblpcm_plugin.so
%{vlc_plugindir}/codec/libmpg123_plugin.so
%{vlc_plugindir}/codec/liboggspots_plugin.so
%{vlc_plugindir}/codec/libopus_plugin.so
%{vlc_plugindir}/codec/libpng_plugin.so
%{vlc_plugindir}/codec/librawvideo_plugin.so
%{vlc_plugindir}/codec/librtpvideo_plugin.so
%{vlc_plugindir}/codec/libscte18_plugin.so
%{vlc_plugindir}/codec/libscte27_plugin.so
%{vlc_plugindir}/codec/libspdif_plugin.so
%{vlc_plugindir}/codec/libspeex_plugin.so
%{vlc_plugindir}/codec/libspudec_plugin.so
%{vlc_plugindir}/codec/libstl_plugin.so
%{vlc_plugindir}/codec/libsubsdec_plugin.so
%{vlc_plugindir}/codec/libsubstx3g_plugin.so
%{vlc_plugindir}/codec/libsubsusf_plugin.so
%{vlc_plugindir}/codec/libsvcdsub_plugin.so
%{vlc_plugindir}/codec/libt140_plugin.so
%{vlc_plugindir}/codec/libtextst_plugin.so
%{vlc_plugindir}/codec/libtheora_plugin.so
%{vlc_plugindir}/codec/libttml_plugin.so
%{vlc_plugindir}/codec/libtwolame_plugin.so
%{vlc_plugindir}/codec/libuleaddvaudio_plugin.so
%{vlc_plugindir}/codec/libvorbis_plugin.so
%{vlc_plugindir}/codec/libvpx_plugin.so
%{vlc_plugindir}/codec/libwebvtt_plugin.so
%{vlc_plugindir}/codec/libxwd_plugin.so
%{vlc_plugindir}/control/libdbus_plugin.so
%{vlc_plugindir}/control/libdummy_plugin.so
%{vlc_plugindir}/control/libgestures_plugin.so
%{vlc_plugindir}/control/libhotkeys_plugin.so
%{vlc_plugindir}/control/libmotion_plugin.so
%{vlc_plugindir}/control/libnetsync_plugin.so
%{vlc_plugindir}/control/liboldrc_plugin.so
%{vlc_plugindir}/demux/libadaptive_plugin.so
%{vlc_plugindir}/demux/libaiff_plugin.so
%{vlc_plugindir}/demux/libasf_plugin.so
%{vlc_plugindir}/demux/libau_plugin.so
%{vlc_plugindir}/demux/libavi_plugin.so
%{vlc_plugindir}/demux/libcaf_plugin.so
%{vlc_plugindir}/demux/libdemux_cdg_plugin.so
%{vlc_plugindir}/demux/libdemux_chromecast_plugin.so
%{vlc_plugindir}/demux/libdemux_stl_plugin.so
%{vlc_plugindir}/demux/libdemuxdump_plugin.so
%{vlc_plugindir}/demux/libdiracsys_plugin.so
%{vlc_plugindir}/demux/libdirectory_demux_plugin.so
%{vlc_plugindir}/demux/libdmxmus_plugin.so
%{vlc_plugindir}/demux/libes_plugin.so
%{vlc_plugindir}/demux/libflacsys_plugin.so
%{vlc_plugindir}/demux/libh26x_plugin.so
%{vlc_plugindir}/demux/libimage_plugin.so
%{vlc_plugindir}/demux/libmjpeg_plugin.so
%{vlc_plugindir}/demux/libmp4_plugin.so
%{vlc_plugindir}/demux/libmpgv_plugin.so
%{vlc_plugindir}/demux/libnoseek_plugin.so
%{vlc_plugindir}/demux/libnsc_plugin.so
%{vlc_plugindir}/demux/libnsv_plugin.so
%{vlc_plugindir}/demux/libnuv_plugin.so
%{vlc_plugindir}/demux/libogg_plugin.so
%{vlc_plugindir}/demux/libplaylist_plugin.so
%{vlc_plugindir}/demux/libps_plugin.so
%{vlc_plugindir}/demux/libpva_plugin.so
%{vlc_plugindir}/demux/librawaud_plugin.so
%{vlc_plugindir}/demux/librawdv_plugin.so
%{vlc_plugindir}/demux/librawvid_plugin.so
%{vlc_plugindir}/demux/libreal_plugin.so
%{vlc_plugindir}/demux/libsmf_plugin.so
%{vlc_plugindir}/demux/libsubtitle_plugin.so
%{vlc_plugindir}/demux/libtta_plugin.so
%{vlc_plugindir}/demux/libty_plugin.so
%{vlc_plugindir}/demux/libvc1_plugin.so
%{vlc_plugindir}/demux/libvobsub_plugin.so
%{vlc_plugindir}/demux/libvoc_plugin.so
%{vlc_plugindir}/demux/libwav_plugin.so
%{vlc_plugindir}/demux/libxa_plugin.so
%{vlc_plugindir}/keystore/libfile_keystore_plugin.so
%{vlc_plugindir}/keystore/libmemory_keystore_plugin.so
%{vlc_plugindir}/logger/libconsole_logger_plugin.so
%{vlc_plugindir}/logger/libfile_logger_plugin.so
%{vlc_plugindir}/logger/libsd_journal_plugin.so
%{vlc_plugindir}/logger/libsyslog_plugin.so
%{vlc_plugindir}/meta_engine/libfolder_plugin.so
%{vlc_plugindir}/meta_engine/libtaglib_plugin.so
%{vlc_plugindir}/misc/libaddonsfsstorage_plugin.so
%{vlc_plugindir}/misc/libaddonsvorepository_plugin.so
%{vlc_plugindir}/misc/libaudioscrobbler_plugin.so
%{vlc_plugindir}/misc/libdbus_screensaver_plugin.so
%{vlc_plugindir}/misc/libexport_plugin.so
%{vlc_plugindir}/misc/libfingerprinter_plugin.so
%{vlc_plugindir}/misc/libgnutls_plugin.so
%{vlc_plugindir}/misc/liblogger_plugin.so
%{vlc_plugindir}/misc/libstats_plugin.so
%{vlc_plugindir}/misc/libvod_rtsp_plugin.so
%{vlc_plugindir}/misc/libxdg_screensaver_plugin.so
%{vlc_plugindir}/misc/libxml_plugin.so
%{vlc_plugindir}/mux/libmux_asf_plugin.so
%{vlc_plugindir}/mux/libmux_avi_plugin.so
%{vlc_plugindir}/mux/libmux_dummy_plugin.so
%{vlc_plugindir}/mux/libmux_mp4_plugin.so
%{vlc_plugindir}/mux/libmux_mpjpeg_plugin.so
%{vlc_plugindir}/mux/libmux_ogg_plugin.so
%{vlc_plugindir}/mux/libmux_ps_plugin.so
%{vlc_plugindir}/mux/libmux_wav_plugin.so
%{vlc_plugindir}/packetizer/libpacketizer_a52_plugin.so
%{vlc_plugindir}/packetizer/libpacketizer_av1_plugin.so
%{vlc_plugindir}/packetizer/libpacketizer_copy_plugin.so
%{vlc_plugindir}/packetizer/libpacketizer_dirac_plugin.so
%{vlc_plugindir}/packetizer/libpacketizer_dts_plugin.so
%{vlc_plugindir}/packetizer/libpacketizer_flac_plugin.so
%{vlc_plugindir}/packetizer/libpacketizer_h264_plugin.so
%{vlc_plugindir}/packetizer/libpacketizer_hevc_plugin.so
%{vlc_plugindir}/packetizer/libpacketizer_mlp_plugin.so
%{vlc_plugindir}/packetizer/libpacketizer_mpeg4audio_plugin.so
%{vlc_plugindir}/packetizer/libpacketizer_mpeg4video_plugin.so
%{vlc_plugindir}/packetizer/libpacketizer_mpegaudio_plugin.so
%{vlc_plugindir}/packetizer/libpacketizer_mpegvideo_plugin.so
%{vlc_plugindir}/packetizer/libpacketizer_vc1_plugin.so
%{vlc_plugindir}/services_discovery/libmediadirs_plugin.so
%{vlc_plugindir}/services_discovery/libpodcast_plugin.so
%{vlc_plugindir}/services_discovery/libsap_plugin.so
%{vlc_plugindir}/spu/libaudiobargraph_v_plugin.so
%{vlc_plugindir}/spu/libdynamicoverlay_plugin.so
%{vlc_plugindir}/spu/liblogo_plugin.so
%{vlc_plugindir}/spu/libmarq_plugin.so
%{vlc_plugindir}/spu/libmosaic_plugin.so
%{vlc_plugindir}/spu/libremoteosd_plugin.so
%{vlc_plugindir}/spu/librss_plugin.so
%{vlc_plugindir}/spu/libsubsdelay_plugin.so
%{vlc_plugindir}/stream_filter/libadf_plugin.so
%{vlc_plugindir}/stream_filter/libcache_block_plugin.so
%{vlc_plugindir}/stream_filter/libcache_read_plugin.so
%{vlc_plugindir}/stream_filter/libdecomp_plugin.so
%{vlc_plugindir}/stream_filter/libhds_plugin.so
%{vlc_plugindir}/stream_filter/libinflate_plugin.so
%{vlc_plugindir}/stream_filter/libprefetch_plugin.so
%{vlc_plugindir}/stream_filter/librecord_plugin.so
%{vlc_plugindir}/stream_filter/libskiptags_plugin.so
%{vlc_plugindir}/stream_out/libstream_out_autodel_plugin.so
%{vlc_plugindir}/stream_out/libstream_out_bridge_plugin.so
%{vlc_plugindir}/stream_out/libstream_out_cycle_plugin.so
%{vlc_plugindir}/stream_out/libstream_out_delay_plugin.so
%{vlc_plugindir}/stream_out/libstream_out_description_plugin.so
%{vlc_plugindir}/stream_out/libstream_out_display_plugin.so
%{vlc_plugindir}/stream_out/libstream_out_dummy_plugin.so
%{vlc_plugindir}/stream_out/libstream_out_duplicate_plugin.so
%{vlc_plugindir}/stream_out/libstream_out_es_plugin.so
%{vlc_plugindir}/stream_out/libstream_out_gather_plugin.so
%{vlc_plugindir}/stream_out/libstream_out_mosaic_bridge_plugin.so
%{vlc_plugindir}/stream_out/libstream_out_record_plugin.so
%{vlc_plugindir}/stream_out/libstream_out_rtp_plugin.so
%{vlc_plugindir}/stream_out/libstream_out_setid_plugin.so
%{vlc_plugindir}/stream_out/libstream_out_smem_plugin.so
%{vlc_plugindir}/stream_out/libstream_out_standard_plugin.so
%{vlc_plugindir}/stream_out/libstream_out_stats_plugin.so
%{vlc_plugindir}/stream_out/libstream_out_transcode_plugin.so
%{vlc_plugindir}/text_renderer/libtdummy_plugin.so
%exclude %{vlc_plugindir}/video_chroma/libswscale_plugin.so
%{vlc_plugindir}/video_chroma/
%{vlc_plugindir}/video_chroma/*.so
%if %{with postproc}
%exclude %{vlc_plugindir}/video_filter/libpostproc_plugin.so
%endif
%if %{with opencv}
%exclude %{vlc_plugindir}/video_filter/libopencv_*.so
%endif
%exclude %{vlc_plugindir}/video_filter/libpostproc_plugin.so
%{vlc_plugindir}/video_filter/
%dir %{vlc_plugindir}/video_output/
%{vlc_plugindir}/video_filter/*.so
%{vlc_plugindir}/video_output/libfb_plugin.so
%{vlc_plugindir}/video_output/libvdummy_plugin.so
%{vlc_plugindir}/video_output/libvmem_plugin.so
%{vlc_plugindir}/video_output/libyuv_plugin.so
%dir %{vlc_plugindir}/video_splitter/
%dir %{vlc_plugindir}/visualization/
%dir %{_datadir}/vlc/
%files plugins-extra
%{vlc_plugindir}/access/libaccess_mtp_plugin.so
%{vlc_plugindir}/access/libaccess_srt_plugin.so
%{vlc_plugindir}/access/libcdda_plugin.so
%if %{with asdcp}
%{vlc_plugindir}/access/libdcp_plugin.so
%endif
%{vlc_plugindir}/access/libdvb_plugin.so
%{vlc_plugindir}/access/libdvdnav_plugin.so
%{vlc_plugindir}/access/libdvdread_plugin.so
%{vlc_plugindir}/access/liblibbluray_plugin.so
%{vlc_plugindir}/access/liblive555_plugin.so
%{vlc_plugindir}/access/libnfs_plugin.so
%{vlc_plugindir}/access/libsftp_plugin.so
%{vlc_plugindir}/access/liblinsys_hdsdi_plugin.so
%{vlc_plugindir}/access/liblinsys_sdi_plugin.so
%{vlc_plugindir}/access/libv4l2_plugin.so
%{vlc_plugindir}/access/libxcb_screen_plugin.so
%{vlc_plugindir}/access_output/libaccess_output_srt_plugin.so
%{vlc_plugindir}/audio_filter/libmad_plugin.so
%{vlc_plugindir}/audio_filter/libsamplerate_plugin.so
%{vlc_plugindir}/audio_filter/libsoxr_plugin.so
%{vlc_plugindir}/audio_filter/libspatialaudio_plugin.so
%{vlc_plugindir}/audio_filter/libspeex_resampler_plugin.so
%{vlc_plugindir}/codec/libaom_plugin.so
%{vlc_plugindir}/codec/libaribsub_plugin.so
%if %{with daala}
%{vlc_plugindir}/codec/libdaala_plugin.so
%endif
%{vlc_plugindir}/codec/libkate_plugin.so
%{vlc_plugindir}/codec/liblibass_plugin.so
%if %{with vpl}
%{vlc_plugindir}/codec/libqsv_plugin.so
%endif
%if %{with sdl}
%{vlc_plugindir}/codec/libsdl_image_plugin.so
%endif
%{vlc_plugindir}/codec/libzvbi_plugin.so
%if %{with lirc}
%{vlc_plugindir}/control/liblirc_plugin.so
%endif
%{vlc_plugindir}/demux/libgme_plugin.so
%{vlc_plugindir}/demux/libmpc_plugin.so
%{vlc_plugindir}/demux/libmkv_plugin.so
%{vlc_plugindir}/demux/libmod_plugin.so
%{vlc_plugindir}/demux/libts_plugin.so
%{vlc_plugindir}/mux/libmux_ts_plugin.so
%{vlc_plugindir}/services_discovery/libavahi_plugin.so
%{vlc_plugindir}/services_discovery/libmicrodns_plugin.so
%{vlc_plugindir}/services_discovery/libmtp_plugin.so
%{vlc_plugindir}/services_discovery/libupnp_plugin.so
%{vlc_plugindir}/services_discovery/libudev_plugin.so
%{vlc_plugindir}/stream_extractor/libarchive_plugin.so
%{vlc_plugindir}/stream_filter/libaribcam_plugin.so
%{vlc_plugindir}/stream_out/libstream_out_chromecast_plugin.so
%{vlc_plugindir}/text_renderer/libfreetype_plugin.so
%{vlc_plugindir}/video_output/libaa_plugin.so
%{vlc_plugindir}/video_output/libcaca_plugin.so
%if %{with crystalhd}
%files plugin-crystalhd
@ -809,12 +1187,16 @@ make check
%files plugin-ffmpeg
%{vlc_plugindir}/access/libavio_plugin.so
%{vlc_plugindir}/codec/libavcodec_plugin.so
%{vlc_plugindir}/codec/libvaapi_drm_plugin.so
%{vlc_plugindir}/codec/libvaapi_plugin.so
%{vlc_plugindir}/demux/libavformat_plugin.so
%{vlc_plugindir}/packetizer/libpacketizer_avparser_plugin.so
%{vlc_plugindir}/stream_out/libstream_out_chromaprint_plugin.so
%{vlc_plugindir}/vdpau/libvdpau_avcodec_plugin.so
%{vlc_plugindir}/video_chroma/libswscale_plugin.so
%if %{with postproc}
%{vlc_plugindir}/video_filter/libpostproc_plugin.so
%endif
%files plugin-fluidsynth
%{vlc_plugindir}/codec/libfluidsynth_plugin.so
@ -858,6 +1240,9 @@ make check
%{vlc_plugindir}/audio_output/libpulse_plugin.so
%{vlc_plugindir}/services_discovery/libpulselist_plugin.so
%files plugin-rdp
%{vlc_plugindir}/access/librdp_plugin.so
%files plugin-samba
%{vlc_plugindir}/access/libsmb_plugin.so
@ -873,11 +1258,22 @@ make check
%{vlc_plugindir}/vaapi/*.so
%exclude %{vlc_plugindir}/vdpau/libvdpau_avcodec_plugin.so
%{vlc_plugindir}/vdpau/*.so
%exclude %{vlc_plugindir}/video_output/libfb_plugin.so
%exclude %{vlc_plugindir}/video_output/libvdummy_plugin.so
%exclude %{vlc_plugindir}/video_output/libvmem_plugin.so
%exclude %{vlc_plugindir}/video_output/libyuv_plugin.so
%{vlc_plugindir}/video_output/*.so
%{vlc_plugindir}/video_output/libegl_wl_plugin.so
%{vlc_plugindir}/video_output/libegl_x11_plugin.so
%{vlc_plugindir}/video_output/libflaschen_plugin.so
%{vlc_plugindir}/video_output/libgl_plugin.so
%{vlc_plugindir}/video_output/libglconv_vaapi_drm_plugin.so
%{vlc_plugindir}/video_output/libglconv_vaapi_wl_plugin.so
%{vlc_plugindir}/video_output/libglconv_vaapi_x11_plugin.so
%{vlc_plugindir}/video_output/libglconv_vdpau_plugin.so
%{vlc_plugindir}/video_output/libgles2_plugin.so
%{vlc_plugindir}/video_output/libglx_plugin.so
%{vlc_plugindir}/video_output/libwl_shell_plugin.so
%{vlc_plugindir}/video_output/libwl_shm_plugin.so
%{vlc_plugindir}/video_output/libxcb_window_plugin.so
%{vlc_plugindir}/video_output/libxcb_x11_plugin.so
%{vlc_plugindir}/video_output/libxcb_xv_plugin.so
%{vlc_plugindir}/video_output/libxdg_shell_plugin.so
%{vlc_plugindir}/video_splitter/*.so
%files plugin-visualization