13#ifndef CAMERA_QUEUE_FUSION_H
14#define CAMERA_QUEUE_FUSION_H
22#include <condition_variable>
27#include <opencv2/opencv.hpp>
88 void start(
size_t num_cams);
110 bool getSortedBatch(
double timestamp_cutoff, std::vector<ov_core::CameraData> &out);
126 std::atomic<uint32_t> camera_ready_mask_{0};
129 uint32_t expected_mask_ = 0;
132 size_t num_cams_ = 0;
138 std::condition_variable cv_;
141 std::mutex fusion_mutex_;
144 std::deque<ov_core::CameraData> fused_frames_;
147 std::atomic<bool> running_{
false};
150 std::thread fusion_thread_;
Base class for camera implementations in VOXL OpenVINS.
constexpr size_t MAX_CAMERA_COUNT
Maximum number of cameras supported.
Monocular camera implementation for VOXL OpenVINS.
Common definitions and utilities for the VOXL OpenVINS server.
Global variable declarations and constants for VOXL OpenVINS server.
Camera queue fusion system for multi-camera synchronization.
static CameraQueueFusion & getInstance()
Get singleton instance.
void start(size_t num_cams)
Start the fusion system.
void markCameraReady(size_t cam_id)
Mark a camera as ready with new data.
bool getSortedBatch(double timestamp_cutoff, std::vector< ov_core::CameraData > &out)
Get sorted batch of camera data.