diff options
author | Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> | 2014-10-14 14:05:02 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> | 2014-10-14 14:05:02 +0200 |
commit | e128207f753da7f98cb4906775ad517cbbb0c4fb (patch) | |
tree | 1b2bfdc45cdbdcb7164529a8ae7d3fee6e46bb57 | |
parent | ca94dc79b6f0e57ba7446a87c70398a178fbcac8 (diff) | |
parent | 2d911d4e0926969528be8e170a02f74f4761ee25 (diff) | |
download | qtmultimedia-e128207f753da7f98cb4906775ad517cbbb0c4fb.tar.gz |
Merge remote-tracking branch 'origin/5.3' into 5.4
Change-Id: I716fd3acb69e424047691069cd4a781f656d0487
-rw-r--r-- | src/plugins/qnx/mediaplayer/mmrendererplayervideorenderercontrol.cpp | 2 | ||||
-rw-r--r-- | src/plugins/wmf/player/mfplayersession.cpp | 13 |
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; |