summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2014-10-14 14:05:02 +0200
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2014-10-14 14:05:02 +0200
commite128207f753da7f98cb4906775ad517cbbb0c4fb (patch)
tree1b2bfdc45cdbdcb7164529a8ae7d3fee6e46bb57
parentca94dc79b6f0e57ba7446a87c70398a178fbcac8 (diff)
parent2d911d4e0926969528be8e170a02f74f4761ee25 (diff)
downloadqtmultimedia-e128207f753da7f98cb4906775ad517cbbb0c4fb.tar.gz
Merge remote-tracking branch 'origin/5.3' into 5.4
Change-Id: I716fd3acb69e424047691069cd4a781f656d0487
-rw-r--r--src/plugins/qnx/mediaplayer/mmrendererplayervideorenderercontrol.cpp2
-rw-r--r--src/plugins/wmf/player/mfplayersession.cpp13
2 files changed, 8 insertions, 7 deletions
diff --git a/src/plugins/qnx/mediaplayer/mmrendererplayervideorenderercontrol.cpp b/src/plugins/qnx/mediaplayer/mmrendererplayervideorenderercontrol.cpp
index e48cba794..f95cd8a99 100644
--- a/src/plugins/qnx/mediaplayer/mmrendererplayervideorenderercontrol.cpp
+++ b/src/plugins/qnx/mediaplayer/mmrendererplayervideorenderercontrol.cpp
@@ -70,7 +70,7 @@ void MmRendererPlayerVideoRendererControl::setSurface(QAbstractVideoSurface *sur
m_surface = QPointer<QAbstractVideoSurface>(surface);
if (QOpenGLContext::currentContext())
m_windowGrabber->checkForEglImageExtension();
- else
+ else if (m_surface)
m_surface->setProperty("_q_GLThreadCallback", QVariant::fromValue<QObject*>(this));
}
diff --git a/src/plugins/wmf/player/mfplayersession.cpp b/src/plugins/wmf/player/mfplayersession.cpp
index 08baa779a..a01c0b92c 100644
--- a/src/plugins/wmf/player/mfplayersession.cpp
+++ b/src/plugins/wmf/player/mfplayersession.cpp
@@ -242,14 +242,19 @@ void MFPlayerSession::handleSourceError(long hr)
void MFPlayerSession::handleMediaSourceReady()
{
- if (QMediaPlayer::LoadingMedia != m_status || !m_sourceResolver)
+ if (QMediaPlayer::LoadingMedia != m_status || !m_sourceResolver || m_sourceResolver != sender())
return;
#ifdef DEBUG_MEDIAFOUNDATION
qDebug() << "handleMediaSourceReady";
#endif
HRESULT hr = S_OK;
- IMFPresentationDescriptor* sourcePD;
IMFMediaSource* mediaSource = m_sourceResolver->mediaSource();
+
+ DWORD dwCharacteristics = 0;
+ mediaSource->GetCharacteristics(&dwCharacteristics);
+ emit seekableUpdate(MFMEDIASOURCE_CAN_SEEK & dwCharacteristics);
+
+ IMFPresentationDescriptor* sourcePD;
hr = mediaSource->CreatePresentationDescriptor(&sourcePD);
if (SUCCEEDED(hr)) {
m_duration = 0;
@@ -1630,10 +1635,6 @@ void MFPlayerSession::handleSessionEvent(IMFMediaEvent *sessionEvent)
}
}
- DWORD dwCharacteristics = 0;
- m_sourceResolver->mediaSource()->GetCharacteristics(&dwCharacteristics);
- emit seekableUpdate(MFMEDIASOURCE_CAN_SEEK & dwCharacteristics);
-
// Topology is resolved and successfuly set, this happens only after loading a new media.
// Make sure we always start the media from the beginning
m_varStart.vt = VT_I8;