alarm/vlc-rpi to 3.0.19-1

Update and sync with extra/vlc but retain lua5.2 due to breakage with lua
This commit is contained in:
graysky 2023-10-15 02:26:49 -04:00
parent 51abd4a597
commit 91d983c582
6 changed files with 5314 additions and 1492 deletions

View file

@ -1,15 +0,0 @@
--- a/modules/video_output/caca.c
+++ b/modules/video_output/caca.c
@@ -160,7 +160,11 @@ static int Open(vlc_object_t *object)
}
const char *driver = NULL;
-#ifdef __APPLE__
+// RPI: If driver is NULL then if we have X but DISPLAY is unset then somehow
+// the GL module becomes unloaded without anything noticing and that then
+// causes a segfault.
+//#ifdef __APPLE__
+#if 1
// Make sure we don't try to open a window.
driver = "ncurses";
#endif

View file

@ -1,14 +0,0 @@
--- a/modules/video_chroma/chain.c
+++ b/modules/video_chroma/chain.c
@@ -280,8 +280,9 @@ static int BuildTransformChain( filter_t
return VLC_SUCCESS;
/* Lets try resize+chroma first, then transform */
- msg_Dbg( p_filter, "Trying to build chroma+resize" );
- EsFormatMergeSize( &fmt_mid, &p_filter->fmt_out, &p_filter->fmt_in );
+ msg_Dbg( p_filter, "Trying to build chroma+resize, then transform" );
+ es_format_Copy( &fmt_mid, &p_filter->fmt_out );
+ video_format_TransformTo(&fmt_mid.video, p_filter->fmt_in.video.orientation);
i_ret = CreateChain( p_filter, &fmt_mid );
es_format_Clean( &fmt_mid );
if( i_ret == VLC_SUCCESS )

View file

@ -1,14 +0,0 @@
--- a/bin/vlc.c
+++ b/bin/vlc.c
@@ -106,7 +106,10 @@ static void vlc_kill (void *data)
static void exit_timeout (int signum)
{
(void) signum;
- signal (SIGINT, SIG_DFL);
+// This doesn't seem to be strong enough to reliably kill us if we fail to exit
+// in a timely fashion - so upgrade to _exit().
+// signal (SIGINT, SIG_DFL);
+ _exit(0);
}
/*****************************************************************************

View file

@ -1,72 +0,0 @@
--- a/modules/gui/qt/components/interface_widgets.cpp
+++ b/modules/gui/qt/components/interface_widgets.cpp
@@ -108,6 +108,36 @@ void VideoWidget::sync( void )
if( QX11Info::isPlatformX11() )
XSync( QX11Info::display(), False );
#endif
+ refreshHandles();
+}
+
+/**
+ * The wayland surface may change if the window is hidden which
+ * seems to happen sometimes on resize
+ * In Qt it looks like this happens if the window is hidden
+ **/
+void VideoWidget::refreshHandles()
+{
+#ifdef QT5_HAS_WAYLAND
+ if (!p_window || p_window->type != VOUT_WINDOW_TYPE_WAYLAND)
+ return;
+
+ /* Ensure only the video widget is native (needed for Wayland) */
+ stable->setAttribute( Qt::WA_DontCreateNativeAncestors, true);
+
+ QWindow *window = stable->windowHandle();
+ assert(window != NULL);
+ window->create();
+
+ QPlatformNativeInterface *qni = qApp->platformNativeInterface();
+ assert(qni != NULL);
+
+ p_window->handle.wl = static_cast<wl_surface*>(
+ qni->nativeResourceForWindow(QByteArrayLiteral("surface"),
+ window));
+ p_window->display.wl = static_cast<wl_display*>(
+ qni->nativeResourceForIntegration(QByteArrayLiteral("wl_display")));
+#endif
}
/**
@@ -165,21 +195,7 @@ bool VideoWidget::request( struct vout_w
#ifdef QT5_HAS_WAYLAND
case VOUT_WINDOW_TYPE_WAYLAND:
{
- /* Ensure only the video widget is native (needed for Wayland) */
- stable->setAttribute( Qt::WA_DontCreateNativeAncestors, true);
-
- QWindow *window = stable->windowHandle();
- assert(window != NULL);
- window->create();
-
- QPlatformNativeInterface *qni = qApp->platformNativeInterface();
- assert(qni != NULL);
-
- p_wnd->handle.wl = static_cast<wl_surface*>(
- qni->nativeResourceForWindow(QByteArrayLiteral("surface"),
- window));
- p_wnd->display.wl = static_cast<wl_display*>(
- qni->nativeResourceForIntegration(QByteArrayLiteral("wl_display")));
+ refreshHandles();
break;
}
#endif
--- a/modules/gui/qt/components/interface_widgets.hpp
+++ b/modules/gui/qt/components/interface_widgets.hpp
@@ -88,6 +88,7 @@ private:
bool enable_mouse_events;
void reportSize();
+ void refreshHandles();
signals:
void sizeChanged( int, int );

View file

@ -6,11 +6,11 @@
pkgname=vlc-rpi pkgname=vlc-rpi
_pkgname=vlc _pkgname=vlc
_vlcver=3.0.18 _vlcver=3.0.19
# optional fixup version including hyphen # optional fixup version including hyphen
_vlcfixupver= _vlcfixupver=
pkgver=${_vlcver}${_vlcfixupver//-/.r} pkgver=${_vlcver}${_vlcfixupver//-/.r}
pkgrel=7 pkgrel=1
pkgdesc='Multi-platform MPEG, VCD/DVD, and DivX player with hw accel for RPi 3/4/400' pkgdesc='Multi-platform MPEG, VCD/DVD, and DivX player with hw accel for RPi 3/4/400'
url='https://www.videolan.org/vlc/' url='https://www.videolan.org/vlc/'
arch=(aarch64) arch=(aarch64)
@ -21,7 +21,7 @@ depends=('a52dec' 'libdvbpsi' 'libxpm' 'libdca' 'libproxy' 'lua52' 'libidn'
'libmpeg2' 'xcb-util-keysyms' 'libtar' 'libxinerama' 'libsecret' 'libmpeg2' 'xcb-util-keysyms' 'libtar' 'libxinerama' 'libsecret'
'libupnp' 'libixml.so' 'libupnp.so' 'libarchive' 'qt5-base' 'libupnp' 'libixml.so' 'libupnp.so' 'libarchive' 'qt5-base'
'qt5-x11extras' 'qt5-svg' 'freetype2' 'fribidi' 'harfbuzz' 'qt5-x11extras' 'qt5-svg' 'freetype2' 'fribidi' 'harfbuzz'
'fontconfig' 'libxml2' 'gnutls' 'libplacebo' 'wayland-protocols' 'fontconfig' 'libxml2' 'gnutls' 'libplacebo' 'aribb24'
'linux-rpi' 'libomxil-bellagio') 'linux-rpi' 'libomxil-bellagio')
makedepends=('gst-plugins-base-libs' 'live-media' 'libnotify' 'libbluray' makedepends=('gst-plugins-base-libs' 'live-media' 'libnotify' 'libbluray'
'flac' 'libdc1394' 'libavc1394' 'libcaca' 'gtk3' 'flac' 'libdc1394' 'libavc1394' 'libcaca' 'gtk3'
@ -33,7 +33,7 @@ makedepends=('gst-plugins-base-libs' 'live-media' 'libnotify' 'libbluray'
'libx265.so' 'libx264.so' 'zvbi' 'libass' 'libkate' 'libtiger' 'libx265.so' 'libx264.so' 'zvbi' 'libass' 'libkate' 'libtiger'
'sdl_image' 'libpulse' 'alsa-lib' 'jack' 'libsamplerate' 'libsoxr' 'sdl_image' 'libpulse' 'alsa-lib' 'jack' 'libsamplerate' 'libsoxr'
'lirc' 'libgoom2' 'projectm' 'aom' 'srt' 'dav1d' 'libomxil-bellagio' 'lirc' 'libgoom2' 'projectm' 'aom' 'srt' 'dav1d' 'libomxil-bellagio'
'aribb24' 'aribb25' 'pcsclite' 'debugedit') 'aribb25' 'pcsclite' 'wayland-protocols')
# 'chromaprint: Chromaprint audio fingerprinter' # 'chromaprint: Chromaprint audio fingerprinter'
optdepends=('avahi: service discovery using bonjour protocol' optdepends=('avahi: service discovery using bonjour protocol'
@ -97,44 +97,36 @@ optdepends=('avahi: service discovery using bonjour protocol'
'ncurses: ncurses interface' 'ncurses: ncurses interface'
'libnotify: notification plugin' 'libnotify: notification plugin'
'gtk3: notification plugin' 'gtk3: notification plugin'
'aribb24: aribsub support'
'aribb25: aribcam support' 'aribb25: aribcam support'
'pcsclite: aribcam support') 'pcsclite: aribcam support'
'live-media: streaming over RTSP')
conflicts=('vlc-plugin' 'vlc') conflicts=('vlc-plugin' 'vlc')
provides=('vlc') provides=('vlc')
replaces=('vlc-plugin') replaces=('vlc-plugin')
options=('debug' '!emptydirs') options=('!emptydirs')
install='vlc.install' install='vlc.install'
source=(https://download.videolan.org/${_pkgname}/${_vlcver}/${_pkgname}-${_vlcver}${_vlcfixupver}.tar.xz{,.asc} source=(https://download.videolan.org/${_pkgname}/${_vlcver}/${_pkgname}-${_vlcver}${_vlcfixupver}.tar.xz{,.asc}
99-vlc.rules 99-vlc.rules
vlc.config.txt vlc.config.txt
0001-vlc-live-media-2021.patch 0001-vlc-live-media-2021.patch
0002-libplacebo-5.patch 0002-libplacebo-5.patch
# credit to RPi-Distro maintainers for this work # 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 # https://github.com/RPi-Distro/vlc/tree/bullseye-rpt/debian/patches
0003-mmal_35.patch 0003-dev-3.0.19-port_1.patch
0004-mmal_caca.patch
0005-mmal_chain.patch
0006-mmal_exit_fix.patch
0007-mmal_wayland.patch
update-vlc-plugin-cache.hook) update-vlc-plugin-cache.hook)
sha256sums=('57094439c365d8aa8b9b41fa3080cc0eef2befe6025bb5cef722accc625aedec' sha256sums=('643e3294bafe922324663ca499515b7564f2794575fd7d2b7992d20896381745'
'SKIP' 'SKIP'
'61125ab0da600d813f1aebd8445fcf03e176389cfb8aa28591f8225a13043089' '61125ab0da600d813f1aebd8445fcf03e176389cfb8aa28591f8225a13043089'
'be970a020695fdc4d0f968021f057a1cb625eeb6ee62995560e532d61ffb52dc' 'be970a020695fdc4d0f968021f057a1cb625eeb6ee62995560e532d61ffb52dc'
'753517a8b88c5950d516f0fe57a3ef169e0665ba7817d4b8d9976c666829a291' '753517a8b88c5950d516f0fe57a3ef169e0665ba7817d4b8d9976c666829a291'
'c47ecb0e8e8c03f8c5451aa12fc2e38e380364c38c411a13aa38b7b41def6989' 'c47ecb0e8e8c03f8c5451aa12fc2e38e380364c38c411a13aa38b7b41def6989'
'1560f80b52b7d88bd1a4f1c7fb74633aa30e4302a772c739eecbd58b200e7060' '6d0e7b14ae4cd2e490271a8c00cd97027af01eb6e65629f761562bcbd2869980'
'53613a6eee1c215a7becd9a8b97d0ed9a034684a586b9437f35f215a5c859d1a'
'a06d62bc579405588f5730a707af602d68f17d764a061f74958135aab34e4d92'
'1371c4fa43c8c7097aad21f3ac959aaea988a447ac30f9b96979c34bb0601316'
'1fcf65188a220905acea6da9cad256ceae405e9ebf5a7d079051984a8e602ba9'
'b98043683dd90d3f5a3f501212dfc629839b661100de5ac79fd30cb7b4a06f13') 'b98043683dd90d3f5a3f501212dfc629839b661100de5ac79fd30cb7b4a06f13')
validpgpkeys=('65F7C6B4206BD057A7EB73787180713BE58D1ADC') # VideoLAN Release Signing Key validpgpkeys=('65F7C6B4206BD057A7EB73787180713BE58D1ADC') # VideoLAN Release Signing Key
prepare() { prepare() {
cd ${_pkgname}-${_vlcver} cd ${_pkgname}-${_vlcver}
sed -e 's:truetype/ttf-dejavu:TTF:g' -i modules/visualization/projectm.cpp sed -e 's:truetype/ttf-dejavu:TTF:g' -i modules/visualization/projectm.cpp
sed -e 's|-Werror-implicit-function-declaration||g' -i configure sed -e 's|-Werror-implicit-function-declaration||g' -i configure
sed 's|whoami|echo builduser|g' -i configure sed 's|whoami|echo builduser|g' -i configure
@ -147,7 +139,6 @@ prepare() {
echo "Applying patch $src..." echo "Applying patch $src..."
patch -Np1 < "../$src" patch -Np1 < "../$src"
done done
autoreconf -vf autoreconf -vf
} }
@ -156,8 +147,9 @@ build() {
export CFLAGS+=" -I/usr/include/samba-4.0 -ffat-lto-objects -I/usr/include/ffmpeg-rpi" export CFLAGS+=" -I/usr/include/samba-4.0 -ffat-lto-objects -I/usr/include/ffmpeg-rpi"
export CPPFLAGS+=" -I/usr/include/samba-4.0" export CPPFLAGS+=" -I/usr/include/samba-4.0"
export CXXFLAGS+=" -std=c++11 -I/usr/include/ffmpeg-rpi" # building with lua ends in errors whereas lua5.2 builds and runs
# upstream doesn't support lua 5.4 yet: https://trac.videolan.org/vlc/ticket/25036 export CXXFLAGS+=" -std=c++17 -I/usr/include/ffmpeg-rpi"
export PKG_CONFIG_PATH="/usr/lib/ffmpeg-rpi/pkgconfig"
export LUAC=/usr/bin/luac5.2 export LUAC=/usr/bin/luac5.2
export LUA_LIBS="$(pkg-config --libs lua5.2)" export LUA_LIBS="$(pkg-config --libs lua5.2)"
export RCC=/usr/bin/rcc-qt5 export RCC=/usr/bin/rcc-qt5