From 5b1b873f3f09f3e1644141a2cfc67b3a84dc4492 Mon Sep 17 00:00:00 2001 From: Nikita Kostovsky Date: Fri, 14 Nov 2025 22:49:35 +0100 Subject: cleanup --- src/camera/icamera.h | 2 ++ src/camera/veyeimx287m.cpp | 26 ++++++++++++++++---------- src/camera/veyeimx287m.h | 5 +++-- 3 files changed, 21 insertions(+), 12 deletions(-) (limited to 'src/camera') diff --git a/src/camera/icamera.h b/src/camera/icamera.h index bd08786..44ed4b3 100644 --- a/src/camera/icamera.h +++ b/src/camera/icamera.h @@ -54,6 +54,8 @@ public: virtual bool set_gain(const float value) = 0; virtual std::optional get_gain() = 0; + virtual bool getImage(Image *image) = 0; + public: std::function)> newPixelsCallback; std::function newImageCallback; diff --git a/src/camera/veyeimx287m.cpp b/src/camera/veyeimx287m.cpp index 7b6302c..21d95c6 100644 --- a/src/camera/veyeimx287m.cpp +++ b/src/camera/veyeimx287m.cpp @@ -294,8 +294,8 @@ bool VeyeIMX287m::init() return false; } - if (!initHttpServer()) - return false; + // if (!initHttpServer()) + // return false; return true; } @@ -600,12 +600,12 @@ bool VeyeIMX287m::initI2C() return m_i2c != nullptr && m_i2c->open(); } -bool VeyeIMX287m::initHttpServer() -{ - m_httpServer = std::make_shared(this); +// bool VeyeIMX287m::initHttpServer() +// { +// m_httpServer = std::make_shared(this); - return m_httpServer != nullptr; -} +// return m_httpServer != nullptr; +// } void VeyeIMX287m::calcFrameLoop(std::stop_token stopToken) { @@ -749,8 +749,14 @@ bool VeyeIMX287m::dequeueImageBuffer(size_t &imageIndex) return true; } -bool VeyeIMX287m::getImage(Image &image) +bool VeyeIMX287m::getImage(Image *image) { + if (!image) { + std::cerr << __func__ << ": image is nullptr" << std::endl; + + return false; + } + size_t bufferIdx{}; if (!dequeueImageBuffer(bufferIdx)) { @@ -759,13 +765,13 @@ bool VeyeIMX287m::getImage(Image &image) // TODO: remove this bullshit. return ptr to image or copy image metainfo // only, then copy data - image = std::move(m_images[bufferIdx]); + *image = std::move(m_images[bufferIdx]); { QElapsedTimer t; t.start(); std::lock_guard lock{m_imageMutexes[bufferIdx]}; auto &src = *(Image::radxa_data_t *) m_videoBuffers[bufferIdx]; - auto &dst = image.data; + auto &dst = image->data; Image::copy(dst, src); get_elapsed_ns += t.nsecsElapsed(); } diff --git a/src/camera/veyeimx287m.h b/src/camera/veyeimx287m.h index 9b96afe..1f293d6 100644 --- a/src/camera/veyeimx287m.h +++ b/src/camera/veyeimx287m.h @@ -36,7 +36,8 @@ public: bool startStream() override; bool dequeueImageBuffer(size_t &image); - bool getImage(Image &image); + // bool getImage(Image &image); + bool getImage(Image *image); bool init(); @@ -66,7 +67,7 @@ private: bool initCam(); bool initI2C(); - bool initHttpServer(); + // bool initHttpServer(); void calcFrameLoop(std::stop_token stopToken); -- cgit v1.2.3-70-g09d2