From 7e219215d82491a49b82e2287e3b5057446d513a Mon Sep 17 00:00:00 2001 From: Nicolas Pope <nwpope@utu.fi> Date: Fri, 7 Jun 2019 10:05:45 +0300 Subject: [PATCH] Verified performance in release mode --- components/rgbd-sources/src/rgbd_streamer.cpp | 18 ++++++++++++++---- .../rgbd-sources/src/stereovideo_source.cpp | 5 +---- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/components/rgbd-sources/src/rgbd_streamer.cpp b/components/rgbd-sources/src/rgbd_streamer.cpp index c596584a1..5646495e8 100644 --- a/components/rgbd-sources/src/rgbd_streamer.cpp +++ b/components/rgbd-sources/src/rgbd_streamer.cpp @@ -196,11 +196,15 @@ void Streamer::_schedule() { pool_.push([this,uri,&jobs,&job_mtx,&job_cv](int id) { StreamSource *src = sources_[uri]; - try { + //auto start = std::chrono::high_resolution_clock::now(); + //try { src->src->grab(); - } catch(...) { - LOG(ERROR) << "Grab Exception for: " << uri; - } + //} catch(...) { + // LOG(ERROR) << "Grab Exception for: " << uri; + //} + /*std::chrono::duration<double> elapsed = + std::chrono::high_resolution_clock::now() - start; + LOG(INFO) << "GRAB Elapsed: " << elapsed.count();*/ unique_lock<shared_mutex> lk(src->mutex); src->state |= ftl::rgbd::detail::kGrabbed; @@ -218,6 +222,8 @@ void Streamer::_schedule() { pool_.push([this,uri,&jobs,&job_mtx,&job_cv](int id) { StreamSource *src = sources_[uri]; + //auto start = std::chrono::high_resolution_clock::now(); + if (src->rgb.rows > 0 && src->depth.rows > 0 && src->clients[0].size() > 0) { vector<unsigned char> rgb_buf; cv::imencode(".jpg", src->rgb, rgb_buf); @@ -247,6 +253,10 @@ void Streamer::_schedule() { } } + /*std::chrono::duration<double> elapsed = + std::chrono::high_resolution_clock::now() - start; + LOG(INFO) << "Stream Elapsed: " << elapsed.count();*/ + unique_lock<shared_mutex> lk(src->mutex); DLOG(1) << "Tx Frame: " << uri; src->state |= ftl::rgbd::detail::kTransmitted; diff --git a/components/rgbd-sources/src/stereovideo_source.cpp b/components/rgbd-sources/src/stereovideo_source.cpp index 07711bc33..047c9be55 100644 --- a/components/rgbd-sources/src/stereovideo_source.cpp +++ b/components/rgbd-sources/src/stereovideo_source.cpp @@ -111,15 +111,12 @@ static void disparityToDepth(const cv::Mat &disparity, cv::Mat &depth, const cv: } void StereoVideoSource::grab() { - // TODO(Nick) find a way to move this to last part ... but grab can't - // be called twice by different threads and it is currently - // FIXME Call to grab from multiple threads - unique_lock<mutex> lk(mutex_); calib_->rectified(left_, right_); cv::Mat disp; disp_->compute(left_, right_, disp); + unique_lock<mutex> lk(mutex_); left_.copyTo(rgb_); disparityToDepth(disp, depth_, calib_->getQ()); } -- GitLab