alarm/vlc-rpi to 3.0.18-6

This commit is contained in:
graysky 2023-03-29 13:41:09 -04:00
parent e3643c0a4b
commit 7f84b789bc
3 changed files with 579 additions and 165 deletions

View file

@ -0,0 +1,72 @@
--- 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

@ -11,7 +11,7 @@ _vlcver=3.0.18
_vlcfixupver=
_commit=b6a28bbbec2b56851085178016c300724d66b41b
pkgver=${_vlcver}${_vlcfixupver//-/.r}
pkgrel=5
pkgrel=6
pkgdesc='Multi-platform MPEG, VCD/DVD, and DivX player with hw accel for RPi 3/4/400'
url='https://www.videolan.org/vlc/'
arch=(aarch64)
@ -113,10 +113,11 @@ source=(https://download.videolan.org/${_pkgname}/${_vlcver}/${_pkgname}-${_vlcv
0002-libplacebo-5.patch
# credit to RPi-Distro maintainers for this work
# https://github.com/RPi-Distro/vlc/tree/bullseye-rpt/debian/patches
0003-mmal_31.patch
0003-mmal_32.patch
0004-mmal_caca.patch
0005-mmal_chain.patch
0006-mmal_exit_fix.patch
0007-mmal_wayland.patch
update-vlc-plugin-cache.hook)
sha256sums=('57094439c365d8aa8b9b41fa3080cc0eef2befe6025bb5cef722accc625aedec'
'SKIP'
@ -124,10 +125,11 @@ sha256sums=('57094439c365d8aa8b9b41fa3080cc0eef2befe6025bb5cef722accc625aedec'
'be970a020695fdc4d0f968021f057a1cb625eeb6ee62995560e532d61ffb52dc'
'753517a8b88c5950d516f0fe57a3ef169e0665ba7817d4b8d9976c666829a291'
'c47ecb0e8e8c03f8c5451aa12fc2e38e380364c38c411a13aa38b7b41def6989'
'f0b44005f695899d516df3b9cab55e243e010229ecd1cd46dafd2bd77ac2a306'
'dda9f49790bbda04ff8af1a1b61292a5ddb7b5a9207de8195117e9863241ce84'
'53613a6eee1c215a7becd9a8b97d0ed9a034684a586b9437f35f215a5c859d1a'
'a06d62bc579405588f5730a707af602d68f17d764a061f74958135aab34e4d92'
'1371c4fa43c8c7097aad21f3ac959aaea988a447ac30f9b96979c34bb0601316'
'1fcf65188a220905acea6da9cad256ceae405e9ebf5a7d079051984a8e602ba9'
'b98043683dd90d3f5a3f501212dfc629839b661100de5ac79fd30cb7b4a06f13')
validpgpkeys=('65F7C6B4206BD057A7EB73787180713BE58D1ADC') # VideoLAN Release Signing Key