summaryrefslogtreecommitdiffstats
path: root/src/plugins/directshow/camera/dscamerasession.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/directshow/camera/dscamerasession.cpp')
-rw-r--r--src/plugins/directshow/camera/dscamerasession.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/plugins/directshow/camera/dscamerasession.cpp b/src/plugins/directshow/camera/dscamerasession.cpp
index 73c97c824..d23b7f1e2 100644
--- a/src/plugins/directshow/camera/dscamerasession.cpp
+++ b/src/plugins/directshow/camera/dscamerasession.cpp
@@ -611,10 +611,6 @@ void DSCameraSession::onFrameAvailable(double time, const QByteArray &data)
m_presentMutex.lock();
- // If no frames provided from ISampleGrabber for some time
- // the device might be potentially unplugged.
- m_deviceLostEventTimer.start(100);
-
// In case the source produces frames faster than we can display them,
// only keep the most recent one
m_currentFrame = QVideoFrame(new QMemoryVideoBuffer(data, m_stride),
@@ -641,6 +637,10 @@ void DSCameraSession::onFrameAvailable(double time, const QByteArray &data)
void DSCameraSession::presentFrame()
{
+ // If no frames provided from ISampleGrabber for some time
+ // the device might be potentially unplugged.
+ m_deviceLostEventTimer.start(100);
+
m_presentMutex.lock();
if (m_currentFrame.isValid() && m_surface) {
@@ -810,7 +810,7 @@ bool DSCameraSession::createFilterGraph()
if (!m_previewSampleGrabber) {
m_previewSampleGrabber = new DirectShowSampleGrabber;
connect(m_previewSampleGrabber, &DirectShowSampleGrabber::bufferAvailable,
- this, &DSCameraSession::onFrameAvailable);
+ this, &DSCameraSession::onFrameAvailable, Qt::DirectConnection);
}