SmartSpectra SDK
C++

API Reference

API Reference for the SmartSpectra SDK.

SmartSpectra

Methods

  • static constexpr std::string_view version = SMART_SPECTRA_VERSION_STRING
  • void SetOnProcessingStatusChanged(OnProcessingStatusChangedFn cb)
  • void SetOnValidationStatusChanged(OnValidationStatusChangedFn cb)
  • void SetOnMetrics(OnMetricsFn cb)
  • void SetOnAccumulatedMetrics(OnAccumulatedMetricsFn cb)
  • void SetOnVideoOutput(OnVideoOutputFn cb)
  • void SetOnFrameSentThrough(OnFrameSentThroughFn cb)
  • void SetOnError(OnErrorFn cb)
  • void SetOnInsight(OnInsightFn cb)
  • [[nodiscard]] SmartSpectraError Start()
  • [[nodiscard]] SmartSpectraError Stop()
  • [[nodiscard]] SmartSpectraError Reset()
  • bool WaitUntilComplete( std::chrono::milliseconds timeout = std::chrono::milliseconds::max())
  • [[nodiscard]] SmartSpectraError RequestInsight( const std::string& text, int32_t* out_request_id = nullptr)
  • CameraBuilder      UseCamera(int device_index = 0)
  • VideoFileBuilder   UseFile(const std::string& path)
  • CustomInputBuilder UseCustomInput()
  • ProcessingStatus GetStatus() const

SmartSpectraConfig

Properties

  • std::string api_key
  • std::vector<MetricType> requested_metrics
  • bool enable_accumulated_output = false
  • std::optional<std::string> video_output_directory
  • static const std::vector<MetricType>& BreathingMetrics()
  • static const std::vector<MetricType>& DefaultSupportedMetrics()
  • static const std::vector<MetricType>& CardioMetrics()
  • static const std::vector<MetricType>& FaceMetrics()
  • void AddMetrics(const std::vector<MetricType>& metrics)
  • void RemoveMetrics(const std::vector<MetricType>& metrics)

CameraBuilder

Methods

  • CameraBuilder& SetResolution(int width, int height)
  • CameraBuilder& SetFps(int fps)
  • CameraBuilder& SetFrameTransform(FrameTransform transform)
  • [[nodiscard]] SmartSpectraError Build()

VideoFileBuilder

Methods

  • VideoFileBuilder& SetTimestamps(const std::string& path)
  • VideoFileBuilder& SetInterframeDelay(int ms)
  • VideoFileBuilder& SetStartOffset(int ms)
  • VideoFileBuilder& SetMaxDuration(int ms)
  • VideoFileBuilder& SetFrameTransform(FrameTransform transform)
  • [[nodiscard]] SmartSpectraError Build()

CustomInputBuilder

Methods

  • CustomInputBuilder& SetFrameTransform(FrameTransform transform)
  • [[nodiscard]] SmartSpectraError Build(std::shared_ptr<CustomInput>& out)

CustomInput

Methods

  • virtual SmartSpectraError Send(const FrameBuffer& frame, int64_t timestamp_us) = 0

FrameBuffer

Properties

  • const uint8_t* data
  • int width
  • int height
  • int stride_bytes
  • PixelFormat format

FrameTransform

  • kNone = 0
  • kRotate90CW = 1
  • kRotate90CCW = 2
  • kRotate180 = 3
  • kMirrorHorizontal = 4
  • kMirrorVertical = 5

PixelFormat

  • kRGB = 0
  • kBGR = 1
  • kRGBA = 2
  • kBGRA = 3
  • kNV12 = 4
  • kNV21 = 5
  • kYUYV = 6

ProcessingStatus

  • kUninitialized = 0
  • kIdle = 1
  • kStarting = 2
  • kRunning = 3
  • kStopping = 4
  • kError = 5

ValidationStatus

Properties

  • ValidationCode code = ValidationCode::kOk
  • std::string hint

ValidationCode

  • kOk = 0
  • kNoFaceFound = 1
  • kMultipleFacesFound = 2
  • kFaceNotCentered = 3
  • kFaceSizeOutOfRange = 4
  • kTooDark = 5
  • kTooBright = 6
  • kChestNotVisible = 7
  • kCameraTuning = 10

SmartSpectraError

Properties

  • SmartSpectraErrorCode code = SmartSpectraErrorCode::kOk
  • std::string message
  • bool retryable = false

SmartSpectraErrorCode

  • kOk = 0
  • kInvalidState = 1
  • kAuthenticationFailed = 2
  • kConfigurationFailed = 3
  • kCreditExhausted = 4
  • kNetworkError = 5
  • kServerError = 6
  • kInputUnavailable = 7
  • kProcessingFailed = 8
  • kFrameConversionFailed = 9
  • kNonMonotonicTimestamp = 10
  • kTimestampGap = 11

OnProcessingStatusChangedFn

using OnProcessingStatusChangedFn = std::function<void(ProcessingStatus status)>

OnValidationStatusChangedFn

using OnValidationStatusChangedFn = std::function<void(const ValidationStatus& status, int64_t timestamp_us)>

OnMetricsFn

using OnMetricsFn = std::function<void(const Metrics& metrics, int64_t timestamp_us)>

OnAccumulatedMetricsFn

using OnAccumulatedMetricsFn = std::function<void(const Metrics& metrics, int64_t timestamp_us)>

OnVideoOutputFn

using OnVideoOutputFn = std::function<void(const FrameBuffer& frame, int64_t timestamp_us)>

OnFrameSentThroughFn

using OnFrameSentThroughFn = std::function<void(bool sent_through, int64_t timestamp_us)>

OnErrorFn

using OnErrorFn = std::function<void(const SmartSpectraError& error)>

OnInsightFn

using OnInsightFn = std::function<void(const Insight& insight)>

On this page