| OrbbecSDK 1.5.7 OrbbecSDK: Software-Development-Kit for Orbbec 3D-Sensor devices

- 首页
- 命名空间
- 类
- 文件

- 文件列表
- 文件成员

函数
Pipeline.h 文件参考

SDK的高级API，可以快速实现开关流，帧同步，软件滤波等功能，适用于应用，算法重点关于rgbd数据流场景。如果对实时性或需要单独 处理的同步，对齐的场景。请使用Device的Lower API的接口。 更多...

`#include "ObTypes.h"`

浏览源代码.

## 函数
ob_pipeline * | ob_create_pipeline (ob_error **error)
| 创建pipeline对象 更多...
ob_pipeline * | ob_create_pipeline_with_device (ob_device *dev, ob_error **error)
| 使用设备对象来创建pipeline对象 更多...
ob_pipeline * | ob_create_pipeline_with_playback_file (const char *file_name, ob_error **error)
| 使用回放文件来创建pipeline对象 更多...
void | ob_delete_pipeline (ob_pipeline *pipeline, ob_error **error)
| 删除pipeline对象 更多...
void | ob_pipeline_start (ob_pipeline *pipeline, ob_error **error)
| 以默认参数启动pipeline 更多...
void | ob_pipeline_start_with_config (ob_pipeline *pipeline, ob_config *config, ob_error **error)
| 启动pipeline并配置参数 更多...
void | ob_pipeline_start_with_callback (ob_pipeline *pipeline, ob_config *config, ob_frameset_callback callback, void *user_data, ob_error **error)
| 启动pipeline并设置帧集合数据回调 更多...
void | ob_pipeline_stop (ob_pipeline *pipeline, ob_error **error)
| 停止pipeline 更多...
ob_config * | ob_pipeline_get_config (ob_pipeline *pipeline, ob_error **error)
| 获取pipeline当前参数 更多...
ob_frame * | ob_pipeline_wait_for_frameset (ob_pipeline *pipeline, uint32_t timeout_ms, ob_error **error)
| 以同步阻塞的形式等待返回一组帧集合 更多...
ob_device * | ob_pipeline_get_device (ob_pipeline *pipeline, ob_error **error)
| 从pipeline中获取设备 更多...
ob_playback * | ob_pipeline_get_playback (ob_pipeline *pipeline, ob_error **error)
| 从pipeline中获取回放对象 更多...
ob_stream_profile_list * | ob_pipeline_get_stream_profile_list (ob_pipeline *pipeline, ob_sensor_type sensorType, ob_error **error)
| 获取传感器相应的流配置 更多...
void | ob_pipeline_enable_frame_sync (ob_pipeline *pipeline, ob_error **error)
| 打开帧同步功能 更多...
void | ob_pipeline_disable_frame_sync (ob_pipeline *pipeline, ob_error **error)
| 关闭帧同步功能 更多...
void | ob_pipeline_switch_config (ob_pipeline *pipeline, ob_config *config, ob_error **error)
| 动态切换对应的config配置 更多...
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的深度传感器分辨率列表 更多...
ob_rect | ob_get_d2c_valid_area (ob_pipeline *pipeline, uint32_t distance, ob_error **error)
| 获取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 更多...
void | ob_pipeline_start_record (ob_pipeline *pipeline, const char *file_name, ob_error **error)
| 开启录制 更多...
void | ob_pipeline_stop_record (ob_pipeline *pipeline, ob_error **error)
| 关闭录制 更多...
ob_config * | ob_create_config (ob_error **error)
| 创建pipeline的配置 更多...
void | ob_delete_config (ob_config *config, ob_error **error)
| 删除pipeline的配置 更多...
void | ob_config_enable_stream (ob_config *config, ob_stream_profile *profile, ob_error **error)
| 配置要打开的流 更多...
void | ob_config_enable_all_stream (ob_config *config, ob_error **error)
| 配置打开所有的流 更多...
void | ob_config_disable_stream (ob_config *config, ob_stream_type type, ob_error **error)
| 配置要关闭的流 更多...
void | ob_config_disable_all_stream (ob_config *config, ob_error **error)
| 配置关闭所有的流 更多...
void | ob_config_set_align_mode (ob_config *config, ob_align_mode mode, ob_error **error)
| 设置对齐模式 更多...
void | ob_config_set_depth_scale_require (ob_config *config, bool enable, ob_error **error)
| 设置D2C后是否需要缩放深度 更多...
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。 更多...
void | ob_config_set_frame_aggregate_output_mode (ob_config *config, ob_frame_aggregate_output_mode mode, ob_error **error)
| 数据帧汇聚输出模式 更多...

## 详细描述

SDK的高级API，可以快速实现开关流，帧同步，软件滤波等功能，适用于应用，算法重点关于rgbd数据流场景。如果对实时性或需要单独 处理的同步，对齐的场景。请使用Device的Lower API的接口。

在文件 Pipeline.h 中定义.

## 函数说明

ob_pipeline* ob_create_pipeline | ( | ob_error ** | error | ) |

创建pipeline对象

参数

  [out] | error | 记录错误信息

返回
  ob_pipeline* 返回pipeline对象

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

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

参数

  [in] | dev | 用于创建pipeline的设备对象
  [out] | error | 记录错误信息

返回
  ob_pipeline* 返回pipeline对象

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

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

参数

  [in] | file_name | 用于创建pipeline的回放文件路径
  [out] | error | 记录错误信息

返回
  ob_pipeline* 返回pipeline对象

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

删除pipeline对象

参数

  [in] | pipeline | 要删除的pipeline对象
  [out] | error | 记录错误信息

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

以默认参数启动pipeline

参数

  [in] | pipeline | pipeline对象
  [out] | error | 记录错误信息

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

启动pipeline并配置参数

参数

  [in] | pipeline | pipeline对象
  [in] | config | 要配置的参数
  [out] | error | 记录错误信息

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

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

参数

  [in] | pipeline | pipeline对象
  [in] | config | 要配置的参数
  [in] | callback | 帧集合中的所有帧数据都到达时触发回调
  [in] | user_data | 可以传入任意用户数据，并从回调中获取
  [out] | error | 记录错误信息

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

停止pipeline

参数

  [in] | pipeline | pipeline对象
  [out] | error | 记录错误信息

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

获取pipeline当前参数

参数

  [in] | pipeline | pipeline对象
  [out] | error | 记录错误信息

返回
  ob_config* 返回pipeline参数

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

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

参数

  [in] | pipeline | pipeline对象
  [in] | timeout_ms | 等待超时时间(毫秒)
  [out] | error | 记录错误信息

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

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

从pipeline中获取设备

参数

  [in] | pipeline | pipeline对象
  [out] | error | 记录错误信息

返回
  ob_device* 返回设备对象

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

从pipeline中获取回放对象

参数

  [in] | pipeline | pipeline对象
  [out] | error | 记录错误信息

返回
  ob_playback* 返回回放对象

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

获取传感器相应的流配置

参数

  [in] | pipeline | pipeline对象
  [in] | sensor_type | 传感器类型 ，相机支持的sensor_type类型可通过ob_device_get_sensor_list()接口获知
  [out] | profile_count | 获取的流配置数量
  [out] | error | 记录错误信息

返回
  ob_stream_profile_list* 返回流配置列表

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

打开帧同步功能

参数

  [in] | pipeline | pipeline对象
  [out] | error | 记录错误信息

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

关闭帧同步功能

参数

  [in] | pipeline | pipeline对象
  [out] | error | 记录错误信息

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

动态切换对应的config配置

参数

  [in] | pipeline | pipeline对象
  [in] | config | pipeline的配置
  [out] | error | 记录错误信息

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

获取当前相机参数

注意
  如果开启了D2C将返回D2C后的相机参数

参数

  [in] | pipeline | pipeline对象
  [out] | error | 记录错误信息

返回
  ob_camera_param 返回相机内参

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的深度传感器分辨率列表

参数

  [in] | pipeline | pipeline对象
  [in] | color_profile | 输入的Color Sensor的分辨率
  [in] | align_mode | 输入的对齐模式
  [out] | error | 记录错误信息

返回
  ob_stream_profile_list*

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

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

参数

  [in] | pipeline | pipeline对象
  [in] | distance | 工作距离
  [out] | error | 记录错误信息

返回
  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

参数

  [in] | pipeline | pipeline对象
  [in] | minimum_distance | 最小工作距离
  [in] | maximum_distance | 最大工作距离
  [out] | error | 记录错误信息

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

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

开启录制

参数

  [in] | pipeline | pipeline对象
  [in] | file_name | 录制的文件路径
  [out] | error | 记录错误信息

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

关闭录制

参数

  [in] | pipeline | pipeline对象
  [out] | error | 记录错误信息

ob_config* ob_create_config | ( | ob_error ** | error | ) |

创建pipeline的配置

参数

  [out] | error | 记录错误信息

返回
  ob_config* 返回配置对象

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

删除pipeline的配置

参数

  [in] | config | 要删除的配置
  [out] | error | 记录错误信息

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

配置要打开的流

参数

  [in] | config | pipeline的配置
  [in] | profile | 要打开的流的配置
  [out] | error | 记录错误信息

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

配置打开所有的流

参数

  [in] | config | pipeline的配置
  [out] | error | 记录错误信息

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

配置要关闭的流

参数

  [in] | config | pipeline的配置
  [in] | profile | 要关闭的流的配置
  [out] | error | 记录错误信息

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

配置关闭所有的流

参数

  [in] | config | pipeline的配置
  [out] | error | 记录错误信息

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

设置对齐模式

参数

  [in] | config | config对象
  [in] | mode | 对齐模式
  [out] | error | 记录错误信息

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

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

参数

  [in] | config | config对象
  [in] | enable | 是否需要缩放
  [out] | error | 记录错误信息

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。

参数

  [in] | config | config对象
  [in] | d2c_target_width | D2C目标分辨率宽
  [in] | d2c_target_height | D2C目标分辨率高
  [out] | error | 记录错误信息

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 | 记录错误信息