[Development] The dark side of QtMultimedia

Nichols Andy Andy.Nichols at theqtcompany.com
Sun Nov 9 04:30:38 CET 2014


Hi Massimo et alia,

I am well aware you guys do your best to provide a quality cross-platform framework and so far you did an excellent job !
Unfortunately I cannot say such thing for the Qt Multimedia module. If you stick to the provided examples (properly tailored to hide all the bugs) they all almost work. If you try to use the multimedia functionalities in a serious project and try to deploy it, then the pain comes around.
I found Qt Multimedia buggy, unsupported and moreover not cross-platform.

I am the maintainer of an open source project and so far I provided multimedia audio input/output on Qt4 using ALSA on Linux, WAVEIN/WAVEOUT on Windows and PortAudio on OSX.
In the last 9 months I tried to switch to Qt5 Multimedia and opened a number of issues on JIRA and none of them has been resolved or taken into account.

It seems the priority goes to things like Camera input, instead of fixing and consolidating the current functionalities.
As of today, on Gerrit there are only 12 open commits. 5 of them related to Camera input. 9 of them are 4 or more months old.
https://codereview.qt-project.org/#/q/status:open+project:qt/qtmultimedia,n,z
On JIRA there 178 open tickets. More than 100 are P1 or P2 but it seems nobody is actively taking care of them:
https://bugreports.qt-project.org/browse/QTBUG/component/19173#selectedTab=com.atlassian.jira.plugin.system.project%3Acomponent-issues-panel<https://bugreports.qt-project.org/browse/QTBUG/component/19173#selectedTab=com.atlassian.jira.plugin.system.project:component-issues-panel>

So the question is, are you guys actually interested in improving Qt Multimedia ?
Is there any internal problem in maintaining this module that we should be aware of ?

Please let us know something about the future of this module, cause right now it is quite difficult to rely on it and include it on a project.
I would offer my contribution to fix some of the issues I found, but unfortunately my time is very limited and I'd risk to not being able to follow the activities.

My personal suggestion: to take this seriously you need 2-3 developers working 8 hours a day on this module. At least until it reaches the quality of the other Qt modules.

The problem you are describing here is true and is something that needs to be addressed.  I held a discussion at the 2014 Qt contributors summit and said basically the same thing.  QtMultimedia contains a rather large set of APIs but for most platforms there are huge gaps in the features available.  The problem as you stated has to do with resources and prioritisation.  The number of “active” QtMultimedia contributors can be counted on 1 hand, and almost all of the work requires detailed knowledge of the native multimedia APIs for each platform.  This leads to a situation where only the most important bugs on the most used platforms get fixed, and the other serious bugs will stay in the queue.  Qt has a huge scope yet a finite amount of development resources. QtMultimedia is a victim of the prioritisation of developer resources.

With the current state of QtMultimedia, it is not uncommon for users who have a heavy dependance of multimedia functionality to use the native API’s directly rather than using QtMultimedia.

A bit of history for those of you who don’t know.  QtMultimedia was developed and maintained in Brisbane, Australia by the Qt team in Nokia.  When Nokia divested in Qt, they closed the Brisbane office and suddenly the QtMultimedia team ceased to exist.  At this point Qt 5.0.0 had not yet been released, and many other modules that had been the responsible of the Brisbane team were dropped due to being unfinished, but still “add-ons”.  QtMultimedia being considered an “essential” module was not dropped, but was still unfinished.  3 developers then with Digia (myself included) volunteered to contribute part-time to QtMultimedia to try and get it up to a “usable” state for release, but there was a considerable amount of work left come release time.  The decision was made to keep the module in the release despite the many gaps in functional of the various backends because of it’s essential nature.  Since the release we have added at least 3 additional platform backends (iOS, Android, WinRT) each of which usually have both a high-level multimedia backend as well as a low level audio API.  This succeeded in spreading us even more thin regarding developer resources.

It is worth mentioning that while I am no longer working with QtMultimedia, Yoann who is the current maintainer of QtMultimedia module is working full-time on it.  There have also been contributions towards GStreamer 1.x support recently that has been greatly appreciated.

Now is a great time to become a contributor to QtMultimedia as it definitely needs some love.  If anyone is interested in becoming a contributor to QtMultimedia I would be happy to answer questions to help get you up to speed.

Regards,
Andy Nichols
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20141109/a5fdb73c/attachment.html>


More information about the Development mailing list