diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | src/multimedia/configure.json | 2 | ||||
-rw-r--r-- | src/multimedia/playback/qmediaplayer.cpp | 3 | ||||
-rw-r--r-- | src/plugins/directshow/camera/dscamerasession.cpp | 5 |
4 files changed, 6 insertions, 5 deletions
diff --git a/.gitignore b/.gitignore index c2aef443e..95aed651e 100644 --- a/.gitignore +++ b/.gitignore @@ -45,6 +45,7 @@ src/multimediawidgets/qtmultimediawidgetsversion.h # tst_* !tst_*.cpp +!tst_*.qml tests/auto/cmake/build # Generated static plugin import sources diff --git a/src/multimedia/configure.json b/src/multimedia/configure.json index ca6c426ba..6d56af5ed 100644 --- a/src/multimedia/configure.json +++ b/src/multimedia/configure.json @@ -231,7 +231,7 @@ }, "gpu_vivante": { "label": "Vivante GPU", - "condition": "features.opengles2 && tests.gpu_vivante", + "condition": "features.gui && features.opengles2 && tests.gpu_vivante", "output": [ "privateFeature" ] }, "resourcepolicy": { diff --git a/src/multimedia/playback/qmediaplayer.cpp b/src/multimedia/playback/qmediaplayer.cpp index 3308537a9..81d525ea8 100644 --- a/src/multimedia/playback/qmediaplayer.cpp +++ b/src/multimedia/playback/qmediaplayer.cpp @@ -648,6 +648,9 @@ QMediaPlayer::~QMediaPlayer() Q_D(QMediaPlayer); d->disconnectPlaylist(); + // Disconnect everything to prevent notifying + // when a receiver is already destroyed. + disconnect(); if (d->service) { if (d->control) diff --git a/src/plugins/directshow/camera/dscamerasession.cpp b/src/plugins/directshow/camera/dscamerasession.cpp index d23b7f1e2..5ab9f67d8 100644 --- a/src/plugins/directshow/camera/dscamerasession.cpp +++ b/src/plugins/directshow/camera/dscamerasession.cpp @@ -439,9 +439,6 @@ bool DSCameraSession::unload() setStatus(QCamera::UnloadingStatus); - m_previewSampleGrabber->deleteLater(); - m_previewSampleGrabber = nullptr; - m_needsHorizontalMirroring = false; m_supportedViewfinderSettings.clear(); m_supportedFormats.clear(); @@ -808,7 +805,7 @@ bool DSCameraSession::createFilterGraph() // Sample grabber filter if (!m_previewSampleGrabber) { - m_previewSampleGrabber = new DirectShowSampleGrabber; + m_previewSampleGrabber = new DirectShowSampleGrabber(this); connect(m_previewSampleGrabber, &DirectShowSampleGrabber::bufferAvailable, this, &DSCameraSession::onFrameAvailable, Qt::DirectConnection); } |