From 09fb4c04df6c82105ac0761034178f829aa45f74 Mon Sep 17 00:00:00 2001 From: John Zhao Date: Thu, 7 Jun 2018 17:39:51 +0800 Subject: [PATCH] Obtain raw frame in api stream data --- src/api/api.h | 8 ++++++++ src/api/synthetic.cc | 28 +++++++++++++++------------- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/src/api/api.h b/src/api/api.h index 39eec99..5280221 100644 --- a/src/api/api.h +++ b/src/api/api.h @@ -30,6 +30,12 @@ MYNTEYE_BEGIN_NAMESPACE class Device; class Synthetic; +namespace device { + +class Frame; + +} // namespace device + namespace api { /** @@ -41,6 +47,8 @@ struct MYNTEYE_API StreamData { std::shared_ptr img; /** Frame. */ cv::Mat frame; + /** Raw frame. */ + std::shared_ptr frame_raw; bool operator==(const StreamData &other) const { if (img && other.img) { diff --git a/src/api/synthetic.cc b/src/api/synthetic.cc index fd86ede..520c7ca 100644 --- a/src/api/synthetic.cc +++ b/src/api/synthetic.cc @@ -46,7 +46,7 @@ cv::Mat frame2mat(const std::shared_ptr &frame) { } api::StreamData data2api(const device::StreamData &data) { - return {data.img, frame2mat(data.frame)}; + return {data.img, frame2mat(data.frame), data.frame}; } } // namespace @@ -152,7 +152,7 @@ api::StreamData Synthetic::GetStreamData(const Stream &stream) { Object *out = processor->GetOutput(); if (out != nullptr) { ObjMat2 *output = Object::Cast(out); - return {nullptr, output->first}; + return {nullptr, output->first, nullptr}; } VLOG(2) << "Rectify not ready now"; } break; @@ -161,7 +161,7 @@ api::StreamData Synthetic::GetStreamData(const Stream &stream) { Object *out = processor->GetOutput(); if (out != nullptr) { ObjMat2 *output = Object::Cast(out); - return {nullptr, output->second}; + return {nullptr, output->second, nullptr}; } VLOG(2) << "Rectify not ready now"; } break; @@ -170,7 +170,7 @@ api::StreamData Synthetic::GetStreamData(const Stream &stream) { Object *out = processor->GetOutput(); if (out != nullptr) { ObjMat *output = Object::Cast(out); - return {nullptr, output->value}; + return {nullptr, output->value, nullptr}; } VLOG(2) << "Disparity not ready now"; } break; @@ -180,7 +180,7 @@ api::StreamData Synthetic::GetStreamData(const Stream &stream) { Object *out = processor->GetOutput(); if (out != nullptr) { ObjMat *output = Object::Cast(out); - return {nullptr, output->value}; + return {nullptr, output->value, nullptr}; } VLOG(2) << "Disparity normalized not ready now"; } break; @@ -189,7 +189,7 @@ api::StreamData Synthetic::GetStreamData(const Stream &stream) { Object *out = processor->GetOutput(); if (out != nullptr) { ObjMat *output = Object::Cast(out); - return {nullptr, output->value}; + return {nullptr, output->value, nullptr}; } VLOG(2) << "Points not ready now"; } break; @@ -198,7 +198,7 @@ api::StreamData Synthetic::GetStreamData(const Stream &stream) { Object *out = processor->GetOutput(); if (out != nullptr) { ObjMat *output = Object::Cast(out); - return {nullptr, output->value}; + return {nullptr, output->value, nullptr}; } VLOG(2) << "Depth not ready now"; } break; @@ -546,17 +546,19 @@ bool Synthetic::OnDepthProcess( void Synthetic::OnRectifyPostProcess(Object *const out) { const ObjMat2 *output = Object::Cast(out); if (HasStreamCallback(Stream::LEFT_RECTIFIED)) { - stream_callbacks_.at(Stream::LEFT_RECTIFIED)({nullptr, output->first}); + stream_callbacks_.at(Stream::LEFT_RECTIFIED)( + {nullptr, output->first, nullptr}); } if (HasStreamCallback(Stream::RIGHT_RECTIFIED)) { - stream_callbacks_.at(Stream::RIGHT_RECTIFIED)({nullptr, output->second}); + stream_callbacks_.at(Stream::RIGHT_RECTIFIED)( + {nullptr, output->second, nullptr}); } } void Synthetic::OnDisparityPostProcess(Object *const out) { const ObjMat *output = Object::Cast(out); if (HasStreamCallback(Stream::DISPARITY)) { - stream_callbacks_.at(Stream::DISPARITY)({nullptr, output->value}); + stream_callbacks_.at(Stream::DISPARITY)({nullptr, output->value, nullptr}); } } @@ -564,21 +566,21 @@ void Synthetic::OnDisparityNormalizedPostProcess(Object *const out) { const ObjMat *output = Object::Cast(out); if (HasStreamCallback(Stream::DISPARITY_NORMALIZED)) { stream_callbacks_.at(Stream::DISPARITY_NORMALIZED)( - {nullptr, output->value}); + {nullptr, output->value, nullptr}); } } void Synthetic::OnPointsPostProcess(Object *const out) { const ObjMat *output = Object::Cast(out); if (HasStreamCallback(Stream::POINTS)) { - stream_callbacks_.at(Stream::POINTS)({nullptr, output->value}); + stream_callbacks_.at(Stream::POINTS)({nullptr, output->value, nullptr}); } } void Synthetic::OnDepthPostProcess(Object *const out) { const ObjMat *output = Object::Cast(out); if (HasStreamCallback(Stream::DEPTH)) { - stream_callbacks_.at(Stream::DEPTH)({nullptr, output->value}); + stream_callbacks_.at(Stream::DEPTH)({nullptr, output->value, nullptr}); } }