avmedia/source/qt6/QtFrameGrabber.cxx |    3 +++
 1 file changed, 3 insertions(+)

New commits:
commit 3a02dd3d1cee8abed7fa1de9c1e6c2368dab5fcc
Author:     Michael Weghorn <[email protected]>
AuthorDate: Thu Aug 7 09:17:24 2025 +0200
Commit:     Michael Weghorn <[email protected]>
CommitDate: Thu Aug 7 12:50:40 2025 +0200

    qt avmedia: Hold SolarMutex when converting QImage to XGraphic
    
    Otherwise, this triggers the following assertion:
    
        soffice.bin: .../vcl/source/app/dbggui.cxx:36: void 
ImplDbgTestSolarMutex(bool): Assertion 
`ImplGetSVData()->mpDefInst->GetYieldMutex()->IsCurrentThread() && "SolarMutex 
not owned!"' failed.
    
    when opening an Impress presenation with a slide containing
    a video with SAL_VCL_QT_USE_QT_FRAME_GRABBER=1, potentially
    since
    
        commit 88e9af00f2b5e7ae01f3c061485ffb9e99598fd3
        Date:   Wed Aug 6 09:49:42 2025 +0200
    
            BitmapEx->Bitmap in PngImageReader
    
    and follow-up commit
    
        commit 32627a5807b8b9ea0dff6339ee6b98867746dd07
        Date:   Wed Aug 6 15:48:28 2025 +0200
    
            blind fix for qt6 build
    
    Backtrace:
    
        Thread 1 received signal SIGABRT, Aborted.
        __pthread_kill_implementation (threadid=<optimized out>, 
signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
        warning: 44     ./nptl/pthread_kill.c: No such file or directory
        (rr) bt
        #0  __pthread_kill_implementation (threadid=<optimized out>, 
signo=signo@entry=6, no_tid=no_tid@entry=0) at ./nptl/pthread_kill.c:44
        #1  0x00007fbf6409e9ff in __pthread_kill_internal (threadid=<optimized 
out>, signo=6) at ./nptl/pthread_kill.c:89
        #2  0x00007fbf64049cc2 in __GI_raise (sig=sig@entry=6) at 
../sysdeps/posix/raise.c:26
        #3  0x00007fbf640324ac in __GI_abort () at ./stdlib/abort.c:73
        #4  0x00007fbf64032420 in __assert_fail_base (fmt=<optimized out>, 
assertion=<optimized out>, file=<optimized out>, line=36, function=<optimized 
out>) at ./assert/assert.c:118
        #5  0x00007fbf5b3889ec in ImplDbgTestSolarMutex (owned=true) at 
/home/michi/development/git/libreoffice/vcl/source/app/dbggui.cxx:36
        #6  0x00007fbf6352b124 in DbgTestSolarMutex (owned=true) at 
/home/michi/development/git/libreoffice/tools/source/debug/debug.cxx:54
        #7  0x00007fbf5b24fafb in VirtualDevice::AcquireGraphics 
(this=0x557da1d5e290) at 
/home/michi/development/git/libreoffice/vcl/source/gdi/virdev.cxx:49
        #8  0x00007fbf5aecf733 in OutputDevice::DrawRect (this=0x557da1d5e290, 
rRect=...) at 
/home/michi/development/git/libreoffice/vcl/source/outdev/rect.cxx:67
        #9  0x00007fbf5aee0999 in OutputDevice::DrawColorWallpaper 
(this=0x557da1d5e290, nX=0, nY=0, nWidth=721, nHeight=401, rWallpaper=...) at 
/home/michi/development/git/libreoffice/vcl/source/outdev/wallpaper.cxx:90
        #10 0x00007fbf5aedefcf in OutputDevice::DrawWallpaper 
(this=0x557da1d5e290, nX=0, nY=0, nWidth=721, nHeight=401, rWallpaper=...) at 
/home/michi/development/git/libreoffice/vcl/source/outdev/wallpaper.cxx:70
        #11 0x00007fbf5aedeeab in OutputDevice::DrawWallpaper 
(this=0x557da1d5e290, rRect=..., rWallpaper=...) at 
/home/michi/development/git/libreoffice/vcl/source/outdev/wallpaper.cxx:53
        #12 0x00007fbf5b2523b0 in VirtualDevice::InnerImplSetOutputSizePixel 
(this=0x557da1d5e290, rNewSize=Size = {...}, bErase=true, 
bAlphaMaskTransparent=true) at 
/home/michi/development/git/libreoffice/vcl/source/gdi/virdev.cxx:295
        #13 0x00007fbf5b2527dd in VirtualDevice::SetOutputSizePixel 
(this=0x557da1d5e290, rNewSize=Size = {...}, bErase=true, 
bAlphaMaskTransparent=true) at 
/home/michi/development/git/libreoffice/vcl/source/gdi/virdev.cxx:350
        #14 0x00007fbf5b2ac951 in Bitmap::Bitmap (this=0x7fffdcfcae00, 
rBitmapEx=...) at 
/home/michi/development/git/libreoffice/vcl/source/bitmap/bitmap.cxx:146
        #15 0x00007fbf5b5e8e6f in vcl::PngImageReader::read 
(this=0x7fffdcfcb128, rBitmap=...) at 
/home/michi/development/git/libreoffice/vcl/source/filter/png/PngImageReader.cxx:820
        #16 0x00007fbf2c1be088 in (anonymous namespace)::toXGraphic 
(rImage=...) at 
/home/michi/development/git/libreoffice/avmedia/source/qt6/QtFrameGrabber.cxx:36
        #17 0x00007fbf2c1bda8e in 
avmedia::qt::QtFrameGrabber::onVideoFrameChanged (this=0x7fbf24003b00, 
rFrame=...) at 
/home/michi/development/git/libreoffice/avmedia/source/qt6/QtFrameGrabber.cxx:73
        #18 0x00007fbf2c1c33d4 in 
QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, 
QtPrivate::List<QVideoFrame const&>, void, void 
(avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&)>::call(void 
(avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&), 
avmedia::qt::QtFrameGrabber*, void**)::{lambda()#1}::operator()() const 
(this=0x7fffdcfcb300) at 
/home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:127
        #19 0x00007fbf2c1c3359 in 
QtPrivate::FunctorCallBase::call_internal<void, 
QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, 
QtPrivate::List<QVideoFrame const&>, void, void 
(avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&)>::call(void 
(avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&), 
avmedia::qt::QtFrameGrabber*, void**)::{lambda()#1}>(void**, 
QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, 
QtPrivate::List<QVideoFrame const&>, void, void 
(avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&)>::call(void 
(avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&), 
avmedia::qt::QtFrameGrabber*, void**)::{lambda()#1}&&) (args=0x7fbf24003bd8, 
fn=...)
            at 
/home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:65
        #20 0x00007fbf2c1c3323 in 
QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, 
QtPrivate::List<QVideoFrame const&>, void, void 
(avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&)>::call
            (f=(void (avmedia::qt::QtFrameGrabber::*)(class 
avmedia::qt::QtFrameGrabber * const, const class QVideoFrame &)) 0x7fbf2c1bda40 
<avmedia::qt::QtFrameGrabber::onVideoFrameChanged(QVideoFrame const&)>, 
o=0x7fbf24003b00, arg=0x7fbf24003bd8) at 
/home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:126
        #21 0x00007fbf2c1c329d in QtPrivate::FunctionPointer<void 
(avmedia::qt::QtFrameGrabber::*)(QVideoFrame 
const&)>::call<QtPrivate::List<QVideoFrame const&>, void>
            (f=(void (avmedia::qt::QtFrameGrabber::*)(class 
avmedia::qt::QtFrameGrabber * const, const class QVideoFrame &)) 0x7fbf2c1bda40 
<avmedia::qt::QtFrameGrabber::onVideoFrameChanged(QVideoFrame const&)>, 
o=0x7fbf24003b00, arg=0x7fbf24003bd8) at 
/home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:174
        #22 0x00007fbf2c1c31c6 in QtPrivate::QCallableObject<void 
(avmedia::qt::QtFrameGrabber::*)(QVideoFrame const&), 
QtPrivate::List<QVideoFrame const&>, void>::impl
            (which=1, this_=0x557d9d23f1c0, r=0x7fbf24003b00, a=0x7fbf24003bd8, 
ret=0x0) at 
/home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:545
        #23 0x00007fbf51907b62 in QtPrivate::QSlotObjectBase::call 
(this=0x557d9d23f1c0, r=0x7fbf24003b00, a=0x7fbf24003bd8) at 
qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
        #24 0x00007fbf51b1a02c in QMetaCallEvent::placeMetaCall 
(this=0x7fbf24003b90, object=0x7fbf24003b00) at 
/home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:544
        #25 0x00007fbf51b1c1c1 in QObject::event (this=0x7fbf24003b00, 
e=0x7fbf24003b90) at 
/home/michi/development/git/qt5/qtbase/src/corelib/kernel/qobject.cpp:1465
        #26 0x00007fbf4f9e6130 in QApplicationPrivate::notify_helper 
(this=0x557d975ccb40, receiver=0x7fbf24003b00, e=0x7fbf24003b90) at 
/home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3307
        #27 0x00007fbf4f9ea038 in QApplication::notify (this=0x557d975bdec0, 
receiver=0x7fbf24003b00, e=0x7fbf24003b90) at 
/home/michi/development/git/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3257
        #28 0x00007fbf51a52ac9 in QCoreApplication::notifyInternal2 
(receiver=0x7fbf24003b00, event=0x7fbf24003b90) at 
/home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1109
        #29 0x00007fbf51a53739 in QCoreApplication::sendEvent 
(receiver=0x7fbf24003b00, event=0x7fbf24003b90) at 
/home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1549
        #30 0x00007fbf51a5466a in QCoreApplicationPrivate::sendPostedEvents 
(receiver=0x0, event_type=0, data=0x557d975f3770) at 
/home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1904
        #31 0x00007fbf51a5357c in QCoreApplication::sendPostedEvents 
(receiver=0x0, event_type=0) at 
/home/michi/development/git/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1757
        #32 0x00007fbf5205bba1 in postEventSourceDispatch (s=0x557d9761ac80) at 
/home/michi/development/git/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:246
        #33 0x00007fbf561043c5 in ??? () at 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
        #34 0x00007fbf561065f7 in ??? () at 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
        #35 0x00007fbf56106d60 in g_main_context_iteration () at 
/lib/x86_64-linux-gnu/libglib-2.0.so.0
        #36 0x00007fbf5205addb in QEventDispatcherGlib::processEvents 
(this=0x557d975bf280, flags=...) at 
/home/michi/development/git/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
        #37 0x00007fbf5119f838 in QPAEventDispatcherGlib::processEvents 
(this=0x557d975bf280, flags=...) at 
/home/michi/development/git/qt5/qtbase/src/gui/platform/unix/qeventdispatcher_glib.cpp:89
        #38 0x00007fbf52a19b84 in QtInstance::ImplYield (this=0x557d976494e0, 
bWait=false, bHandleAllCurrentEvents=true) at vcl/qt6/../qt5/QtInstance.cxx:503
        #39 0x00007fbf52a1ce71 in QtInstance::DoYield (this=0x557d976494e0, 
bWait=false, bHandleAllCurrentEvents=true) at vcl/qt6/../qt5/QtInstance.cxx:512
        #40 0x00007fbf5b45f3a6 in ImplYield (i_bWait=false, i_bAllEvents=true) 
at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:385
        #41 0x00007fbf5b45f667 in Scheduler::ProcessEventsToIdle () at 
/home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:435
        #42 0x00007fbf2c1be3cd in avmedia::qt::QtFrameGrabber::grabFrame 
(this=0x7fbf24003b00, fMediaTime=0) at 
/home/michi/development/git/libreoffice/avmedia/source/qt6/QtFrameGrabber.cxx:100
        #43 0x00007fbf2c1be4ce in non-virtual thunk to 
avmedia::qt::QtFrameGrabber::grabFrame(double) () at 
/home/michi/development/git/libreoffice/instdir/program/../program/libavmediaqt6.so
        #44 0x00007fbf5d3e5b13 in avmedia::MediaWindow::grabFrame 
(xPlayer=uno::Reference to (avmedia::qt::QtPlayer *) 0x557d9c991168, 
rGraphic=empty uno::Reference)
            at 
/home/michi/development/git/libreoffice/avmedia/source/viewer/mediawindow.cxx:384
        #45 0x00007fbf5e430b5f in SdrMediaObj::getSnapshot() 
const::$_0::operator()(com::sun::star::uno::Reference<com::sun::star::media::XPlayer>
 const&) const
            (this=0x557d9c98fea0, rPlayer=uno::Reference to 
(avmedia::qt::QtPlayer *) 0x557d9c991168) at 
/home/michi/development/git/libreoffice/svx/source/svdraw/svdomedia.cxx:195
        #46 0x00007fbf5e430add in std::__invoke_impl<void, 
SdrMediaObj::getSnapshot() const::$_0&, 
com::sun::star::uno::Reference<com::sun::star::media::XPlayer> 
const&>(std::__invoke_other, SdrMediaObj::getSnapshot() const::$_0&, 
com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&) 
(__f=..., __args=uno::Reference to (avmedia::qt::QtPlayer *) 0x557d9c991168) at 
/usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:61
        #47 0x00007fbf5e430a8d in std::__invoke_r<void, 
SdrMediaObj::getSnapshot() const::$_0&, 
com::sun::star::uno::Reference<com::sun::star::media::XPlayer> 
const&>(SdrMediaObj::getSnapshot() const::$_0&, 
com::sun::star::uno::Reference<com::sun::star::media::XPlayer> const&) 
(__fn=..., __args=uno::Reference to (avmedia::qt::QtPlayer *) 0x557d9c991168) 
at /usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:111
        #48 0x00007fbf5e430905 in 
std::_Function_handler<void(com::sun::star::uno::Reference<com::sun::star::media::XPlayer>
 const&), SdrMediaObj::getSnapshot() const::$_0>::_M_invoke
            (__functor=..., __args=uno::Reference to (avmedia::qt::QtPlayer *) 
0x557d9c991168) at 
/usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_function.h:290
        #49 0x00007fbf5d3ec066 in 
std::function<void(com::sun::star::uno::Reference<com::sun::star::media::XPlayer>
 const&)>::operator() (this=0x557d9c975aa8, __args=uno::Reference to 
(avmedia::qt::QtPlayer *) 0x557d9c991168)
            at 
/usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_function.h:591
        #50 0x00007fbf5d3e8261 in 
avmedia::PlayerListener::callPlayerWindowSizeAvailable (this=0x557d9c975a60, 
rPlayer=uno::Reference to (avmedia::qt::QtPlayer *) 0x557d9c991168) at 
include/avmedia/mediawindow.hxx:74
        #51 0x00007fbf5d3e5eab in avmedia::MediaWindow::grabFrame 
(rURL="file:///tmp/7qg9UE.ogg", rReferer="", sMimeType="audio/ogg", 
xPreferredPixelSizeListener=rtl::Reference to 0x557d9c975a60)
            at 
/home/michi/development/git/libreoffice/avmedia/source/viewer/mediawindow.cxx:434
        #52 0x00007fbf5e42e93c in SdrMediaObj::getSnapshot 
(this=0x557d9921fd10) at 
/home/michi/development/git/libreoffice/svx/source/svdraw/svdomedia.cxx:199
        #53 0x00007fbf5e17a1a9 in 
sdr::contact::ViewContactOfSdrMediaObj::createViewIndependentPrimitive2DSequence
 (this=0x557d997790d0, rVisitor=...)
            at 
/home/michi/development/git/libreoffice/svx/source/sdr/contact/viewcontactofsdrmediaobj.cxx:122
        #54 0x00007fbf5e19363b in 
sdr::contact::ViewContact::getViewIndependentPrimitive2DContainer 
(this=0x557d997790d0, rVisitor=...) at 
/home/michi/development/git/libreoffice/svx/source/sdr/contact/viewcontact.cxx:261
        #55 0x00007fbf5e3c8a34 in SdrObject::RecalcBoundRect 
(this=0x557d9921fd10) at 
/home/michi/development/git/libreoffice/svx/source/svdraw/svdobj.cxx:988
        #56 0x00007fbf5e3c8959 in SdrObject::GetCurrentBoundRect 
(this=0x557d9921fd10) at 
/home/michi/development/git/libreoffice/svx/source/svdraw/svdobj.cxx:958
        #57 0x00007fbf5e4b91d0 in SdrObjList::RecalcRects (this=0x557d9925ec30) 
at /home/michi/development/git/libreoffice/svx/source/svdraw/svdpage.cxx:242
        #58 0x00007fbf5e4bcf99 in SdrObjList::GetAllObjBoundRect 
(this=0x557d9925ec30) at 
/home/michi/development/git/libreoffice/svx/source/svdraw/svdpage.cxx:740
        #59 0x00007fbf5e4e1142 in SdrPageView::InvalidateAllWin 
(this=0x557d9c973a00) at 
/home/michi/development/git/libreoffice/svx/source/svdraw/svdpagv.cxx:202
        #60 0x00007fbf5e4e3301 in SdrPageView::SetHelpLines 
(this=0x557d9c973a00, rHLL=...) at 
/home/michi/development/git/libreoffice/svx/source/svdraw/svdpagv.cxx:687
        #61 0x00007fbf2fe0a543 in sd::DrawViewShell::SwitchPage 
(this=0x557d990dc4b0, nSelectedPage=0, bAllowChangeFocus=true, 
bUpdateScrollbars=true) at 
/home/michi/development/git/libreoffice/sd/source/ui/view/drviews1.cxx:1050
        #62 0x00007fbf2fe0869d in sd::DrawViewShell::ChangeEditMode 
(this=0x557d990dc4b0, eEMode=EditMode::Page, bIsLayerModeActive=false) at 
/home/michi/development/git/libreoffice/sd/source/ui/view/drviews1.cxx:409
        #63 0x00007fbf2fe566cc in sd::DrawViewShell::ReadFrameViewData 
(this=0x557d990dc4b0, pView=0x557d9c970370) at 
/home/michi/development/git/libreoffice/sd/source/ui/view/drviews5.cxx:291
        #64 0x00007fbf2fe6f3e1 in sd::DrawViewShell::Construct 
(this=0x557d990dc4b0, pDocSh=0x557d98f74bd0, 
eInitialPageKind=PageKind::Standard) at 
/home/michi/development/git/libreoffice/sd/source/ui/view/drviewsa.cxx:304
        #65 0x00007fbf2fe6ea0d in sd::DrawViewShell::DrawViewShell 
(this=0x557d990dc4b0, rViewShellBase=..., pParentWindow=0x557d99842f80, 
ePageKind=PageKind::Standard, pFrameViewArgument=0x0)
            at 
/home/michi/development/git/libreoffice/sd/source/ui/view/drviewsa.cxx:126
        #66 0x00007fbf2f9caedd in std::_Construct<sd::DrawViewShell, 
sd::ViewShellBase&, vcl::Window*, PageKind, sd::FrameView*&>
            (__p=0x557d990dc4b0, __args=..., __args=@0x7fffdcfcfcd0: 
0x557d99842f80, __args=@0x7fffdcfcfccc: PageKind::Standard, 
__args=@0x7fffdcfcfcf0: 0x0)
            at 
/usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/stl_construct.h:119
        #67 0x00007fbf2f9caafe in std::allocator_traits<std::allocator<void> 
>::construct<sd::DrawViewShell, sd::ViewShellBase&, vcl::Window*, PageKind, 
sd::FrameView*&>
            (__p=0x557d990dc4b0, __args=..., __args=@0x7fffdcfcfcd0: 
0x557d99842f80, __args=@0x7fffdcfcfccc: PageKind::Standard, 
__args=@0x7fffdcfcfcf0: 0x0)
            at 
/usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/alloc_traits.h:706
        #68 std::_Sp_counted_ptr_inplace<sd::DrawViewShell, 
std::allocator<void>, 
(__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<sd::ViewShellBase&, 
vcl::Window*, PageKind, sd::FrameView*&>
            (this=0x557d990dc4a0, __a=..., __args=..., __args=@0x7fffdcfcfcd0: 
0x557d99842f80, __args=@0x7fffdcfcfccc: PageKind::Standard, 
__args=@0x7fffdcfcfcf0: 0x0)
            at 
/usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr_base.h:607
        #69 0x00007fbf2f9ca8f7 in 
std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<sd::DrawViewShell,
 std::allocator<void>, sd::ViewShellBase&, vcl::Window*, PageKind, 
sd::FrameView*&>
            (this=0x7fffdcfcfce0, __p=@0x7fffdcfcfcd8: 0x0, __a=..., 
__args=..., __args=@0x7fffdcfcfcd0: 0x557d99842f80, __args=@0x7fffdcfcfccc: 
PageKind::Standard, __args=@0x7fffdcfcfcf0: 0x0)
            at 
/usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr_base.h:970
        #70 0x00007fbf2f9ca81a in std::__shared_ptr<sd::DrawViewShell, 
(__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, 
sd::ViewShellBase&, vcl::Window*, PageKind, sd::FrameView*&>
            (this=0x7fffdcfcfcd8, __tag=..., __args=..., 
__args=@0x7fffdcfcfcd0: 0x557d99842f80, __args=@0x7fffdcfcfccc: 
PageKind::Standard, __args=@0x7fffdcfcfcf0: 0x0)
            at 
/usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr_base.h:1713
        #71 0x00007fbf2f9ca792 in 
std::shared_ptr<sd::DrawViewShell>::shared_ptr<std::allocator<void>, 
sd::ViewShellBase&, vcl::Window*, PageKind, sd::FrameView*&>
            (this=0x7fffdcfcfcd8, __tag=..., __args=..., 
__args=@0x7fffdcfcfcd0: 0x557d99842f80, __args=@0x7fffdcfcfccc: 
PageKind::Standard, __args=@0x7fffdcfcfcf0: 0x0)
            at 
/usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr.h:463
        #72 0x00007fbf2f9c4911 in std::make_shared<sd::DrawViewShell, 
sd::ViewShellBase&, vcl::Window*, PageKind, sd::FrameView*&>
            (__args=..., __args=@0x7fffdcfcfcd0: 0x557d99842f80, 
__args=@0x7fffdcfcfccc: PageKind::Standard, __args=@0x7fffdcfcfcf0: 0x0) at 
/usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/shared_ptr.h:1007
        #73 0x00007fbf2f9c11f3 in 
sd::framework::BasicViewFactory::CreateViewShell (this=0x557d9963e1a0, 
rxViewId=rtl::Reference to 0x557d998d8910, rWindow=..., pFrameView=0x0)
            at 
/home/michi/development/git/libreoffice/sd/source/ui/framework/factories/BasicViewFactory.cxx:284
        #74 0x00007fbf2f9c0553 in sd::framework::BasicViewFactory::CreateView 
(this=0x557d9963e1a0, rxViewId=rtl::Reference to 0x557d998d8910, rWindow=..., 
rxPane=rtl::Reference to 0x557d9c953020, pFrameView=0x0, bIsCenterPane=true)
            at 
/home/michi/development/git/libreoffice/sd/source/ui/framework/factories/BasicViewFactory.cxx:241
        #75 0x00007fbf2f9bffcb in 
sd::framework::BasicViewFactory::createResource (this=0x557d9963e1a0, 
rxViewId=rtl::Reference to 0x557d998d8910)
            at 
/home/michi/development/git/libreoffice/sd/source/ui/framework/factories/BasicViewFactory.cxx:167
        #76 0x00007fbf2f994c48 in 
sd::framework::ConfigurationControllerResourceManager::ActivateResource 
(this=0x557d9963f120, rxResourceId=rtl::Reference to 0x557d998d8910, 
rxConfiguration=rtl::Reference to 0x557d999b0dc0)
            at 
/home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx:130
        #77 0x00007fbf2f9945f8 in 
sd::framework::ConfigurationControllerResourceManager::ActivateResources 
(this=0x557d9963f120, rResources=std::__debug::vector of length 5, capacity 5 = 
{...}, rxConfiguration=rtl::Reference to 0x557d999b0dc0)
            at 
/home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationControllerResourceManager.cxx:75
        #78 0x00007fbf2f99d07a in 
sd::framework::ConfigurationUpdater::UpdateCore (this=0x557d999afee0, 
rClassifier=...) at 
/home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:251
        #79 0x00007fbf2f99c61c in 
sd::framework::ConfigurationUpdater::UpdateConfiguration (this=0x557d999afee0) 
at 
/home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:161
        #80 0x00007fbf2f99c09b in 
sd::framework::ConfigurationUpdater::RequestUpdate (this=0x557d999afee0, 
rxRequestedConfiguration=rtl::Reference to 0x557d998c8ed0)
            at 
/home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationUpdater.cxx:108
        #81 0x00007fbf2f96fe69 in 
sd::framework::ChangeRequestQueueProcessor::ProcessOneEvent 
(this=0x557d999b0e60) at 
/home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ChangeRequestQueueProcessor.cxx:158
        #82 0x00007fbf2f982909 in 
sd::framework::ConfigurationController::ProcessEvent (this=0x557d999b0bf0) at 
/home/michi/development/git/libreoffice/sd/source/ui/framework/configuration/ConfigurationController.cxx:157
        #83 0x00007fbf2fdbc797 in sd::ViewShellBase::LateInit 
(this=0x557d99242e30, rsDefaultView="") at 
/home/michi/development/git/libreoffice/sd/source/ui/view/ViewShellBase.cxx:345
        #84 0x00007fbf2fd78a33 in sd::ImpressViewShellBase::CreateInstance 
(rFrame=..., pOldView=0x0) at 
/home/michi/development/git/libreoffice/sd/source/ui/view/ImpressViewShellBase.cxx:45
        #85 0x00007fbf60a31855 in SfxViewFactory::CreateInstance 
(this=0x557d991cd6a0, rFrame=..., pOldSh=0x0) at 
/home/michi/development/git/libreoffice/sfx2/source/view/viewfac.cxx:26
        #86 0x00007fbf60840fbf in SfxBaseModel::createViewController 
(this=0x557d9913bc50, i_rViewName="Default", i_rArguments=empty uno::Sequence, 
i_rFrame=uno::Reference to ((anonymous namespace)::XFrameImpl *) 0x557d98f32e40)
            at 
/home/michi/development/git/libreoffice/sfx2/source/doc/sfxbasemodel.cxx:4355
        #87 0x00007fbf60841a9f in non-virtual thunk to 
SfxBaseModel::createViewController(rtl::OUString const&, 
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&, 
com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&) () at 
/home/michi/development/git/libreoffice/instdir/program/libsfxlo.so
        #88 0x00007fbf609dc0f4 in (anonymous 
namespace)::SfxFrameLoader_Impl::impl_createDocumentView
            (i_rModel=uno::Reference to (SdXImpressDocument *) 0x557d9913bce0, 
i_rFrame=uno::Reference to ((anonymous namespace)::XFrameImpl *) 
0x557d98f32e40, i_rViewFactoryArgs=..., i_rViewName="Default")
            at 
/home/michi/development/git/libreoffice/sfx2/source/view/frmload.cxx:586
        #89 0x00007fbf609d96ac in (anonymous 
namespace)::SfxFrameLoader_Impl::load (this=0x557d99388d30, rArgs=uno::Sequence 
of length 12 = {...}, _rTargetFrame=uno::Reference to ((anonymous 
namespace)::XFrameImpl *) 0x557d98f32e40)
            at 
/home/michi/development/git/libreoffice/sfx2/source/view/frmload.cxx:813
        #90 0x00007fbf615c72c4 in framework::LoadEnv::impl_loadContent 
(this=0x557d98866fa8) at 
/home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:1180
        #91 0x00007fbf615c4425 in framework::LoadEnv::start 
(this=0x557d98866fa8) at 
/home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:415
        #92 0x00007fbf615c20d2 in framework::LoadEnv::startLoading
            (this=0x557d98866fa8, 
sURL="file:///home/michi/git/computer-doc/misc/impress_presentations_with_audio_and_video/slide_with_video.odp",
 lMediaDescriptor=uno::Sequence of length 4 = {...}, xBaseFrame=uno::Reference 
to (framework::Desktop *) 0x557d978a34b8, sTarget="_default", nSearchFlags=0, 
eFeature=(LoadEnvFeatures::WorkWithUI | LoadEnvFeatures::AllowContentHandler)) 
at 
/home/michi/development/git/libreoffice/framework/source/loadenv/loadenv.cxx:311
        #93 0x00007fbf6145aaa1 in framework::LoadDispatcher::impl_dispatch 
(this=0x557d98866f50, rURL=..., lArguments=uno::Sequence of length 4 = {...}, 
xListener=empty uno::Reference)
            at 
/home/michi/development/git/libreoffice/framework/source/dispatch/loaddispatcher.cxx:107
        #94 0x00007fbf6145b801 in 
framework::LoadDispatcher::dispatchWithReturnValue (this=0x557d98866f50, 
rURL=..., lArguments=uno::Sequence of length 4 = {...})
            at 
/home/michi/development/git/libreoffice/framework/source/dispatch/loaddispatcher.cxx:60
        #95 0x00007fbf6145b8a4 in non-virtual thunk to 
framework::LoadDispatcher::dispatchWithReturnValue(com::sun::star::util::URL 
const&, com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> 
const&) ()
            at 
/home/michi/development/git/libreoffice/framework/source/dispatch/loaddispatcher.cxx:60
        #96 0x00007fbf629f10c0 in comphelper::SynchronousDispatch::dispatch
            (xStartPoint=uno::Reference to (framework::Desktop *) 
0x557d978a34a8, 
sURL="file:///home/michi/git/computer-doc/misc/impress_presentations_with_audio_and_video/slide_with_video.odp",
 sTarget="_default", lArguments=uno::Sequence of length 4 = {...}) at 
/home/michi/development/git/libreoffice/comphelper/source/misc/synchronousdispatch.cxx:62
        #97 0x00007fbf64377054 in 
desktop::DispatchWatcher::executeDispatchRequests (this=0x557d99219bb0, 
aDispatchRequestsList=std::__debug::vector of length 1, capacity 1 = {...}, 
bNoTerminate=false, pFlags=0x7fffdcfd6994)
            at 
/home/michi/development/git/libreoffice/desktop/source/app/dispatchwatcher.cxx:531
        #98 0x00007fbf64395488 in 
desktop::RequestHandler::ExecuteCmdLineRequests (aRequest=..., 
noTerminate=false) at 
/home/michi/development/git/libreoffice/desktop/source/app/officeipcthread.cxx:1317
        #99 0x00007fbf6432ee7f in desktop::Desktop::OpenClients () at 
/home/michi/development/git/libreoffice/desktop/source/app/app.cxx:2218
        #100 0x00007fbf6432cdf3 in desktop::Desktop::OpenClients_Impl 
(this=0x7fffdcfda450) at 
/home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1978
        #101 0x00007fbf6432b45d in desktop::Desktop::LinkStubOpenClients_Impl 
(instance=0x7fffdcfda450, data=0x0) at 
/home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1962
        #102 0x00007fbf5ac98231 in Link<void*, void>::Call 
(this=0x557d98fba098, data=0x0) at include/tools/link.hxx:105
        #103 0x00007fbf5ac93af1 in ImplHandleUserEvent 
(pSVEvent=0x557d98fba090) at 
/home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2312
        #104 0x00007fbf5ac90a1f in ImplWindowFrameProc 
(_pWindow=0x557d988b22c0, nEvent=SalEvent::UserEvent, pEvent=0x557d98fba090) at 
/home/michi/development/git/libreoffice/vcl/source/window/winproc.cxx:2876
        #105 0x00007fbf529fb3ec in SalFrame::CallCallback (this=0x557d988b3f20, 
nEvent=SalEvent::UserEvent, pEvent=0x557d98fba090) at vcl/inc/salframe.hxx:310
        #106 0x00007fbf52a1d2af in QtInstance::ProcessEvent 
(this=0x557d976494e0, aEvent=...) at vcl/qt6/../qt5/QtInstance.cxx:594
        #107 0x00007fbf5b393fbd in 
SalUserEventList::DispatchUserEvents(bool)::$_0::operator()() const 
(this=0x7fffdcfd88a0) at 
/home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:119
        #108 0x00007fbf5b393e8b in SalUserEventList::DispatchUserEvents 
(this=0x557d97649518, bHandleAllCurrentEvents=false) at 
/home/michi/development/git/libreoffice/vcl/source/app/salusereventlist.cxx:120
        #109 0x00007fbf52a19a91 in QtInstance::ImplYield (this=0x557d976494e0, 
bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:490
        #110 0x00007fbf52a1ce71 in QtInstance::DoYield (this=0x557d976494e0, 
bWait=true, bHandleAllCurrentEvents=false) at vcl/qt6/../qt5/QtInstance.cxx:512
        #111 0x00007fbf5b45f3a6 in ImplYield (i_bWait=true, i_bAllEvents=false) 
at /home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:385
        #112 0x00007fbf5b45ecbf in Application::Yield () at 
/home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:488
        #113 0x00007fbf5b45eaa0 in Application::Execute () at 
/home/michi/development/git/libreoffice/vcl/source/app/svapp.cxx:360
        #114 0x00007fbf64329435 in desktop::Desktop::Main (this=0x7fffdcfda450) 
at /home/michi/development/git/libreoffice/desktop/source/app/app.cxx:1678
        #115 0x00007fbf5b48b2c6 in ImplSVMain () at 
/home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:230
        #116 0x00007fbf5b48cdb9 in SVMain () at 
/home/michi/development/git/libreoffice/vcl/source/app/svmain.cxx:248
        #117 0x00007fbf643a30ea in soffice_main () at 
/home/michi/development/git/libreoffice/desktop/source/app/sofficemain.cxx:122
        #118 0x0000557d789219fd in sal_main () at 
/home/michi/development/git/libreoffice/desktop/source/app/main.c:51
        #119 0x0000557d789219d7 in main (argc=2, argv=0x7fffdcfda658) at 
/home/michi/development/git/libreoffice/desktop/source/app/main.c:49
    
    Change-Id: I1e2265e38d7c93171146df4f58666e9cf22bdaf6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/189036
    Tested-by: Jenkins
    Reviewed-by: Michael Weghorn <[email protected]>

diff --git a/avmedia/source/qt6/QtFrameGrabber.cxx 
b/avmedia/source/qt6/QtFrameGrabber.cxx
index 5c70f5890b00..f5ca7748a19c 100644
--- a/avmedia/source/qt6/QtFrameGrabber.cxx
+++ b/avmedia/source/qt6/QtFrameGrabber.cxx
@@ -15,6 +15,7 @@
 #include <vcl/graph.hxx>
 #include <vcl/qt/QtUtils.hxx>
 #include <vcl/scheduler.hxx>
+#include <vcl/svapp.hxx>
 
 #include "QtFrameGrabber.hxx"
 #include <QtFrameGrabber.moc>
@@ -25,6 +26,8 @@ namespace
 {
 uno::Reference<css::graphic::XGraphic> toXGraphic(const QImage& rImage)
 {
+    SolarMutexGuard g;
+
     QByteArray aData;
     QBuffer aBuffer(&aData);
     rImage.save(&aBuffer, "PNG");

Reply via email to