From 1c20855f29274068d9d0570b2df776ac423445ea Mon Sep 17 00:00:00 2001 From: Kees-V Date: Wed, 22 Oct 2014 14:08:55 +0200 Subject: [PATCH 1/2] Only lock when needed. --- src/video/videobuffer.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/video/videobuffer.cpp b/src/video/videobuffer.cpp index d9daa35..5a17391 100644 --- a/src/video/videobuffer.cpp +++ b/src/video/videobuffer.cpp @@ -154,7 +154,6 @@ void getALPRImages(cv::VideoCapture cap, VideoDispatcher* dispatcher) while (dispatcher->active) { - dispatcher->mMutex.lock(); bool hasImage = false; try { @@ -162,15 +161,16 @@ void getALPRImages(cv::VideoCapture cap, VideoDispatcher* dispatcher) // Double check the image to make sure it's valid. if (!frame.data || frame.empty()) { - dispatcher->mMutex.unlock(); std::stringstream ss; ss << "Stream " << dispatcher->mjpeg_url << " received invalid frame"; dispatcher->log_error(ss.str()); return; } + dispatcher->mMutex.lock(); dispatcher->setLatestFrame(&frame); - } + dispatcher->mMutex.unlock(); + } catch (const std::runtime_error& error) { // Error occured while trying to gather image. Retry, don't exit. From eebc707f2b662698b97782024db235d4f2e2cf24 Mon Sep 17 00:00:00 2001 From: Kees-V Date: Wed, 22 Oct 2014 14:23:50 +0200 Subject: [PATCH 2/2] Status information when connecting to stream --- src/video/videobuffer.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/video/videobuffer.cpp b/src/video/videobuffer.cpp index 5a17391..cdaec56 100644 --- a/src/video/videobuffer.cpp +++ b/src/video/videobuffer.cpp @@ -105,11 +105,13 @@ void imageCollectionThread(void* arg) try { cv::VideoCapture cap=cv::VideoCapture(); - cap.open(dispatcher->mjpeg_url); + std::cout << "Connecting..." << std::endl; + cap.open(dispatcher->mjpeg_url); if (cap.isOpened()) { - getALPRImages(cap, dispatcher); + std::cout << "Connected" << std::endl; + getALPRImages(cap, dispatcher); } else {