From 626f08162b07a49e8683bfb04a71ac02faa9b12d Mon Sep 17 00:00:00 2001 From: Nikita Kostovsky Date: Sat, 25 Jan 2025 18:44:39 +0100 Subject: add inno-maker ov9281 stream. cmake config failed --- src/camera/innomakerov9281.h | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) (limited to 'src/camera/innomakerov9281.h') diff --git a/src/camera/innomakerov9281.h b/src/camera/innomakerov9281.h index 51485cb..2c1fb7c 100644 --- a/src/camera/innomakerov9281.h +++ b/src/camera/innomakerov9281.h @@ -2,18 +2,17 @@ #include +#include + #include "constants.h" #include "image.h" -class ICamera -{ -public: - virtual bool setExposureTimeMs(int value) = 0; - virtual bool setGain(int value) = 0; -}; +#include "icamera.h" class InnoMakerOV9281 : public ICamera { + constexpr static char videoDevice[] = "/dev/video0"; + public: using buffer_t = std::array; @@ -22,13 +21,22 @@ public: ~InnoMakerOV9281(); public: + static std::vector> search(); + +public: + bool startStream(); + bool init(); - bool setExposureTimeMs(int value) override; - bool setGain(int value) override; + bool setExposureTimeMs(int value); + bool setGain(int value); bool getImage(Image &image); +public: + libcamera::Signal> newPixels; + libcamera::Signal> newImage; + private: bool setCamParam(unsigned int v4l2controlId, int value); bool openCam(); @@ -40,4 +48,5 @@ private: static constexpr uint8_t BUFFER_COUNT{3}; uint8_t *video_buffer_ptr[BUFFER_COUNT]; // buffer_t m_buf; + std::jthread m_streamThread; }; -- cgit v1.2.3-70-g09d2