Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-47390

Qt5.5.0 regression in macdeployqt for multimedia app

    Details

    • Commits:
      6a86f7026816fa657f070d10f9164d7b7099a71c

      Description

      I have a couple of QQuickView applications with QML and QtMultimedia's MediaPlayer & VideoOutput. On the Mac, it's built with qmake and macdeployqt. With Qt 5.4.1, it works just fine. With Qt5.5.0, the app bundle appears to be missing some multimedia files (some more details in thread at https://forum.qt.io/topic/56529/qt5-5-macdeployqt-trouble-with-multimedia ) resulting in qml components failing to create.

      The issue can be reproduced with the code at https://bitbucket.org/timday/qmltoy (has been tagged qtbug-47390 immediately after creating this); README.md contains build and run instructions (MAKE-mac scripts may need paths to Qt updating).

      Built & deployed with 5.4.1 ( ./MAKE-mac.5.4.1), the app can open the video.qml page just fine (and video plays).

      Built and deployed with 5.5.0 ( ./MAKE-mac.5.5.0), the app works ok up to the point video.qml is opened, at which point it fails with some plugin loading issue (see below); note that it's not actually necessary to use index.qml's file browser to navigate to video.qml per the README.md instructions, simply providing video.qml on the commandline gets you straight to the problem.

      $ ./build/qmltoy.app/Contents/MacOS/qmltoy video.qml
      file:///Users/timday/project/qmltoy/video.qml:24:3: Type MyVideo unavailable 
             MyVideo { 
             ^
      file:///Users/timday/project/qmltoy/MyVideo.qml:2:1: plugin cannot be loaded for module "QtMultimedia": Cannot load library /Users/timday/project/qmltoy/build/qmltoy.app/Contents/PlugIns/quick/libdeclarative_multimedia.dylib: (dlopen(/Users/timday/project/qmltoy/build/qmltoy.app/Contents/PlugIns/quick/libdeclarative_multimedia.dylib, 5): Library not loaded: @rpath/QtMultimediaQuick_p.framework/Versions/5/QtMultimediaQuick_p
        Referenced from: /Users/timday/project/qmltoy/build/qmltoy.app/Contents/PlugIns/quick/libdeclarative_multimedia.dylib
        Reason: image not found) 
           import QtMultimedia 5.0 
           ^
      

      As with the linked forum post, an obvious difference between these qmltoy builds is that the 5.4.1 built version has extra

      build/qmltoy.app//Contents/Frameworks/QtMultimediaQuick_p.framework
      build/qmltoy.app//Contents/Frameworks/QtMultimediaQuick_p.framework/QtMultimediaQuick_p
      build/qmltoy.app//Contents/Frameworks/QtMultimediaQuick_p.framework/Versions/5/QtMultimediaQuick_p
      

      directory and files (which the 5.5.0 appears to be complaining about the absence of).

      I've no idea if/how closely this is associated with macdeployqt's QTBUG-46404 (another significant Qt5.5 regression in macdeployqt); certainly the workround proposed in that issue (and hence the differences between my MAKE-mac.5.4.1 and MAKE-mac.5.5.0) does seem to be necessary to and get other aspects of the application working correctly.

      It maybe worth mentioning that

      $ ~/Qt5.5.0/5.5/clang_64/bin/qmlscene video.qml
      

      works fine (plays video), but not being a .app bundle it presumably isn't built with macdeployqt.

        Attachments

        For Gerrit Dashboard: QTBUG-47390
        # Subject Branch Project Status CR V

          Activity

            People

            • Assignee:
              sorvig Morten Sørvig
              Reporter:
              timday Tim Day
            • Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Gerrit Reviews

                There are no open Gerrit changes