Merge remote-tracking branch 'origin/5.3' into 5.4
Change-Id: I716fd3acb69e424047691069cd4a781f656d0487
This commit is contained in:
@@ -70,7 +70,7 @@ void MmRendererPlayerVideoRendererControl::setSurface(QAbstractVideoSurface *sur
|
|||||||
m_surface = QPointer<QAbstractVideoSurface>(surface);
|
m_surface = QPointer<QAbstractVideoSurface>(surface);
|
||||||
if (QOpenGLContext::currentContext())
|
if (QOpenGLContext::currentContext())
|
||||||
m_windowGrabber->checkForEglImageExtension();
|
m_windowGrabber->checkForEglImageExtension();
|
||||||
else
|
else if (m_surface)
|
||||||
m_surface->setProperty("_q_GLThreadCallback", QVariant::fromValue<QObject*>(this));
|
m_surface->setProperty("_q_GLThreadCallback", QVariant::fromValue<QObject*>(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -242,14 +242,19 @@ void MFPlayerSession::handleSourceError(long hr)
|
|||||||
|
|
||||||
void MFPlayerSession::handleMediaSourceReady()
|
void MFPlayerSession::handleMediaSourceReady()
|
||||||
{
|
{
|
||||||
if (QMediaPlayer::LoadingMedia != m_status || !m_sourceResolver)
|
if (QMediaPlayer::LoadingMedia != m_status || !m_sourceResolver || m_sourceResolver != sender())
|
||||||
return;
|
return;
|
||||||
#ifdef DEBUG_MEDIAFOUNDATION
|
#ifdef DEBUG_MEDIAFOUNDATION
|
||||||
qDebug() << "handleMediaSourceReady";
|
qDebug() << "handleMediaSourceReady";
|
||||||
#endif
|
#endif
|
||||||
HRESULT hr = S_OK;
|
HRESULT hr = S_OK;
|
||||||
IMFPresentationDescriptor* sourcePD;
|
|
||||||
IMFMediaSource* mediaSource = m_sourceResolver->mediaSource();
|
IMFMediaSource* mediaSource = m_sourceResolver->mediaSource();
|
||||||
|
|
||||||
|
DWORD dwCharacteristics = 0;
|
||||||
|
mediaSource->GetCharacteristics(&dwCharacteristics);
|
||||||
|
emit seekableUpdate(MFMEDIASOURCE_CAN_SEEK & dwCharacteristics);
|
||||||
|
|
||||||
|
IMFPresentationDescriptor* sourcePD;
|
||||||
hr = mediaSource->CreatePresentationDescriptor(&sourcePD);
|
hr = mediaSource->CreatePresentationDescriptor(&sourcePD);
|
||||||
if (SUCCEEDED(hr)) {
|
if (SUCCEEDED(hr)) {
|
||||||
m_duration = 0;
|
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.
|
// Topology is resolved and successfuly set, this happens only after loading a new media.
|
||||||
// Make sure we always start the media from the beginning
|
// Make sure we always start the media from the beginning
|
||||||
m_varStart.vt = VT_I8;
|
m_varStart.vt = VT_I8;
|
||||||
|
|||||||
Reference in New Issue
Block a user