diff --git a/doc/release_notes.md b/doc/release_notes.md index 1def04c53ae4cfb9cfe7f54c91d618dd07c73f06..a1eee70d7a451f3f0bd71d8b14d5f826fe30f5fc 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 a63bb4607f80b2ca486df573b436cfedc113ab7e..ce48ff7f78785e1200d33b713cbfd6c87fa358a4 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)