diff options
Diffstat (limited to 'src/plugins/directshow/camera/dscamerasession.cpp')
-rw-r--r-- | src/plugins/directshow/camera/dscamerasession.cpp | 10 |
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); } |