Felix Paul Kühne pushed to branch master at VideoLAN / VLC
Commits:
67deae26 by Pierre Lamot at 2025-11-19T19:14:17+01:00
qt: set in DComp compositor in failed state after unloadGUI has been called
we expect the compositor to not use mainCtx after unloadGUI has been called
https://code.videolan.org/videolan/vlc/-/tree/2101c1258b171a75178e19a3f8bc1c6bab4000cf/modules/gui/qt/qt.cpp#L1191
But the setup phase is triggered asynchronously once the first frame
renders. So we can skip the setup phase once in unloadGUI as we know we won't
show the UI
- - - - -
1 changed file:
- modules/gui/qt/maininterface/compositor_dcomp.cpp
Changes:
=====================================
modules/gui/qt/maininterface/compositor_dcomp.cpp
=====================================
@@ -164,6 +164,8 @@ bool CompositorDirectComposition::init()
void CompositorDirectComposition::setup()
{
+ //Setup shouldn't be called once we are shutting down
+ assert(m_mainCtx);
assert(m_quickView);
const auto rhi = m_quickView->rhi();
assert(rhi);
@@ -352,6 +354,16 @@ void CompositorDirectComposition::unloadGUI()
m_acrylicSurface.reset();
m_interfaceWindowHandler.reset();
+ {
+ QMutexLocker lock(&m_setupStateLock);
+ if (m_quickView) {
+ disconnect(m_quickView.get(), &QQuickWindow::frameSwapped,
+ this, &CompositorDirectComposition::setup);
+ }
+ m_setupState = SetupState::Fail;
+ m_setupStateCond.notify_all();
+ }
+
//at this point we need to unload the QML content but the window still
need to
//be valid as it may still be used by the vout window.
//we cant' just delete the qmlEngine as the QmlView as the root item is
parented to the QmlView
View it on GitLab:
https://code.videolan.org/videolan/vlc/-/commit/67deae26cf882567629385d8b4f57b6076ad4ed8
--
View it on GitLab:
https://code.videolan.org/videolan/vlc/-/commit/67deae26cf882567629385d8b4f57b6076ad4ed8
You're receiving this email because of your account on code.videolan.org.
VideoLAN code repository instance_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits