diff options
author | Michael Goddard <michael.goddard@nokia.com> | 2012-02-26 14:47:05 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-27 05:26:47 +0100 |
commit | 5ed255ead63c0cef1e2881c886da9dfa9c0b1e42 (patch) | |
tree | 15506ca47cc8c24f1cb78659994a24eaf8de399f /src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp | |
parent | b37ea41ce146ccea28086120c7a0f22855b78b8a (diff) |
Don't reset saved playback position if playback resource is denied.
Resource denied and resource lost should be handled differently,
on resource lost the current playback position should be preserved,
while on resource denied player state should be changed to paused
with pending position unchanged.
(from qtmobility, SHA1 4e457432ef0f50cb91a1043f0390427cafcaef0d)
Change-Id: I5ce755409c430598d68ee6a6a90f9d0858ea9da9
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
Diffstat (limited to 'src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp')
-rw-r--r-- | src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp index ec3e5dd92..3d1b7c5ef 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp +++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp @@ -110,7 +110,7 @@ QGstreamerPlayerControl::QGstreamerPlayerControl(QGstreamerPlayerSession *sessio this, SLOT(applyPendingSeek(bool))); connect(m_resources, SIGNAL(resourcesGranted()), SLOT(handleResourcesGranted())); - connect(m_resources, SIGNAL(resourcesDenied()), SLOT(handleResourcesLost())); + connect(m_resources, SIGNAL(resourcesDenied()), SLOT(handleResourcesDenied())); connect(m_resources, SIGNAL(resourcesLost()), SLOT(handleResourcesLost())); } @@ -722,6 +722,19 @@ void QGstreamerPlayerControl::handleResourcesLost() popAndNotifyState(); } +void QGstreamerPlayerControl::handleResourcesDenied() +{ + //on resource lost the pipeline should stay stopped + //player status is changed to paused with + //pending seek position preserved. + pushState(); + + if (m_state != QMediaPlayer::StoppedState ) + m_state = QMediaPlayer::PausedState; + + popAndNotifyState(); +} + bool QGstreamerPlayerControl::isMediaDownloadEnabled() const { return m_session->property("mediaDownloadEnabled").toBool(); |