Skip to content

Commit ac1f033

Browse files
author
kaatrasa
committed
Fix sai-record-orbbec crash with no device
1 parent 36d8b86 commit ac1f033

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

cpp/orbbec/record.cpp

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,11 +86,17 @@ int main(int argc, char *argv[]) {
8686
std::vector<std::string> arguments(argv, argv + argc);
8787
ob::Context::setLoggerSeverity(OB_LOG_SEVERITY_OFF);
8888

89-
// Create OrbbecSDK pipeline (with default device).
90-
ob::Pipeline obPipeline;
89+
std::shared_ptr<ob::Pipeline> obPipeline;
90+
try {
91+
// Create OrbbecSDK pipeline (with default device).
92+
obPipeline = std::make_shared<ob::Pipeline>();
93+
} catch(ob::Error &e) {
94+
std::cerr << "Make sure your Orbbec device is connected!" << std::endl;
95+
return EXIT_FAILURE;
96+
}
9197

9298
// Create Spectacular AI orbbec plugin configuration (depends on device type).
93-
spectacularAI::orbbecPlugin::Configuration config(obPipeline);
99+
spectacularAI::orbbecPlugin::Configuration config(*obPipeline);
94100

95101
int exposureValue = -1;
96102
int whiteBalanceKelvins = -1;
@@ -140,9 +146,9 @@ int main(int argc, char *argv[]) {
140146
}
141147

142148
// Create vio pipeline using the config & setup orbbec pipeline
143-
spectacularAI::orbbecPlugin::Pipeline vioPipeline(obPipeline, config);
149+
spectacularAI::orbbecPlugin::Pipeline vioPipeline(*obPipeline, config);
144150

145-
auto device = obPipeline.getDevice();
151+
auto device = obPipeline->getDevice();
146152
if (exposureValue >= 0) {
147153
if (!setCameraProperty(device, OB_PROP_COLOR_AUTO_EXPOSURE_BOOL, false, "OB_PROP_COLOR_AUTO_EXPOSURE_BOOL")) return EXIT_FAILURE;
148154
if (!setCameraProperty(device, OB_PROP_COLOR_EXPOSURE_INT, exposureValue, "OB_PROP_COLOR_EXPOSURE_INT")) return EXIT_FAILURE;

0 commit comments

Comments
 (0)