diff --git a/applications/gui/src/camera.cpp b/applications/gui/src/camera.cpp index 7f93add71311ec0a7c9369a2e21895efe3a20392..f44521b3a81d06a4087a56a8eacf6d2bf4d4700b 100644 --- a/applications/gui/src/camera.cpp +++ b/applications/gui/src/camera.cpp @@ -289,6 +289,14 @@ static void drawEdges( const cv::Mat &in, cv::Mat &out, cv::addWeighted(edges, weight, out, 1.0, 0.0, out, CV_8UC3); } +bool ftl::gui::Camera::thumbnail(cv::Mat &thumb) { + UNIQUE_LOCK(mutex_, lk); + src_->grab(1,9); + if (rgb_.empty()) return false; + cv::resize(rgb_, thumb, cv::Size(320,180)); + return true; +} + const GLTexture &ftl::gui::Camera::captureFrame() { float now = (float)glfwGetTime(); delta_ = now - ftime_; diff --git a/applications/gui/src/camera.hpp b/applications/gui/src/camera.hpp index 89fcff188facd49a3b70f073d442cc9813979a23..f412d9c43d1809374566b1ba24c427ecda792695 100644 --- a/applications/gui/src/camera.hpp +++ b/applications/gui/src/camera.hpp @@ -40,6 +40,8 @@ class Camera { const GLTexture &captureFrame(); + bool thumbnail(cv::Mat &thumb); + nlohmann::json getMetaData(); StatisticsImage *stats_ = nullptr; diff --git a/applications/gui/src/src_window.cpp b/applications/gui/src/src_window.cpp index e98ec081b1d23f34cfe541756cbd8925e4290dbc..e7ffc4b1e0e44caccd67cce5d60d34b481ec58d7 100644 --- a/applications/gui/src/src_window.cpp +++ b/applications/gui/src/src_window.cpp @@ -116,7 +116,7 @@ void SourceWindow::draw(NVGcontext *ctx) { cv::Mat t; auto *cam = cameras_[available_[i]]; if (cam) { - if (cam->source()->thumbnail(t)) { + if (cam->thumbnail(t)) { thumbs_[i].update(t); } else { refresh_thumbs_ = true;