diff --git a/alarm/vlc-rpi/PKGBUILD b/alarm/vlc-rpi/PKGBUILD index 9ffe85080..c7ffff2a2 100644 --- a/alarm/vlc-rpi/PKGBUILD +++ b/alarm/vlc-rpi/PKGBUILD @@ -4,13 +4,15 @@ # Contributor: Sarah Hay # Contributor: Martin Sandsmark +buildarch=8 + pkgname=vlc-rpi _pkgname=vlc _vlcver=3.0.21 # optional fixup version including hyphen _vlcfixupver= pkgver=${_vlcver}${_vlcfixupver//-/.r} -pkgrel=1 +pkgrel=2 pkgdesc='Multi-platform MPEG, VCD/DVD, and DivX player with hw accel for RPi 3 and above' url='https://www.videolan.org/vlc/' arch=(aarch64) @@ -52,9 +54,9 @@ depends=( 'libsecret' 'libtar' 'libupnp' 'libixml.so' 'libupnp.so' - #'libva' - #'libx11' - #'libxcb' + 'libva' + 'libx11' + 'libxcb' 'libxinerama' 'libxml2' 'libxpm' @@ -62,8 +64,8 @@ depends=( 'qt5-base' 'qt5-svg' 'qt5-x11extras' - #'taglib' - #'wayland' + 'taglib' + 'wayland' 'xcb-util-keysyms' 'zlib' ) @@ -130,93 +132,101 @@ makedepends=( 'xosd' 'zvbi' ) - -# 'chromaprint: Chromaprint audio fingerprinter' -optdepends=('avahi: service discovery using bonjour protocol' - 'aom: AOM AV1 codec' - 'gst-plugins-base-libs: for libgst plugins' - 'dav1d: dav1d AV1 decoder' - 'libdvdcss: decoding encrypted DVDs' - 'libavc1394: devices using the 1394ta AV/C' - 'libdc1394: IEEE 1394 access plugin' - 'kwallet: kwallet keystore' - 'libva-vdpau-driver: vdpau backend nvidia' - 'libva-intel-driver: video backend intel' - 'libbluray: Blu-Ray video input' - 'flac: Free Lossless Audio Codec plugin' - 'twolame: TwoLAME mpeg2 encoder plugin' - 'libgme: Game Music Emu plugin' - 'vcdimager: navigate VCD with libvcdinfo' - 'libmtp: MTP devices discovery' - 'systemd-libs: udev services discovery' - 'smbclient: SMB access plugin' - 'libcdio: audio CD playback' - 'gnu-free-fonts: subtitle font' - 'ttf-dejavu: subtitle font' - 'libssh2: sftp access' - 'libnfs: NFS access' - 'mpg123: mpg123 codec' - 'protobuf: chromecast streaming' - 'libmicrodns: mDNS services discovery (chromecast etc)' - 'lua-socket: http interface' - 'libdvdread: DVD input module' - 'libdvdnav: DVD with navigation input module' - 'libogg: Ogg and OggSpots codec' - 'libshout: shoutcast/icecast output plugin' - 'libmodplug: MOD output plugin' - 'libvpx: VP8 and VP9 codec' - 'libvorbis: Vorbis decoder/encoder' - 'speex: Speex codec' - 'opus: opus codec' - 'libtheora: theora codec' - 'libpng: PNG support' - 'libjpeg-turbo: JPEG support' - 'librsvg: SVG plugin' - 'x264: H264 encoding' - 'x265: HEVC/H.265 encoder' - 'zvbi: VBI/Teletext/webcam/v4l2 capture/decoding' - 'libass: Subtitle support' - 'libkate: Kate codec' - 'libtiger: Tiger rendering for Kate streams' - 'sdl_image: SDL image support' - 'srt: SRT input/output plugin' - 'aalib: ASCII art video output' - 'libcaca: colored ASCII art video output' - 'libpulse: PulseAudio audio output' - 'alsa-lib: ALSA audio output' - 'jack: jack audio server' - 'libsamplerate: audio Resampler' - 'libsoxr: SoX audio Resampler' - 'lirc: lirc control' - 'libgoom2: Goom visualization' - 'projectm: ProjectM visualisation' - 'ncurses: ncurses interface' - 'libnotify: notification plugin' - 'gtk3: notification plugin' - 'aribb25: aribcam support' - 'pcsclite: aribcam support' - 'live-media: streaming over RTSP') +optdepends=( + 'aalib: ASCII art video output' + 'alsa-lib: ALSA audio output' + 'aom: AOM AV1 codec' + 'aribb25: aribcam support' + 'avahi: service discovery using bonjour protocol' + 'dav1d: dav1d AV1 decoder' + 'flac: Free Lossless Audio Codec plugin' + 'fluidsynth: FluidSynth based MIDI playback plugin' + 'gnu-free-fonts: subtitle font' + 'gst-plugins-base-libs: for libgst plugins' + 'gstreamer: for libgst plugins' + 'gtk3: notification plugin' + 'jack: jack audio server' + 'kwallet: kwallet keystore' + 'libass: Subtitle support' + 'libavc1394: devices using the 1394ta AV/C' + 'libbluray: Blu-Ray video input' + 'libcaca: colored ASCII art video output' + 'libcdio: audio CD playback' + 'libdc1394: IEEE 1394 access plugin' + 'libdvdcss: decoding encrypted DVDs' + 'libdvdnav: DVD with navigation input module' + 'libdvdread: DVD input module' + 'libgme: Game Music Emu plugin' + 'libgoom2: Goom visualization' + 'libjpeg-turbo: JPEG support' + 'libkate: Kate codec' + 'libmodplug: MOD output plugin' + 'libmicrodns: mDNS services discovery (chromecast etc)' + 'libmtp: MTP devices discovery' + 'libnfs: NFS access' + 'libnotify: notification plugin' + 'libogg: Ogg and OggSpots codec' + 'libpng: PNG support' + 'libpulse: PulseAudio audio output' + 'libraw1394: IEEE 1394 access plugin' + 'librsvg: SVG plugin' + 'libsamplerate: audio Resampler' + 'libshout: shoutcast/icecast output plugin' + 'libsoxr: SoX audio Resampler' + 'libssh2: sftp access' + 'libtheora: theora codec' + 'libtiger: Tiger rendering for Kate streams' + 'libva-intel-driver: video backend intel' + 'libva-vdpau-driver: vdpau backend nvidia' + 'libvorbis: Vorbis decoder/encoder' + 'libvpx: VP8 and VP9 codec' + 'lirc: lirc control' + 'live-media: streaming over RTSP' + 'lua-socket: http interface' + 'mpg123: mpg123 codec' + 'ncurses: ncurses interface' + 'opus: opus codec' + 'pcsclite: aribcam support' + 'projectm: ProjectM visualisation' + 'protobuf: chromecast streaming' + 'sdl12-compat: SDL image support' + 'sdl_image: SDL image support' + 'smbclient: SMB access plugin' + 'speex: Speex codec' + 'speexdsp: Speex codec' + 'srt: SRT input/output plugin' + 'systemd-libs: udev services discovery' + 'ttf-dejavu: subtitle font' + 'twolame: TwoLAME mpeg2 encoder plugin' + 'vcdimager: navigate VCD with libvcdinfo' + 'x264: H264 encoding' + 'x265: HEVC/H.265 encoder' + 'zvbi: VBI/Teletext/webcam/v4l2 capture/decoding' +) conflicts=('vlc-plugin' 'vlc') provides=('vlc') replaces=('vlc-plugin') options=('!emptydirs') install='vlc.install' -source=(https://download.videolan.org/${_pkgname}/${_vlcver}/${_pkgname}-${_vlcver}${_vlcfixupver}.tar.xz{,.asc} - 99-vlc.rules - vlc.config.txt - 0001-vlc-live-media-2021.patch - # credit to jc and RPi-Distro maintainers for this work, see: - # https://github.com/jc-kynesim/vlc.git - # https://github.com/RPi-Distro/vlc/tree/bullseye-rpt/debian/patches - 0002-test-3.0.21-rpi_2.patch - update-vlc-plugin-cache.hook) +source=( + https://download.videolan.org/${_pkgname}/${_vlcver}/${_pkgname}-${_vlcver}${_vlcfixupver}.tar.xz{,.asc} + update-vlc-plugin-cache.hook + taglib-2.patch + 99-vlc.rules + vlc.config.txt + # credit to jc and RPi-Distro maintainers for this work, see: + # https://github.com/jc-kynesim/vlc.git and https://github.com/RPi-Distro/vlc/tree/bookworm-rpt/debian/patches + 0001-vlc-live-media-2021.patch + 0002-test-3.0.21-rpi_2.patch +) sha256sums=('24dbbe1d7dfaeea0994d5def0bbde200177347136dbfe573f5b6a4cee25afbb0' 'SKIP' + 'b98043683dd90d3f5a3f501212dfc629839b661100de5ac79fd30cb7b4a06f13' + 'db41f3a11d4df28251f1baaf41bc0913227ff1e77680e43d7efa172e6ae1cc29' '61125ab0da600d813f1aebd8445fcf03e176389cfb8aa28591f8225a13043089' 'f7d129441b5f1f1ce03f7056ebe2707d8c431a69a11afe153a9990dd61ce75ec' '753517a8b88c5950d516f0fe57a3ef169e0665ba7817d4b8d9976c666829a291' - '616833e99372317d9a1e1a73254ee48f71a803eb13e8dd04db158e7c3db0eb5c' - 'b98043683dd90d3f5a3f501212dfc629839b661100de5ac79fd30cb7b4a06f13') + '616833e99372317d9a1e1a73254ee48f71a803eb13e8dd04db158e7c3db0eb5c') validpgpkeys=('65F7C6B4206BD057A7EB73787180713BE58D1ADC') # VideoLAN Release Signing Key prepare() { @@ -338,7 +348,7 @@ build() { --enable-libxml2 \ --disable-libgcrypt \ --enable-gnutls \ - --disable-taglib \ + --enable-taglib \ --enable-secret \ --enable-kwallet \ --disable-update-check \ @@ -375,3 +385,4 @@ package() { } # vim: ts=2 sw=2 et: + diff --git a/alarm/vlc-rpi/taglib-2.patch b/alarm/vlc-rpi/taglib-2.patch new file mode 100644 index 000000000..862ef586b --- /dev/null +++ b/alarm/vlc-rpi/taglib-2.patch @@ -0,0 +1,63 @@ +diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp +index 84b401c795..f371485008 100644 +--- a/modules/meta_engine/taglib.cpp ++++ b/modules/meta_engine/taglib.cpp +@@ -185,7 +185,7 @@ public: + ByteVector res(length, 0); + ssize_t i_read = vlc_stream_Read( m_stream, res.data(), length); + if (i_read < 0) +- return ByteVector::null; ++ return ByteVector(); + else if ((size_t)i_read != length) + res.resize(i_read); + return res; +@@ -465,7 +465,7 @@ static void ReadMetaFromASF( ASF::Tag* tag, demux_meta_t* p_demux_meta, vlc_meta + static void ReadMetaFromBasicTag(const Tag* tag, vlc_meta_t *dest) + { + #define SET( accessor, meta ) \ +- if( !tag->accessor().isNull() && !tag->accessor().isEmpty() ) \ ++ if( !tag->accessor().isEmpty() ) \ + vlc_meta_Set##meta( dest, tag->accessor().toCString(true) ) + #define SETINT( accessor, meta ) \ + if( tag->accessor() ) \ +@@ -806,15 +806,15 @@ static void ReadMetaFromMP4( MP4::Tag* tag, demux_meta_t *p_demux_meta, vlc_meta + { + MP4::Item list; + #define SET( keyName, metaName ) \ +- if( tag->itemListMap().contains(keyName) ) \ ++ if( tag->itemMap().contains(keyName) ) \ + { \ +- list = tag->itemListMap()[keyName]; \ ++ list = tag->itemMap()[keyName]; \ + vlc_meta_Set##metaName( p_meta, list.toStringList().front().toCString( true ) ); \ + } + #define SET_EXTRA( keyName, metaName ) \ +- if( tag->itemListMap().contains(keyName) ) \ ++ if( tag->itemMap().contains(keyName) ) \ + { \ +- list = tag->itemListMap()[keyName]; \ ++ list = tag->itemMap()[keyName]; \ + vlc_meta_AddExtra( p_meta, metaName, list.toStringList().front().toCString( true ) ); \ + } + +@@ -824,9 +824,9 @@ static void ReadMetaFromMP4( MP4::Tag* tag, demux_meta_t *p_demux_meta, vlc_meta + #undef SET + #undef SET_EXTRA + +- if( tag->itemListMap().contains("covr") ) ++ if( tag->itemMap().contains("covr") ) + { +- MP4::CoverArtList list = tag->itemListMap()["covr"].toCoverArtList(); ++ MP4::CoverArtList list = tag->itemMap()["covr"].toCoverArtList(); + const char *psz_format = list[0].format() == MP4::CoverArt::PNG ? "image/png" : "image/jpeg"; + + msg_Dbg( p_demux_meta, "Found embedded art (%s) is %i bytes", +@@ -1337,7 +1337,7 @@ static int WriteMeta( vlc_object_t *p_this ) + if( RIFF::AIFF::File* riff_aiff = dynamic_cast(f.file()) ) + WriteMetaToId3v2( riff_aiff->tag(), p_item ); + else if( RIFF::WAV::File* riff_wav = dynamic_cast(f.file()) ) +- WriteMetaToId3v2( riff_wav->tag(), p_item ); ++ WriteMetaToId3v2( riff_wav->ID3v2Tag(), p_item ); + } + else if( TrueAudio::File* trueaudio = dynamic_cast(f.file()) ) + {