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>
This commit is contained in:
Michael Goddard
2012-02-26 14:47:05 +10:00
committed by Qt by Nokia
parent b37ea41ce1
commit 5ed255ead6
2 changed files with 15 additions and 1 deletions

View File

@@ -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();

View File

@@ -122,6 +122,7 @@ private Q_SLOTS:
void handleResourcesGranted();
void handleResourcesLost();
void handleResourcesDenied();
private:
bool openFifo();