EndOfStream event not received when QML Video component is destroyed

Bug #1378311 reported by Ugo Riboni
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Media Hub
Fix Released
High
Alberto Aguirre
dbus-cpp
Invalid
Undecided
Unassigned
qtubuntu-media
Fix Released
Critical
Thomas Voß

Bug Description

When using a Video component in QML, and this component is destroyed and recreated, it will fail to receive signals informing of the end of playback (and possibly others).

I traced this problem down to the media hub level. It appears that the hub server still sends out the EndOfStream signal on DBUS, but it is never received from the client instance created by the qtubuntu-media backend behind the Video element.

I attach some code that can help quickly test this behavior. What it does is simply load a Video in a Loader, play a video and when it's finished unload the Loader, wait 300ms, reload it and play again.
If the problem didn't exist, the video would keep looping forever. Instead it only plays twice, since it never receives the end of playback signal after being reloaded.

Tags: rtm14

Related branches

Revision history for this message
Ugo Riboni (uriboni) wrote :
Jim Hodapp (jhodapp)
Changed in media-hub:
assignee: nobody → Thomas Voß (thomas-voss)
importance: Undecided → High
Revision history for this message
Alberto Aguirre (albaguirre) wrote :

Ugo is right. The media-hub-server is emitting the EndOfStream Signal.

The player stub seems to be configuring the EndOfStream signal correctly (AddMatch filters are added as seen in dbus-monitor), but the signal slot is not being called by dbus-cpp. Need to dig deeper into dbus-cpp to understand why that's happening.

Revision history for this message
Thomas Voß (thomas-voss) wrote :

I only see the playback complete being installed once in http://bazaar.launchpad.net/~phablet-team/qtubuntu-media/trunk/view/head:/src/aal/aalmediaplayerservice.cpp#L77.

The respective is never setup again in the case of calls to request/releaseControl.

Revision history for this message
Thomas Voß (thomas-voss) wrote :

+handler, obviously :)

Changed in qtubuntu-media:
importance: Undecided → Critical
assignee: nobody → Thomas Voß (thomas-voss)
Changed in media-hub:
status: New → Invalid
Changed in media-hub:
status: Invalid → Confirmed
assignee: Thomas Voß (thomas-voss) → Alberto Aguirre (albaguirre)
Changed in dbus-cpp:
status: New → Invalid
Jim Hodapp (jhodapp)
Changed in media-hub:
status: Confirmed → Fix Committed
tags: added: rtm14
Jim Hodapp (jhodapp)
Changed in media-hub:
status: Fix Committed → Fix Released
Revision history for this message
Selene ToyKeeper (toykeeper) wrote :

Could someone add an autopilot test for this?
(or, at least add a manual test case to media-hub's test plan, which will then need to be automated later)

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

@Selene: would you mind filing a separate bug to add an autopilot test for this? I agree, I'd like to see an automated test for this.

Revision history for this message
Alberto Aguirre (albaguirre) wrote :

@Selene,

Test case 17 has been added to media-hub test plan.

Revision history for this message
Selene ToyKeeper (toykeeper) wrote :

The manual test plan basically is a todo list for autopilot tests; pretty much everything manual will need to be automated in order to scale testing up for multiple supported devices.

In any case, the silo for this appears to fix the issue.

Changed in qtubuntu-media:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

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