Qt 6.4.1 macdeployqt multimedia issue
-
MacOS 12.5.1, Qt 6.4.1, arm64
Running Macdeployqt results in the app crashing on the first invocation of QMediaPlayer. This is my first deployment attempt after adding multimedia to my project, so I do not know if this would have worked on earlier Qt versions.
MacOS crash log:
Crashed Thread: 0 Dispatch queue: com.apple.main-thread Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY Application Specific Information: abort() called Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 libsystem_kernel.dylib 0x195f52d98 __pthread_kill + 8 1 libsystem_pthread.dylib 0x195f87ee0 pthread_kill + 288 2 libsystem_c.dylib 0x195ec2340 abort + 168 3 QtCore 0x10292417c qAbort() + 12 (qglobal.cpp:3369) 4 QtCore 0x102927de0 qt_message_fatal(QtMsgType, QMessageLogContext const&, QString const&) + 12 (qlogging.cpp:1916) 5 QtCore 0x102bf800c QMessageLogger::fatal(char const*, ...) const + 120 (qlogging.cpp:850) 6 QtMultimedia 0x100cd9500 QDummyIntegration::QDummyIntegration() + 36 (qplatformmediaintegration.cpp:22) [inlined] 7 QtMultimedia 0x100cd9500 QDummyIntegration::QDummyIntegration() + 36 (qplatformmediaintegration.cpp:22) [inlined] 8 QtMultimedia 0x100cd9500 QPlatformMediaIntegration::instance() + 1672 (qplatformmediaintegration.cpp:84) 9 QtMultimedia 0x100cdaf1c QMediaPlayer::QMediaPlayer(QObject*) + 164 (qmediaplayer.cpp:236) 10 Winnow 0x1002c0e88 FrameDecoder::FrameDecoder(QObject*) + 124 11 Winnow 0x10052d644 MW::createFrameDecoder() + 232 12 Winnow 0x1004dcb88 MW::MW(QString, QWidget*) + 3444 13 Winnow 0x1004d95a0 main + 524 14 dyld 0x100bf908c start + 520
I can include the entire macdeployqt log if that would help.
I can reproduce this behavior with the Qt Media Player example (player.app).
I did find this report for Qt 5 of what appears to be a related issue.
-
Hi,
There's not enough information in the part you have posted.
Did you check your application bundle with otool to see if you have a library issue ?
-
Hi,
There's not enough information in the part you have posted.
Did you check your application bundle with otool to see if you have a library issue ?
@SGaist Thanks for your reply. I did look at the libraries in the executable, and the dependent libraries in the Multimedia frameworks. MacdeployQt appears to be adding all the necessary frameworks to the app bundle. Maybe I'm missing something obvious. One thing I did note is QtMultimediaQuick is being added even though my application is not using QtQuick.
Frameworks added to app bundle by macdeployqt:
QtConcurrent QtCore QtDBus QtGui QtMultimedia QtMultimediaQuick QtMultimediaWidgets QtNetwork QtSvg QtSvgWidgets QtUiTools QtWidgets QtXml
In my executable (Winnow):
otool -L Winnow @rpath/QtWidgets.framework/Versions/A/QtWidgets (compatibility version 6.0.0, current version 6.4.1) @rpath/QtMultimediaWidgets.framework/Versions/A/QtMultimediaWidgets (compatibility version 6.0.0, current version 6.4.1) @rpath/QtMultimedia.framework/Versions/A/QtMultimedia (compatibility version 6.0.0, current version 6.4.1) @rpath/QtGui.framework/Versions/A/QtGui (compatibility version 6.0.0, current version 6.4.1) @rpath/QtNetwork.framework/Versions/A/QtNetwork (compatibility version 6.0.0, current version 6.4.1) @rpath/QtConcurrent.framework/Versions/A/QtConcurrent (compatibility version 6.0.0, current version 6.4.1) @rpath/QtCore.framework/Versions/A/QtCore (compatibility version 6.0.0, current version 6.4.1) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 61.0.0) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1953.1.0) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2297.0.0) /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/Metal.framework/Versions/A/Metal (compatibility version 1.0.0, current version 306.2.4) /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0) /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/ColorSync.framework/Versions/A/ColorSync (compatibility version 1.0.0, current version 4.13.0) /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 1690.0.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1300.32.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1319.0.0) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
In QtMultimedia:
otool -L QtMultimedia.framework/QtMultimedia QtMultimedia.framework/QtMultimedia (architecture x86_64): @rpath/QtMultimedia.framework/Versions/A/QtMultimedia (compatibility version 6.0.0, current version 6.4.1) /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 1000.0.0) /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1856.105.0) @rpath/QtNetwork.framework/Versions/A/QtNetwork (compatibility version 6.0.0, current version 6.4.1) @rpath/QtGui.framework/Versions/A/QtGui (compatibility version 6.0.0, current version 6.4.1) /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2113.20.111) /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/Metal.framework/Versions/A/Metal (compatibility version 1.0.0, current version 258.17.0) @rpath/QtCore.framework/Versions/A/QtCore (compatibility version 6.0.0, current version 6.4.1) /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0) /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1200.3.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1311.0.0) QtMultimedia.framework/QtMultimedia (architecture arm64): @rpath/QtMultimedia.framework/Versions/A/QtMultimedia (compatibility version 6.0.0, current version 6.4.1) /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox (compatibility version 1.0.0, current version 1000.0.0) /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/CoreMedia.framework/Versions/A/CoreMedia (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1856.105.0) @rpath/QtNetwork.framework/Versions/A/QtNetwork (compatibility version 6.0.0, current version 6.4.1) @rpath/QtGui.framework/Versions/A/QtGui (compatibility version 6.0.0, current version 6.4.1) /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2113.20.111) /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/Metal.framework/Versions/A/Metal (compatibility version 1.0.0, current version 258.17.0) @rpath/QtCore.framework/Versions/A/QtCore (compatibility version 6.0.0, current version 6.4.1) /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0) /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1200.3.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1311.0.0)
In QtMultimediaWidgets:
otool -L QtMultimediaWidgets.framework/QtMultimediaWidgets QtMultimediaWidgets.framework/QtMultimediaWidgets (architecture x86_64): @rpath/QtMultimediaWidgets.framework/Versions/A/QtMultimediaWidgets (compatibility version 6.0.0, current version 6.4.1) @rpath/QtMultimedia.framework/Versions/A/QtMultimedia (compatibility version 6.0.0, current version 6.4.1) @rpath/QtNetwork.framework/Versions/A/QtNetwork (compatibility version 6.0.0, current version 6.4.1) @rpath/QtWidgets.framework/Versions/A/QtWidgets (compatibility version 6.0.0, current version 6.4.1) @rpath/QtGui.framework/Versions/A/QtGui (compatibility version 6.0.0, current version 6.4.1) /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2113.20.111) /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/Metal.framework/Versions/A/Metal (compatibility version 1.0.0, current version 258.17.0) @rpath/QtCore.framework/Versions/A/QtCore (compatibility version 6.0.0, current version 6.4.1) /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0) /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1200.3.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1311.0.0) QtMultimediaWidgets.framework/QtMultimediaWidgets (architecture arm64): @rpath/QtMultimediaWidgets.framework/Versions/A/QtMultimediaWidgets (compatibility version 6.0.0, current version 6.4.1) @rpath/QtMultimedia.framework/Versions/A/QtMultimedia (compatibility version 6.0.0, current version 6.4.1) @rpath/QtNetwork.framework/Versions/A/QtNetwork (compatibility version 6.0.0, current version 6.4.1) @rpath/QtWidgets.framework/Versions/A/QtWidgets (compatibility version 6.0.0, current version 6.4.1) @rpath/QtGui.framework/Versions/A/QtGui (compatibility version 6.0.0, current version 6.4.1) /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2113.20.111) /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO (compatibility version 1.0.0, current version 1.0.0) /System/Library/Frameworks/Metal.framework/Versions/A/Metal (compatibility version 1.0.0, current version 258.17.0) @rpath/QtCore.framework/Versions/A/QtCore (compatibility version 6.0.0, current version 6.4.1) /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0) /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 1200.3.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1311.0.0)
-
Could someone try to build and deploy the Media Player Example on an M1 or M2 Mac (arm64) to determine if macdeployqt is working for applications using the QtMultimedia frameworks. I can get the example to run within Qt Creator, but not after applying macdeployqt.
I can build and deploy (Qt 6.4.1) any example not using the QtMultimedia frameworks.
Thanks in advance!
-
-
Glad you found out and thanks for sharing !
Yes, please.