From 185ead438560192543b6a2237121d825fa57b35e Mon Sep 17 00:00:00 2001 From: gineshidalgo99 Date: Thu, 8 Jun 2017 17:17:13 -0400 Subject: [PATCH] Flag process_real_time threw error with webcam --- doc/release_notes.md | 2 ++ src/openpose/producer/producer.cpp | 14 ++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/doc/release_notes.md b/doc/release_notes.md index 1def04c5..a1eee70d 100644 --- a/doc/release_notes.md +++ b/doc/release_notes.md @@ -41,3 +41,5 @@ OpenPose Library - Release Notes 3. Main bugs fixed: 1. All visualization functions moved to same thread, so it works with most OpenCV custom compiled versions. 2. Fixed error on debug mode: `Too many resources requested for launch`. + 3. Bug in Array::getConstCvMat() if mVolume=0, now returning empty cv::Mat. + 4. Bug: `--process_real_time` threw error with webcam. diff --git a/src/openpose/producer/producer.cpp b/src/openpose/producer/producer.cpp index a63bb460..ce48ff7f 100644 --- a/src/openpose/producer/producer.cpp +++ b/src/openpose/producer/producer.cpp @@ -67,10 +67,16 @@ namespace op try { check(fpsMode == ProducerFpsMode::RetrievalFps || fpsMode == ProducerFpsMode::OriginalFps, "Unknown ProducerFpsMode.", __LINE__, __FUNCTION__, __FILE__); - check(fpsMode != ProducerFpsMode::OriginalFps || get(CV_CAP_PROP_FPS) > 0, - "Selected to keep the source fps but get(CV_CAP_PROP_FPS) <= 0, i.e. the source did not set its fps property.", __LINE__, __FUNCTION__, __FILE__); - - mProducerFpsMode = {fpsMode}; + // For webcam, ProducerFpsMode::OriginalFps == ProducerFpsMode::RetrievalFps, since the internal webcam cache will overwrite frames after it gets full + if (mType == ProducerType::Webcam) + mProducerFpsMode = {ProducerFpsMode::RetrievalFps}; + // If no webcam + else + { + check(fpsMode == ProducerFpsMode::RetrievalFps || get(CV_CAP_PROP_FPS) > 0, + "Selected to keep the source fps but get(CV_CAP_PROP_FPS) <= 0, i.e. the source did not set its fps property.", __LINE__, __FUNCTION__, __FILE__); + mProducerFpsMode = {fpsMode}; + } reset(mNumberEmptyFrames, mTrackingFps); } catch (const std::exception& e) -- GitLab