Skip to content
Snippets Groups Projects
Commit dbfaf965 authored by Nicolas Pope's avatar Nicolas Pope
Browse files

Do not use thread pool for second camera

parent 98aaec29
No related branches found
No related tags found
1 merge request!321Reduce latency in device capture and parallel encoding
......@@ -347,14 +347,13 @@ bool OpenCVDevice::get(ftl::rgbd::Frame &frame, cv::cuda::GpuMat &l_out, cv::cud
if (!camera_a_) return false;
std::future<bool> future_b;
//std::future<bool> future_b;
if (camera_b_) {
future_b = std::move(ftl::pool.push([this,&rfull,&r,c,&r_out,&r_hres_out,&stream](int id) {
//future_b = std::move(ftl::pool.push([this,&rfull,&r,c,&r_out,&r_hres_out,&stream](int id) {
if (!camera_b_->retrieve(frame_r_)) {
LOG(ERROR) << "Unable to read frame from camera B";
return false;
}
} else {
cv::cvtColor(frame_r_, rtmp2_, cv::COLOR_BGR2BGRA);
//if (stereo_) {
......@@ -371,8 +370,9 @@ bool OpenCVDevice::get(ftl::rgbd::Frame &frame, cv::cuda::GpuMat &l_out, cv::cud
//}
r_out.upload(r, stream);
return true;
}));
}
//return true;
//}));
}
if (camera_b_) {
......@@ -431,10 +431,10 @@ bool OpenCVDevice::get(ftl::rgbd::Frame &frame, cv::cuda::GpuMat &l_out, cv::cud
cv::imencode(".jpg", thumb, thumbdata, params);
}
if (camera_b_) {
//if (camera_b_) {
//FTL_Profile("WaitCamB", 0.05);
future_b.wait();
}
//future_b.wait();
//}
return true;
}
......
......@@ -283,12 +283,13 @@ bool PylonDevice::get(ftl::rgbd::Frame &frame, cv::cuda::GpuMat &l_out, cv::cuda
try {
FTL_Profile("Frame Retrieve", 0.005);
std::future<bool> future_b;
//std::future<bool> future_b;
bool res_r = false;
if (rcam_) {
future_b = std::move(ftl::pool.push([this,&rfull,&r,&l,c,&r_out,&h_r,&stream](int id) {
//future_b = std::move(ftl::pool.push([this,&rfull,&r,&l,c,&r_out,&h_r,&stream](int id) {
Pylon::CGrabResultPtr result_right;
if (!_retrieveFrames(result_right, rcam_)) return false;
if (_retrieveFrames(result_right, rcam_)) {
cv::Mat wrap_right(
result_right->GetHeight(),
......@@ -315,15 +316,16 @@ bool PylonDevice::get(ftl::rgbd::Frame &frame, cv::cuda::GpuMat &l_out, cv::cuda
//}
r_out.upload(r, stream);
return true;
}));
res_r = true;
}
//}));
}
Pylon::CGrabResultPtr result_left;
if (!_retrieveFrames(result_left, lcam_)) {
if (rcam_) {
future_b.wait();
//future_b.wait();
}
return false;
}
......@@ -357,8 +359,9 @@ bool PylonDevice::get(ftl::rgbd::Frame &frame, cv::cuda::GpuMat &l_out, cv::cuda
l_out.upload(l, stream);
if (rcam_) {
future_b.wait();
if (!future_b.get()) return false;
//future_b.wait();
//if (!future_b.get()) return false;
if (!res_r) return false;
}
} catch (const GenericException &e) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment