9#include "configuration.hpp"
14#include <smartspectra/video_source/camera/camera.hpp>
15#include <smartspectra/video_source/settings.hpp>
17namespace presage::smartspectra::container::settings {
23enum class OperationMode :
int {
29enum class IntegrationMode :
int{
35template<IntegrationMode TIntegrationMode>
40 static constexpr char kPreprocessingDataFormat[] =
"json";
45 static constexpr char kPreprocessingDataFormat[] =
"pb";
48bool AbslParseFlag(absl::string_view text, OperationMode* mode, std::string* error);
49std::string AbslUnparseFlag(OperationMode mode);
50std::vector<std::string> GetOperationModeNames();
51bool AbslParseFlag(absl::string_view text, IntegrationMode* mode, std::string* error);
52std::string AbslUnparseFlag(IntegrationMode mode);
53std::vector<std::string> GetIntegrationModeNames();
56template<OperationMode>
61 double spot_duration_s;
66 double preprocessed_data_buffer_duration_s;
69typedef OperationSettings<OperationMode::Spot> SpotSettings;
70typedef OperationSettings<OperationMode::Continuous> ContinuousSettings;
74template<IntegrationMode>
79 uint16_t port_number = 50051;
85#ifdef ENABLE_CUSTOM_SERVER
86 std::optional<std::string> continuous_server_url;
90typedef IntegrationSettings<IntegrationMode::Grpc> GrpcSettings;
91typedef IntegrationSettings<IntegrationMode::Rest> RestSettings;
94enum class VideoSinkMode :
int {
99std::vector<std::string> GetVideoSinkModeNames();
100bool AbslParseFlag(absl::string_view text, VideoSinkMode* mode, std::string* error);
101std::string AbslUnparseFlag(VideoSinkMode mode);
104 std::string destination;
113 bool headless =
false;
114 int interframe_delay_ms = 20;
115 bool start_with_recording_on =
false;
116 int start_time_offset_ms = 0;
118 bool scale_input =
true;
119 bool binary_graph =
true;
120 std::optional<bool> enable_phasic_bp;
121 std::optional<bool> enable_eda;
122 bool enable_dense_facemesh_points =
false;
123 std::optional<bool> use_full_range_face_detection;
124 std::optional<bool> use_full_pose_landmarks;
125 std::optional<bool> enable_pose_landmark_segmentation;
126 std::optional<bool> enable_micromotion;
128 bool enable_edge_metrics =
false;
129 bool print_graph_contents =
false;
130 bool log_transfer_timing_info =
false;
131 std::optional<std::string> video_output_directory;
132 int verbosity_level = 0;
135template<OperationMode, IntegrationMode>
149template<IntegrationMode TIntegrationMode>
151 union{SpotSettings spot; SpotSettings operation;};
157 union{SpotSettings spot; SpotSettings operation;};
158 RestSettings integration;
160 RestSettings& rest() {
return integration; }
165 union{SpotSettings spot; SpotSettings operation;};
166 union{GrpcSettings grpc; GrpcSettings integration;};
170template<IntegrationMode TIntegrationMode>
172 union{ContinuousSettings continuous; ContinuousSettings operation;};
178 union{ContinuousSettings continuous; ContinuousSettings operation;};
179 RestSettings integration;
181 RestSettings& rest() {
return integration; }
186 union{ContinuousSettings continuous; ContinuousSettings operation;};
187 union{GrpcSettings grpc; GrpcSettings integration;};
Definition settings.hpp:110
Definition settings.hpp:36
Definition settings.hpp:75
Definition settings.hpp:57
Definition settings.hpp:136
Definition settings.hpp:103
Configuration options for constructing a VideoSource.
Definition settings.hpp:23