C Reference

Macros

OB_EXTENSION_API
OB_EXTENSION_INTERNAL_API
DEPRECATED
OB_FORMAT_RGB888
OB_FORMAT_MJPEG
FORMAT_MJPEG_TO_I420
FORMAT_MJPEG_TO_NV21
FORMAT_MJPEG_TO_RGB888
FORMAT_MJPEG_TO_BGR888
FORMAT_MJPEG_TO_BGRA
OB_SYNC_STOP
OB_SYNC_SINGLE_MODE
OB_SYNC_ONLINE_HOST_MODE
OB_SYNC_ONLINE_SLAVE_MODE
OB_SYNC_ONLY_MCU_MODE
OB_SYNC_ONLY_IR_MODE
OBMultiDeviceSyncConfig
ob_multi_device_sync_config
OB_MULTI_DEVICE_SYNC_CONFIG
ob_filter_callback
ob_playback_callback
is_ir_sensor(sensor_type)

判断是否为 IR Sensor

isIRSensor
is_ir_stream(stream_type)

判断是否为 IR 数据流

isIRStream
is_ir_frame(frame_type)

判断是否为 IR 数据帧

isIRFrame
_OB_PROPERTY_H_

Structures

struct ob_error

SDK 的对外暴露的错误类,用户可以根据该错误类,获取详细的错误信息

struct OBAccelValue

加速度计及陀螺仪的数据结构体

struct OBBoolPropertyRange

布尔型范围的结构体

struct OBCameraDistortion

畸变参数

struct OBCameraIntrinsic

相机内参

struct OBCameraParam

相机参数

struct OBCameraParam_V0

相机参数 Gemini2 OBCmdVersion –> V0, 2022 年 10 月 13 日 09:09:30

struct OBColorPoint

带有颜色信息的 3D 点结构体

struct OBCompressionParams

图像压缩参数

struct OBD2CTransform

旋转 / 变换矩阵

struct OBDataBundle

OrbbecSDK私有接口, 未来对外开放 功能:保存多版本数据结构的数据内容;

. 通过propertyId和cmdVersion可以决定具体的数据类型;

  1. 通过itemCount可以决定data内容映射的对象数量;

  2. 由于 C 语言和 C++ 支持的特性差异,OBDataBundle 的 data 需要释放资源,导致实现上的差异 C 语言: 由于 C 语言没有模板,因此 data 是 uint8_t 数组,itemTypeSize == 1,dataSize == itemCount; C 语言需要开发者自行将 data 的 byte 数组转换为目标数据结构

C++: C++支持模板,因此data是目标数据结构T的数组,itemTypeSize = sizeof(T),itemCount = dataSize / itemTypeSize;

struct OBDataChunk

数据块结构体,用于数据分块传输

struct OBDepthWorkMode

相机深度工作模式

struct OBDeviceIpAddrConfig

网络设备的 IP 地址配置(ipv4)

struct OBDeviceSyncConfig

设备同步配置

单机内不同 Sensor 的同步 及 多机间同步 配置

struct OBDeviceTemperature

获取设备的温度参数(单位:摄氏度)

struct OBFloatPropertyRange

浮点型范围的结构体

struct OBIntPropertyRange

整形范围的结构体

struct OBPoint

SDK 中 3D 点结构体

struct OBPropertyItem

用于描述每一个属性的特性

struct OBProtocolVersion

控制命令协议版本号

struct OBRect

矩形

struct OBTofExposureThresholdControl

TOF 曝光阈值

Enumerations

enum OBPermissionType

接口 / 属性的访问权限类型

Values:

enumerator OB_PERMISSION_DENY

无访问权限

enumerator OB_PERMISSION_READ

可读

enumerator OB_PERMISSION_WRITE

可写

enumerator OB_PERMISSION_READ_WRITE

可读写

enum OBStatus

错误码

Values:

enumerator OB_STATUS_OK

状态正常

enumerator OB_STATUS_ERROR

状态异常

enum OBLogSeverity

log 等级, 等级越高 Log 过滤力度越大

Values:

enumerator OB_LOG_SEVERITY_DEBUG

调试

enumerator OB_LOG_SEVERITY_INFO

信息

enumerator OB_LOG_SEVERITY_WARN

警告

enumerator OB_LOG_SEVERITY_ERROR

错误

enumerator OB_LOG_SEVERITY_FATAL

致命错误

enumerator OB_LOG_SEVERITY_NONE

无 (关闭 LOG)

enum OBExceptionType

SDK 内部的异常类型,通过异常类型,可以简单判断具体哪个类型的错误 详细的错误 API 接口函数、错误日志请参考 ob_error 的信息

Values:

enumerator OB_EXCEPTION_TYPE_UNKNOWN

未知错误,SDK 未明确定义的错误

enumerator OB_EXCEPTION_TYPE_CAMERA_DISCONNECTED

SDK 的设备断开的异常

enumerator OB_EXCEPTION_TYPE_PLATFORM

在 SDK 适配平台层错误,代表是具体一个系统平台实现上错误

enumerator OB_EXCEPTION_TYPE_INVALID_VALUE

无效的参数类型异常,需要检查输入参数

enumerator OB_EXCEPTION_TYPE_WRONG_API_CALL_SEQUENCE

API 版本不匹配带来的异常

enumerator OB_EXCEPTION_TYPE_NOT_IMPLEMENTED

SDK 及固件还未实现功能

enumerator OB_EXCEPTION_TYPE_IO

SDK 访问 IO 异常错误

enumerator OB_EXCEPTION_TYPE_MEMORY

SDK 的访问和使用内存错误,代表桢分配内存失败 \ endif

enumerator OB_EXCEPTION_TYPE_UNSUPPORTED_OPERATION

SDK 或 RGBD 设备不支持的操作类型错误

enum OBSensorType

描述传感器类型的枚举值

Values:

enumerator OB_SENSOR_UNKNOWN

未知类型传感器

enumerator OB_SENSOR_IR

红外

enumerator OB_SENSOR_COLOR

彩色

enumerator OB_SENSOR_DEPTH

深度

enumerator OB_SENSOR_ACCEL

加速度计

enumerator OB_SENSOR_GYRO

陀螺仪

enumerator OB_SENSOR_IR_LEFT

左红外

enumerator OB_SENSOR_IR_RIGHT

右红外

enum OBStreamType

描述数据流类型的枚举值

Values:

enumerator OB_STREAM_UNKNOWN

未知类型数据流

enumerator OB_STREAM_VIDEO

视频流 (红外、彩色、深度流都属于视频流)

enumerator OB_STREAM_IR

红外流

enumerator OB_STREAM_COLOR

彩色流

enumerator OB_STREAM_DEPTH

深度流

enumerator OB_STREAM_ACCEL

加速度计数据流

enumerator OB_STREAM_GYRO

陀螺仪数据流

enumerator OB_STREAM_IR_LEFT

左路红外流

enumerator OB_STREAM_IR_RIGHT

右路红外流

enum OBFrameType

描述 Frame 类型枚举值

Values:

enumerator OB_FRAME_UNKNOWN

未知类型数据帧

enumerator OB_FRAME_VIDEO

视频帧 (红外、彩色、深度帧都属于视频帧)

enumerator OB_FRAME_IR

红外帧

enumerator OB_FRAME_COLOR

彩色帧

enumerator OB_FRAME_DEPTH

深度帧

enumerator OB_FRAME_ACCEL

加速度计数据帧

enumerator OB_FRAME_SET

帧集合(内部包含多种数据帧)

enumerator OB_FRAME_POINTS

点云帧

enumerator OB_FRAME_GYRO

陀螺仪数据帧

enumerator OB_FRAME_IR_LEFT

左路红外帧

enumerator OB_FRAME_IR_RIGHT

右路红外帧

enum OBFormat

描述像素格式的枚举值

Values:

enumerator OB_FORMAT_YUYV

YUYV 格式

enumerator OB_FORMAT_YUY2

YUY2 格式 (实际格式与 YUYV 相同)

enumerator OB_FORMAT_UYVY

UYVY 格式

enumerator OB_FORMAT_NV12

NV12 格式

enumerator OB_FORMAT_NV21

NV21 格式

enumerator OB_FORMAT_MJPG

MJPEG 编码格式

enumerator OB_FORMAT_H264

H.264 编码格式

enumerator OB_FORMAT_H265

H.265 编码格式

enumerator OB_FORMAT_Y16

Y16 格式,单通道 16bit 深度

enumerator OB_FORMAT_Y8

Y8 格式,单通道 8bit 深度

enumerator OB_FORMAT_Y10

Y10 格式,单通道 10bit 深度 (SDK 默认会解包成 Y16)

enumerator OB_FORMAT_Y11

Y11 格式,单通道 11bit 深度 (SDK 默认会解包成 Y16)

enumerator OB_FORMAT_Y12

Y12 格式,单通道 12bit 深度 (SDK 默认会解包成 Y16)

enumerator OB_FORMAT_GRAY

GRAY 灰度 (实际格式与 YUYV 相同)

enumerator OB_FORMAT_HEVC

HEVC 编码格式 (实际格式与 H265 相同)

enumerator OB_FORMAT_I420

I420 格式

enumerator OB_FORMAT_ACCEL

加速度数据格式

enumerator OB_FORMAT_GYRO

陀螺仪数据格式

enumerator OB_FORMAT_POINT

纯 x-y-z 三维坐标点格式

enumerator OB_FORMAT_RGB_POINT

带 RGB 信息的 x-y-z 三维坐标点格式

enumerator OB_FORMAT_RLE

RLE 压测格式 (SDK 默认会解包成 Y16)

enumerator OB_FORMAT_RGB

RGB888 格式 (实际 RGB888)

enumerator OB_FORMAT_BGR

BGR 格式 (实际 BRG888)

enumerator OB_FORMAT_Y14

Y14 格式,单通道 14bit 深度 (SDK 默认会解包成 Y16)

enumerator OB_FORMAT_BGRA

BGRA格式

enumerator OB_FORMAT_COMPRESSED

压缩格式

enumerator OB_FORMAT_UNKNOWN

未知格式

enum OBUpgradeState

固件升级状态

Values:

enumerator STAT_FILE_TRANSFER

文件传输中

enumerator STAT_DONE

升级完成

enumerator STAT_IN_PROGRESS

升级中

enumerator STAT_START

开始升级

enumerator STAT_VERIFY_IMAGE

镜像文件校验中

enumerator ERR_VERIFY

校验失败

enumerator ERR_PROGRAM

程序执行失败

enumerator ERR_ERASE

Flash 参数失败

enumerator ERR_FLASH_TYPE

Flash 类型错误

enumerator ERR_IMAGE_SIZE

镜像文件大小错误

enumerator ERR_OTHER

其他错误

enumerator ERR_DDR

DDR 访问错误

enumerator ERR_TIMEOUT

超时错误

enum OBFileTranState

文件传输状态

Values:

enumerator FILE_TRAN_STAT_TRANSFER

文件传输中

enumerator FILE_TRAN_STAT_DONE

文件传输成功

enumerator FILE_TRAN_STAT_PREPAR

准备中

enumerator FILE_TRAN_ERR_DDR

DDR 访问失败

enumerator FILE_TRAN_ERR_NOT_ENOUGH_SPACE

目标空间不足错误

enumerator FILE_TRAN_ERR_PATH_NOT_WRITABLE

目标路径不可写

enumerator FILE_TRAN_ERR_MD5_ERROR

MD5 校验错误

enumerator FILE_TRAN_ERR_WRITE_FLASH_ERROR

写 Flash 错误

enumerator FILE_TRAN_ERR_TIMEOUT

超时错误

enum OBDataTranState

数据传输状态

Values:

enumerator DATA_TRAN_STAT_STOPPED

数据传输终止

enumerator DATA_TRAN_STAT_DONE

数据传输完成

enumerator DATA_TRAN_STAT_VERIFYING

数据校验中

enumerator DATA_TRAN_STAT_TRANSFERRING

数据传输中

enumerator DATA_TRAN_ERR_BUSY

传输忙

enumerator DATA_TRAN_ERR_UNSUPPORTED

不支持

enumerator DATA_TRAN_ERR_TRAN_FAILED

传输失败

enumerator DATA_TRAN_ERR_VERIFY_FAILED

检验失败

enumerator DATA_TRAN_ERR_OTHER

其他错误 \ endif

enum OBAlignMode

对齐模式

Values:

enumerator ALIGN_DISABLE

关闭对齐

enumerator ALIGN_D2C_HW_MODE

硬件 D2C 对齐模式

enumerator ALIGN_D2C_SW_MODE

软件 D2C 对齐模式

enum OBConvertFormat

格式转换类型枚举

Values:

enumerator FORMAT_YUYV_TO_RGB888

YUYV 转换为 RGB888

enumerator FORMAT_I420_TO_RGB888

I420 转换为 RGB888

enumerator FORMAT_NV21_TO_RGB888

NV21 转换为 RGB888

enumerator FORMAT_NV12_TO_RGB888

NV12 转换为 RGB888

enumerator FORMAT_MJPG_TO_I420

MJPG 转换为 I420

enumerator FORMAT_RGB888_TO_BGR

RGB888 转换为 BGR

enumerator FORMAT_MJPG_TO_NV21

MJPG 转换为 NV21

enumerator FORMAT_MJPG_TO_RGB888

MJPG 转换为 RGB888

enumerator FORMAT_MJPG_TO_BGR888

MJPG 转换为 BGR888

enumerator FORMAT_MJPG_TO_BGRA

MJPG 转换为 BGRA

enumerator FORMAT_UYVY_TO_RGB888

MJPG 转换为 RGB888

enumerator FORMAT_BGR_TO_RGB

BGR 转换为 RGB

enum OBGyroSampleRate

IMU 采样率值的枚举 (陀螺仪或加速度计)

Values:

enumerator OB_SAMPLE_RATE_1_5625_HZ

1.5625Hz

enumerator OB_SAMPLE_RATE_3_125_HZ

3.125Hz

enumerator OB_SAMPLE_RATE_6_25_HZ

6.25Hz

enumerator OB_SAMPLE_RATE_12_5_HZ

12.5Hz

enumerator OB_SAMPLE_RATE_25_HZ

25Hz

enumerator OB_SAMPLE_RATE_50_HZ

50Hz

enumerator OB_SAMPLE_RATE_100_HZ

100Hz

enumerator OB_SAMPLE_RATE_200_HZ

200Hz

enumerator OB_SAMPLE_RATE_500_HZ

500Hz

enumerator OB_SAMPLE_RATE_1_KHZ

1KHz

enumerator OB_SAMPLE_RATE_2_KHZ

2KHz

enumerator OB_SAMPLE_RATE_4_KHZ

4KHz

enumerator OB_SAMPLE_RATE_8_KHZ

8KHz

enumerator OB_SAMPLE_RATE_16_KHZ

16KHz

enumerator OB_SAMPLE_RATE_32_KHZ

32Hz

enum OBGyroFullScaleRange

陀螺仪量程的枚举

Values:

enumerator OB_GYRO_FS_16dps

16 度每秒

enumerator OB_GYRO_FS_31dps

31 度每秒

enumerator OB_GYRO_FS_62dps

62 度每秒

enumerator OB_GYRO_FS_125dps

125 度每秒

enumerator OB_GYRO_FS_250dps

250 度每秒

enumerator OB_GYRO_FS_500dps

500 度每秒

enumerator OB_GYRO_FS_1000dps

1000 度每秒

enumerator OB_GYRO_FS_2000dps

2000 度每秒

enum OBAccelFullScaleRange

加速度计量程枚举

Values:

enumerator OB_ACCEL_FS_2g

1 倍重力加速度

enumerator OB_ACCEL_FS_4g

4 倍重力加速度

enumerator OB_ACCEL_FS_8g

8 倍重力加速度

enumerator OB_ACCEL_FS_16g

16 倍重力加速度 \ endif

enum OBDepthCroppingMode

深度裁切模式枚举

Values:

enumerator DEPTH_CROPPING_MODE_AUTO

自动模式

enumerator DEPTH_CROPPING_MODE_CLOSE

关闭裁切

enumerator DEPTH_CROPPING_MODE_OPEN

打开裁切

enum OBDeviceType

设备类型枚举

Values:

enumerator OB_STRUCTURED_LIGHT_MONOCULAR_CAMERA

单目结构光相机

enumerator OB_STRUCTURED_LIGHT_BINOCULAR_CAMERA

双目结构光相机

enumerator OB_TOF_CAMERA

TOF 相机

enum OBMediaType

录制回放感兴趣数据类型

Values:

enumerator OB_MEDIA_COLOR_STREAM

彩色流 \ endif

enumerator OB_MEDIA_DEPTH_STREAM

深度流

enumerator OB_MEDIA_IR_STREAM

红外流

enumerator OB_MEDIA_GYRO_STREAM

陀螺仪数据流

enumerator OB_MEDIA_ACCEL_STREAM

加速度计数据流

enumerator OB_MEDIA_CAMERA_PARAM

相机参数

enumerator OB_MEDIA_DEVICE_INFO

设备信息

enumerator OB_MEDIA_STREAM_INFO

流信息

enumerator OB_MEDIA_IR_LEFT_STREAM

左 IR 流

enumerator OB_MEDIA_IR_RIGHT_STREAM

右 IR 流

enumerator OB_MEDIA_ALL

所有媒体数据类型

enum OBMediaState

录制回放状态

Values:

enumerator OB_MEDIA_BEGIN

开始

enumerator OB_MEDIA_PAUSE

暂停

enumerator OB_MEDIA_RESUME

继续

enumerator OB_MEDIA_END

终止

enum OBDepthPrecisionLevel

深度精度等级

Values:

enumerator OB_PRECISION_1MM

1mm

enumerator OB_PRECISION_0MM8

0.8mm

enumerator OB_PRECISION_0MM4

0.4mm

enumerator OB_PRECISION_0MM1

0.1mm

enumerator OB_PRECISION_0MM2

0.2mm

enumerator OB_PRECISION_COUNT
enum OBTofFilterRange

tof 滤波场景范围

Values:

enumerator OB_TOF_FILTER_RANGE_CLOSE

近距离范围

enumerator OB_TOF_FILTER_RANGE_MIDDLE

中距离范围

enumerator OB_TOF_FILTER_RANGE_LONG

远距离范围

enumerator OB_TOF_FILTER_RANGE_DEBUG

Debug 模式

enum OBCompressionMode

Values:

enumerator OB_COMPRESSION_LOSSLESS
enumerator OB_COMPRESSION_LOSSY
enum OBSyncMode

同步模式

Values:

enumerator OB_SYNC_MODE_CLOSE

同步关闭

单机,不接收外部触发信号,不输出触发信号

单机内各 Sensor 自触发

enumerator OB_SYNC_MODE_STANDALONE

单机模式

单机,不接收外部触发信号,不输出触发信号

单机内 RGB 做主: RGB -> IR/Depth/TOF

enumerator OB_SYNC_MODE_PRIMARY

主机模式

主机,不接收外部触发信号,向外输出触发信号

单机内 RGB 做主:RGB -> IR/Depth/TOF

Attention

部分设备型号不支持该模式: Gemini 2 设备设置该模式会自动变更为 OB_SYNC_MODE_PRIMARY_MCU_TRIGGER 模式

enumerator OB_SYNC_MODE_SECONDARY

从机模式

从机,接收外部触发信号,同时向外中继输出触发信号

单机内不同 Sensor 各自接收触发信号:ext trigger -> RGB && ext trigger -> IR/Depth/TOF

Attention

当前 Gemini 2 设备设置为该模式后,各Sensor在开流后,接收到第一次外部触发信号即开始按照设置的帧率进行定时自触发,直到流关闭

enumerator OB_SYNC_MODE_PRIMARY_MCU_TRIGGER

MCU 主模式

主机,不接收外部触发信号,向外输出触发信号

单机内 MCU 做主: MCU -> RGB && MCU -> IR/Depth/TOF

enumerator OB_SYNC_MODE_PRIMARY_IR_TRIGGER

IR 主模式

主机,不接收外部触发信号,向外输出触发信号

单机内 IR 做主:IR/Depth/TOF -> RGB

enumerator OB_SYNC_MODE_PRIMARY_SOFT_TRIGGER

软触发模式

主机,由软件控制触发(接收上位机命令触发),同时向外中继输出触发信号

单机内不同 Sensor 各自接收触发信号:soft trigger -> RGB && soft trigger -> IR/Depth/TOF

Attention

当前仅 Gemini2 支持该模式

enumerator OB_SYNC_MODE_SECONDARY_SOFT_TRIGGER

软触发从机模式

从机,接收外部触发信号(外部触发信号来自软触发的主机),同时向外中继输出触发信号。

单机内不同 Sensor 各自接收触发信号:ext trigger -> RGB && ext trigger -> IR/Depth/TOF

Attention

当前仅 Gemini2 支持该模式

enumerator OB_SYNC_MODE_UNKNOWN

未知类型

enum OB_CMD_VERSION

与属性ID关联的协议版本

Values:

enumerator OB_CMD_VERSION_V0

版本1.0

enumerator OB_CMD_VERSION_V1

版本2.0

enumerator OB_CMD_VERSION_V2

版本3.0

enumerator OB_CMD_VERSION_V3

版本4.0

enumerator OB_CMD_VERSION_NOVERSION
enumerator OB_CMD_VERSION_INVALID

无效版本

enum OBCommunicationType

设备通信模式

Values:

enumerator OB_COMM_USB

USB

enumerator OB_COMM_NET

以太网

enum OBUSBPowerState

USB电源连接状态

Values:

enumerator OB_USB_POWER_NO_PLUGIN

未插入

enumerator OB_USB_POWER_5V_0A9

5V/0.9A

enumerator OB_USB_POWER_5V_1A5

5V/1.5A

enumerator OB_USB_POWER_5V_3A0

5V/3.0A

enum OBDCPowerState

DC电源连接状态

Values:

enumerator OB_DC_POWER_NO_PLUGIN

未插入

enumerator OB_DC_POWER_PLUGIN

已插入

enum ob_rotate_degree_type

旋转角度

Values:

enumerator OB_ROTATE_DEGREE_0

旋转0度

enumerator OB_ROTATE_DEGREE_90

旋转90度

enumerator OB_ROTATE_DEGREE_180

旋转180度

enumerator OB_ROTATE_DEGREE_270

旋转270度

enum ob_power_line_freq_mode

电力线频率模式,用于Color相机防闪烁功能配置

Values:

enumerator OB_POWER_LINE_FREQ_MODE_CLOSE

关闭

enumerator OB_POWER_LINE_FREQ_MODE_50HZ

50Hz

enumerator OB_POWER_LINE_FREQ_MODE_60HZ

60Hz

enum OB_FRAME_AGGREGATE_OUTPUT_MODE

帧汇聚输出模式

Values:

enumerator OB_FRAME_AGGREGATE_OUTPUT_FULL_FRAME_REQUIRE

只有包含所有类型数据帧的FrameSet才会被输出

enumerator OB_FRAME_AGGREGATE_OUTPUT_COLOR_FRAME_REQUIRE

必须包含Color类似数据帧的FrameSet才会被输出

适用于Color使用H264、H265等帧间编码格式开流的情况

Attention

该模式下,用户从获取到的FrameSet上获取非Color类型数据帧可能会返回空

enumerator OB_FRAME_AGGREGATE_OUTPUT_ANY_SITUATION

任何情况的FrameSet都会被输出

Attention

该模式下,用户从获取到的FrameSet上获取指定类型数据帧可能会返回空

enum OBPropertyID

描述设备所有的属性控制命令的枚举值

Values:

enumerator OB_PROP_LDP_BOOL

LDP开关

enumerator OB_PROP_LASER_BOOL

激光开关

enumerator OB_PROP_LASER_PULSE_WIDTH_INT

读写激光Time值(脉宽)

enumerator OB_PROP_LASER_CURRENT_FLOAT

激光电流

enumerator OB_PROP_FLOOD_BOOL

泛光灯开关

enumerator OB_PROP_FLOOD_LEVEL_INT

泛光灯等级

enumerator OB_PROP_DEPTH_MIRROR_BOOL

深度镜像

enumerator OB_PROP_DEPTH_FLIP_BOOL

深度翻转

enumerator OB_PROP_DEPTH_POSTFILTER_BOOL

深度Postfilter

enumerator OB_PROP_DEPTH_HOLEFILTER_BOOL

深度Holefilter

enumerator OB_PROP_IR_MIRROR_BOOL

IR 镜像

enumerator OB_PROP_IR_FLIP_BOOL

IR 翻转

enumerator OB_PROP_MIN_DEPTH_INT

最小深度阈值

enumerator OB_PROP_MAX_DEPTH_INT

最大深度阈值

enumerator OB_PROP_DEPTH_SOFT_FILTER_BOOL

软件滤波开关

enumerator OB_PROP_LDP_STATUS_BOOL

LDP状态

enumerator OB_PROP_DEPTH_MAX_DIFF_INT

soft filter maxdiff param

enumerator OB_PROP_DEPTH_MAX_SPECKLE_SIZE_INT

soft filter maxSpeckleSize

enumerator OB_PROP_DEPTH_ALIGN_HARDWARE_BOOL

硬件d2c开

enumerator OB_PROP_TIMESTAMP_OFFSET_INT

时间戳调校

enumerator OB_PROP_HARDWARE_DISTORTION_SWITCH_BOOL

硬件去畸变开关 Rectify

enumerator OB_PROP_FAN_WORK_MODE_INT

风扇开关模式

enumerator OB_PROP_DEPTH_ALIGN_HARDWARE_MODE_INT

多分辨率D2C模式

enumerator OB_PROP_ANTI_COLLUSION_ACTIVATION_STATUS_BOOL

防串货状态

enumerator OB_PROP_DEPTH_PRECISION_LEVEL_INT

深度精度等级,可能会改变深度帧数据单位,需要通过DepthFrame的ValueScale接口确认

enumerator OB_PROP_TOF_FILTER_RANGE_INT

tof滤波场景范围配置

enumerator OB_PROP_LASER_MODE_INT

激光点亮模式,固件端目前只返回 1: IR Drive, 2: Torch

enumerator OB_PROP_RECTIFY2_BOOL

brt2r-rectify功能开关(brt2r是mx6600上的一个特殊模块),0:关闭, 1:打开

enumerator OB_PROP_COLOR_MIRROR_BOOL

彩色镜像

enumerator OB_PROP_COLOR_FLIP_BOOL

彩色翻转

enumerator OB_PROP_INDICATOR_LIGHT_BOOL

指示灯开关,0:关闭, 1:打开

enumerator OB_PROP_DISPARITY_TO_DEPTH_BOOL

视差转深度开关, 0:关闭,深度流输出视差图; 1. 打开,深度流输出深度图

enumerator OB_PROP_BRT_BOOL

BRT功能开关(抗背景干扰),0:关闭, 1:打开

enumerator OB_PROP_WATCHDOG_BOOL

看门狗功能开关,0:关闭, 1:打开

enumerator OB_PROP_EXTERNAL_SIGNAL_RESET_BOOL

外部信号触发重启功能开关,0:关闭, 1:打开

enumerator OB_PROP_HEARTBEAT_BOOL

心跳监测功能开关,0:关闭, 1:打开

enumerator OB_PROP_DEPTH_CROPPING_MODE_INT

深度裁剪模式设备: OB_DEPTH_CROPPING_MODE

enumerator OB_PROP_D2C_PREPROCESS_BOOL

D2C前处理开关(如RGB裁剪),0:关闭,1:打开

enumerator OB_PROP_RGB_CUSTOM_CROP_BOOL

自定义RGB裁剪开关,0为关闭,1为开启自定义裁剪,下发ROI裁剪区域

enumerator OB_PROP_DEVICE_WORK_MODE_INT

设备工作模式(功耗)

enumerator OB_PROP_DEVICE_COMMUNICATION_TYPE_INT

设备通信方式 0: USB; 1: Ethernet(RTSP)

enumerator OB_PROP_SWITCH_IR_MODE_INT

切换IR模式,0为主动IR模式,1为被动IR模式

enumerator OB_PROP_LASER_ENERGY_LEVEL_INT

激光能量层级

enumerator OB_PROP_LDP_MEASURE_DISTANCE_INT

获取激光近距离保护的测量值,单位:mm

enumerator OB_PROP_TIMER_RESET_SIGNAL_BOOL

触发设备时间归零

enumerator OB_PROP_TIMER_RESET_TRIGGLE_OUT_ENABLE_BOOL

向外发送时间归零信号开关, true:打开, false: 关闭; 默认为true

enumerator OB_PROP_TIMER_RESET_DELAY_US_INT

设置硬件时间归零延迟时间, 单位: 微妙

enumerator OB_PROP_CAPTURE_IMAGE_SIGNAL_BOOL

软触发信号, 触发抓拍图片

enumerator OB_PROP_IR_RIGHT_MIRROR_BOOL

右IR的镜像

enumerator OB_PROP_CAPTURE_IMAGE_FRAME_NUMBER_INT

单次软触发抓拍的帧数, 范围:[1, 255]

enumerator OB_PROP_IR_RIGHT_FLIP_BOOL

右IR的翻转, true:翻转,false:不翻转;默认为false

enumerator OB_PROP_COLOR_ROTATE_INT

彩色旋转, 翻转角度范围{0, 90, 180, 270}, 默认为0

enumerator OB_PROP_IR_ROTATE_INT

IR旋转, 翻转角度范围{0, 90, 180, 270}, 默认为0

enumerator OB_PROP_IR_RIGHT_ROTATE_INT

右IR旋转, 翻转角度范围{0, 90, 180, 270}, 默认为0

enumerator OB_PROP_DEPTH_ROTATE_INT

深度旋转, 翻转角度范围{0, 90, 180, 270}, 默认为0

enumerator OB_PROP_LASER_HW_ENERGY_LEVEL_INT

查询激光硬件的实际能量层级, OB_PROP_LASER_ENERGY_LEVEL_INT(99)指令用于设置能级,该指令用于查询设置后硬件实际能级

enumerator OB_PROP_USB_POWER_STATE_INT

USB供电状态,状态值枚举: OBUSBPowerState

enumerator OB_PROP_DC_POWER_STATE_INT

DC供电状态,状态值枚举: OBDCPowerState

enumerator OB_STRUCT_BASELINE_CALIBRATION_PARAM

基线标定参数

enumerator OB_STRUCT_DEVICE_TEMPERATURE

设备温度信息

enumerator OB_STRUCT_TOF_EXPOSURE_THRESHOLD_CONTROL

TOF曝光阈值范围

enumerator OB_STRUCT_DEVICE_SERIAL_NUMBER

获取/设置序列号

enumerator OB_STRUCT_DEVICE_TIME

获取/设置设备时间

enumerator OB_STRUCT_MULTI_DEVICE_SYNC_CONFIG

多设备同步模式和参数配置

enumerator OB_STRUCT_RGB_CROP_ROI

RGB裁剪ROI

enumerator OB_STRUCT_DEVICE_IP_ADDR_CONFIG

设备ip地址配置

enumerator OB_STRUCT_CURRENT_DEPTH_ALG_MODE

当前的相机深度模式

enumerator OB_STRUCT_DEPTH_PRECISION_SUPPORT_LIST

深度精度等级列表,返回uin16_t数组,对应精度等级的枚举定义

enumerator OB_PROP_COLOR_AUTO_EXPOSURE_BOOL

彩色相机自动曝光

enumerator OB_PROP_COLOR_EXPOSURE_INT

彩色相机曝光调节

enumerator OB_PROP_COLOR_GAIN_INT

彩色相机增益调节

enumerator OB_PROP_COLOR_AUTO_WHITE_BALANCE_BOOL

彩色相机自动白平衡

enumerator OB_PROP_COLOR_WHITE_BALANCE_INT

彩色相机白平衡调节

enumerator OB_PROP_COLOR_BRIGHTNESS_INT

彩色相机亮度调节

enumerator OB_PROP_COLOR_SHARPNESS_INT

彩色相机锐度调节

enumerator OB_PROP_COLOR_SATURATION_INT

彩色相机饱和度调节

enumerator OB_PROP_COLOR_CONTRAST_INT

彩色相机对比度调节

enumerator OB_PROP_COLOR_GAMMA_INT

彩色相机伽马值调节

enumerator OB_PROP_COLOR_ROLL_INT

彩色相机图像旋转

enumerator OB_PROP_COLOR_AUTO_EXPOSURE_PRIORITY_INT

彩色相机自动曝光优先

enumerator OB_PROP_COLOR_BACKLIGHT_COMPENSATION_INT

彩色相机亮度补偿

enumerator OB_PROP_COLOR_HUE_INT

彩色相机彩色色调

enumerator OB_PROP_COLOR_POWER_LINE_FREQUENCY_INT

彩色相机电力线路频率

enumerator OB_PROP_DEPTH_AUTO_EXPOSURE_BOOL

深度相机自动曝光(某些型号设备下会同步设置红外相机)

enumerator OB_PROP_DEPTH_EXPOSURE_INT

深度相机曝光调节(某些型号设备下会同步设置红外相机)

enumerator OB_PROP_DEPTH_GAIN_INT

深度相机增益调节(某些型号设备下会同步设置红外相机)

enumerator OB_PROP_GYRO_ODR_INT

get/set当前陀螺仪的采样率

enumerator OB_PROP_ACCEL_ODR_INT

get/set当前加速度计的采样率

enumerator OB_PROP_GYRO_FULL_SCALE_INT

get/set当前陀螺仪的量程

enumerator OB_PROP_ACCEL_FULL_SCALE_INT

get/set当前加速度计的量程

enumerator OB_PROP_IR_AUTO_EXPOSURE_BOOL

红外相机自动曝光(某些型号设备下会同步设置深度相机)

enumerator OB_PROP_IR_EXPOSURE_INT

红外相机曝光调节(某些型号设备下会同步设置深度相机)

enumerator OB_PROP_IR_GAIN_INT

红外相机增益调节(某些型号设备下会同步设置深度相机)

enumerator OB_PROP_IR_CHANNEL_DATA_SOURCE_INT

读写IR通道的输出目标sensor,不支持时返回错误。0: 左侧IR sensor,1: 右侧IR sensor;

enumerator OB_PROP_DEPTH_RM_FILTER_BOOL

深度效果去畸变, true:打开,false:关闭, 与D2C功能互斥。软硬件D2C开启时,不能使用mask功能

enumerator OB_PROP_SDK_DISPARITY_TO_DEPTH_BOOL

视差转深度

enumerator OB_PROP_SDK_DEPTH_FRAME_UNPACK_BOOL

Depth数据解包功能开关(每次开流都会默认打开,支持RLE/Y10/Y11/Y12/Y14格式)

enumerator OB_PROP_SDK_IR_FRAME_UNPACK_BOOL

Ir数据解包功能开关(每次开流都会默认打开,支持RLE/Y10/Y11/Y12/Y14格式)

enumerator OB_PROP_SDK_ACCEL_FRAME_TRANSFORMED_BOOL

Accel数据转换功能开关(默认打开)

enumerator OB_PROP_SDK_GYRO_FRAME_TRANSFORMED_BOOL

Gyro数据转换功能开关(默认打开)

enumerator OB_PROP_SDK_IR_LEFT_FRAME_UNPACK_BOOL

[左]Ir数据解包功能开关(每次开流都会默认打开,支持RLE/Y10/Y11/Y12/Y14格式)

enumerator OB_PROP_SDK_IR_RIGHT_FRAME_UNPACK_BOOL

[右]Ir数据解包功能开关(每次开流都会默认打开,支持RLE/Y10/Y11/Y12/Y14格式)

enumerator OB_RAW_DATA_CAMERA_CALIB_JSON_FILE

从设备端读取的标定Json文件(Femto Mega, read only)

enum OBPropertyType

用于描述所有属性设置的数据类型

Values:

enumerator OB_BOOL_PROPERTY

bool类型数据的属性

enumerator OB_INT_PROPERTY

int类型数据的属性

enumerator OB_FLOAT_PROPERTY

float类型数据的属性

enumerator OB_STRUCT_PROPERTY

struct类型数据的属性

Typedefs

typedef struct ContextImpl ob_context
typedef struct DeviceImpl ob_device
typedef struct DeviceInfoImpl ob_device_info
typedef struct DeviceListImpl ob_device_list
typedef struct CameraParamListImpl ob_camera_param_list
typedef struct SensorImpl ob_sensor
typedef struct SensorListImpl ob_sensor_list
typedef struct StreamProfileImpl ob_stream_profile
typedef struct StreamProfileListImpl ob_stream_profile_list
typedef struct CFrameImpl ob_frame
typedef struct FilterImpl ob_filter
typedef struct PipelineImpl ob_pipeline
typedef struct ConfigImpl ob_config
typedef struct RecorderImpl ob_recorder
typedef struct PlaybackImpl ob_playback
typedef struct OBDepthWorkModeListImpl ob_depth_work_mode_list
typedef enum OBPermissionType ob_permission_type
typedef enum OBStatus ob_status
typedef enum OBLogSeverity ob_log_severity
typedef enum OBLogSeverity DEVICE_LOG_SEVERITY_LEVEL
typedef enum OBLogSeverity OBDeviceLogSeverityLevel
typedef enum OBLogSeverity ob_device_log_severity_level
typedef enum OBExceptionType ob_exception_type
typedef struct ob_error ob_error

SDK 的对外暴露的错误类,用户可以根据该错误类,获取详细的错误信息

typedef enum OBSensorType ob_sensor_type
typedef enum OBStreamType ob_stream_type
typedef enum OBFrameType ob_frame_type
typedef enum OBFormat ob_format
typedef enum OBUpgradeState ob_upgrade_state
typedef enum OBFileTranState ob_file_tran_state
typedef enum OBDataTranState ob_data_tran_state
typedef struct OBDataChunk ob_data_chunk
typedef struct OBIntPropertyRange ob_int_property_range
typedef struct OBFloatPropertyRange ob_float_property_range
typedef struct OBBoolPropertyRange ob_bool_property_range
typedef struct OBCameraIntrinsic ob_camera_intrinsic
typedef struct OBCameraDistortion ob_camera_distortion
typedef struct OBD2CTransform ob_d2c_transform
typedef struct OBCameraParam ob_camera_param
typedef struct OBCameraParam_V0 ob_camera_param_v0
typedef enum OBAlignMode ob_align_mode
typedef struct OBRect ob_rect
typedef enum OBConvertFormat ob_convert_format
typedef enum OBGyroSampleRate ob_gyro_sample_rate
typedef enum OBGyroSampleRate OBAccelSampleRate
typedef enum OBGyroSampleRate ob_accel_sample_rate
typedef enum OBGyroSampleRate OB_SAMPLE_RATE
typedef enum OBGyroFullScaleRange ob_gyro_full_scale_range
typedef enum OBGyroFullScaleRange OB_GYRO_FULL_SCALE_RANGE
typedef enum OBAccelFullScaleRange ob_accel_full_scale_range
typedef enum OBAccelFullScaleRange OB_ACCEL_FULL_SCALE_RANGE
typedef struct OBAccelValue OBGyroValue
typedef struct OBAccelValue ob_accel_value
typedef struct OBAccelValue ob_gyro_value
typedef uint64_t OBDeviceState

设备状态码

typedef uint64_t ob_device_state
typedef struct OBDeviceTemperature ob_device_temperature
typedef struct OBDeviceTemperature DEVICE_TEMPERATURE
typedef enum OBDepthCroppingMode ob_depth_cropping_mode
typedef enum OBDepthCroppingMode OB_DEPTH_CROPPING_MODE
typedef enum OBDeviceType ob_device_type
typedef enum OBDeviceType OB_DEVICE_TYPE
typedef enum OBMediaType ob_media_type
typedef enum OBMediaType OB_MEDIA_TYPE
typedef enum OBMediaState ob_media_state
typedef enum OBMediaState OB_MEDIA_STATE_EM
typedef enum OBDepthPrecisionLevel ob_depth_precision_level
typedef enum OBDepthPrecisionLevel OB_DEPTH_PRECISION_LEVEL
typedef enum OBTofFilterRange ob_tof_filter_range
typedef enum OBTofFilterRange TOF_FILTER_RANGE
typedef struct OBPoint ob_point
typedef struct OBColorPoint ob_color_point
typedef enum OBCompressionMode ob_compression_mode
typedef enum OBCompressionMode OB_COMPRESSION_MODE
typedef struct OBCompressionParams ob_compression_params
typedef struct OBCompressionParams OB_COMPRESSION_PARAMS
typedef struct OBTofExposureThresholdControl ob_tof_exposure_threshold_control
typedef struct OBTofExposureThresholdControl TOF_EXPOSURE_THRESHOLD_CONTROL
typedef enum OBSyncMode ob_sync_mode
typedef enum OBSyncMode OB_SYNC_MODE
typedef struct OBDeviceSyncConfig ob_device_sync_config
typedef struct OBDeviceSyncConfig OB_DEVICE_SYNC_CONFIG
typedef struct OBDepthWorkMode ob_depth_work_mode
typedef struct OBProtocolVersion ob_protocol_version
typedef enum OB_CMD_VERSION OBCmdVersion
typedef enum OB_CMD_VERSION ob_cmd_version
typedef struct OBDataBundle OBDataBundle

OrbbecSDK私有接口, 未来对外开放 功能:保存多版本数据结构的数据内容;

. 通过propertyId和cmdVersion可以决定具体的数据类型;

  1. 通过itemCount可以决定data内容映射的对象数量;

  2. 由于 C 语言和 C++ 支持的特性差异,OBDataBundle 的 data 需要释放资源,导致实现上的差异 C 语言: 由于 C 语言没有模板,因此 data 是 uint8_t 数组,itemTypeSize == 1,dataSize == itemCount; C 语言需要开发者自行将 data 的 byte 数组转换为目标数据结构

C++: C++支持模板,因此data是目标数据结构T的数组,itemTypeSize = sizeof(T),itemCount = dataSize / itemTypeSize;

typedef struct OBDataBundle ob_data_bundle
typedef struct OBDeviceIpAddrConfig ob_device_ip_addr_config
typedef struct OBDeviceIpAddrConfig DEVICE_IP_ADDR_CONFIG
typedef enum OBCommunicationType ob_communication_type
typedef enum OBCommunicationType OB_COMMUNICATION_TYPE
typedef enum OBUSBPowerState ob_usb_power_state
typedef enum OBDCPowerState ob_dc_power_state
typedef enum ob_rotate_degree_type OBRotateDegreeType
typedef enum ob_power_line_freq_mode OBPowerLineFreqMode
typedef enum OB_FRAME_AGGREGATE_OUTPUT_MODE OBFrameAggregateOutputMode
typedef enum OB_FRAME_AGGREGATE_OUTPUT_MODE ob_frame_aggregate_output_mode
typedef void (*ob_file_send_callback)(ob_file_tran_state state, const char *message, uint8_t percent, void *user_data)

文件传输回调

typedef void (*ob_device_upgrade_callback)(ob_upgrade_state state, const char *message, uint8_t percent, void *user_data)
typedef void (*ob_device_state_callback)(ob_device_state state, const char *message, void *user_data)

设备状态回调

typedef void (*ob_set_data_callback)(ob_data_tran_state state, uint8_t percent, void *user_data)

写数据的回调

typedef void (*ob_get_data_callback)(ob_data_tran_state state, ob_data_chunk *dataChunk, void *user_data)

读数据回调

typedef void (*ob_media_state_callback)(ob_media_state state, void *user_data)

媒体状态回调(录制和回放)

typedef void (*ob_device_changed_callback)(ob_device_list *removed, ob_device_list *added, void *user_data)

设备变化(上下线)回调

typedef void (*ob_frame_callback)(ob_frame *frame, void *user_data)

数据帧回调

typedef void (*ob_frameset_callback)(ob_frame *frameset, void *user_data)

数据帧集合回调

typedef enum OBPropertyID ob_property_id
typedef enum OBPropertyType OBPropertyType

用于描述所有属性设置的数据类型

typedef enum OBPropertyType ob_property_type
typedef struct OBPropertyItem OBPropertyItem

用于描述每一个属性的特性

typedef struct OBPropertyItem ob_property_item

Functions

ob_context *ob_create_context(ob_error **error)

创建context的接口函数

参数

error[out] 记录错误信息

返回

ob_context* 返回上下文环境

ob_context *ob_create_context_with_config(const char *config_path, ob_error **error)

创建context的接口函数

参数
  • config_path[in] 配置文件的路径,如果使用默认路径则传NULL

  • error[out] 记录错误信息

返回

ob_context* 返回上下文环境

void ob_delete_context(ob_context *context, ob_error **error)

删除上下文环境

参数
  • context[in] 要删除的上下文环境

  • error[out] 记录错误信息

ob_device_list *ob_query_device_list(ob_context *context, ob_error **error)

枚举设备列表

参数
  • context[in] 上下文环境

  • error[out] 记录错误信息

返回

ob_device_list* 返回设备列表对象

ob_device *ob_create_net_device(ob_context *context, const char *address, uint16_t port, ob_error **error)

创建网络设备

参数
  • context[in] 上下文环境

  • address[in] 设备ip地址

  • port[in] 设备端口

  • error[out] 记录错误信息

返回

[out] ob_device* 返回设备对象

void ob_set_device_changed_callback(ob_context *context, ob_device_changed_callback callback, void *user_data, ob_error **error)

设置设备插拔回调函数

void ob_enable_multi_device_sync(ob_context *context, uint64_t repeatInterval, ob_error **error)

启动多设备同步功能,同步已创建设备的时钟(需要使用的设备支持该功能)

参数
  • context[in] 上下文环境

  • repeatInterval[in] 定时同步时间间隔(单位ms;如果repeatInterval=0,表示只同步一次,不再定时执行)

  • error[out] 记录错误信息

void ob_set_logger_severity(ob_log_severity severity, ob_error **error)

设置全局日志的等级,会同时作用于输出到console和输出到文件的日志等级

参数
  • severity[in] 输出日志等级

  • error[out] 记录错误信息

void ob_set_logger_to_file(ob_log_severity severity, const char *directory, ob_error **error)

设置输出日志到文件

参数
  • severity[in] 输出到文件的日志等级

  • directory[in] 日志文件输出路径,如果路径为空,则继续使用已有设置(已有配置也为空则不输出日志到文件)

  • error[out] 记录错误信息

void ob_set_logger_to_console(ob_log_severity severity, ob_error **error)
uint32_t ob_device_list_device_count(ob_device_list *list, ob_error **error)

获取设备数量

参数
  • list[in] 设备列表对象

  • error[out] 记录错误信息

返回

uint32_t 返回设备数量

const char *ob_device_list_get_device_name(ob_device_list *list, uint32_t index, ob_error **error)

获取设备名称 (废弃接口)

参数
  • list[in] 设备列表对象

  • index[in] 设备索引

  • error[out] 记录错误信息

返回

const char* 返回设备名称

int ob_device_list_get_device_pid(ob_device_list *list, uint32_t index, ob_error **error)

获取指定设备pid

参数
  • list[in] 设备列表对象

  • index[in] 设备索引

  • error[out] 记录错误信息

返回

int 返回设备pid

int ob_device_list_get_device_vid(ob_device_list *list, uint32_t index, ob_error **error)

获取指定设备vid

参数
  • list[in] 设备列表对象

  • index[in] 设备索引

  • error[out] 记录错误信息

返回

int 返回设备vid

const char *ob_device_list_get_device_uid(ob_device_list *list, uint32_t index, ob_error **error)

获取指定设备uid

参数
  • list[in] 设备列表对象

  • index[in] 设备索引

  • error[out] 记录错误信息

返回

const char* 返回设备uid

const char *ob_device_list_get_device_serial_number(ob_device_list *list, uint32_t index, ob_error **error)

获取指定设备序列号

参数
  • list[in] 设备列表对象

  • index[in] 设备索引

  • error[out] 记录错误信息

返回

const char* 返回设备序列号

ob_device *ob_device_list_get_device(ob_device_list *list, uint32_t index, ob_error **error)

创建设备

ob_device *ob_device_list_get_device_by_serial_number(ob_device_list *list, const char *serial_number, ob_error **error)

创建设备

ob_device *ob_device_list_get_device_by_uid(ob_device_list *list, const char *uid, ob_error **error)

创建设备

Attention

如果设备有在其他地方被获取创建,重复获取将会返回错误

参数
  • list[in] 设备列表对象

  • uid[in] 要创建设备的uid

  • error[out] 记录错误信息

返回

ob_device* 返回创建的设备

void ob_delete_device(ob_device *device, ob_error **error)

删除设备

参数
  • device[in] 要删除的设备

  • error[out] 记录错误信息

void ob_delete_device_info(ob_device_info *info, ob_error **error)

删除设备信息

参数
  • info[in] 要删除的设备信息

  • error[out] 记录错误信息

void ob_delete_device_list(ob_device_list *list, ob_error **error)

删除设备列表

参数
  • list[in] 要删除的设备列表对象

  • error[out] 记录错误信息

ob_device_info *ob_device_get_device_info(ob_device *device, ob_error **error)

获取设备信息

参数
  • device[in] 要获取信息的设备

  • error[out] 记录错误信息

返回

ob_device_info* 返回设备信息

ob_sensor_list *ob_device_get_sensor_list(ob_device *device, ob_error **error)

获取设备的所有传感器

参数
  • device[in] 设备对象

  • error[out] 记录错误信息

返回

ob_sensor_list* 返回所有传感器列表

ob_sensor *ob_device_get_sensor(ob_device *device, ob_sensor_type type, ob_error **error)

获取设备的传感器

参数
  • device[in] 设备对象

  • type[in] 要获取的传感器类型

  • error[out] 记录错误信息

返回

ob_sensor* 返回获取的传感器

void ob_device_set_int_property(ob_device *device, ob_property_id property_id, int32_t property, ob_error **error)

设置int类型的设备属性

参数
  • device[in] 设备对象

  • property_id[in] 要设置的属性id

  • property[in] 要设置的属性值

  • error[out] 记录错误信息

int32_t ob_device_get_int_property(ob_device *device, ob_property_id property_id, ob_error **error)

获取int类型的设备属性

参数
  • device[in] 设备对象

  • property_id[in] 属性id

  • error[out] 记录错误信息

返回

int32_t 返回属性值

void ob_device_set_float_property(ob_device *device, ob_property_id property_id, float property, ob_error **error)

设置float类型的设备属性

参数
  • device[in] 设备对象

  • property_id[in] 要设置的属性id

  • property[in] 要设置的属性值

  • error[out] 记录错误信息

float ob_device_get_float_property(ob_device *device, ob_property_id property_id, ob_error **error)

获取float类型的设备属性

参数
  • device[in] 设备对象

  • property_id[in] 属性id

  • error[out] 记录错误信息

返回

int32_t 返回属性值

void ob_device_set_bool_property(ob_device *device, ob_property_id property_id, bool property, ob_error **error)

设置bool类型的设备属性

参数
  • device[in] 设备对象

  • property_id[in] 要设置的属性id

  • property[in] 要设置的属性值

  • error[out] 记录错误信息

bool ob_device_get_bool_property(ob_device *device, ob_property_id property_id, ob_error **error)

获取bool类型的设备属性

参数
  • device[in] 设备对象

  • property_id[in] 属性id

  • error[out] 记录错误信息

返回

bool 返回属性值

void ob_device_set_structured_data(ob_device *device, ob_property_id property_id, const void *data, uint32_t data_size, ob_error **error)

设置结构体类型的设备属性

参数
  • device[in] 设备对象

  • property_id[in] 要设置的属性id

  • data[in] 要设置的属性数据

  • data_size[in] 要设置的属性大小

  • error[out] 记录错误信息

void ob_device_get_structured_data(ob_device *device, ob_property_id property_id, void *data, uint32_t *data_size, ob_error **error)

获取结构体类型的设备属性

参数
  • device[in] 设备对象

  • property_id[in] 要获取的属性id

  • data[out] 获取的属性数据

  • data_size[out] 获取的属性大小

  • error[out] 记录错误信息

void ob_device_set_structured_data_ext(ob_device *device, ob_property_id property_id, ob_data_bundle *data_bundle, ob_set_data_callback cb, void *user_data, ob_error **error)

设置结构体类型的设备属性

参数
  • device[in] 设备对象

  • property_id[in] 要设置的属性id

  • data_bundle[in] 要设置的数据内容,注意data_bundle指针为OrbbecSDK外部构建,所以自行释放指针资源,禁止调用ob_delete_data_bundle释放资源,会造成不可预知的错误;

  • cb[in] 设置进度回调

  • user_data[in] 用户自定义数据,会在回调中返回

  • error[out] 记录错误信息

返回

void 无返回值

ob_data_bundle *ob_device_get_structured_data_ext(ob_device *device, ob_property_id property_id, ob_error **error)

获取结构体类型的设备属性

void ob_device_set_raw_data(ob_device *device, ob_property_id property_id, void *data, uint32_t data_size, ob_set_data_callback cb, bool async, void *user_data, ob_error **error)

设置raw data类型的设备属性

参数
  • device[in] 设备对象

  • property_id[in] 要设置的属性id

  • data[in] 要设置的属性数据

  • data_size[in] 要设置的属性大小

  • cb[in] 设置进度回调

  • async[in] 是否异步执行

  • user_data[in] 用户自定义数据,会在回调中返回

  • error[out] 记录错误信息

void ob_device_get_raw_data(ob_device *device, ob_property_id property_id, ob_get_data_callback cb, bool async, void *user_data, ob_error **error)

获取raw data类型的设备属性

参数
  • device[in] 设备对象

  • property_id[in] 要获取的属性id

  • cb[in] 获取数据给返回和进度回调

  • async[in] 是否异步执行

  • user_data[in] 用户自定义数据,会在回调中返回

  • error[out] 记录错误信息

ob_protocol_version ob_device_get_protocol_version(ob_device *device, ob_error **error)

获取设备的控制命令协议版本

参数
  • device[in] 设备对象

  • error[out] 记录错误信息

返回

ob_protocol_version

ob_cmd_version ob_device_get_cmd_version(ob_device *device, ob_property_id property_id, ob_error **error)

获取控制命令的版本号

参数
  • device[in] 设备对象

  • propertyId[in] 属性id

  • error[out] 记录错误信息

返回

ob_cmd_version

uint32_t ob_device_get_supported_property_count(ob_device *device, ob_error **error)

获取设备支持的属性的数量

参数
  • device[in] 设备对象

  • error[out] 记录错误信息

返回

uint32_t 返回设备支持的属性的数量

ob_property_item ob_device_get_supported_property(ob_device *device, uint32_t index, ob_error **error)

获取设备支持的属性

参数
  • device[in] 设备对象

  • index[in] 属性的index

  • error[out] 记录错误信息

返回

ob_global_unified_property_item 返回设备支持的属性的类型

bool ob_device_is_property_supported(ob_device *device, ob_property_id property_id, ob_permission_type permission, ob_error **error)

判断属性权限支持情况

参数
  • device[in] 设备对象

  • property_id[in] 属性id

  • permission[in] 需要判读的权限类型

  • error[out] 记录错误信息

返回

bool 返回是否支持

ob_int_property_range ob_device_get_int_property_range(ob_device *device, ob_property_id property_id, ob_error **error)

获取int类型的设备属性范围

参数
  • device[in] 设备对象

  • property_id[in] 属性id

  • error[out] 记录错误信息

返回

ob_int_property_range 返回属性范围

ob_float_property_range ob_device_get_float_property_range(ob_device *device, ob_property_id property_id, ob_error **error)

获取float类型的设备属性范围

参数
  • device[in] 设备对象

  • property_id[in] 属性id

  • error[out] 记录错误信息

返回

ob_float_property_range 返回属性范围

ob_bool_property_range ob_device_get_bool_property_range(ob_device *device, ob_property_id property_id, ob_error **error)

获取bool类型的设备属性范围

参数
  • device[in] 设备对象

  • property_id[in] 属性id

  • error[out] 记录错误信息

返回

ob_bool_property_range 返回属性范围

void ob_device_write_ahb(ob_device *device, uint32_t reg, uint32_t mask, uint32_t value, ob_error **error)

ahb写寄存器

参数
  • device[in] 设备对象

  • reg – 要写入的寄存器

  • mask – 掩码

  • value – 要写入的值

  • error[out] 记录错误信息

void ob_device_read_ahb(ob_device *device, uint32_t reg, uint32_t mask, uint32_t *value, ob_error **error)

ahb读寄存器

参数
  • device[in] 设备对象

  • reg – 要读取的寄存器

  • mask – 掩码

  • value – 要读取的值

  • error[out] 记录错误信息

void ob_device_write_i2c(ob_device *device, uint32_t module_id, uint32_t reg, uint32_t mask, uint32_t value, ob_error **error)

i2c写寄存器

参数
  • device[in] 设备对象

  • module_id – 要写入的i2c模块id

  • reg – 要写入的寄存器

  • mask – 掩码

  • value – 要写入的值

  • error[out] 记录错误信息

void ob_device_read_i2c(ob_device *device, uint32_t module_id, uint32_t reg, uint32_t mask, uint32_t *value, ob_error **error)

i2c读寄存器

参数
  • device[in] 设备对象

  • module_id – 要读取的的i2c模块id

  • reg – 要读取的寄存器

  • mask – 掩码

  • value – 要读取的值

  • error[out] 记录错误信息

void ob_device_write_flash(ob_device *device, uint32_t offset, const void *data, uint32_t data_size, ob_set_data_callback cb, bool async, void *user_data, ob_error **error)

设置写入Flash的属性[异步回调]

参数
  • device[in] 设备对象

  • offset – flash偏移地址

  • data – 要写入的属性数据

  • data_size – 要写入的属性大小

  • cb – 写进度回调

  • async[in] 是否异步执行

  • user_data[in] 用户自定义数据,会在回调中返回

  • error[out] 记录错误信息

void ob_device_read_flash(ob_device *device, uint32_t offset, uint32_t data_size, ob_get_data_callback cb, bool async, void *user_data, ob_error **error)

读取Flash的属性[异步回调]

参数
  • device[in] 设备对象

  • offset – flash偏移地址

  • data_size – 要读取的数据大小

  • cb – 读flash数据及进度回调

  • async[in] 是否异步执行

  • user_data[in] 用户自定义数据,会在回调中返回

  • error[out] 记录错误信息

uint64_t ob_device_sync_device_time(ob_device *device, ob_error **error)

同步设备时间(向设备授时,同步本地系统时间到设备)

参数
  • device[in] 设备对象

  • uint64_t[out] 命令往返时间延时(round trip time, rtt)

  • error[out] 记录错误信息

void ob_device_upgrade(ob_device *device, const char *path, ob_device_upgrade_callback callback, bool async, void *user_data, ob_error **error)

设备固件升级

参数
  • device[in] 设备对象

  • path[in] 固件路径

  • callback[in] 固件升级进度回调

  • async[in] 是否异步执行

  • user_data[in] 用户自定义数据,会在回调中返回

  • error[out] 记录错误信息

ob_device_state ob_device_get_device_state(ob_device *device, ob_error **error)

获取当前设备状态

void ob_device_state_changed(ob_device *device, ob_device_state_callback callback, void *user_data, ob_error **error)

设置设备状态监听

参数
  • device[in] 设备对象

  • callback[in] 设备状态发生改变时的回调

  • user_data[in] 用户自定义数据,会在回调中返回

  • error[out] 记录错误信息

void ob_device_send_file_to_destination(ob_device *device, const char *file_path, const char *dst_path, ob_file_send_callback callback, bool async, void *user_data, ob_error **error)

发送文件到设备指定路径

参数
  • device[in] 设备对象

  • file_path[in] 源文件路径

  • dst_path[in] 指定设备端文件接受路径

  • callback[in] 文件发送进度回调

  • async[in] 是否异步执行

  • user_data[in] 用户自定义数据,会在回调中返回

  • error[out] 记录错误信息

bool ob_device_activate_authorization(ob_device *device, const char *auth_code, ob_error **error)

验证设备授权码

参数
  • device[in] 设备对象

  • auth_code[in] 授权码

  • error[out] 记录错误信息

返回

bool 激活是否成功

void ob_device_write_authorization_code(ob_device *device, const char *auth_code, ob_error **error)

写入设备授权码

参数
  • device[in] 设备对象

  • auth_code[in] 授权码

  • error[out] 记录错误信息

ob_camera_param_list *ob_device_get_calibration_camera_param_list(ob_device *device, ob_error **error)

获取设备内保存的相机标定的原始参数列表,列表内参数不与当前开流配置相对应, 需要自行根据实际情况选用参数并可能需要做缩放、镜像等处理。非专业用户建议使用ob_pipeline_get_camera_param()接口。

ob_depth_work_mode ob_device_get_current_depth_work_mode(ob_device *device, ob_error **error)

查询当前相机深度模式

ob_status ob_device_switch_depth_work_mode(ob_device *device, const ob_depth_work_mode *work_mode, ob_error **error)

切换相机深度模式(根据深度工作模式对象),如果知道设备支持的深度工作模式名称,那么推荐用ob_device_switch_depth_work_mode_by_name

ob_status ob_device_switch_depth_work_mode_by_name(ob_device *device, const char *mode_name, ob_error **error)

切换相机深度模式(根据深度工作模式名称)

ob_depth_work_mode_list *ob_device_get_depth_work_mode_list(ob_device *device, ob_error **error)

查询当前相机深度模式的列表

void ob_device_reboot(ob_device *device, ob_error **error)

设备重启

ob_device_sync_config ob_device_get_sync_config(ob_device *device, ob_error **error)

获取当前设备同步配置

设备同步:包括单机内的不同 Sensor 的曝光同步功能 和 多机同步功能

参数
  • device[in] 设备对象

  • error[out] 记录错误信息

返回

ob_device_sync_config 返回设备同步配置

void ob_device_set_sync_config(ob_device *device, ob_device_sync_config device_sync_config, ob_error **error)

设置设备同步配置

用于配置 单机内的不同 Sensor 的曝光同步功能 和 多机同步功能

Attention

调用本函数会直接将配置写入设备Flash,设备重启后依然会生效。为了避免影响Flash寿命,不要频繁更新配置。

参数
  • device[in] 设备对象

  • device_sync_config[out] 设备同步配置

  • error[out] 记录错误信息

const char *ob_device_info_name(ob_device_info *info, ob_error **error)

获取设备名

参数
  • info[in] 设备信息

  • error[out] 记录错误信息

返回

const char* 返回设备名

int ob_device_info_pid(ob_device_info *info, ob_error **error)

获取设备pid

参数
  • info[in] 设备信息

  • error[out] 记录错误信息

返回

int 返回设备pid

int ob_device_info_vid(ob_device_info *info, ob_error **error)

获取设备vid

参数
  • info[in] 设备信息

  • error[out] 记录错误信息

返回

int 返回设备vid

const char *ob_device_info_uid(ob_device_info *info, ob_error **error)

获取设备uid

参数
  • info[in] 设备信息

  • error[out] 记录错误信息

返回

const char* 返回设备uid

const char *ob_device_info_serial_number(ob_device_info *info, ob_error **error)

获取设备序列号

参数
  • info[in] 设备信息

  • error[out] 记录错误信息

返回

const char* 返回设备序列号

const char *ob_device_info_firmware_version(ob_device_info *info, ob_error **error)

获取固件版本号

参数
  • info[in] 设备信息

  • error[out] 记录错误信息

返回

int 返回固件版本号

const char *ob_device_info_usb_type(ob_device_info *info, ob_error **error)

获取usb连接类型 (废弃接口)

参数
  • info[in] 设备信息

  • error[out] 记录错误信息

返回

char* 返回usb连接类型

const char *ob_device_info_connection_type(ob_device_info *info, ob_error **error)

获取设备连接类型

参数
  • info[in] 设备信息

  • error[out] 记录错误信息

返回

char* 返回连接类型

const char *ob_device_info_hardware_version(ob_device_info *info, ob_error **error)

获取硬件的版本号

参数
  • info[in] 设备信息

  • error[out] 记录错误信息

返回

const char* 返回硬件的版本号

const char *ob_device_info_supported_min_sdk_version(ob_device_info *info, ob_error **error)

获取设备支持的SDK最小版本号

const char *ob_device_info_asicName(ob_device_info *info, ob_error **error)

获取芯片类型名称

ob_device_type ob_device_info_device_type(ob_device_info *info, ob_error **error)

获取设备类型

uint32_t ob_camera_param_list_count(ob_camera_param_list *param_list, ob_error **error)

获取相机参数列表内参数组数

参数
  • param_list – 相机参数列表

  • error – 记录错误信息

返回

uint32_t 返回组数

ob_camera_param ob_camera_param_list_get_param(ob_camera_param_list *param_list, uint32_t index, ob_error **error)

从相机参数列表内获取相机参数

参数
  • param_list – 相机参数列表

  • index – 参数索引

  • error – 记录错误信息

返回

ob_camera_param 返回相机参数, 由于是直接返回结构体对象,所以不需要提供删除接口

void ob_delete_camera_param_list(ob_camera_param_list *param_list, ob_error **error)

删除相机参数列表

参数
  • param_list – 相机参数列表

  • error – 记录错误信息

uint32_t ob_depth_work_mode_list_count(ob_depth_work_mode_list *work_mode_list, ob_error **error)

获取深度工作模式列表的元素数量

ob_depth_work_mode ob_depth_work_mode_list_get_item(ob_depth_work_mode_list *work_mode_list, uint32_t index, ob_error **error)

从深度工作模式列表获取第N个对象

void ob_delete_depth_work_mode_list(ob_depth_work_mode_list *work_mode_list, ob_error **error)

删除深度工作模式列表对象,释放资源

void ob_delete_data_bundle(ob_data_bundle *data_bundle, ob_error **error)

删除ob_data_bundle对象,释放资源; 注意:只能释放OrbbecSDK库返回的ob_data_bundle对象,非OrbbecSDK构建的对象不能调用该接口,否则会造成意想不到的错误

ob_status ob_error_status(ob_error *error)

获取错误状态

参数

error[in] 错误对象

返回

ob_status 返回错误状态

const char *ob_error_message(ob_error *error)

获取错误信息

参数

error[in] 错误对象

返回

const char* 返回错误信息

const char *ob_error_function(ob_error *error)

获取出现错误的API函数名称

参数

error[in] 错误对象

返回

const char* 返回错误函数

const char *ob_error_args(ob_error *error)

获取错误参数

参数

error[in] 错误对象

返回

const char* 返回错误参数

ob_exception_type ob_error_exception_type(ob_error *error)

获取错误异常类型

参数

error[in] 错误对象

返回

ob_exception_type 返回错误异常类型

void ob_delete_error(ob_error *error)

删除错误对象

参数

error[in] 要删除的错误对象

ob_filter *ob_create_pointcloud_filter(ob_error **error)

创建PointCloud Filter

参数

error[out] 记录错误信息

返回

filter pointcloud_filter对象

void ob_pointcloud_filter_set_camera_param(ob_filter *filter, ob_camera_param param, ob_error **error)

PointCloud Filter设备相机参数

参数
  • filter[in] pointcloud_filter对象

  • param[in] 相机参数

  • error[out] 记录错误信息

void ob_pointcloud_filter_set_point_format(ob_filter *filter, ob_format type, ob_error **error)

设置点云类型参数

参数
  • filter[in] pointcloud_filter对象

  • type[in] 点云类型 深度点云或RGBD点云

  • error[out] 记录错误信息

void ob_pointcloud_filter_set_frame_align_state(ob_filter *filter, bool state, ob_error **error)

设置将要输入用于生产点云的帧的对齐状态

void ob_pointcloud_filter_set_position_data_scale(ob_filter *filter, float scale, ob_error **error)

设置点云数据缩放比例

Attention

调用该函数设置缩放比例会改变输出点云帧的点坐标缩放系数:posScale = posScale / scale; 输出点云帧的点坐标缩放系数可通过 ob_points_frame_get_position_value_scale 函数获取

参数
  • filter[in] pointcloud_filter对象

  • scale[in] 设置点云坐标数据缩放比例

  • error[out] 记录错误信息

void ob_pointcloud_filter_set_color_data_normalization(ob_filter *filter, bool state, ob_error **error)

设置点云颜色数据归一化

ob_filter *ob_create_format_convert_filter(ob_error **error)

创建FormatConvet Filter

参数

error[out] 记录错误信息

返回

filter format_convert 对象

void ob_format_convert_filter_set_format(ob_filter *filter, ob_convert_format type, ob_error **error)

设置格式转化的类型

参数
  • filter[in] formatconvet_filter对象

  • type[in] 格式转化类型

  • error[out] 记录错误信息

ob_filter *ob_create_compression_filter(ob_error **error)

创建compression Filter

参数

error[out] 记录错误信息

返回

filter depth_filter 对象

void ob_compression_filter_set_compression_params(ob_filter *filter, ob_compression_mode mode, void *params, ob_error **error)

设置压缩类型

参数
  • filter[in] compression_filter对象

  • mode[in] 压缩模式 OB_COMPRESSION_LOSSLESS or OB_COMPRESSION_LOSSY

  • params[in] 压缩参数,结构体 ob_compression_params,当mode为OB_COMPRESSION_LOSSLESS时,params为NULL

  • error[out] 记录错误信息

ob_filter *ob_create_decompression_filter(ob_error **error)

创建decompressionr Filter

参数

error[out] 记录错误信息

返回

filter decompression Filter 对象

void ob_filter_reset(ob_filter *filter, ob_error **error)

Filter重置, 缓存清空,状态复位。如果是使用异步方式接口,还会停止处理线程,清空待处理的缓存帧

参数
  • filter[in] filter对象

  • error[out] 记录错误信息

ob_frame *ob_filter_process(ob_filter *filter, ob_frame *frame, ob_error **error)

Filter 处理(同步接口)

参数
  • filter[in] filter对象

  • frame[in] 需要被处理的frame对象指针

  • error[out] 记录错误信息

返回

ob_frame filter处理后的frame对象

void ob_filter_set_callback(ob_filter *filter, ob_filter_callback callback, void *user_data, ob_error **error)

Filter 设置处理结果回调函数(异步回调接口)

参数
  • filter[in] filter对象

  • callback[in] 回调函数

  • user_data[in] 可以传入任意用户数据指针,并从回调返回该数据指针

  • error[out] 记录错误信息

void ob_filter_push_frame(ob_filter *filter, ob_frame *frame, ob_error **error)

filter 压入frame到待处理缓存(异步回调接口)

参数
  • filter[in] filter对象

  • error[out] 记录错误信息

void ob_delete_filter(ob_filter *filter, ob_error **error)

删除Filter

参数
  • filter[in] filter 对象

  • error[out] 记录错误信息

uint64_t ob_frame_index(ob_frame *frame, ob_error **error)

获取帧索引

参数
  • frame[in] 帧对象

  • error[out] 记录错误信息

返回

uint64_t 返回帧索引

ob_format ob_frame_format(ob_frame *frame, ob_error **error)

获取帧格式

参数
  • frame[in] 帧对象

  • error[out] 记录错误信息

返回

ob_format 返回帧格式

ob_frame_type ob_frame_get_type(ob_frame *frame, ob_error **error)

获取帧类型

参数
  • frame[in] 帧对象

  • error[out] 记录错误信息

返回

ob_frame_type 返回帧类型

uint64_t ob_frame_time_stamp(ob_frame *frame, ob_error **error)

获取帧硬件时间戳

参数
  • frame[in] 帧对象

  • error[out] 记录错误信息

返回

uint64_t 返回帧硬件时间戳

uint64_t ob_frame_time_stamp_us(ob_frame *frame, ob_error **error)

获取帧硬件时间戳us

参数
  • frame[in] 帧对象

  • error[out] 记录错误信息

返回

uint64_t 返回帧硬件时间戳,单位us

uint64_t ob_frame_system_time_stamp(ob_frame *frame, ob_error **error)

获取帧系统时间戳

参数
  • frame[in] 帧对象

  • error[out] 记录错误信息

返回

uint64_t 返回帧系统时间戳

void *ob_frame_data(ob_frame *frame, ob_error **error)

获取帧数据

参数
  • frame[in] 帧对象

  • error[out] 记录错误信息

返回

void* 返回帧数据指针

uint32_t ob_frame_data_size(ob_frame *frame, ob_error **error)

获取帧数据大小

参数
  • frame[in] 帧对象

  • error[out] 记录错误信息

返回

uint32_t 返回帧数据大小 如果是点云数据返回的是所有点集合占的字节数,若需要求出点的个数需要将dataSize除以对应的点类型的结构体大小

uint32_t ob_video_frame_width(ob_frame *frame, ob_error **error)

获取视频帧宽

参数
  • frame[in] 帧对象

  • error[out] 记录错误信息

返回

uint32_t 返回帧宽

uint32_t ob_video_frame_height(ob_frame *frame, ob_error **error)

获取视频帧高

参数
  • frame[in] 帧对象

  • error[out] 记录错误信息

返回

uint32_t 返回帧高

void *ob_video_frame_metadata(ob_frame *frame, ob_error **error)

获取帧的元数据

参数
  • frame[in] 视频帧对象

  • error[out] 记录错误信息

返回

void* 返回帧的元数据指针

uint32_t ob_video_frame_metadata_size(ob_frame *frame, ob_error **error)

获取帧的元数据大小

参数
  • frame[in] 视频帧对象

  • error[out] 记录错误信息

返回

uint32_t 返回帧的元数据大小

uint8_t ob_video_frame_pixel_available_bit_size(ob_frame *frame, ob_error **error)

获取像素有效位数(如Y16格式帧,每个像素占16bit,但实际只有低10位是有效位,高6位填充0)

ob_sensor_type ob_ir_frame_get_source_sensor_type(ob_frame *frame, ob_error **ob_error)
float ob_depth_frame_get_value_scale(ob_frame *frame, ob_error **error)

获取深度帧的值缩放系数,深度像素值乘以缩放系数后,可以得到单位为毫米的深度值; 如valueScale=0.1, 某坐标像素值为pixelValue=10000, 则表示深度值value = pixelValue*valueScale = 10000*0.1=1000mm。

参数
  • frame[in] 帧对象

  • error[out] 记录错误信息

返回

float 缩放系数

float ob_points_frame_get_position_value_scale(ob_frame *frame, ob_error **error)

获取点云帧的点坐标值缩放系数,点坐标值乘以缩放系数后,可以得到单位为毫米的坐标值; 如scale=0.1, 某个点的x坐标值为x=10000, 则表示实际x坐标value = x*scale = 10000*0.1=1000mm。

参数
  • frame[in] 点云帧对象

  • error[out] 记录错误信息

返回

float 缩放系数

void ob_delete_frame(ob_frame *frame, ob_error **error)

删除帧

参数
  • frame[in] 要删除的帧对象

  • error[out] 记录错误信息

uint32_t ob_frameset_frame_count(ob_frame *frameset, ob_error **error)

获取帧集合包含的帧数量

参数
  • frameset[in] 帧集合对象

  • error[out] 记录错误信息

返回

uint32_t 返回帧数量

ob_frame *ob_frameset_depth_frame(ob_frame *frameset, ob_error **error)

从帧集合中获取深度帧

参数
  • frameset[in] 帧集合对象

  • error[out] 记录错误信息

返回

ob_frame* 返回深度帧

ob_frame *ob_frameset_color_frame(ob_frame *frameset, ob_error **error)

从帧集合中获取彩色帧

参数
  • frameset[in] 帧集合对象

  • error[out] 记录错误信息

返回

ob_frame* 返回彩色帧

ob_frame *ob_frameset_ir_frame(ob_frame *frameset, ob_error **error)

从帧集合中获取红外帧

参数
  • frameset[in] 帧集合对象

  • error[out] 记录错误信息

返回

ob_frame* 返回红外帧

ob_frame *ob_frameset_points_frame(ob_frame *frameset, ob_error **error)

从帧集合中获取点云数据

参数
  • frameset[in] 帧集合对象

  • error[out] 记录错误信息

返回

ob_frame* 返回点云帧

ob_frame *ob_frameset_get_frame(ob_frame *frameset, ob_frame_type frame_type, ob_error **error)

获取指定类型的frame

参数
  • frameset[in] 帧集合对象

  • frame_type[in] frame类型

  • error[out] 记录错误信息

返回

如果存在frame_type类型,那么返回ob_frame*指针对象;否则返回null。

ob_accel_value ob_accel_frame_value(ob_frame *frame, ob_error **error)

获取加速度帧数据

参数
  • frame[in] 加速度帧

  • error[out] 记录错误信息

返回

ob_accel_value 加速度数据

float ob_accel_frame_temperature(ob_frame *frame, ob_error **error)

获取加速度帧采样时温度

参数
  • frame[in] 加速度帧

  • error[out] 记录错误信息

返回

float 返回数值

ob_gyro_value ob_gyro_frame_value(ob_frame *frame, ob_error **error)

获取陀螺仪帧数据

参数
  • frame[in] 陀螺仪帧

  • error[out] 记录错误信息

返回

ob_gyro_value 陀螺仪数据

float ob_gyro_frame_temperature(ob_frame *frame, ob_error **error)

获取加速度帧采样时温度

参数
  • frame[in] 加速度帧

  • error[out] 记录错误信息

返回

float 返回数值

void ob_frame_add_ref(ob_frame *frame, ob_error **error)

增加引用计数

参数
  • frame[in] 要增加引用计数的帧对象

  • error[out] 记录错误信息

ob_frame *ob_create_frame(ob_format frame_format, int width, int height, int stride_bytes, ob_frame_type frame_type, ob_error **error)

创建空的帧对象

参数
  • frame_format[in] 帧对象格式

  • width[in] 帧对象宽

  • height[in] 帧对象高

  • stride_bytes[in] 数据行跨度

  • frame_type[in] 帧类型

  • error[out] 记录错误信息

返回

std::shared_ptr<Frame> 创建空的帧对象

ob_frame *ob_create_frame_from_buffer(ob_format frame_format, uint32_t frame_width, uint32_t frame_height, uint8_t *buffer, uint32_t buffer_size, ob_frame_destroy_callback *buffer_destroy_cb, void *buffer_destroy_context, ob_error **error)

根据外部创建的Buffer创建帧对象

参数
  • frame_format[in] 帧对象格式

  • frame_width[in] 帧对象宽

  • frame_height[in] 帧对象高

  • buffer[in] 帧对象数据

  • buffer_size[in] 帧对象数据大小

  • buffer_destroy_cb[in] 销毁函数

  • buffer_destroy_context[in] 销毁context

  • error[out] 记录错误信息

返回

std::shared_ptr<Frame> 返回帧对象

ob_frame *ob_create_frameset(ob_error **error)

创建空的帧集合对象

参数

error[out] 记录错误信息

返回

std::shared_ptr<Frame> 返回帧集合对象

void ob_frameset_push_frame(ob_frame *frameset, ob_frame_type type, ob_frame *frame, ob_error **error)

往帧集合中填入对应类型的帧

参数
  • frameset[in] 帧集合对象

  • type[in] 填入帧的类型

  • frame[in] 填入帧的对象

  • error[out] 记录错误信息

void ob_frame_set_system_time_stamp(ob_frame *frame, uint64_t system_timestamp, ob_error **error)

设置帧的系统时间戳

参数
  • frame[in] 设置的帧对象

  • systemTimestamp[in] 设置的系统时间戳

  • error[out] 记录错误信息

void ob_frame_set_device_time_stamp(ob_frame *frame, uint64_t device_timestamp, ob_error **error)

设置帧的设备时间戳

参数
  • frame[in] 设置的帧对象

  • device_timestamp[in] 设置的设备时间戳

  • error[out] 记录错误信息

void ob_frame_set_device_time_stamp_us(ob_frame *frame, uint64_t device_timestamp_us, ob_error **error)

设置帧的设备时间戳

参数
  • frame[in] 设置的帧对象

  • device_timestamp_us[in] 设置的设备时间戳(Us)

  • error[out] 记录错误信息

ob_pipeline *ob_create_pipeline(ob_error **error)

创建pipeline对象

参数

error[out] 记录错误信息

返回

ob_pipeline* 返回pipeline对象

ob_pipeline *ob_create_pipeline_with_device(ob_device *dev, ob_error **error)

使用设备对象来创建pipeline对象

参数
  • dev[in] 用于创建pipeline的设备对象

  • error[out] 记录错误信息

返回

ob_pipeline* 返回pipeline对象

ob_pipeline *ob_create_pipeline_with_playback_file(const char *file_name, ob_error **error)

使用回放文件来创建pipeline对象

参数
  • file_name[in] 用于创建pipeline的回放文件路径

  • error[out] 记录错误信息

返回

ob_pipeline* 返回pipeline对象

void ob_delete_pipeline(ob_pipeline *pipeline, ob_error **error)

删除pipeline对象

参数
  • pipeline[in] 要删除的pipeline对象

  • error[out] 记录错误信息

void ob_pipeline_start(ob_pipeline *pipeline, ob_error **error)

以默认参数启动pipeline

参数
  • pipeline[in] pipeline对象

  • error[out] 记录错误信息

void ob_pipeline_start_with_config(ob_pipeline *pipeline, ob_config *config, ob_error **error)

启动pipeline并配置参数

参数
  • pipeline[in] pipeline对象

  • config[in] 要配置的参数

  • error[out] 记录错误信息

void ob_pipeline_start_with_callback(ob_pipeline *pipeline, ob_config *config, ob_frameset_callback callback, void *user_data, ob_error **error)

启动pipeline并设置帧集合数据回调

参数
  • pipeline[in] pipeline对象

  • config[in] 要配置的参数

  • callback[in] 帧集合中的所有帧数据都到达时触发回调

  • user_data[in] 可以传入任意用户数据,并从回调中获取

  • error[out] 记录错误信息

void ob_pipeline_stop(ob_pipeline *pipeline, ob_error **error)

停止pipeline

参数
  • pipeline[in] pipeline对象

  • error[out] 记录错误信息

ob_config *ob_pipeline_get_config(ob_pipeline *pipeline, ob_error **error)

获取pipeline当前参数

参数
  • pipeline[in] pipeline对象

  • error[out] 记录错误信息

返回

ob_config* 返回pipeline参数

ob_frame *ob_pipeline_wait_for_frameset(ob_pipeline *pipeline, uint32_t timeout_ms, ob_error **error)

以同步阻塞的形式等待返回一组帧集合

参数
  • pipeline[in] pipeline对象

  • timeout_ms[in] 等待超时时间(毫秒)

  • error[out] 记录错误信息

返回

ob_frame* 返回等待的帧集合frameset,frameset是特殊的frame,可以使用frameset相关接口获取集合内的独立frame

ob_device *ob_pipeline_get_device(ob_pipeline *pipeline, ob_error **error)

从pipeline中获取设备

参数
  • pipeline[in] pipeline对象

  • error[out] 记录错误信息

返回

ob_device* 返回设备对象

ob_playback *ob_pipeline_get_playback(ob_pipeline *pipeline, ob_error **error)

从pipeline中获取回放对象

参数
  • pipeline[in] pipeline对象

  • error[out] 记录错误信息

返回

ob_playback* 返回回放对象

ob_stream_profile_list *ob_pipeline_get_stream_profile_list(ob_pipeline *pipeline, ob_sensor_type sensorType, ob_error **error)

获取传感器相应的流配置

参数
  • pipeline[in] pipeline对象

  • sensor_type[in] 传感器类型 ,相机支持的sensor_type类型可通过ob_device_get_sensor_list()接口获知

  • profile_count[out] 获取的流配置数量

  • error[out] 记录错误信息

返回

ob_stream_profile_list* 返回流配置列表

void ob_pipeline_enable_frame_sync(ob_pipeline *pipeline, ob_error **error)

打开帧同步功能

参数
  • pipeline[in] pipeline对象

  • error[out] 记录错误信息

void ob_pipeline_disable_frame_sync(ob_pipeline *pipeline, ob_error **error)

关闭帧同步功能

参数
  • pipeline[in] pipeline对象

  • error[out] 记录错误信息

void ob_pipeline_switch_config(ob_pipeline *pipeline, ob_config *config, ob_error **error)

动态切换对应的config配置

参数
  • pipeline[in] pipeline对象

  • config[in] pipeline的配置

  • error[out] 记录错误信息

ob_camera_param ob_pipeline_get_camera_param(ob_pipeline *pipeline, ob_error **error)

获取当前相机参数

ob_stream_profile_list *ob_get_d2c_depth_profile_list(ob_pipeline *pipeline, ob_stream_profile *color_profile, ob_align_mode align_mode, ob_error **error)

返回与输入的彩色传感器分辨率对应的支持D2C的深度传感器分辨率列表

参数
  • pipeline[in] pipeline对象

  • color_profile[in] 输入的Color Sensor的分辨率

  • align_mode[in] 输入的对齐模式

  • error[out] 记录错误信息

返回

ob_stream_profile_list*

ob_rect ob_get_d2c_valid_area(ob_pipeline *pipeline, uint32_t distance, ob_error **error)

获取D2C后有效的区域 (废弃接口)

参数
  • pipeline[in] pipeline对象

  • distance[in] 工作距离

  • error[out] 记录错误信息

返回

ob_rect 返回在工作距离下D2C后有效的区域信息

ob_rect ob_get_d2c_range_valid_area(ob_pipeline *pipeline, uint32_t minimum_distance, uint32_t maximum_distance, ob_error **error)

获取D2C后有效的区域。 如果需要获取指定距离D2C后的ROI区域,将minimum_distance与maximum_distance设置成一样或者将maximum_distance设置成0

参数
  • pipeline[in] pipeline对象

  • minimum_distance[in] 最小工作距离

  • maximum_distance[in] 最大工作距离

  • error[out] 记录错误信息

返回

ob_rect 返回在工作距离下D2C后有效的区域信息

void ob_pipeline_start_record(ob_pipeline *pipeline, const char *file_name, ob_error **error)

开启录制

参数
  • pipeline[in] pipeline对象

  • file_name[in] 录制的文件路径

  • error[out] 记录错误信息

void ob_pipeline_stop_record(ob_pipeline *pipeline, ob_error **error)

关闭录制

参数
  • pipeline[in] pipeline对象

  • error[out] 记录错误信息

ob_config *ob_create_config(ob_error **error)

创建pipeline的配置

参数

error[out] 记录错误信息

返回

ob_config* 返回配置对象

void ob_delete_config(ob_config *config, ob_error **error)

删除pipeline的配置

参数
  • config[in] 要删除的配置

  • error[out] 记录错误信息

void ob_config_enable_stream(ob_config *config, ob_stream_profile *profile, ob_error **error)

配置要打开的流

参数
  • config[in] pipeline的配置

  • profile[in] 要打开的流的配置

  • error[out] 记录错误信息

void ob_config_enable_all_stream(ob_config *config, ob_error **error)

配置打开所有的流

参数
  • config[in] pipeline的配置

  • error[out] 记录错误信息

void ob_config_disable_stream(ob_config *config, ob_stream_type type, ob_error **error)

配置要关闭的流

参数
  • config[in] pipeline的配置

  • profile[in] 要关闭的流的配置

  • error[out] 记录错误信息

void ob_config_disable_all_stream(ob_config *config, ob_error **error)

配置关闭所有的流

参数
  • config[in] pipeline的配置

  • error[out] 记录错误信息

void ob_config_set_align_mode(ob_config *config, ob_align_mode mode, ob_error **error)

设置对齐模式

参数
  • config[in] config对象

  • mode[in] 对齐模式

  • error[out] 记录错误信息

void ob_config_set_depth_scale_require(ob_config *config, bool enable, ob_error **error)

设置D2C后是否需要缩放深度

参数
  • config[in] config对象

  • enable[in] 是否需要缩放

  • error[out] 记录错误信息

void ob_config_set_d2c_target_resolution(ob_config *config, uint32_t d2c_target_width, uint32_t d2c_target_height, ob_error **error)

设置D2C目标分辨率,适用于未使用OrbbecSDK开启Color流,且需要对深度进行D2C的情况 注意:当使用OrbbecSDK开启Color流时,同时使用了此接口设置了D2C目标分辨率时。优先使用开启的Color流的配置进行D2C。

参数
  • config[in] config对象

  • d2c_target_width[in] D2C目标分辨率宽

  • d2c_target_height[in] D2C目标分辨率高

  • error[out] 记录错误信息

void ob_config_set_frame_aggregate_output_mode(ob_config *config, ob_frame_aggregate_output_mode mode, ob_error **error)

数据帧汇聚输出模式

用于控制帧汇聚功能生成的FrameSet不包含所有已开启数据流的数据帧时(各路流帧率不同、或者某路流丢帧会导致这样的情况)的处理策略:直接丢弃或者输出给用户

参数
  • config – config对象

  • mode – 数据帧汇聚输出模式(默认模式为 OB_FRAME_AGGREGATE_OUTPUT_ANY_SITUATION)

  • error – 记录错误信息

ob_recorder *ob_create_recorder(ob_error **error)

创建录制器用于数据的录制

参数

error[out] 记录错误信息

返回

ob_recorder* 返回录制器对象

ob_recorder *ob_create_recorder_with_device(ob_device *dev, ob_error **error)

创建录制器用于数据的录制

参数
  • dev – 用于创建录制器的设备对象

  • error[out] 记录错误信息

返回

ob_recorder* 返回录制器对象

void ob_delete_recorder(ob_recorder *recorder, ob_error **error)

删除录制器对象

参数
  • recorder – 录制器对象

  • error[out] 记录错误信息

void ob_recorder_start(ob_recorder *recorder, const char *filename, bool async, ob_error **error)

开始录制

参数
  • recorder[in] 录制器对象

  • filename[in] 录制的文件名称

  • async[in] 是否异步录制

  • error[out] 记录错误信息

void ob_recorder_stop(ob_recorder *recorder, ob_error **error)

停止录制

参数
  • recorder[in] 录制器对象

  • error[out] 记录错误信息

void ob_recorder_write_frame(ob_recorder *recorder, ob_frame *frame, ob_error **error)

向录制器内写入帧数据

参数
  • recorder[in] 录制器对象

  • frame[in] 写入的帧数据

  • error[out] 记录错误信息

ob_playback *ob_create_playback(const char *filename, ob_error **error)

创建回放对象

void ob_delete_playback(ob_playback *playback, ob_error **error)

删除回放对象

参数
  • playback[in] 回放对象

  • error[out] 记录错误信息

void ob_playback_start(ob_playback *playback, ob_playback_callback callback, void *user_data, ob_media_type type, ob_error **error)

开启回放,回放数据从回调中返回

参数
  • playback[in] 回放对象

  • callback[in] 回放数据的回调

  • user_data[in] 用户数据

  • type[in] 回放数据的类型

  • error[out] 记录错误信息

void ob_playback_stop(ob_playback *playback, ob_error **error)

停止回放

参数
  • playback[in] 回放对象

  • error[out] 记录错误信息

void ob_set_playback_state_callback(ob_playback *playback, ob_media_state_callback callback, void *user_data, ob_error **error)

设置回放状态

ob_device_info *ob_playback_get_device_info(ob_playback *playback, ob_error **error)

获取录制文件内的设备信息

参数
  • playback[in] 回放对象

  • error[out] 记录错误信息

返回

ob_device_info* returns device information

ob_camera_param ob_playback_get_camera_param(ob_playback *playback, ob_error **error)

获取录制文件内的内外参信息

参数
  • playback[in] 回放对象

  • error[out] 记录错误信息

返回

ob_camera_param 返回的内外参信息

ob_sensor_type ob_sensor_get_type(ob_sensor *sensor, ob_error **error)

获取传感器类型

参数
  • sensor[in] 传感器对象

  • error[out] 记录错误信息

返回

ob_sensor_type 返回传感器类型

ob_stream_profile_list *ob_sensor_get_stream_profile_list(ob_sensor *sensor, ob_error **error)

获取传感器支持的所有流的配置列表

参数
  • sensor[in] 传感器对象

  • error[out] 记录错误信息

返回

ob_stream_profile_list* 返回流配置的列表

void ob_sensor_start(ob_sensor *sensor, ob_stream_profile *profile, ob_frame_callback callback, void *user_data, ob_error **error)

打开传感器的流,并设置帧数据回调

参数
  • sensor[in] 传感器对象

  • profile[in] 流的配置信息

  • callback[in] 帧数据到达时触发的回调函数

  • user_data[in] 可以传入任意用户数据,并从回调中获取

  • error[out] 记录错误信息

void ob_sensor_stop(ob_sensor *sensor, ob_error **error)

停止传感器的流

参数
  • sensor[in] 传感器对象

  • error[out] 记录错误信息

void ob_sensor_switch_profile(ob_sensor *sensor, ob_stream_profile *profile, ob_error **error)

动态切换分辨率

参数
  • sensor[in] 传感器对象

  • profile[in] 流的配置信息

  • error[out] 记录错误信息

void ob_delete_sensor_list(ob_sensor_list *sensor_list, ob_error **error)

删除传感器对象列表

参数
  • sensor_list[in] 要删除的传感器对象列表

  • error[out] 记录错误信息

uint32_t ob_sensor_list_get_sensor_count(ob_sensor_list *sensor_list, ob_error **error)

获取传感器列表内传感器个数

参数
  • sensor_list[in] 要删除的传感器对象列表

  • count[in] 传感器数量

  • error[out] 记录错误信息

ob_sensor_type ob_sensor_list_get_sensor_type(ob_sensor_list *sensor_list, uint32_t index, ob_error **error)

获取指定Sensor的类型

参数

index – Sensor索引

返回

OBSensorType 返回Sensor类型

ob_sensor *ob_sensor_list_get_sensor_by_type(ob_sensor_list *sensor_list, ob_sensor_type sensorType, ob_error **error)

通过Sensor类型获取Sensor

/**

参数
  • sensor_list – 通过device获取返回的sensor列表

  • sensorType – 要获取的Sensor类型

返回

返回Sensor指针,如果指定类型Sensor不存在,将返回空

ob_sensor *ob_sensor_list_get_sensor(ob_sensor_list *sensor_list, uint32_t index, ob_error **error)

通过索引号获取Sensor

参数
  • sensor_list – 通过device获取返回的sensor列表

  • index – 要创建设备的索,范围 [0, count-1],如果index超出范围将抛异常

返回

std::shared_ptr<Sensor> 返回Sensor对象

void ob_delete_sensor(ob_sensor *sensor, ob_error **error)

删除传感器对象

参数
  • sensor[in] 要删除的传感器对象

  • error[out] 记录错误信息

ob_format ob_stream_profile_format(ob_stream_profile *profile, ob_error **error)

获取流配置的格式

参数
  • profile[in] 流配置对象

  • error[out] 记录错误信息

返回

ob_format 返回流的格式

ob_stream_type ob_stream_profile_type(ob_stream_profile *profile, ob_error **error)

获取流的类型

参数
  • profile[in] 流配置对象

  • error[out] 记录错误信息

返回

ob_stream_type 流的类型

uint32_t ob_video_stream_profile_fps(ob_stream_profile *profile, ob_error **error)

获取视频流配置的帧率

参数
  • profile[in] 流配置对象, 如果该配置不是视频流配置,将会返错误

  • error[out] 记录错误信息

返回

uint32_t 返回流的帧率

uint32_t ob_video_stream_profile_width(ob_stream_profile *profile, ob_error **error)

获取视频流配置的宽

参数
  • profile[in] 流配置对象, 如果该配置不是视频流配置,将会返错误

  • error[out] 记录错误信息

返回

uint32_t 返回流的宽

uint32_t ob_video_stream_profile_height(ob_stream_profile *profile, ob_error **error)

获取视频流配置的高

参数
  • profile[in] 流配置对象, 如果该配置不是视频流配置,将会返错误

  • error[out] 记录错误信息

返回

uint32_t 返回流的高

ob_accel_full_scale_range ob_accel_stream_profile_full_scale_range(ob_stream_profile *profile, ob_error **error)

获取加速度计流配置的量程范围

参数
  • profile[in] 流配置对象, 如果该配置不是加速度计流配置,将会返错误

  • error[out] 记录错误信息

返回

ob_accel_full_scale_range 量程范围

ob_accel_sample_rate ob_accel_stream_profile_sample_rate(ob_stream_profile *profile, ob_error **error)

获取加速度计流配置的采样频率

参数
  • profile[in] 流配置对象, 如果该配置不是加速度计流配置,将会返错误

  • error[out] 记录错误信息

返回

ob_accel_sample_rate 采样频率

ob_gyro_full_scale_range ob_gyro_stream_profile_full_scale_range(ob_stream_profile *profile, ob_error **error)

获取陀螺仪流配置的量程范围

参数
  • profile[in] 流配置对象, 如果该配置不是陀螺仪流配置,将会返错误

  • error[out] 记录错误信息

返回

ob_gyro_full_scale_range 量程范围

ob_gyro_sample_rate ob_gyro_stream_profile_sample_rate(ob_stream_profile *profile, ob_error **error)

获取陀螺仪流配置的采样频率

参数
  • profile[in] 流配置对象, 如果该配置不是陀螺仪流配置,将会返错误

  • error[out] 记录错误信息

返回

ob_gyro_sample_rate 采样频率

ob_stream_profile *ob_stream_profile_list_get_video_stream_profile(ob_stream_profile_list *profile_list, int width, int height, ob_format format, int fps, ob_error **error)

通过传入的参数进行匹配对应的ob_stream_profile。若有多个匹配项默认返回列表中的第一个, 若未找打匹配的项,则返回错误。

参数
  • profile_list – 分辨率列表

  • width – 宽度, 如不要求加入匹配条件,可传0

  • height – 高度, 如不要求加入匹配条件,可传0

  • format – 格式, 如不要求加入匹配条件,可传OB_FORMAT_UNKNOWN

  • fps – 帧率, 如不要求加入匹配条件,可传0

  • error[out] 记录错误信息

返回

ob_stream_profile* 返回匹配的profile

ob_stream_profile *ob_stream_profile_list_get_profile(ob_stream_profile_list *profile_list, int index, ob_error **error)

通过下标获取对应的StreamProfile

参数
  • profile_list[in] StreamProfile列表

  • index[in] 索引

  • error[out] 记录错误信息

返回

ob_stream_profile* 返回匹配的profile

uint32_t ob_stream_profile_list_count(ob_stream_profile_list *profile_list, ob_error **error)

获取StreamProfile列表的数量

参数
  • profile_list[in] StreamProfile列表

  • error[out] 记录错误信息

返回

uint32_t 返回StreamProfile列表的数量

void ob_delete_stream_profile_list(ob_stream_profile_list *profile_list, ob_error **error)

删除流配置列表

参数
  • profiles[in] 流配置列表

  • error[out] 记录错误信息

void ob_delete_stream_profile(ob_stream_profile *profile, ob_error **error)

删除流配置

参数
  • profile[in] 流配置对象

  • error[out] 记录错误信息

int ob_get_version()

获取SDK版本号

返回

int 返回SDK版本号

int ob_get_major_version()

获取SDK主版本号

返回

int 返回SDK主版本号

int ob_get_minor_version()

获取SDK副版本号

返回

int 返回SDK副版本号

int ob_get_patch_version()

获取SDK修订版本号

返回

int 返回SDK修订版本号