summaryrefslogtreecommitdiffstats
path: root/src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp
diff options
context:
space:
mode:
authorMichael Goddard <michael.goddard@nokia.com>2012-02-26 14:47:05 +1000
committerQt by Nokia <qt-info@nokia.com>2012-02-27 05:26:47 +0100
commit5ed255ead63c0cef1e2881c886da9dfa9c0b1e42 (patch)
tree15506ca47cc8c24f1cb78659994a24eaf8de399f /src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp
parentb37ea41ce146ccea28086120c7a0f22855b78b8a (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.cpp15
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();