From d920dbed88809a35baeef85d2609715876898b4c Mon Sep 17 00:00:00 2001
From: Nicolas Pope <nwpope@utu.fi>
Date: Fri, 9 Aug 2019 12:37:22 +0300
Subject: [PATCH] Fixes for multiple buffer swaps

---
 components/rgbd-sources/include/ftl/rgbd/source.hpp |  2 +-
 components/rgbd-sources/src/source.cpp              | 11 +++++++----
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/components/rgbd-sources/include/ftl/rgbd/source.hpp b/components/rgbd-sources/include/ftl/rgbd/source.hpp
index 694f3f2ea..55cb8554e 100644
--- a/components/rgbd-sources/include/ftl/rgbd/source.hpp
+++ b/components/rgbd-sources/include/ftl/rgbd/source.hpp
@@ -76,7 +76,7 @@ class Source : public ftl::Configurable {
 	/**
 	 * Between frames, do any required buffer swaps.
 	 */
-	void swap() { if (impl_) impl_->swap(); LOG(INFO) << "SWAP SV " << timestamp_; }
+	void swap() { if (impl_) impl_->swap(); }
 
 	/**
 	 * Do any post-grab processing. This function
diff --git a/components/rgbd-sources/src/source.cpp b/components/rgbd-sources/src/source.cpp
index 913fe4acb..c5efd26fc 100644
--- a/components/rgbd-sources/src/source.cpp
+++ b/components/rgbd-sources/src/source.cpp
@@ -244,7 +244,7 @@ bool Source::compute(int N, int B) {
 		return true;
 	} else if (impl_ && impl_->compute(N,B)) {
 		timestamp_ = impl_->timestamp_;
-		cv::Mat tmp;
+		/*cv::Mat tmp;
 		rgb_.create(impl_->rgb_.size(), impl_->rgb_.type());
 		depth_.create(impl_->depth_.size(), impl_->depth_.type());
 		tmp = rgb_;
@@ -252,10 +252,13 @@ bool Source::compute(int N, int B) {
 		impl_->rgb_ = tmp;
 		tmp = depth_;
 		depth_ = impl_->depth_;
-		impl_->depth_ = tmp;
+		impl_->depth_ = tmp;*/
 
-		//impl_->rgb_.copyTo(rgb_);
-		//impl_->depth_.copyTo(depth_);
+		// TODO:(Nick) Reduce buffer copies
+		impl_->rgb_.copyTo(rgb_);
+		impl_->depth_.copyTo(depth_);
+		//rgb_ = impl_->rgb_;
+		//depth_ = impl_->depth_;
 		return true;
 	}
 	return false;
-- 
GitLab