update OrbbecSDK version to 2.10.2

This commit is contained in:
slz
2026-09-03 15:06:22 +08:00
parent 478b0622f7
commit 27e0c7dc97
22 changed files with 342 additions and 16 deletions
@@ -101,6 +101,16 @@ OB_EXPORT void ob_delete_depth_work_mode_list(ob_depth_work_mode_list *work_mode
*/ */
OB_EXPORT const char *ob_device_get_current_preset_name(const ob_device *device, ob_error **error); OB_EXPORT const char *ob_device_get_current_preset_name(const ob_device *device, ob_error **error);
/**
* @brief Get the version of the current depth work mode.
*
* @param[in] device The device object.
* @param[out] error Pointer to an error object that will be set if an error occurs.
*
* @return const char* The version string, e.g. "1.2.3". Empty string when the device does not
* support versioned modes.
*/
OB_EXPORT const char *ob_device_get_current_preset_depth_work_mode_version(const ob_device *device, ob_error **error);
/** /**
* @brief Get the available preset list. * @brief Get the available preset list.
* @attention After loading the preset, the settings in the preset will set to the device immediately. Therefore, it is recommended to re-read the device * @attention After loading the preset, the settings in the preset will set to the device immediately. Therefore, it is recommended to re-read the device
@@ -113,6 +123,17 @@ OB_EXPORT const char *ob_device_get_current_preset_name(const ob_device *device,
*/ */
OB_EXPORT void ob_device_load_preset(ob_device *device, const char *preset_name, ob_error **error); OB_EXPORT void ob_device_load_preset(ob_device *device, const char *preset_name, ob_error **error);
/**
* @brief Load the preset by preset name and the target depth work mode version.
* When multiple presets share the same name, the version selects the exact one.
*
* @param[in] device The device object.
* @param[in] preset_name The preset name. The name should be one of the preset names returned by @ref ob_device_get_available_preset_list.
* @param[in] version The target depth work mode version string, e.g. "1.2.3". Must not be empty.
* @param[out] error Pointer to an error object that will be set if an error occurs.
*/
OB_EXPORT void ob_device_load_preset_by_depth_work_mode_version(ob_device *device, const char *preset_name, const char *version, ob_error **error);
/** /**
* @brief Load preset from json string. * @brief Load preset from json string.
* @brief After loading the custom preset, the settings in the custom preset will set to the device immediately. * @brief After loading the custom preset, the settings in the custom preset will set to the device immediately.
@@ -217,6 +238,18 @@ OB_EXPORT const char *ob_device_preset_list_get_name(const ob_device_preset_list
*/ */
OB_EXPORT bool ob_device_preset_list_has_preset(const ob_device_preset_list *preset_list, const char *preset_name, ob_error **error); OB_EXPORT bool ob_device_preset_list_has_preset(const ob_device_preset_list *preset_list, const char *preset_name, ob_error **error);
/**
* @brief Get the target depth work mode version of the preset at the specified index.
*
* @param[in] preset_list Data structure containing a list of presets
* @param[in] index Index of the target preset
* @param[out] error Pointer to an error object that will be set if an error occurs.
*
* @return const char* The version string of the depth work mode, e.g. "1.2.3". Empty string when the
* device does not support versioned modes.
*/
OB_EXPORT const char *ob_device_preset_list_get_depth_work_mode_version(const ob_device_preset_list *preset_list, uint32_t index, ob_error **error);
/** /**
* @brief Check if the device supports the frame interleave feature. * @brief Check if the device supports the frame interleave feature.
* *
@@ -80,6 +80,20 @@ OB_EXPORT void ob_enable_net_device_enumeration(ob_context *context, bool enable
*/ */
OB_EXPORT bool ob_force_ip_config(const char *macAddress, ob_net_ip_config config, ob_error **error); OB_EXPORT bool ob_force_ip_config(const char *macAddress, ob_net_ip_config config, ob_error **error);
/**
* @brief Send a GigE Vision Action Command via GVCP.
*
* @param[in] deviceKey Device key to match.
* @param[in] groupKey Group key to match against the camera's Action blocks.
* @param[in] groupMask Group mask, bitwise-ANDed with each Action block's mask.
* @param[in] destIp Destination IPv4 address. NULL or "255.255.255.255" uses broadcast.
* @param[in] scheduledTime PTP absolute timestamp. 0 = immediate trigger, non-zero = scheduled.
* @param[out] error Pointer to an error object that will be populated if an error occurs.
*
* @return bool true on success. Fire-and-forget; does not wait for camera ACK.
*/
OB_EXPORT bool ob_send_action_command(uint32_t deviceKey, uint32_t groupKey, uint32_t groupMask, const char *destIp, uint64_t scheduledTime, ob_error **error);
/** /**
* @brief Set the GVCP port scheme used for network device discovery and control. * @brief Set the GVCP port scheme used for network device discovery and control.
* *
@@ -1578,6 +1578,12 @@ typedef enum {
* @brief The device captures data in software synchronization mode, starting acquisition based on the system time. * @brief The device captures data in software synchronization mode, starting acquisition based on the system time.
*/ */
OB_MULTI_DEVICE_SYNC_MODE_SOFTWARE_SYNCED = 1 << 8, OB_MULTI_DEVICE_SYNC_MODE_SOFTWARE_SYNCED = 1 << 8,
/**
* @brief Group actions trigger mode.
* @note The device waits for a GVCP ACTION_CMD matching the configured action parameters.
*/
OB_MULTI_DEVICE_SYNC_MODE_GROUP_ACTIONS = 1 << 9,
} ob_multi_device_sync_mode, } ob_multi_device_sync_mode,
OBMultiDeviceSyncMode; OBMultiDeviceSyncMode;
@@ -674,6 +674,7 @@ typedef enum {
/** /**
* @brief Enable FPS boost in trigger mode * @brief Enable FPS boost in trigger mode
* Not effective for devices connected via USB 2.x or lower
*/ */
OB_PROP_FPS_BOOST_BOOL = 275, OB_PROP_FPS_BOOST_BOOL = 275,
@@ -695,6 +696,44 @@ typedef enum {
*/ */
OB_PROP_COLOR_AE_AWB_STATUS_INT = 287, OB_PROP_COLOR_AE_AWB_STATUS_INT = 287,
/**
* @brief Number of Action Signal blocks supported by the device
*/
OB_PROP_ACTION_SIGNAL_COUNT_INT = 296,
/**
* @brief Action Device Key, shared across all Action Commands
*/
OB_PROP_ACTION_DEVICE_KEY_INT = 297,
/**
* @brief Maximum number of scheduled Action Commands that can be queued by the device
*/
OB_PROP_ACTION_SCHEDULED_COMMAND_QUEUE_SIZE_INT = 298,
/**
* @brief Action Signal selector, 0..N-1; subsequent selector-scoped reads/writes target the selected block.
* @note The selector is stateful. The selector, Group Key, and Group Mask
* must be written serially as one caller-controlled sequence. Do not
* interleave this sequence with Action Command property operations
* from another thread on the same device.
*/
OB_PROP_ACTION_SELECTOR_INT = 299,
/**
* @brief Action Group Key for the currently selected block.
* @note Must be written serially with OB_PROP_ACTION_SELECTOR_INT and
* OB_PROP_ACTION_GROUP_MASK_INT on the same device.
*/
OB_PROP_ACTION_GROUP_KEY_INT = 300,
/**
* @brief Action Group Mask for the currently selected block.
* @note Must be written serially with OB_PROP_ACTION_SELECTOR_INT and
* OB_PROP_ACTION_GROUP_KEY_INT on the same device.
*/
OB_PROP_ACTION_GROUP_MASK_INT = 301,
/** /**
* @brief Baseline calibration parameters * @brief Baseline calibration parameters
*/ */
@@ -978,6 +1017,11 @@ typedef enum {
*/ */
OB_PROP_DEPTH_AUTO_EXPOSURE_PRIORITY_INT = 2052, OB_PROP_DEPTH_AUTO_EXPOSURE_PRIORITY_INT = 2052,
/**
* @brief Color camera WB control
*/
OB_PROP_COLOR_WB_CTRL_INT = 2053,
/** /**
* @brief Software disparity to depth * @brief Software disparity to depth
*/ */
@@ -157,6 +157,24 @@ public:
return res; return res;
} }
/**
* @brief Send a GigE Vision Action Command via GVCP.
*
* @param deviceKey Device key to match.
* @param groupKey Group key to match.
* @param groupMask Group mask, bitwise-ANDed with Action block masks.
* @param destIp Destination IPv4 address. Defaults to "255.255.255.255" for broadcast.
* @param scheduledTime PTP timestamp. 0 = immediate, non-zero = scheduled.
*
* @return bool true on success.
*/
bool sendActionCommand(uint32_t deviceKey, uint32_t groupKey, uint32_t groupMask, const char *destIp = "255.255.255.255", uint64_t scheduledTime = 0) {
ob_error *error = nullptr;
bool ok = ob_send_action_command(deviceKey, groupKey, groupMask, destIp, scheduledTime, &error);
Error::handle(&error);
return ok;
}
/** /**
* @brief Set the GVCP port scheme used for network device discovery and control. * @brief Set the GVCP port scheme used for network device discovery and control.
* *
@@ -880,6 +880,31 @@ public:
Error::handle(&error); Error::handle(&error);
} }
/**
* @brief load the preset by preset name and the target depth work mode version.
* The version is forwarded to the depth work mode switch when loading the preset.
* @param[in] presetName The preset name to set. The name should be one of the preset names returned by @ref getAvailablePresetList.
* @param[in] version The target depth work mode version string, e.g. "1.2.3". Must not be empty.
*/
void loadPreset(const char *presetName, const char *version) const {
ob_error *error = nullptr;
ob_device_load_preset_by_depth_work_mode_version(impl_, presetName, version, &error);
Error::handle(&error);
}
/**
* @brief Get the version of the current depth work mode.
*
* @return const char* The version string, e.g. "1.2.3". Empty string when the device
* does not support versioned modes.
*/
const char *getCurrentPresetDepthWorkModeVersion() const {
ob_error *error = nullptr;
const char *version = ob_device_get_current_preset_depth_work_mode_version(impl_, &error);
Error::handle(&error);
return version;
}
/** /**
* @brief Get available preset list * @brief Get available preset list
* @brief The available preset list usually defined by the device manufacturer and restores on the device. * @brief The available preset list usually defined by the device manufacturer and restores on the device.
@@ -1836,6 +1861,21 @@ public:
return name; return name;
} }
/**
* @brief Get the depth work mode version of the preset at the specified index
*
* @param[in] index the index of the device preset
*
* @return const char* the version string of the depth work mode, e.g. "1.2.3". Empty string
* when the device does not support versioned modes.
*/
const char *getDepthWorkModeVersion(uint32_t index) {
ob_error *error = nullptr;
const char *version = ob_device_preset_list_get_depth_work_mode_version(impl_, index, &error);
Error::handle(&error);
return version;
}
/** /**
* @brief check if the preset list contains the special name preset. * @brief check if the preset list contains the special name preset.
* @param[in] name The name of the preset * @param[in] name The name of the preset
@@ -177,8 +177,12 @@ public:
* @return std::shared_ptr< Frame > The processed frame. * @return std::shared_ptr< Frame > The processed frame.
*/ */
virtual std::shared_ptr<Frame> process(std::shared_ptr<const Frame> frame) const { virtual std::shared_ptr<Frame> process(std::shared_ptr<const Frame> frame) const {
const ob_frame *frameImpl = nullptr;
if(frame) {
frameImpl = frame->getImpl();
}
ob_error *error = nullptr; ob_error *error = nullptr;
auto result = ob_filter_process(impl_, frame->getImpl(), &error); auto result = ob_filter_process(impl_, frameImpl, &error);
Error::handle(&error); Error::handle(&error);
if(!result) { if(!result) {
return nullptr; return nullptr;
@@ -192,8 +196,12 @@ public:
* @param[in] frame The pending frame. The processing result is returned by the callback function. * @param[in] frame The pending frame. The processing result is returned by the callback function.
*/ */
virtual void pushFrame(std::shared_ptr<Frame> frame) const { virtual void pushFrame(std::shared_ptr<Frame> frame) const {
const ob_frame *frameImpl = nullptr;
if(frame) {
frameImpl = frame->getImpl();
}
ob_error *error = nullptr; ob_error *error = nullptr;
ob_filter_push_frame(impl_, frame->getImpl(), &error); ob_filter_push_frame(impl_, frameImpl, &error);
Error::handle(&error); Error::handle(&error);
} }
@@ -8,12 +8,12 @@ set(CMAKE_IMPORT_FILE_VERSION 1)
# Import target "ob::OrbbecSDK" for configuration "Release" # Import target "ob::OrbbecSDK" for configuration "Release"
set_property(TARGET ob::OrbbecSDK APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) set_property(TARGET ob::OrbbecSDK APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(ob::OrbbecSDK PROPERTIES set_target_properties(ob::OrbbecSDK PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.10.1" IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.10.2"
IMPORTED_SONAME_RELEASE "libOrbbecSDK.so.2" IMPORTED_SONAME_RELEASE "libOrbbecSDK.so.2"
) )
list(APPEND _cmake_import_check_targets ob::OrbbecSDK ) list(APPEND _cmake_import_check_targets ob::OrbbecSDK )
list(APPEND _cmake_import_check_files_for_ob::OrbbecSDK "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.10.1" ) list(APPEND _cmake_import_check_files_for_ob::OrbbecSDK "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.10.2" )
# Commands beyond this point should not need to know the version. # Commands beyond this point should not need to know the version.
set(CMAKE_IMPORT_FILE_VERSION) set(CMAKE_IMPORT_FILE_VERSION)
@@ -9,19 +9,19 @@
# The variable CVF_VERSION must be set before calling configure_file(). # The variable CVF_VERSION must be set before calling configure_file().
set(PACKAGE_VERSION "2.10.1") set(PACKAGE_VERSION "2.10.2")
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
set(PACKAGE_VERSION_COMPATIBLE FALSE) set(PACKAGE_VERSION_COMPATIBLE FALSE)
else() else()
if("2.10.1" MATCHES "^([0-9]+)\\.") if("2.10.2" MATCHES "^([0-9]+)\\.")
set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}") set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0) if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0)
string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}") string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}")
endif() endif()
else() else()
set(CVF_VERSION_MAJOR "2.10.1") set(CVF_VERSION_MAJOR "2.10.2")
endif() endif()
if(PACKAGE_FIND_VERSION_RANGE) if(PACKAGE_FIND_VERSION_RANGE)
@@ -1 +1 @@
libOrbbecSDK.so.2.10.1 libOrbbecSDK.so.2.10.2
@@ -101,6 +101,16 @@ OB_EXPORT void ob_delete_depth_work_mode_list(ob_depth_work_mode_list *work_mode
*/ */
OB_EXPORT const char *ob_device_get_current_preset_name(const ob_device *device, ob_error **error); OB_EXPORT const char *ob_device_get_current_preset_name(const ob_device *device, ob_error **error);
/**
* @brief Get the version of the current depth work mode.
*
* @param[in] device The device object.
* @param[out] error Pointer to an error object that will be set if an error occurs.
*
* @return const char* The version string, e.g. "1.2.3". Empty string when the device does not
* support versioned modes.
*/
OB_EXPORT const char *ob_device_get_current_preset_depth_work_mode_version(const ob_device *device, ob_error **error);
/** /**
* @brief Get the available preset list. * @brief Get the available preset list.
* @attention After loading the preset, the settings in the preset will set to the device immediately. Therefore, it is recommended to re-read the device * @attention After loading the preset, the settings in the preset will set to the device immediately. Therefore, it is recommended to re-read the device
@@ -113,6 +123,17 @@ OB_EXPORT const char *ob_device_get_current_preset_name(const ob_device *device,
*/ */
OB_EXPORT void ob_device_load_preset(ob_device *device, const char *preset_name, ob_error **error); OB_EXPORT void ob_device_load_preset(ob_device *device, const char *preset_name, ob_error **error);
/**
* @brief Load the preset by preset name and the target depth work mode version.
* When multiple presets share the same name, the version selects the exact one.
*
* @param[in] device The device object.
* @param[in] preset_name The preset name. The name should be one of the preset names returned by @ref ob_device_get_available_preset_list.
* @param[in] version The target depth work mode version string, e.g. "1.2.3". Must not be empty.
* @param[out] error Pointer to an error object that will be set if an error occurs.
*/
OB_EXPORT void ob_device_load_preset_by_depth_work_mode_version(ob_device *device, const char *preset_name, const char *version, ob_error **error);
/** /**
* @brief Load preset from json string. * @brief Load preset from json string.
* @brief After loading the custom preset, the settings in the custom preset will set to the device immediately. * @brief After loading the custom preset, the settings in the custom preset will set to the device immediately.
@@ -217,6 +238,18 @@ OB_EXPORT const char *ob_device_preset_list_get_name(const ob_device_preset_list
*/ */
OB_EXPORT bool ob_device_preset_list_has_preset(const ob_device_preset_list *preset_list, const char *preset_name, ob_error **error); OB_EXPORT bool ob_device_preset_list_has_preset(const ob_device_preset_list *preset_list, const char *preset_name, ob_error **error);
/**
* @brief Get the target depth work mode version of the preset at the specified index.
*
* @param[in] preset_list Data structure containing a list of presets
* @param[in] index Index of the target preset
* @param[out] error Pointer to an error object that will be set if an error occurs.
*
* @return const char* The version string of the depth work mode, e.g. "1.2.3". Empty string when the
* device does not support versioned modes.
*/
OB_EXPORT const char *ob_device_preset_list_get_depth_work_mode_version(const ob_device_preset_list *preset_list, uint32_t index, ob_error **error);
/** /**
* @brief Check if the device supports the frame interleave feature. * @brief Check if the device supports the frame interleave feature.
* *
@@ -80,6 +80,20 @@ OB_EXPORT void ob_enable_net_device_enumeration(ob_context *context, bool enable
*/ */
OB_EXPORT bool ob_force_ip_config(const char *macAddress, ob_net_ip_config config, ob_error **error); OB_EXPORT bool ob_force_ip_config(const char *macAddress, ob_net_ip_config config, ob_error **error);
/**
* @brief Send a GigE Vision Action Command via GVCP.
*
* @param[in] deviceKey Device key to match.
* @param[in] groupKey Group key to match against the camera's Action blocks.
* @param[in] groupMask Group mask, bitwise-ANDed with each Action block's mask.
* @param[in] destIp Destination IPv4 address. NULL or "255.255.255.255" uses broadcast.
* @param[in] scheduledTime PTP absolute timestamp. 0 = immediate trigger, non-zero = scheduled.
* @param[out] error Pointer to an error object that will be populated if an error occurs.
*
* @return bool true on success. Fire-and-forget; does not wait for camera ACK.
*/
OB_EXPORT bool ob_send_action_command(uint32_t deviceKey, uint32_t groupKey, uint32_t groupMask, const char *destIp, uint64_t scheduledTime, ob_error **error);
/** /**
* @brief Set the GVCP port scheme used for network device discovery and control. * @brief Set the GVCP port scheme used for network device discovery and control.
* *
@@ -1578,6 +1578,12 @@ typedef enum {
* @brief The device captures data in software synchronization mode, starting acquisition based on the system time. * @brief The device captures data in software synchronization mode, starting acquisition based on the system time.
*/ */
OB_MULTI_DEVICE_SYNC_MODE_SOFTWARE_SYNCED = 1 << 8, OB_MULTI_DEVICE_SYNC_MODE_SOFTWARE_SYNCED = 1 << 8,
/**
* @brief Group actions trigger mode.
* @note The device waits for a GVCP ACTION_CMD matching the configured action parameters.
*/
OB_MULTI_DEVICE_SYNC_MODE_GROUP_ACTIONS = 1 << 9,
} ob_multi_device_sync_mode, } ob_multi_device_sync_mode,
OBMultiDeviceSyncMode; OBMultiDeviceSyncMode;
@@ -674,6 +674,7 @@ typedef enum {
/** /**
* @brief Enable FPS boost in trigger mode * @brief Enable FPS boost in trigger mode
* Not effective for devices connected via USB 2.x or lower
*/ */
OB_PROP_FPS_BOOST_BOOL = 275, OB_PROP_FPS_BOOST_BOOL = 275,
@@ -695,6 +696,44 @@ typedef enum {
*/ */
OB_PROP_COLOR_AE_AWB_STATUS_INT = 287, OB_PROP_COLOR_AE_AWB_STATUS_INT = 287,
/**
* @brief Number of Action Signal blocks supported by the device
*/
OB_PROP_ACTION_SIGNAL_COUNT_INT = 296,
/**
* @brief Action Device Key, shared across all Action Commands
*/
OB_PROP_ACTION_DEVICE_KEY_INT = 297,
/**
* @brief Maximum number of scheduled Action Commands that can be queued by the device
*/
OB_PROP_ACTION_SCHEDULED_COMMAND_QUEUE_SIZE_INT = 298,
/**
* @brief Action Signal selector, 0..N-1; subsequent selector-scoped reads/writes target the selected block.
* @note The selector is stateful. The selector, Group Key, and Group Mask
* must be written serially as one caller-controlled sequence. Do not
* interleave this sequence with Action Command property operations
* from another thread on the same device.
*/
OB_PROP_ACTION_SELECTOR_INT = 299,
/**
* @brief Action Group Key for the currently selected block.
* @note Must be written serially with OB_PROP_ACTION_SELECTOR_INT and
* OB_PROP_ACTION_GROUP_MASK_INT on the same device.
*/
OB_PROP_ACTION_GROUP_KEY_INT = 300,
/**
* @brief Action Group Mask for the currently selected block.
* @note Must be written serially with OB_PROP_ACTION_SELECTOR_INT and
* OB_PROP_ACTION_GROUP_KEY_INT on the same device.
*/
OB_PROP_ACTION_GROUP_MASK_INT = 301,
/** /**
* @brief Baseline calibration parameters * @brief Baseline calibration parameters
*/ */
@@ -978,6 +1017,11 @@ typedef enum {
*/ */
OB_PROP_DEPTH_AUTO_EXPOSURE_PRIORITY_INT = 2052, OB_PROP_DEPTH_AUTO_EXPOSURE_PRIORITY_INT = 2052,
/**
* @brief Color camera WB control
*/
OB_PROP_COLOR_WB_CTRL_INT = 2053,
/** /**
* @brief Software disparity to depth * @brief Software disparity to depth
*/ */
@@ -157,6 +157,24 @@ public:
return res; return res;
} }
/**
* @brief Send a GigE Vision Action Command via GVCP.
*
* @param deviceKey Device key to match.
* @param groupKey Group key to match.
* @param groupMask Group mask, bitwise-ANDed with Action block masks.
* @param destIp Destination IPv4 address. Defaults to "255.255.255.255" for broadcast.
* @param scheduledTime PTP timestamp. 0 = immediate, non-zero = scheduled.
*
* @return bool true on success.
*/
bool sendActionCommand(uint32_t deviceKey, uint32_t groupKey, uint32_t groupMask, const char *destIp = "255.255.255.255", uint64_t scheduledTime = 0) {
ob_error *error = nullptr;
bool ok = ob_send_action_command(deviceKey, groupKey, groupMask, destIp, scheduledTime, &error);
Error::handle(&error);
return ok;
}
/** /**
* @brief Set the GVCP port scheme used for network device discovery and control. * @brief Set the GVCP port scheme used for network device discovery and control.
* *
@@ -880,6 +880,31 @@ public:
Error::handle(&error); Error::handle(&error);
} }
/**
* @brief load the preset by preset name and the target depth work mode version.
* The version is forwarded to the depth work mode switch when loading the preset.
* @param[in] presetName The preset name to set. The name should be one of the preset names returned by @ref getAvailablePresetList.
* @param[in] version The target depth work mode version string, e.g. "1.2.3". Must not be empty.
*/
void loadPreset(const char *presetName, const char *version) const {
ob_error *error = nullptr;
ob_device_load_preset_by_depth_work_mode_version(impl_, presetName, version, &error);
Error::handle(&error);
}
/**
* @brief Get the version of the current depth work mode.
*
* @return const char* The version string, e.g. "1.2.3". Empty string when the device
* does not support versioned modes.
*/
const char *getCurrentPresetDepthWorkModeVersion() const {
ob_error *error = nullptr;
const char *version = ob_device_get_current_preset_depth_work_mode_version(impl_, &error);
Error::handle(&error);
return version;
}
/** /**
* @brief Get available preset list * @brief Get available preset list
* @brief The available preset list usually defined by the device manufacturer and restores on the device. * @brief The available preset list usually defined by the device manufacturer and restores on the device.
@@ -1836,6 +1861,21 @@ public:
return name; return name;
} }
/**
* @brief Get the depth work mode version of the preset at the specified index
*
* @param[in] index the index of the device preset
*
* @return const char* the version string of the depth work mode, e.g. "1.2.3". Empty string
* when the device does not support versioned modes.
*/
const char *getDepthWorkModeVersion(uint32_t index) {
ob_error *error = nullptr;
const char *version = ob_device_preset_list_get_depth_work_mode_version(impl_, index, &error);
Error::handle(&error);
return version;
}
/** /**
* @brief check if the preset list contains the special name preset. * @brief check if the preset list contains the special name preset.
* @param[in] name The name of the preset * @param[in] name The name of the preset
@@ -177,8 +177,12 @@ public:
* @return std::shared_ptr< Frame > The processed frame. * @return std::shared_ptr< Frame > The processed frame.
*/ */
virtual std::shared_ptr<Frame> process(std::shared_ptr<const Frame> frame) const { virtual std::shared_ptr<Frame> process(std::shared_ptr<const Frame> frame) const {
const ob_frame *frameImpl = nullptr;
if(frame) {
frameImpl = frame->getImpl();
}
ob_error *error = nullptr; ob_error *error = nullptr;
auto result = ob_filter_process(impl_, frame->getImpl(), &error); auto result = ob_filter_process(impl_, frameImpl, &error);
Error::handle(&error); Error::handle(&error);
if(!result) { if(!result) {
return nullptr; return nullptr;
@@ -192,8 +196,12 @@ public:
* @param[in] frame The pending frame. The processing result is returned by the callback function. * @param[in] frame The pending frame. The processing result is returned by the callback function.
*/ */
virtual void pushFrame(std::shared_ptr<Frame> frame) const { virtual void pushFrame(std::shared_ptr<Frame> frame) const {
const ob_frame *frameImpl = nullptr;
if(frame) {
frameImpl = frame->getImpl();
}
ob_error *error = nullptr; ob_error *error = nullptr;
ob_filter_push_frame(impl_, frame->getImpl(), &error); ob_filter_push_frame(impl_, frameImpl, &error);
Error::handle(&error); Error::handle(&error);
} }
@@ -8,12 +8,12 @@ set(CMAKE_IMPORT_FILE_VERSION 1)
# Import target "ob::OrbbecSDK" for configuration "Release" # Import target "ob::OrbbecSDK" for configuration "Release"
set_property(TARGET ob::OrbbecSDK APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) set_property(TARGET ob::OrbbecSDK APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(ob::OrbbecSDK PROPERTIES set_target_properties(ob::OrbbecSDK PROPERTIES
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.10.1" IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.10.2"
IMPORTED_SONAME_RELEASE "libOrbbecSDK.so.2" IMPORTED_SONAME_RELEASE "libOrbbecSDK.so.2"
) )
list(APPEND _cmake_import_check_targets ob::OrbbecSDK ) list(APPEND _cmake_import_check_targets ob::OrbbecSDK )
list(APPEND _cmake_import_check_files_for_ob::OrbbecSDK "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.10.1" ) list(APPEND _cmake_import_check_files_for_ob::OrbbecSDK "${_IMPORT_PREFIX}/lib/libOrbbecSDK.so.2.10.2" )
# Commands beyond this point should not need to know the version. # Commands beyond this point should not need to know the version.
set(CMAKE_IMPORT_FILE_VERSION) set(CMAKE_IMPORT_FILE_VERSION)
@@ -9,19 +9,19 @@
# The variable CVF_VERSION must be set before calling configure_file(). # The variable CVF_VERSION must be set before calling configure_file().
set(PACKAGE_VERSION "2.10.1") set(PACKAGE_VERSION "2.10.2")
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
set(PACKAGE_VERSION_COMPATIBLE FALSE) set(PACKAGE_VERSION_COMPATIBLE FALSE)
else() else()
if("2.10.1" MATCHES "^([0-9]+)\\.") if("2.10.2" MATCHES "^([0-9]+)\\.")
set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}") set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0) if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0)
string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}") string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}")
endif() endif()
else() else()
set(CVF_VERSION_MAJOR "2.10.1") set(CVF_VERSION_MAJOR "2.10.2")
endif() endif()
if(PACKAGE_FIND_VERSION_RANGE) if(PACKAGE_FIND_VERSION_RANGE)
+1 -1
View File
@@ -1 +1 @@
libOrbbecSDK.so.2.10.1 libOrbbecSDK.so.2.10.2