From fcc8760ef102db9d326928c492327d215947d941 Mon Sep 17 00:00:00 2001 From: Nicolas Pope <nwpope@utu.fi> Date: Fri, 9 Aug 2019 11:11:13 +0300 Subject: [PATCH] Redo auto merge mistakes --- components/rgbd-sources/src/streamer.cpp | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/components/rgbd-sources/src/streamer.cpp b/components/rgbd-sources/src/streamer.cpp index ab03f2a65..740ea5e25 100644 --- a/components/rgbd-sources/src/streamer.cpp +++ b/components/rgbd-sources/src/streamer.cpp @@ -278,8 +278,8 @@ void Streamer::_swap(StreamSource *src) { } } - src->src->getFrames(src->rgb, src->depth); src->src->swap(); + src->src->getFrames(src->rgb, src->depth); //if (!src->rgb.empty() && src->prev_depth.empty()) { //src->prev_depth = cv::Mat(src->rgb.size(), CV_16UC1, cv::Scalar(0)); @@ -310,19 +310,13 @@ void Streamer::wait() { } void Streamer::_schedule(StreamSource *src) { - // There will be two jobs for this source... - //UNIQUE_LOCK(job_mtx_,lk); - jobs_ += 2 + kChunkCount; - //lk.unlock(); - - //StreamSource *src = sources_[uri]; if (src == nullptr || src->jobs != 0) return; + + jobs_ += 2 + kChunkCount; src->jobs = 2 + kChunkCount; // Grab / capture job ftl::pool.push([this,src](int id) { - //auto start = std::chrono::high_resolution_clock::now(); - auto start = std::chrono::high_resolution_clock::now(); int64_t now = std::chrono::time_point_cast<std::chrono::milliseconds>(start).time_since_epoch().count()+clock_adjust_; int64_t target = now / mspf_; @@ -374,7 +368,7 @@ void Streamer::_schedule(StreamSource *src) { // Mark job as finished std::unique_lock<std::mutex> lk(job_mtx_); --jobs_; - job_cv_.notify_one(); + if (jobs_ == 0) job_cv_.notify_one(); }); // Compute job @@ -395,7 +389,7 @@ void Streamer::_schedule(StreamSource *src) { // Mark job as finished std::unique_lock<std::mutex> lk(job_mtx_); --jobs_; - job_cv_.notify_one(); + if (jobs_ == 0) job_cv_.notify_one(); }); // Create jobs for each chunk @@ -415,7 +409,7 @@ void Streamer::_schedule(StreamSource *src) { _swap(src); std::unique_lock<std::mutex> lk(job_mtx_); --jobs_; - job_cv_.notify_one(); + if (jobs_ == 0) job_cv_.notify_one(); }); } } -- GitLab