接口说明
该接口是视频流引擎服务端对外功能接口,包括码流出流、音频播放、触控按键输入、麦克风等特性。该接口以动态链接库的形式提供,并提供头文件供开发者调用。其中每一种特性对应一种数据类型,同时对应一个组件模块。
其中,开发者与接口的交互通过配置结构体实现。各个模块的具体配置文件可基于通用配置结构体扩展。通用配置结构体中,version为当前模块版本号。
struct VmiConfig { uint32_t version; // 设置为各个组件的当前的版本号,参见:VmiVersion结构体 } __attribute__((packed));
启动引擎需要的配置项为VmiConfigEngine,包含DataCallback数据回调和需要启动的模块列表。
struct VmiConfigEngine { DataCallback dataCallback = nullptr; // 用于发送服务端数据的回调 DataTypeConfig dataTypeConfig[DATA_TYPE_MAX]; } __attribute__((packed));
数据输出统一使用回调函数实现,不提供数据输出的函数接口。回调函数定义如下:
using DataCallback = int(*)(VmiDataType module, VmiCmd cmd, uint8_t *data, uint32_t size);
DataTypeConfig数组指明每个模块是否需要初始化,以及初始化时数据包头前需要预留的内存空间大小,便于开发者填充需要的数据。
struct DataTypeConfig { bool shouldInit = false; uint32_t sendDataOffset = 0; // 通过回调函数发送数据时,在数据头预留的空间,单位为Byte } __attribute__((packed));
父主题: 函数接口