![]() |
SmartSpectra C++ SDK
Measure human vitals from video with SmartSpectra C++ SDK.
|
Convenience container with a built-in video source and optional GUI. More...
#include <foreground_container.hpp>
Public Types | |
| typedef container::settings::Settings< TOperationMode, TIntegrationMode > | SettingsType |
| using | Base = Container<TDeviceType, TOperationMode, TIntegrationMode> |
| Public Types inherited from presage::smartspectra::container::Container< TDeviceType, TOperationMode, TIntegrationMode > | |
| typedef container::settings::Settings< TOperationMode, TIntegrationMode > | SettingsType |
Public Member Functions | |
| ForegroundContainer (SettingsType settings) | |
| absl::Status | Initialize () override |
| virtual absl::Status | Run () |
| Public Member Functions inherited from presage::smartspectra::container::Container< TDeviceType, TOperationMode, TIntegrationMode > | |
| Container (SettingsType settings) | |
| absl::Status | SetOnStatusChange (const std::function< absl::Status(physiology::StatusValue)> &on_status_change) |
| absl::Status | SetOnStatusCode (const std::function< absl::Status(physiology::StatusValue)> &on_status_code) |
| absl::Status | SetOnEdgeMetricsOutput (const std::function< absl::Status(const physiology::Metrics &, int64_t input_timestamp)> &on_edge_metrics_output) |
| absl::Status | SetOnCoreMetricsOutput (const std::function< absl::Status(const physiology::MetricsBuffer &, int64_t input_timestamp)> &on_core_metrics_output) |
| absl::Status | SetOnVideoOutput (const std::function< absl::Status(cv::Mat &output_frame, int64_t input_timestamp)> &on_video_output) |
| absl::Status | SetOnFrameSentThrough (const std::function< absl::Status(bool frame_sent_through, int64_t input_timestamp)> &on_dropped_frame) |
| absl::Status | SetOnCorePerformanceTelemetry (const std::function< absl::Status(double, double, int64_t)> &on_effective_core_fps_output) |
Protected Member Functions | |
| virtual absl::Status | InitializeOutputDataPollers () |
| virtual absl::Status | HandleOutputData (int64_t frame_timestamp) |
| Protected Member Functions inherited from presage::smartspectra::container::Container< TDeviceType, TOperationMode, TIntegrationMode > | |
| virtual std::string | GetThirdGraphFileSuffix () const |
| virtual std::string | GetGraphFilePrefix () const |
| absl::StatusOr< std::filesystem::path > | GetGraphFilePath (bool binary_graph=true) const |
| absl::Status | ComputeCorePerformanceTelemetry (const physiology::MetricsBuffer &metrics_buffer) |
| void | AddFrameTimestampToBenchmarkingInfo (const mediapipe::Timestamp ×tamp) |
Protected Attributes | |
| presage::smartspectra::container::output_stream_poller_wrapper::OutputStreamPollerWrapper | core_metrics_poller |
| presage::smartspectra::container::output_stream_poller_wrapper::OutputStreamPollerWrapper | edge_metrics_poller |
| bool | keep_grabbing_frames |
| std::shared_ptr< video_source::VideoSource > | video_source = nullptr |
| std::unique_ptr< video_source::CameraTuner > | camera_tuner = nullptr |
| bool | tuning_enabled = false |
| const bool | load_video |
| Protected Attributes inherited from presage::smartspectra::container::Container< TDeviceType, TOperationMode, TIntegrationMode > | |
| SettingsType | settings |
| mediapipe::CalculatorGraph | graph |
| std::function< absl::Status(physiology::StatusValue)> | OnStatusChange |
| std::function< absl::Status(physiology::StatusValue)> | OnStatusCode |
| std::function< absl::Status(const physiology::Metrics &, int64_t input_timestamp)> | OnEdgeMetricsOutput |
| std::function< absl::Status(const physiology::MetricsBuffer &, int64_t input_timestamp)> | OnCoreMetricsOutput |
| std::function< absl::Status(cv::Mat &output_frame, int64_t input_timestamp)> | OnVideoOutput |
| std::function< absl::Status(bool frame_sent_through, int64_t input_timestamp)> | OnFrameSentThrough |
| std::optional< std::function< absl::Status(double fps, double latency_s, int64_t input_timestamp)> > | OnCorePerformanceTelemetry = std::nullopt |
| platform_independence::DeviceContext< TDeviceType > | device_context |
| bool | initialized = false |
| bool | running = false |
| physiology::StatusValue | status |
| bool | recording = false |
| cv::Mat | output_frame_bgr |
| OperationContext< TOperationMode > | operation_context |
Convenience container with a built-in video source and optional GUI.
|
explicit |
Construct a foreground container with the provided settings.
|
protectedvirtual |
Handle metrics and video output for the given frame.
Called from Run() at each frame iteration.
| TDeviceType | |
| TOperationMode |
| frame_timestamp |
Reimplemented in presage::smartspectra::lab::PreprocessingForegroundContainer< TDeviceType, TOperationMode, TIntegrationMode >, and presage::smartspectra::lab::PreprocessingForegroundContainer< platform_independence::DeviceType::Cpu, TOperationMode, container::settings::IntegrationMode::Rest >.
|
overridevirtual |
Initialize container and any GUI/video resources.
Reimplemented from presage::smartspectra::container::Container< TDeviceType, TOperationMode, TIntegrationMode >.
|
protectedvirtual |
Setup MediaPipe pollers for metrics and video output.
Called from Run() to initialize the output data pollers.
| TDeviceType | |
| TOperationMode |
| frame_timestamp |
Reimplemented in presage::smartspectra::lab::PreprocessingForegroundContainer< TDeviceType, TOperationMode, TIntegrationMode >, and presage::smartspectra::lab::PreprocessingForegroundContainer< platform_independence::DeviceType::Cpu, TOperationMode, container::settings::IntegrationMode::Rest >.
|
virtual |
Main capture loop for foreground operation.