12#include <mediapipe/framework/port/opencv_core_inc.h>
13#include <absl/status/statusor.h>
15#include "settings.hpp"
16#include "input_transformer.hpp"
24namespace presage::smartspectra::video_source {
41 virtual bool SupportsExactFrameTimestamp()
const = 0;
199 virtual absl::Status
SetGain(
double value);
206 virtual absl::StatusOr<double>
GetGain();
208 virtual int GetWidth();
210 virtual int GetHeight();
235 virtual void ProducePreTransformFrame(cv::Mat& frame) = 0;
Abstract interface for camera/video input sources.
Definition video_source.hpp:30
virtual bool SupportsExposureControls()
Check if this video source supports exposure controls.
Definition video_source.cpp:48
virtual absl::Status SetWhiteBalance(double value)
Set white balance temperature to a normalized value.
Definition video_source.cpp:80
virtual bool SupportsCompressedOutput()
Definition video_source.cpp:139
virtual bool ProduceCompressedFrame(std::vector< uint8_t > &jpeg_data)
Definition video_source.cpp:143
bool HasFrameDimensions()
Definition video_source.cpp:116
virtual absl::StatusOr< double > GetGain()
Get current gain as a normalized value.
Definition video_source.cpp:104
virtual absl::Status IncreaseExposure()
Increase exposure by a fixed hardware-specific step.
Definition video_source.cpp:32
virtual bool SupportsWhiteBalanceControls()
Check if this video source supports white balance controls.
Definition video_source.cpp:52
virtual absl::StatusOr< double > GetWhiteBalance()
Get current white balance temperature as a normalized value.
Definition video_source.cpp:84
virtual bool SupportsGainControl()
Check if this video source supports gain controls.
Definition video_source.cpp:88
virtual absl::Status TurnOffAutoExposure()
Disable automatic exposure and switch to manual mode.
Definition video_source.cpp:20
virtual absl::StatusOr< bool > IsAutoExposureOn()
Check if automatic exposure is currently enabled.
Definition video_source.cpp:28
virtual absl::Status SetGain(double value)
Set gain to a normalized value.
Definition video_source.cpp:100
virtual absl::Status DecreaseExposure()
Decrease exposure by a fixed hardware-specific step.
Definition video_source.cpp:36
virtual absl::StatusOr< bool > IsAutoWhiteBalanceOn()
Check if automatic white balance is currently enabled.
Definition video_source.cpp:68
virtual int64_t GetFrameTimestamp() const =0
virtual absl::Status Initialize(const VideoSourceSettings &settings)
Definition video_source.cpp:126
VideoSource & operator>>(cv::Mat &frame)
Definition video_source.cpp:120
virtual absl::Status SetExposure(double value)
Set exposure to a normalized value.
Definition video_source.cpp:40
virtual absl::Status ToggleAutoWhiteBalance()
Toggle between automatic and manual white balance modes.
Definition video_source.cpp:64
virtual absl::Status IncreaseWhiteBalance()
Increase white balance temperature by a fixed hardware-specific step.
Definition video_source.cpp:72
virtual absl::Status DecreaseWhiteBalance()
Decrease white balance temperature by a fixed hardware-specific step.
Definition video_source.cpp:76
virtual absl::Status IncreaseGain()
Increase gain by a fixed hardware-specific step.
Definition video_source.cpp:92
virtual absl::Status TurnOnAutoExposure()
Enable automatic exposure mode.
Definition video_source.cpp:16
virtual absl::Status ToggleAutoExposure()
Toggle between automatic and manual exposure modes.
Definition video_source.cpp:24
virtual absl::StatusOr< double > GetExposure()
Get current exposure as a normalized value.
Definition video_source.cpp:44
virtual absl::Status DecreaseGain()
Decrease gain by a fixed hardware-specific step.
Definition video_source.cpp:96
virtual absl::Status TurnOffAutoWhiteBalance()
Disable automatic white balance and switch to manual mode.
Definition video_source.cpp:60
virtual absl::Status TurnOnAutoWhiteBalance()
Enable automatic white balance mode.
Definition video_source.cpp:56
InputTransformMode
Transformation applied to frames prior to processing.
Definition input_transform.hpp:19
Configuration options for constructing a VideoSource.
Definition settings.hpp:23