Browse Source

partial fix for #426

pull/452/head
krepa098 11 years ago
parent
commit
122e13ff98
  1. 13
      src/cameraworker.cpp

13
src/cameraworker.cpp

@ -124,6 +124,7 @@ void CameraWorker::subscribe() @@ -124,6 +124,7 @@ void CameraWorker::subscribe()
{
if (!cam.isOpened())
{
queue.clear();
cam.open(camIndex);
applyProps(); // restore props
}
@ -148,15 +149,16 @@ void CameraWorker::doWork() @@ -148,15 +149,16 @@ void CameraWorker::doWork()
return;
if (queue.size() > 3)
return;
if (!cam.read(frame))
{
queue.dequeue();
cam.release();
qDebug() << "CameraWorker: received empty frame -> closing";
return;
}
cam >> frame;
//qDebug() << "Decoding frame";
mutex.lock();
queue.enqueue(frame);
mutex.unlock();
@ -174,6 +176,9 @@ bool CameraWorker::hasFrame() @@ -174,6 +176,9 @@ bool CameraWorker::hasFrame()
cv::Mat3b CameraWorker::dequeueFrame()
{
if (queue.isEmpty())
return cv::Mat3b();
mutex.lock();
cv::Mat3b f = queue.dequeue();
mutex.unlock();

Loading…
Cancel
Save