diff --git a/components/common/cpp/src/timer.cpp b/components/common/cpp/src/timer.cpp index 02b9337ab7fcf4059f41433c16030d75fef1d54f..eb6ea802472d848f3cd8ef029a4f8aff092d377c 100644 --- a/components/common/cpp/src/timer.cpp +++ b/components/common/cpp/src/timer.cpp @@ -127,7 +127,7 @@ static void trigger_jobs() { // Now use thread jobs to do more intensive callbacks for (auto &j : jobs[kTimerMain]) { if (j.active) { - LOG(WARNING) << "Timer job too slow ... skipped for " << ts; + DLOG(WARNING) << "Timer job too slow ... skipped for " << ts; continue; } j.active = true; diff --git a/components/rgbd-sources/src/group.cpp b/components/rgbd-sources/src/group.cpp index ce005ac004506b8c6422b6ebb876ce1b748c34f9..3b3d9afffede25362bf3d44681e06ac2e219fb45 100644 --- a/components/rgbd-sources/src/group.cpp +++ b/components/rgbd-sources/src/group.cpp @@ -48,7 +48,7 @@ void Group::addSource(ftl::rgbd::Source *src) { src->setCallback([this,ix,src](int64_t timestamp, cv::Mat &rgb, cv::Mat &depth) { if (timestamp == 0) return; - LOG(INFO) << "SRC CB: " << timestamp << " (" << framesets_[head_].timestamp << ")"; + //LOG(INFO) << "SRC CB: " << timestamp << " (" << framesets_[head_].timestamp << ")"; UNIQUE_LOCK(mutex_, lk); if (timestamp > framesets_[head_].timestamp) { @@ -96,7 +96,7 @@ void Group::addSource(ftl::rgbd::Source *src) { return; } } - LOG(WARNING) << "Frame timestamp not found in buffer"; + DLOG(WARNING) << "Frame timestamp not found in buffer"; }); } @@ -188,7 +188,7 @@ void Group::sync(std::function<bool(ftl::rgbd::FrameSet &)> cb) { // The buffers are invalid after callback so mark stale fs->stale = true; } else { - LOG(INFO) << "NO FRAME FOUND: " << last_ts_ - latency_*mspf_; + DLOG(INFO) << "NO FRAME FOUND: " << last_ts_ - latency_*mspf_; } } @@ -230,14 +230,12 @@ ftl::rgbd::FrameSet *Group::_getFrameset(int f) { void Group::_addFrameset(int64_t timestamp) { int count = (framesets_[head_].timestamp == -1) ? 1 : (timestamp - framesets_[head_].timestamp) / mspf_; - // Must make sure to also insert missing framesets - //LOG(INFO) << "Adding " << count << " framesets for " << timestamp << " head=" << framesets_[head_].timestamp; - - //if (count > 10 || count < 1) return; + // Allow for massive timestamp changes (Windows clock adjust) + // Only add a single frameset for large changes if (count < -kFrameBufferSize || count >= kFrameBufferSize-1) { head_ = (head_+1) % kFrameBufferSize; - //UNIQUE_LOCK(framesets_[head_].mtx, lk); + if (!framesets_[head_].mtx.try_lock()) { LOG(ERROR) << "Frameset in use!!"; return; @@ -259,10 +257,11 @@ void Group::_addFrameset(int64_t timestamp) { if (count < 1) return; + // Must make sure to also insert missing framesets for (int i=0; i<count; ++i) { int64_t lt = (framesets_[head_].timestamp == -1) ? timestamp-mspf_ : framesets_[head_].timestamp; head_ = (head_+1) % kFrameBufferSize; - //UNIQUE_LOCK(framesets_[head_].mtx, lk); + if (!framesets_[head_].mtx.try_lock()) { LOG(ERROR) << "Frameset in use!!"; break;