Fails to play media files contained in Qt resource packs

Bug #1424109 reported by Michael Sheldon
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Canonical System Image
Confirmed
Undecided
Unassigned
qtubuntu-media (Ubuntu)
Confirmed
Wishlist
Unassigned
qtubuntu-media (Ubuntu RTM)
Confirmed
Wishlist
Unassigned

Bug Description

Attempting to play any media files contained within Qt resource packs through a QML Audio element fails silently without producing any error. This can be worked around if using wave files by using SoundEffect element (which presumably doesn't try to use media-hub), but this isn't appropriate for anything other than very small sound clips.

Here's the output from the AAL plugin:

virtual void AalMediaPlayerControl::stop()

PlaybackStatusChanged signal arrived via the bus.
virtual void AalMediaPlayerControl::setMedia(const QMediaContent&, QIODevice*)

virtual QMediaPlayer::MediaStatus AalMediaPlayerControl::mediaStatus() const

virtual QMediaPlayer::MediaStatus AalMediaPlayerControl::mediaStatus() const

virtual QMediaPlayer::MediaStatus AalMediaPlayerControl::mediaStatus() const

Remote stream URI: QUrl( "qrc:/gcompris/src/activities/canal_lock/resource/water_fill.wav" )
Setting media to: QUrl( "qrc:/gcompris/src/activities/canal_lock/resource/water_fill.wav" )
void AalVideoRendererControl::setupSurface()
m_surface is NULL, can't update video texture

virtual void AalMediaPlayerControl::play()

virtual QMediaPlayer::MediaStatus AalMediaPlayerControl::mediaStatus() const

virtual QMediaPlayer::MediaStatus AalMediaPlayerControl::mediaStatus() const

Revision history for this message
Jim Hodapp (jhodapp) wrote :

Are all Qt components/apps supposed to be able to handle qrc: URIs (if you can even call it that, it seems to be missing a '/')? I've never seen this before. What's the prefix supposed to be since that path doesn't start at root '/'?

Changed in qtubuntu-media (Ubuntu):
status: New → Opinion
Revision history for this message
Michael Sheldon (michael-sheldon) wrote :

Both qrc:/ and qrc:/// work under desktop linux (i.e. with the standard Qt pulseaudio backend), the problem seems to be that media-hub doesn't have any ability to handle data within a qrc package at all.

However it looks like this may be fixed upstream in Qt 5.5: https://codereview.qt-project.org/#/c/106659/ Which will start sending either a datastream or a temporary file to backends instead of the qrc URL to avoid just this sort of issue.

Revision history for this message
Jim Hodapp (jhodapp) wrote :

We should give this a test with Qt 5.5. If it still doesn't work, then the bug is definitely with qtubuntu-media. media-hub should not be the layer to interpret this very Qt-specific URI prefix.

Changed in qtubuntu-media (Ubuntu):
status: Opinion → Confirmed
Changed in canonical-devices-system-image:
status: New → Confirmed
Jim Hodapp (jhodapp)
Changed in qtubuntu-media (Ubuntu RTM):
status: New → Confirmed
Changed in qtubuntu-media (Ubuntu):
importance: Undecided → Wishlist
Changed in qtubuntu-media (Ubuntu RTM):
importance: Undecided → Wishlist
Revision history for this message
Timo Jyrinki (timo-jyrinki) wrote :

Please retest this to get it forward as GCompris (Qt rewrite of it) developers would seem to need it.

For testing on xenial + Qt 5.6 base you can flash your device with: ubuntu-device-flash touch --channel=ubuntu-touch/staging/ubuntu

Changed in canonical-devices-system-image:
milestone: none → backlog
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.