diff --git a/components/rgbd-sources/src/streamer.cpp b/components/rgbd-sources/src/streamer.cpp index 0acd8a97db7b82bb176491e5c8c2bcfd0dba77e0..bbdbc87ee4f7f8df1179c4fcd0141a912c5e7cbd 100644 --- a/components/rgbd-sources/src/streamer.cpp +++ b/components/rgbd-sources/src/streamer.cpp @@ -191,6 +191,8 @@ void Streamer::_schedule() { // Prevent new clients during processing. shared_lock<shared_mutex> slk(mutex_); + LOG(INFO) << "SCHEDULE FRAME"; + for (auto s : sources_) { string uri = s.first; @@ -231,7 +233,9 @@ void Streamer::_schedule() { LOG(INFO) << "GRAB Elapsed: " << elapsed.count();*/ // CHECK (Nick) Can state be an atomic instead? + LOG(INFO) << "Wait to finish grab"; unique_lock<shared_mutex> lk(src->mutex); + LOG(INFO) << "Grab finished"; src->state |= ftl::rgbd::detail::kGrabbed; _swap(*src); lk.unlock(); @@ -290,8 +294,9 @@ void Streamer::_schedule() { LOG(INFO) << "Stream Elapsed: " << elapsed.count();*/ // CHECK (Nick) Could state be an atomic? + LOG(INFO) << "Wait Tx frame"; unique_lock<shared_mutex> lk(src->mutex); - DLOG(2) << "Tx Frame: " << uri; + LOG(INFO) << "Tx Frame: " << uri; src->state |= ftl::rgbd::detail::kTransmitted; _swap(*src); lk.unlock(); @@ -305,8 +310,10 @@ void Streamer::_schedule() { } // Wait for all jobs to complete before finishing frame + LOG(INFO) << "WAIT FRAME"; unique_lock<mutex> lk(job_mtx); job_cv.wait(lk, [&jobs]{ return jobs == 0; }); + LOG(INFO) << "END FRAME"; } Source *Streamer::get(const std::string &uri) {