summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@qt.io>2017-01-26 15:40:30 +0100
committerYoann Lopes <yoann.lopes@qt.io>2017-01-26 15:53:44 +0100
commitc5ff5b853b9bca231c54ee07e5238714c0407595 (patch)
tree0a4d842e7fcb6079d7c7b4935843eb1ba46a4422 /src/plugins
parent7e48870c182e66a8408bbcb4c9469d751a777daa (diff)
parentc1164f874a21959d03893f62db8f8e2def44122d (diff)
Merge remote-tracking branch 'origin/5.8' into dev
Conflicts: .qmake.conf examples/multimediawidgets/videographicsitem/videoplayer.h src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp Change-Id: Id5ce05ffe2cd25657232157b162680b2e24a35ba
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/common/evr/evrd3dpresentengine.cpp2
-rw-r--r--src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp3
-rw-r--r--src/plugins/winrt/qwinrtabstractvideorenderercontrol.cpp10
-rw-r--r--src/plugins/winrt/qwinrtmediaplayercontrol.cpp3
4 files changed, 14 insertions, 4 deletions
diff --git a/src/plugins/common/evr/evrd3dpresentengine.cpp b/src/plugins/common/evr/evrd3dpresentengine.cpp
index 9718c78b5..ae3d69fc2 100644
--- a/src/plugins/common/evr/evrd3dpresentengine.cpp
+++ b/src/plugins/common/evr/evrd3dpresentengine.cpp
@@ -255,7 +255,7 @@ QVariant IMFSampleVideoBuffer::handle() const
if (handleType() != GLTextureHandle)
return handle;
- if (m_textureUpdated || m_engine->updateTexture(m_surface)) {
+ if (m_engine->m_glResources && (m_textureUpdated || m_engine->updateTexture(m_surface))) {
m_textureUpdated = true;
handle = QVariant::fromValue<unsigned int>(m_engine->m_glResources->glTexture);
}
diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp
index 01103d659..b9e29245f 100644
--- a/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp
+++ b/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp
@@ -93,7 +93,8 @@ static const QGstreamerMetaDataKeyLookup *qt_gstreamerMetaDataKeys()
//metadataKeys->insert(0, QMediaMetaData::CoverArtUrlSmall);
//metadataKeys->insert(0, QMediaMetaData::CoverArtUrlLarge);
- metadataKeys->insert(GST_TAG_PREVIEW_IMAGE, QMediaMetaData::CoverArtImage);
+ metadataKeys->insert(GST_TAG_PREVIEW_IMAGE, QMediaMetaData::ThumbnailImage);
+ metadataKeys->insert(GST_TAG_IMAGE, QMediaMetaData::CoverArtImage);
// Image/Video
metadataKeys->insert("resolution", QMediaMetaData::Resolution);
diff --git a/src/plugins/winrt/qwinrtabstractvideorenderercontrol.cpp b/src/plugins/winrt/qwinrtabstractvideorenderercontrol.cpp
index 561d9e03c..b3fd11111 100644
--- a/src/plugins/winrt/qwinrtabstractvideorenderercontrol.cpp
+++ b/src/plugins/winrt/qwinrtabstractvideorenderercontrol.cpp
@@ -356,6 +356,13 @@ void QWinRTAbstractVideoRendererControl::setActive(bool active)
if (!d->surface)
return;
+ // This only happens for quick restart scenarios, for instance
+ // when switching cameras.
+ if (d->renderThread.isRunning() && d->renderThread.isInterruptionRequested()) {
+ CriticalSectionLocker lock(&d->mutex);
+ d->renderThread.wait();
+ }
+
if (!d->surface->isActive())
d->surface->start(d->format);
@@ -363,7 +370,8 @@ void QWinRTAbstractVideoRendererControl::setActive(bool active)
return;
}
- shutdown();
+ d->renderThread.requestInterruption();
+
if (d->surface && d->surface->isActive())
d->surface->stop();
}
diff --git a/src/plugins/winrt/qwinrtmediaplayercontrol.cpp b/src/plugins/winrt/qwinrtmediaplayercontrol.cpp
index 5720488f2..a4df6306f 100644
--- a/src/plugins/winrt/qwinrtmediaplayercontrol.cpp
+++ b/src/plugins/winrt/qwinrtmediaplayercontrol.cpp
@@ -267,7 +267,8 @@ public:
}
if (d->videoRenderer)
- d->videoRenderer->setActive(d->state == QMediaPlayer::PlayingState);
+ d->videoRenderer->setActive(d->state == QMediaPlayer::PlayingState &&
+ d->videoRenderer->size().isValid());
const QMediaPlayer::MediaStatus oldMediaStatus = d->mediaStatus;
const QMediaPlayer::State oldState = d->state;