29#include <opencv2/opencv.hpp>
30#include <modal_pipe.h>
31#include <boost/lockfree/spsc_queue.hpp>
32#include <core/VioManager.h>
33#include <core/VioManagerOptions.h>
132 virtual void process_image(
const camera_image_metadata_t &meta, voxl::ImageType img_type,
void *frame) = 0;
146 static void camera_callback(
int ch, camera_image_metadata_t meta,
char *frame,
void *context);
148 static void camera_device_buffer_callback(
int ch, mpa_ion_buf_t *data,
void *context);
170 cl_command_queue
q_{
nullptr};
178 boost::lockfree::spsc_queue<ov_core::CameraData, boost::lockfree::capacity<64>>
camera_queue;
Global variable declarations and constants for VOXL OpenVINS server.
Base class for all camera implementations.
bool drop_frames
Indicates if frames should be dropped.
cv::Mat use_mask_
Per-instance reusable mask for feature tracking.
std::mutex mutex_
Mutex for thread-safe operations.
int get_channel() const
Get the camera pipe channel.
cl_context ctx_
OpenCL context used if GPU is enabled.
const cam_info & get_camera_info() const
Get the camera information.
cam_info camera_info_
Camera configuration information.
virtual bool connect()
Initialize the camera pipe connection.
bool skip_jerk_detection
Indicates if jerk detection should be skipped.
static void camera_callback(int ch, camera_image_metadata_t meta, char *frame, void *context)
Common callback function for pipe client.
virtual void disconnect()
Disconnect and clean up resources.
cl_command_queue q_
OpenCL command queue used if GPU is enabled.
int channel_
Channel used for pipe communication.
bool popCameraData(ov_core::CameraData &out)
Pop camera data from the queue.
size_t get_id() const
Get the camera identifier.
img_ringbuf_packet curr_message_
Instance-local buffer for image processing.
boost::lockfree::spsc_queue< ov_core::CameraData, boost::lockfree::capacity< 64 > > camera_queue
Lock-free SPSC queue for camera data.
bool is_connected_
Indicates if camera is connected to pipe.
virtual void process_image(const camera_image_metadata_t &meta, voxl::ImageType img_type, void *frame)=0
Process incoming image data.
virtual ~CameraBase()=default
Virtual destructor.
Main namespace for VOXL OpenVINS server components.
Camera information and calibration data.
size_t cam_id
Unique camera identifier.
Structure to hold image data packet for the ring buffer.