MI VDF API
1. 概述¶
1.1. 模块说明¶
VDF实现MD,OD,VG视频通道的初始化,通道管理,视频检测结果的管理和通道销毁等功能。
1.2. 流程框图¶
上图是开启一路VDF的调用流程,但是VDF可以支持多路通道,每个通道都可以设置MD/OD/VG其中一种工作模式。
每一路VDF通道,都要独立调用MI_VDF_CreateChn、MI_VDF_SetChnAttr、MI_VDF_EnableSubWindow、MI_VDF_GetResult、MI_VDF_PutResult、MI_VDF_DestroyChn本通道做控制。
如下图所示,开启了4个VDF通道,其中通道0和通道1设置为MD模式,通道2和通道3设置为OD模式。
1.3. 关键字说明¶
-
MD:移动侦测
-
OD:遮挡侦测
-
VG:虚拟围栏
2. API 参考¶
2.1. VDF API列表¶
API名 | 功能 |
---|---|
MI_VDF_Init | 初始化MI_VDF模块 |
MI_VDF_Uninit | 析构MI_VDF模块 |
MI_VDF_CreateChn | 创建视频侦测(MD/OD/VG)通道 |
MI_VDF_DestroyChn | 销毁已创建的视频侦测(MD/OD/VG)通道 |
MI_VDF_SetChnAttr | 设置视频侦测(MD/OD/VG)通道属性 |
MI_VDF_GetChnAttr | 获取视频侦测(MD/OD/VG)通道属性 |
MI_VDF_EnableSubWindow | 使能VDF视频侦测(MD/OD/VG)通道子窗口 |
MI_VDF_Run | 开始运行视频侦测(MD/OD/VG) |
MI_VDF_Stop | 停止运行视频侦测(MD/OD/VG) |
MI_VDF_GetResult | 获取视频侦测(MD/OD/VG)结果 |
MI_VDF_PutResult | 释放视频侦测(MD/OD/VG)结果 |
MI_VDF_GetLibVersion | 获取VDF指定通道的版本号 |
MI_VDF_GetDebugInfo | 获取VDF指定通道的Debuginfo(only VG支持) |
2.2. VDF API说明¶
2.2.1. MI_VDF_Init¶
-
功能
创建VDF通道,初始化VDF模块。
-
语法
MI_S32 MI_VDF_Init(void);
-
返回值
-
0 成功。
-
非0 失败,参照错误码。
-
-
依赖
-
头文件:mi_sys.h、mi_md.h、mi_od.h、mi_vg.h、mi_vdf.h
-
库文件:libOD_LINUX.a、libMD_LINUX.a、libVG_LINUX.a、libmi_vdf.a
-
-
注意
-
MI_VDF_Init需要在调用MI_SYS_Init之后调用。
-
不可以重复调用MI_VDF_Init。
-
-
相关主题
2.2.2. MI_VDF_Uninit¶
-
功能
析构MI_VDF系统, 调用MI_VDF_Uninit 之前,需要确保已创建的VDF通道都已经被disable,所有通道的视频检测结果都被释放。
-
语法
MI_S32 MI_VDF_Uninit (void);
-
返回值
-
0 成功。
-
非0 失败,参照错误码。
-
-
依赖
-
头文件:mi_sys.h、mi_md.h、mi_od.h、mi_vg.h、mi_vdf.h
-
库文件:libOD_LINUX.a、libMD_LINUX.a、libVG_LINUX.a、libmi_vdf.a
-
-
注意
-
MI_VDF_Uninit 调用前需要确保所有创建的VDF通道都处于disable状态。
-
MI_VDF_Uninit 调用前需要确保所有创建的VDF通道的结果都释放。
-
-
举例
参见MI_VDF_Init举例。
2.2.3. MI_VDF_CreateChn¶
-
功能
创建视频侦测(MD/OD/VG)通道。
-
语法
MI_S32 MI_VDF_CreateChn(MI_VDF_CHANNEL VdfChn, const MI_VDF_ChnAttr_t* pstAttr);
-
形参
参数名称 参数含义 输入/输出 VdfChn 指定视频侦测通道号。 输入 pstAttr 设置视频通道属性值。 输入 -
返回值
-
0 成功。
-
非0 失败,参照错误码。
-
-
依赖
-
头文件:mi_sys.h、mi_md.h、mi_od.h、mi_vg.h、mi_vdf.h
-
库文件:libOD_LINUX.a、libMD_LINUX.a、libVG_LINUX.a、libmi_vdf.a
-
-
注意
-
VdfChn不能重复指定。
-
VdfChn的有有效值范围:0<= VdfCh < MI_VDF_CHANNEL_MAX,MI_VDF_CHANNEL_MAX定义在 mi_vdf_datatype.h。
-
相关主题
2.2.4. MI_VDF_DestroyChn¶
-
功能
销毁已创建的视频侦测通道。
-
语法
MI_S32 MI_VDF_DestroyChn(MI_VDF_CHANNEL VdfChn);
-
形参
参数名称 描述 输入/输出 VdfChn 已经创建的视频侦测通道号。 输入 -
返回值
-
0 成功。
-
非0 失败,参照错误码。
-
-
依赖
-
头文件:mi_sys.h、mi_md.h、mi_od.h、mi_vg.h、mi_vdf.h
-
库文件:libOD_LINUX.a、libMD_LINUX.a、libVG_LINUX.a、libmi_vdf.a
-
-
注意
-
VdfChn必须是已经创建的视频侦测通道。
-
VdfChn的有有效值范围:0<= VdfCh < MI_VDF_CHANNEL_MAX,MI_VDF_CHANNEL_MAX定义在 mi_vdf_datatype.h。
-
2.2.5. MI_VDF_SetChnAttr¶
-
功能
设置视频侦测通道的属性。
-
语法
MI_S32 MI_VDF_SetChnAttr(MI_VDF_CHANNEL VdfChn, const MI_VDF_ChnAttr_t* pstAttr);
-
形参
参数名称 描述 输入/输出 VdfChn 已经创建的视频侦测通道号。 输入 pstAttr 源端口配置信息数据结构指针。 输入 -
返回值
-
0 成功。
-
非0 失败,参照错误码。
-
-
依赖
-
头文件:mi_sys.h、mi_md.h、mi_od.h、mi_vg.h、mi_vdf.h
-
库文件:libOD_LINUX.a、libMD_LINUX.a、libVG_LINUX.a、libmi_vdf.a
-
-
注意
-
VdfChn必须是已经创建的视频侦测通道。
-
该接口指定设置视频侦测通道的动态属性值,即MI_VDF_ChnAttr_t中的stMdDynamicParamsIn /stOdDynamicParamsIn/ stVgAttr部分。
-
2.2.6. MI_VDF_GetChnAttr¶
-
功能
获取视频侦测通道属性。
-
语法
MI_S32 MI_VDF_GetChnAttr(MI_VDF_CHANNEL VdfChn, MI_VDF_ChnAttr_t* pstAttr);
-
形参
参数名称 描述 输入/输出 VdfChn 已经创建的视频侦测通道号。 输入 pstAttr 用来保存返回的视频侦测通道属性值 输出 -
返回值
-
0 成功。
-
非0 失败,参照错误码。
-
-
依赖
-
头文件:mi_sys.h、mi_md.h、mi_od.h、mi_vg.h、mi_vdf.h
-
库文件:libOD_LINUX.a、libMD_LINUX.a、libVG_LINUX.a、libmi_vdf.a
-
2.2.7. MI_VDF_EnableSubWindow¶
-
功能
使能/关闭指定的视频侦测通道子窗口。
-
语法
MI_S32 MI_VDF_EnableSubWindow(MI_VDF_CHANNEL VdfChn, MI_U8 u8Col, MI_U8 u8Row, MI_U8 u8Enable);
-
形参
参数名称 描述 输入/输出 VdfChn 已经创建的视频侦测通道号。 输入 u8Col 子窗口的行地址(保留参数,暂不使用) 输入 u8Row 子窗口的列地址(保留参数,暂不使用) 输入 u8Enable 子窗口的使能控制标志 输入 -
返回值
-
0 成功。
-
非0 失败,参照错误码。
-
-
依赖
-
头文件:Mi_sys.h、mi_md.h、mi_od.h、mi_vg.h、mi_vdf.h
-
库文件:libOD_LINUX.a、libMD_LINUX.a、libVG_LINUX.a、libmi_vdf.a
-
-
注意
-
u8Col, u8Row为API 接口向上兼容而保留,暂无实际作用,可以直接赋值0。
-
工作模式目前支持三种:MD,OD,VG。
-
MI_VDF_Run/MI_VDF_Stop函数作用的是整个工作模式(MD/OD/VG)下的所有视频侦测通道;而MI_VDF_EnableSubWindow则是作用于单个视频侦测通道。对于一个VdfChn来说,只有MI_VDF_Run和MI_VDF_EnableSubWindow都开启,才会开始运行。只要调用MI_VDF_Stop或者调用MI_VDF_EnableSubWindow的时候u8Enable设置成flase,都会停止。
-
2.2.8. MI_VDF_Run¶
-
功能
开启指定的视频侦测工作模式(MD/OD/VG)。
-
语法
MI_S32 MI_VDF_Run(MI_VDF_WorkMode_e enWorkMode);
-
形参
参数名称 描述 输入/输出 enWorkMode 视频侦测(MD/OD/VG)工作模式。 输入 -
返回值
-
0 成功。
-
非0 失败,参照*错误码*。
-
-
依赖
-
头文件:mi_sys.h、mi_md.h、mi_od.h、mi_vg.h、mi_vdf.h
-
库文件:libOD_LINUX.a、libMD_LINUX.a、libVG_LINUX.a、libmi_vdf.a
-
-
注意
-
工作模式目前支持三种:MD,OD,VG。
-
MI_VDF_Run/MI_VDF_Stop函数作用于整个工作模式(MD/OD/VG)下的所有视频侦测通道。
-
2.2.9. MI_VDF_Stop¶
-
功能
停止视频侦测(MD/OD/VG)工作模式。
-
语法
MI_S32 MI_VDF_Stop(MI_VDF_WorkMode_e enWorkMode);
-
形参
参数名称 描述 输入/输出 enWorkMode 视频侦测(MD/OD/VG)工作模式。 输入 -
返回值
-
0 成功。
-
非0 失败,参照错误码。
-
-
依赖
-
头文件:mi_sys.h、mi_md.h、mi_od.h、mi_vg.h、mi_vdf.h
-
库文件:libOD_LINUX.a、libMD_LINUX.a、libVG_LINUX.a、libmi_vdf.a
-
-
注意
-
工作模式目前支持三种:MD,OD,VG。
-
MI_VDF_Run/MI_VDF_Stop函数作用于整个工作模式(MD/OD/VG)下的所有视频侦测通道。
-
2.2.10. MI_VDF_GetResult¶
-
功能
获取指定视频侦测通道的检测结果。
-
语法
MI_S32 MI_VDF_GetResult(MI_VDF_CHANNEL VdfChn, MI_VDF_Result_t\* pstVdfResult, MI_S32 s32MilliSec);
-
形参
参数名称 描述 输入/输出 VdfChn 已经创建的视频侦测通道号。 输入 s32MilliSec 输入时间参数(保留参数,暂不使用) 输入 pstVdfResult 用来保存返回的视频侦测结果 输出 -
返回值
-
0 成功。
-
非0 失败,参照错误码。
-
-
依赖
-
头文件:mi_sys.h、mi_md.h、mi_od.h、mi_vg.h、mi_vdf.h
-
库文件:libOD_LINUX.a、libMD_LINUX.a、libVG_LINUX.a、libmi_vdf.a
-
-
注意
-
VdfChn必须是已经创建的视频侦测通道。
-
s32MilliSec为API 接口向上兼容而保留,暂无实际作用,可以直接赋值0。
-
用于保存返回结果的指针不能为空。
-
2.2.11. MI_VDF_PutResult¶
-
功能
释放指定视频侦测通道的检测结果。
-
语法
MI_S32 MI_VDF_PutResult(MI_VDF_CHANNEL VdfChn, MI_VDF_Result_t* pstVdfResult);
-
形参
参数名称 描述 输入/输出 VdfChn 已经创建的视频侦测通道号。 输入 pstVdfResult 指定需要释放视频通道的结果参数 输入 -
返回值
-
0 成功。
-
非0 失败,参照*错误码*。
-
-
依赖
-
头文件:mi_sys.h、mi_md.h、mi_od.h、mi_vg.h、mi_vdf.h
-
库文件:libOD_LINUX.a、libMD_LINUX.a、libVG_LINUX.a、libmi_vdf.a
-
-
注意
- VdfChn必须是已经创建的视频侦测通道。
2.2.12. MI_VDF_GetLibVersion¶
-
功能
获取MD/OD/VG库版本号。
-
语法
MI_S32 MI_VDF_GetLibVersion(MI_VDF_CHANNEL VdfChn, MI_U32* u32VDFVersion);
-
形参
参数名称 描述 输入/输出 VdfChn 已经创建的视频侦测通道号。 输入 u32VDFVersion 存储版本号的整形指针(不能为空) 输出 -
返回值
-
0 成功。
-
非0 失败,参照错误码。
-
-
依赖
-
头文件:mi_sys.h、mi_md.h、mi_od.h、mi_vg.h、mi_vdf.h
-
库文件:libOD_LINUX.a、libMD_LINUX.a、libVG_LINUX.a、libmi_vdf.a
-
2.2.13. MI_VDF_GetDebugInfo¶
-
功能
获取MD/OD/VG库的调试信息。
-
语法
MI_S32 MI_VDF_GetDebugInfo(MI_VDF_CHANNEL VdfChn, MI_VDF_DebugInfo_t *pstDebugInfo);
-
形参
参数名称 描述 输入/输出 VdfChn 已经创建的视频侦测通道号。 输入 pstDebugInfo 存储VDF 调试信息的整形指针(不能为空) 输出 -
返回值
-
0 成功。
-
非0 失败,参照错误码。
-
-
依赖
-
头文件:mi_sys.h、mi_md.h、mi_od.h、mi_vg.h、mi_vdf.h
-
库文件:libOD_LINUX.a、libMD_LINUX.a、libVG_LINUX.a、libmi_vdf.a
-
-
注意
- 目前只支持返回VG的调试信息,当VdfChn的工作模式是VG时,才有效。
3. 数据类型¶
3.1. VDF结构体列表¶
相关数据类型、数据结构、联合体定义如下:
结构体 | 定义 |
---|---|
MI_VDF_WorkMode_e | 定义VDF工作模式的枚举类型 |
MI_VDF_Color_e | 定义视频侦测通道输入源的枚举类型 |
MI_VDF_ODWindow_e | 定义OD时画面的子窗口数量的枚举类型 |
MI_MD_Result_t | 定义MD结果的结构体 |
MI_OD_Result_t | 定义OD结果的结构体 |
MI_VG_Result_t | 定义VG结果的结构体 |
MI_VDF_Result_t | 定义VDF工作模式对应结果的结构体 |
MI_VDF_MdAttr_t | 定义MD通道属性的结构体 |
MI_VDF_OdAttr_t | 定义OD通道属性的结构体 |
MI_VDF_VgAttr_t | 定义VG通道属性的结构体 |
MI_VDF_ChnAttr_t | 定义通道工作模式属性的结构体 |
MDRST_STATUS_t | 定义侦测子窗口区域运动检测结果的结构体 |
3.2. VDF结构体说明¶
3.2.1. MI_VDF_WorkMode_e¶
-
说明
定义VDF工作模式的枚举类型。
-
定义
typedef enum { E_MI_VDF_WORK_MODE_MD = 0, E_MI_VDF_WORK_MODE_OD, E_MI_VDF_WORK_MODE_VG, E_MI_VDF_WORK_MODE_MAX }MI_VDF_WorkMode_e;
-
成员
成员名称 描述 E_MI_VDF_WORK_MODE_MD MD工作模式 E_MI_VDF_WORK_MODE_OD OD工作模式 E_MI_VDF_WORK_MODE_VG VG工作模式 E_MI_VDF_WORK_MODE_MAX 工作模式的错误码标识
3.2.2. MI_VDF_Color_e¶
-
说明
定义视频侦测通道输入源的枚举类型
-
定义
typedef enum { E_MI_VDF_COLOR_Y = 1, E_MI_VDF_COLOR_MAX } MI_VDF_Color_e;
-
成员
成员名称 描述 E_MI_VDF_COLOR_Y 视频侦测通道输入源类型的正确标识 E_MI_VDF_COLOR_MAX 视频侦测通道输入源类型的错误码标识
3.2.3. MI_VDF_ODWindow_e¶
-
说明
定义OD时画面的子窗口数量的枚举类型
-
定义
typedef enum { E_MI_VDF_ODWINDOW_1X1 = 0, E_MI_VDF_ODWINDOW_2X2, E_MI_VDF_ODWINDOW_3X3, E_MI_VDF_ODWINDOW_MAX } MI_VDF_ODWindow_e;
-
成员
成员名称 描述 E_MI_VDF_ODWINDOW_1X1 OD画面分割为1个子窗口 E_MI_VDF_ODWINDOW_2X2 OD画面分割为2x2个子窗口 E_MI_VDF_ODWINDOW_3X3 OD画面分割为3x3个子窗口 E_MI_VDF_ODWINDOW_MAX OD画面子窗口数量的错误码标识
3.2.4. MI_MD_Result_t¶
-
说明
定义MD结果的结构体。
-
定义
typedef struct MI_MD_Result_s { MI_U64 u64Pts; //The PTS of Image MI_U8 u8Enable; //=1表明该结果值有效 MI_MD_ResultSize_t stSubResultSize; MDRST_STATUS_t* pstMdResultStatus; //The MD result of Status MDSAD_DATA_t* pstMdResultSad; //The MD result of SAD MDOBJ_DATA_t* pstMdResultObj; //The MD result of Obj }MI_MD_Result_t;
-
成员
成员名称 描述 u64Pts 图像显示时间 u8Enable 表明该通道是否使能 u8Reading 表明该结果正在被应用层读取 stSubResultSize 描述MD返回的Sad、Obj、ReasultStauts子结构的Size pstMdResultStatus 描述MD各区域是否检测到运动 pstMdResultSad 描述MD的Sad值 pstMdResultObj 描述MD的CCL值
3.2.5. MI_OD_Result_t¶
-
说明
定义OD结果的结构体。
-
定义
typedef struct MI_OD_Result_s { MI_U8 u8Enable; MI_U8 u8WideDiv; //The number of divisions of window in horizontal direction MI_U8 u8HightDiv; //The number of divisions of window in vertical direction MI_U8 u8DataLen; //OD detect result readable size MI_U64 u64Pts; //The PTS of Image MI_S8 u8RgnAlarm[3][3]; //The OD result of the sub-window }MI_OD_Result_t;
-
成员
成员名称 描述 u8Enable 表明该通道是否使能 u8WideDiv 获取OD在水平方向的窗口数量 u8HightDiv 获取OD在垂直方向的窗口数量 u8DataLen 设置OD测试结果的可读大小 u64Pts 图像显示时间 u8RgnAlarm[3][3] OD子窗口信息的结果
3.2.6. MI_VG_Result_t¶
-
说明
定义VG结果的结构体。
-
定义
typedef MI_VgResult_t MI_VG_Result_t;
-
成员
成员名称 描述 alarm 描述VG的检测结果 alarm_cnt 描述VG的警报次数 bounding_box 描述触发VG警报的物体信息
3.2.7. MI_VDF_Result_t¶
-
说明
定义VDF工作模式对应结果的结构体。
-
定义
typedef struct _MI_VgResult_t { int32_t alarm[MAX_NUMBER]; int32_t alarm_cnt; MI_VgBoundingBox_t bounding_box[20]; } MI_VgResult_t;
-
成员
成员名称 描述 enWorkMode VDF工作模式(MD/OD/VG) handle 保存结果的handle stMdResult 描述MD结果的结构体 stOdResult 描述OD结果的结构体 stVgResult 描述VG结果的结构体
3.2.8. MI_VDF_MdAttr_t¶
-
说明
定义MD通道属性的结构体
-
定义
typedef struct MI_VDF_MdAttr_s { MI_U8 u8Enable; MI_U8 u8MdBufCnt; MI_U8 u8VDFIntvl; MI_U16 u16RstBufSize; MI_MD_ResultSize_t stSubResultSize; MDCCL_ctrl_t ccl_ctrl; MI_MD_static_param_t stMdStaticParamsIn; MI_MD_param_t stMdDynamicParamsIn; }MI_VDF_MdAttr_t;
-
成员
成员名称 描述 u8Enable 表明该通道是否使能 u8MdBufCnt 设置可以缓存的MD结果数量 MD结果缓存个数取值范围:[1, 8] 静态属性 u8VDFIntvl 侦测间隔取值范围:[0, 29],以帧为单位 动态属性 u16RstBufSize MD返回结果的总大小 stSubResultSize MD返回结果各子结构体 (Sad值、CCL值、ResultStatus)的大小 ccl_ctrl ccl_ctrl属性设置 stMdStaticParamsIn MD静态属性参数设置 stMdDynamicParamsIn MD动态属性参数设置
3.2.9. MI_VDF_OdAttr_t¶
-
说明
定义OD通道属性的结构体
-
定义
typedef struct MI_VDF_OdAttr_s { MI_U8 u8Enable; MI_U8 u8OdBufCnt; MI_U8 u8VDFIntvl; MI_U16 u16RstBufSize; MI_OD_static_param_t stOdStaticParamsIn; MI_OD_param_t stOdDynamicParamsIn; }MI_VDF_OdAttr_t;
-
成员
成员名称 描述 u8Enable 表明该通道是否使能 u8OdBufCnt OD结果缓存个数取值范围:[1, 16] 静态属性 u8VDFIntvl 侦测间隔取值范围:[0, 29],以帧为单位 动态属性 u16RstBufSize OD返回结果的总大小 stOdDynamicParamsIn OD动态属性参数设置 stOdStaticParamsIn OD静态属性参数设置
3.2.10. MI_VDF_VgAttr_t¶
-
说明
定义VG通道属性的结构体
-
定义
typedef struct MI_VDF_VgAttr_s { MI_U8 u8Enable; MI_U8 u8VgBufCnt; MI_U8 u8VDFIntvl; MI_U16 u16RstBufSize; MI_U16 width; MI_U16 height; MI_U16 stride; float object_size_thd; uint8_t indoor; uint8_t function_state; uint16_t line_number; MI_VgLine_t line[4]; MI_VgRegion_t vg_region; MI_VgSet_t stVgParamsIn; } MI_VDF_VgAttr_t;
-
成员
成员名称 描述 u8Enable 表明该通道是否使能 u8VgBufCnt VG结果缓存个数取值范围:[1, 8] 静态属性 u8VDFIntvl 侦测间隔取值范围:[0, 29],以帧为单位 动态属性 u16RstBufSize VG返回结果的总大小 width 图像的宽度 height 图像的高度 stride 图像的stride object_size_thd 决定滤除物体占感兴趣区域的百分比大小 (若object_size_thd = 1,表示有物体面积小于图像画面中感兴趣区域的百分之一则会忽略不计算。) indoor 室内或者室外,1-室内,0-室外 function_state 设定虚拟线段与区域入侵有种侦测模式 (VG_VIRTUAL_GATE,表示模式为虚拟线段 VG_REGION_INVASION,表示模式为区域入侵) line_number 设定虚拟线段的数目,范围:[1-4] line[4] 表明虚拟线段的结构体,最多可设置4条 vg_region 表明区域入侵的相关参数 stVgParamsIn Vg属性参数结构体,无需设置,由API返回
3.2.11. MI_VDF_ChnAttr_t¶
-
说明
定义通道工作模式属性的结构体。
-
定义
typedef struct MI_VDF_ChnAttr_s { MI_VDF_WorkMode_e enWorkMode; union { MI_VDF_MdAttr_t stMdAttr; MI_VDF_OdAttr_t stOdAttr; MI_VDF_VgAttr_t stVgAttr; }; }MI_VDF_ChnAttr_t;
-
成员
成员名称 描述 enWorkMode 工作模式(移动侦测,遮挡侦测,电子围栏) 静态属性 stMdAttr 移动侦测属性 stOdAttr 遮挡侦测属性 stVgAttr 电子围栏属性
3.2.12. MDRST_STATUS_t¶
-
说明
定义侦测子窗口区域运动检测结果的结构体
-
定义
typedef struct MDRST_STATUS_s { MI_U8 *paddr; } MDRST_STATUS_t;
-
成员
成员名称 描述 paddr 指向运动检测状态的buf,每个区域占用1字节 0-区块未检测运动,255-区块检测到运动
3.3. MD结构体列表¶
枚举 | |
---|---|
MDMB_MODE_e | 宏块的大小枚举值 |
MDSAD_OUT_CTRL_e | SAD输出格式的枚举值 |
MDALG_MODE_e | CCL连通区域的运算模式枚举值,可依前景结果或者SAD结果做CCL运算 |
结构 | |
MDCCL_ctrl_t | 控制CCL运行的参数结构 |
MDPreproc_ctrl_t | 控制MI_MD_Preproc运行的参数结构 |
MDblock_info_t | ROI坐标结构 |
MDPoint_t | 坐标结构 |
MDROI_t | MD侦测区域结构 |
MDSAD_DATA_t | MI_MD_ComputeImageSAD函式输出的结构 |
MDOBJ_t | 定义连通区域的信息:面积及最小包围矩形的坐标位置 |
MDOBJ_DATA_t | CCL输出的结构 |
MI_MD_IMG_t | 移动侦测的图像来源结构,分为实体与虚拟的内存地址指针。 |
MI_MD_static_param_t | MD静态参数设置结构 |
MI_MD_param_t | MD动态参数设置结构 |
3.4. MD结构体说明¶
3.4.1. MDMB_MODE_e¶
-
说明
宏块的大小枚举值。
-
定义
typedef enum MDMB_MODE_E { MDMB_MODE_MB_4x4 = 0x0, MDMB_MODE_MB_8x8 = 0x1, MDMB_MODE_MB_16x16 = 0x2, MDMB_MODE_BUTT } MDMB_MODE_e;
-
成员
成员名称 描述 MDMB_MODE_MB_4x4 使用4x4宏块 MDMB_MODE_MB_8x8 使用8x8宏块 MDMB_MODE_MB_16x16 使用16x16宏块
3.4.2. MDSAD_OUT_CTRL_e¶
-
说明
SAD输出格式的枚举值。
-
定义
typedef enum MDSAD_OUT_CTRL_E { MDSAD_OUT_CTRL_16BIT_SAD = 0x0, MDSAD_OUT_CTRL_8BIT_SAD = 0x1, MDSAD_OUT_CTRL_BUTT } MDSAD_OUT_CTRL_e;
-
成员
成员名称 描述 MDSAD_OUT_CTRL_16BIT_SAD 16 bit输出 MDSAD_OUT_CTRL_8BIT_SAD 8 bit输出
3.4.3. MDALG_MODE_e¶
-
说明
CCL连通区域的运算模式枚举值,可依前景结果或者SAD结果做CCL运算。
-
定义
typedef enum MDALG_MODE_E { MDALG_MODE_FG = 0x0, MDALG_MODE_SAD = 0x1, MDALG_MODE_FRAMEDIFF = 0x2, MDALG_MODE_BUTT } MDALG_MODE_e;
-
成员
成员名称 描述 MDALG_MODE_FG 前景模式 MDALG_MODE_SAD SAD模式 MDALG_MODE_FRAMEDIFF FrameDifference模式
3.4.4. MDCCL_ctrl_t¶
-
说明
控制CCL运行的参数结构。
-
定义
typedef struct MDCCL_ctrl_s { uint16_t u16InitAreaThr; uint16_t u16Step; } MDCCL_ctrl_t;
-
成员
成员名称 描述 u16InitAreaThr 区域面积的门坎值 u16Step 每提高一次门坎值的提升值
3.4.5. MDPreproc_ctrl_t¶
-
说明
控制MI_MD_Preproc运行的参数结构。
-
定义
typedef struct MDPreproc_ctrl_s { uint16_t u16Md_rgn_size; uint16_t u16Align; } MDPreproc_ctrl_t;
-
参数
参数 说明 u16Md_rgn_size 移动区域的大小范围门坎值,小于此门坎则不计算该区域为动态区域 u16Align 对应CNN model的align限制(HC/HD:32ss align, FD:64align)
3.4.6. MDblock_info_t¶
-
描述
ROI坐标结构。
-
定义
typedef struct MDblock_info_s { uint16_t st_x; uint16_t st_y; uint16_t end_x; uint16_t end_y; } MDblock_info_t;
-
参数
|参数 说明| |-----|-----| |st_x|ROI的左上x坐标| |st_y|ROI的左上y坐标| |end_x|ROI的右下x坐标| |end_y|ROI的右下y坐标|
3.4.7. MDPoint_t¶
-
说明
坐标结构。
-
定义
typedef struct MDPoint_s { uint16_t x; uint16_t y; } MDPoint_t;
-
成员
成员名称 描述 x X坐标 y Y坐标
3.4.8. MDROI_t¶
-
说明
MD侦测区域结构。
-
定义
typedef struct MDROI_s { uint8_t num; MDPoint_t pnt[8]; } MDROI_t;
-
成员
成员名称 描述 num MD侦测区域点数,目前仅支持设为4点 pnt[8] 四点坐标(须设为矩形) -
注意事项
要求设置为矩形,num=4,左上角坐标顺时针依序设置四个点,如图示。
图3-1
3.4.9. MDSAD_DATA_t¶
-
说明
MI_MD_ComputeImageSAD函式输出的结构。
-
定义
typedef struct MDSAD_DATA_s { void *paddr; uint32_t stride; MDSAD_OUT_CTRL_e enOutCtrl; } MDSAD_DATA_t;
-
成员
成员名称 描述 paddr 存放SAD结果的内存地址指针 stride Image stride enOutCtrl SAD输出格式的枚举值
3.4.10. MDOBJ_t¶
-
说明
定义连通区域的信息:面积及最小包围矩形的坐标位置。
-
定义
typedef struct MDOBJ_s { uint32_t u32Area; uint16_t u16Left; uint16_t u16Right; uint16_t u16Top; uint16_t u16Bottom; } MDOBJ_t;
-
成员
成员名称 描述 u32Area 单一连通区域的像素总数 u16Left 最小矩形的左上x坐标 u16Right 最小矩形的右下x坐标 u16Top 最小矩形的左上y坐标 u16Bottom 最小矩形的左上y坐标
3.4.11. MDOBJ_DATA_t¶
-
说明
MI_MD_CCL输出的结构。
-
定义
typedef struct MDOBJ_DATA_s { uint8_t u8RegionNum; MDOBJ_t *astRegion; uint8_t indexofmaxobj; uint32_t areaofmaxobj; uint32_t areaoftotalobj; } MDOBJ_DATA_t;
-
成员
成员名称 描述 u8RegionNum 连通区域数量 astRegion 连通区域的信息:面积及最小包围矩形的坐标位置 最大容许数量为255 indexofmaxobj 最大面积的连通区域索引值 areaofmaxobj 最大面积的连通区域面积值 areaoftotalobj 所有连通区域的面积和
3.4.12. MI_MD_IMG_t¶
-
说明
移动侦测的图像来源结构,分为物理与虚拟的内存地址指针。
-
定义
typedef struct MI_MD_IMG_s { void *pu32PhyAddr; uint8_t *pu8VirAddr; } MI_MD_IMG_t;
-
成员
成员名称 描述 pu32PhyAddr 物理内存地址指针,若无请填NULL pu8VirAddr 虚拟的内存地址指针
3.4.13. MI_MD_static_param_t¶
-
说明
MD静态参数设置结构。
-
定义
typedef struct MI_MD_static_param_s { uint16_t width; uint16_t height; uint8_t color; uint32_t stride; MDMB_MODE_e mb_size; MDSAD_OUT_CTRL_e sad_out_ctrl; MDROI_t roi_md; MDALG_MODE_e md_alg_mode; } MI_MD_static_param_t;
-
成员
成员名称 描述 width 输入图像宽 height 输入图像高 stride 输入图像的stride color MD输入图像的类型 mb_size 宏块的大小枚举值 sad_out_ctrl SAD输出格式的枚举值 roi_md MD侦测区域结构 md_alg_mode CCL连通区域的运算模式枚举值
3.4.14. MI_MD_param_t¶
-
说明
MD动态参数设置结构。
-
定义
typedef struct MI_MD_param_s { uint8_t sensitivity; uint16_t learn_rate; uint32_t md_thr; uint32_t obj_num_max; uint8_t LSD_open; } MI_MD_param_t;
-
成员
成员名称 描述 sensitivity 算法灵敏度,范围[10,20,30,…..100],值越大越灵敏,输入的灵敏度如非 10 的倍数, 当运算后反馈, 有可能不为当初输入的数值, 会有 +-1 的偏差。仅于FG模式下有效。 learn_rate 随不同模式而有不同设定标准
MDALG_MODE_FG : 单位毫秒,范围[1000,30000],用于控制前端物体停止运动多久时,才作为背景画面
MDALG_MODE_SAD : 范围[1, 255],背景更新的权重比,建议设定值:128md_thr 当呼叫MI_MD_CCL连通组件标记的运算时,作为判定移动有效的门坎值,随不同模式而有不同设定标准。
MDALG_MODE_FG : 设置为百分比(%),范围[0, 99],判断MB是否警报的门坎值,ex. 若MB size 8*8,md_thr=50,当MB中有超过32个以上的pixel为前景则此MB判为有效。
MDALG_MODE_SAD : 设置为pixel差值,范围[0, 255],判断MB是否警报的门坎值,ex. 若MB size 8*8,md_thr=50,当MB中平均的pixel差值超过50,则此MB判为有效。obj_num_max CCL的连通区域数量限制值 LSD_open 决定是否作用MI_MD_LightSwitchDetect。范围[0,1],若在LSD_open=0的情况下调用LightSwitchDetect函式,则无作用。
3.5. OD结构体列表¶
枚举 | |
---|---|
MI_OD_WIN_STATE | OD检测窗口的结果 |
ODColor_e | OD数据源输入的类型 |
ODWindow_e | OD检测窗口的类型 |
结构 | |
ODPoint_t | 坐标结构 |
ODROI_t | OD侦测区域结构 |
MI_OD_IMG_t | 遮挡侦测的图像来源结构,分为实体与虚拟的内存地址指针。 |
MI_OD_static_param_t | OD静态参数设置结构 |
MI_OD_param_t | OD动态参数设置结构 |
3.6. OD结构体说明¶
3.6.1. MI_OD_WIN_STATE¶
-
说明
OD检测窗口的结果。
-
定义
typedef enum _MI_OD_WIN_STATE { MI_OD_WIN_STATE_NON_TAMPER = 0, MI_OD_WIN_STATE_TAMPER = 1, MI_OD_WIN_STATE_NO_FEATURE = 2, MI_OD_WIN_STATE_FAIL = -1, } MI_OD_WIN_STATE;
-
成员
成员名称 描述 MI_OD_WIN_STATE_NON_TAMPER 窗口没遮挡 MI_OD_WIN_STATE_TAMPER 窗口被遮挡 MI_OD_WIN_STATE_NO_FEATURE 窗口特征不足 MI_OD_WIN_STATE_FAIL 失败
3.6.2. ODColor_e¶
-
说明
OD数据源输入的类型。
-
定义
typedef enum { OD_Y = 1, OD_COLOR_MAX } ODColor_e;
-
成员
成员名称 描述 OD_Y YUV数据源中的y分量 OD_COLOR_MAX 输入图像类型的最大值
3.6.3. ODWindow_e¶
-
说明
OD检测窗口的类型,推荐值为OD_WINDOW_3X3,用于测试。
-
定义
typedef enum { OD_WINDOW_1X1 = 0, OD_WINDOW_2X2, OD_WINDOW_3X3, OD_WINDOW_MAX } ODWindow_e;
-
成员
成员名称 描述 OD_WINDOW_1X1 1个窗口 OD_WINDOW_2X2 4个窗口 OD_WINDOW_3X3 9个窗口 OD_WINDOW_MAX 窗口类型的最大值
3.6.4. ODPoint_t¶
-
说明
坐标结构。
-
定义
typedef struct ODPoint_s { uint16_t x; uint16_t y; } ODPoint_t;
-
成员
成员名称 描述 x X坐标 y Y坐标
3.6.5. ODROI_t¶
-
说明
OD侦测区域结构。
-
定义
typedef struct ODROI_s { uint8_t num; ODPoint_t pnt[8]; } ODROI_t;
-
成员
成员名称 描述 num OD侦测区域点数,目前仅支持设为4点 pnt[8] 四点坐标(须设为矩形) -
注意
要求设置为矩形,num=4,左上角坐标顺时针依序设置四个点,如图示。
图3-2
3.6.6. MI_OD_IMG_t¶
-
说明
遮挡侦测的图像来源结构,分为实体与虚拟的内存地址指针。
-
定义
typedef struct MI_OD_IMG_s { void *pu32PhyAddr; uint8_t *pu8VirAddr; } MI_OD_IMG_t;
-
成员
成员名称 描述 pu32PhyAddr 实体的内存地址指针 pu8VirAddr 虚拟的内存地址指针
3.6.7. MI_OD_static_param_t¶
-
说明
OD静态参数设置结构。
-
定义
typedef struct MI_OD_static_param_s { uint16_t inImgW; uint16_t inImgH; uint32_t inImgStride; ODColor_e nClrType; ODWindow_e div; ODROI_t roi_od; int32_t alpha; int32_t M; int32_t MotionSensitivity; } MI_OD_static_param_t;
-
成员
成员名称 描述 inImgW 输入图像宽 inImgH 输入图像高 inImgStride 输入图像stride nClrType OD输入图像的类型 div OD检测窗口的类型 roi_od OD侦测区域结构 alpha 控制产生参考图像的学习速率 M 多少张图像更新一次参考图像 MotionSensitivity 移动敏感度设置 -
注意事项
-
设置范围 alpha : 0~10,建议设置 2,不建议更动。
-
设置范围 MotionSensitivity: 0~5,设5表示对轻微的晃动都很敏感,容易发报;设0表示对轻微晃动的宽容性比较好,不会发报,这边指的轻微晃动是风吹摇曳之类的,建议初始可设5。
-
M建议设置120,不建议更动。
-
3.6.8. MI_OD_param_t¶
-
说明
D动态参数设置结构。
-
定义
typedef struct MI_OD_param_s { int32_t thd_tamper; int32_t tamper_blk_thd; int32_t min_duration; } MI_OD_param_t;
-
成员
成员名称 描述 thd_tamper 图像差异比例门坎值 tamper_blk_thd 图像被遮挡区域数量门坎值 min_duration 图像差异持续时间门坎值,单位是frame cnt -
注意事项
-
设置范围 thd_tamper : 0~10。若thd_tamper=3,表示超过70%画面遮挡即发报。
-
设置范围 tamper_blk_thd : 对应MI_OD_Init的窗口类型参数,若为OD_WINDOW_3X3,则tamper_blk_thd 最多不可超过9,即1~9。
-
例如MI_OD_Init的窗口类型参数为OD_WINDOW_3X3(9个子区域)tamper_blk_thd值为4时,当被遮挡的子区域的数量达到4个才触发MI_OD_Run的返回值为1。
-
min_duration数值越大,检测到被遮挡所需的时间越长。
-
MI_OD_Run的灵敏度可以通过设置tamper_blk_thd和min_duration来调节。对应高中低的推荐值如下:
参数名 高 中 低 tamper_blk_thd 2 4 8 min_duration 5 15 30 -
3.7. VG结构体列表¶
枚举 | |
---|---|
VgFunction | 侦测模式的枚举值 |
VgRegion_Dir | 区域入侵的方向的枚举值 |
VgSize_Sensitively | 灵敏度参数结构 |
VgDirection_State | 区域入侵的侦测规则枚举值 |
结构 | |
MI_VG_Point_t | 坐标点对应的结构 |
MI_VgLine_t | 描述虚拟线段和方向的结构 |
MI_VgRegion_t | 描述设置区域入侵的结构 |
MI_VgSet_t | Vg对应参数设置的结构 |
MI_VgResult_t | Vg检测结果对应的结构 |
MI_VgBoundingBox_t | Vg检测结果对应的物件大小结构 |
MI_VgDetectThd | Vg建立背景信息的参数设置的结构 |
3.8. VG结构体说明¶
3.8.1. VgFunction¶
-
说明
侦测模式的枚举值。
-
定义
typedef enum _VgFunction { VG_VIRTUAL_GATE = 2, VG_REGION_INVASION = 3 } VgFunction;
-
成员
成员名称 描述 VG_VIRTUAL_GATE 表示模式为虚拟线段 VG_REGION_INVASION 表示模式为区域入侵
3.8.2. VgRegion_Dir¶
-
说明
区域入侵的方向的枚举值。
-
定义
typedef enum _VgRegion_Dir { VG_REGION_ENTER = 0, VG_REGION_LEAVING = 1, VG_REGION_CROSS = 2 } VgRegion_Dir;
-
成员
成员名称 描述 VG_REGION_ENTER 表示要进入警报区域才触发警报 VG_REGION_LEAVING 表示要离开警报区域才触发警报 VG_REGION_CROSS 表示只要穿越警报区域就触发警报
3.8.3. VgSize_Sensitively¶
-
说明
灵敏度参数结构。
-
定义
typedef enum _VgSize_Sensitively { VG_SENSITIVELY_MIN = 0, VG_SENSITIVELY_LOW = 1, VG_SENSITIVELY_MIDDLE = 2, VG_SENSITIVELY_HIGH = 3, VG_SENSITIVELY_MAX = 4 } VgSize_Sensitively;
-
成员
成员名称 描述 VG_SENSITIVELY_MIN 表示只侦测大于30%影像大小的物体 VG_SENSITIVELY_LOW 表示只侦测大于10%影像大小的物体 VG_SENSITIVELY_MIDDLE 表示只侦测大于5%影像大小的物体 VG_SENSITIVELY_HIGH 表示只侦测大于1%影像大小的物体 VG_SENSITIVELY_MAX 表示只侦测大于0.5%影像大小的物体
3.8.4. VgDirection_State¶
-
说明
区域入侵的侦测规则枚举值。
-
定义
typedef enum _VgDirection_State { VG_SPEC_DIRECTION_CLOSE = 0, VG_SPEC_DIRECTION_OPEN = 1 } VgDirection_State;
-
成员
成员名称 描述 VG_SPEC_DIRECTION_CLOSE 关闭结果会区分进入和离开区域的功能 设定 VG\_REGION\_CROSS 前提下,只侦测警报,无判断方向功能。 VG_SPEC_DIRECTION_OPEN 开启结果会区分进入和离开区域的功能 设定 VG\_REGION\_CROSS 前提下,可判断出警报时的方向是进入还是离开。
3.8.5. MI_VG_Point_t¶
-
说明
坐标点对应的结构。
-
定义
typedef struct _VG_Point_t { int32_t x; int32_t y; } MI_VG_Point_t;
-
成员
成员名称 描述 x X坐标 y Y坐标
3.8.6. MI_VgLine_t¶
-
说明
描述虚拟线段和方向的结构。
-
定义
typedef struct _VG_Line_t { MI_VG_Point_t px; //point x MI_VG_Point_t py; //point y MI_VG_Point_t pdx; //point direction x MI_VG_Point_t pdy; //point direction y } MI_VgLine_t;
-
成员
成员名称 描述 px 第一个线段点 py 第二个线段点 pdx 第一个方向点 pdy 第二个方向点
3.8.7. MI_VgRegion_t¶
-
说明
描述设置区域入侵的结构。
-
定义
typedef struct _VG_Region_t { MI_VG_Point_t p_one; //point one MI_VG_Point_t p_two; //point two MI_VG_Point_t p_three; //point three MI_VG_Point_t p_four; //point four int32_t region_dir; //Region direction; int32_t spec_dir_state; } MI_VgRegion_t;
-
成员
成员名称 描述 p_one 描述区域的第一个点 p_two 描述区域的第二个点 p_three 描述区域的第三个点 p_four 描述区域的第四个点 region_dir 设定区域入侵的方向 spec_dir_state 设定区域入侵在region_dir= VG_REGION_CROSS时,是否区分进入和离开
3.8.8. MI_VgSet_t¶
-
说明
Vg对应参数设置的结构。
-
定义
typedef struct _MI_VgSet_t { //Common Information float object_size_thd; uint16_t line_number; uint8_t indoor; //Line info MI_VG_Point_t fp[4]; //First point MI_VG_Point_t sp[4]; //Second point MI_VG_Point_t fdp[4]; //First direction point MI_VG_Point_t sdp[4]; //Second direction point //Function uint8_t function_state; //Region info MI_VG_Point_t first_p; //First point MI_VG_Point_t second_p; //Second point MI_VG_Point_t third_p; //Third point MI_VG_Point_t fourth_p; //Fourth point //Region direction uint8_t region_direction; //Magic_number int32_t magic_number; int32_t region_spdir_state; } MI_VgSet_t;
-
成员
成员名称 描述 object_size_thd 决定滤除物体占感兴趣区域的百分比阀值 line_number 设定虚拟线段的数目,范围:[1-4] indoor 室内或者室外,1-室内,0-室外 fp[4] 第一个线段点数组 sp[4] 第二个线段点数组 fdp[4] 第三个线段点数组 sdp[4] 第四个线段点数组 function_state 设定虚拟线段、区域入侵侦测模式 first_p 入侵区域第一个点 second_p 入侵区域第二个点 third_p 入侵区域第三个点 fourth_p 入侵区域低四个点 region_direction 表明区域入侵的相关参数 magic_number Magic Number region_spdir_state 入侵区域的相关规则方向参数
3.8.9. MI_VgResult_t¶
-
说明
Vg检测结果对应的结构。
-
定义
typedef struct _MI_VgResult_t { int32_t alarm[4]; int32_t alarm_cnt; MI_VgBoundingBox_t bounding_box[20]; } MI_VgResult_t;
-
成员
成员名称 描述 alarm[4] Vg的报警结果 alarm_cnt Vg的报警次数 bounding_box Vg触发警报的对象信息
3.8.10. MI_VgBoundingBox_t¶
-
说明
Vg检测结果对应的物件大小结构。
-
定义
typedef struct _MI_VgBoundingBox_t { int32_t up; int32_t down; int32_t left; int32_t right; } MI_VgBoundingBox_t;
-
成员
成员名称 描述 up 对象的最小 y 坐标信息 down 对象的最大 y 坐标信息 left 对象的最小 x 坐标信息 right 对象的最大 x 坐标信息
3.8.11. MI_VgDetectThd¶
-
说明
Vg建立背景資訊的参数设置的结构。
-
定义
typedef struct _MI_VdDetectThd_t { uint8_t function_switch; uint8_t detect_thd; } MI_VgDetectThd;
-
成员
成员名称 描述 function_switch 自定义阀值建立背景的功能状态 0\-关,1\-开 detect_thd 自定义阀值,范围:[1-50]
4. 错误码¶
区域管理 API 错误码如表所示。
表4-1 区域管理 API错误码
错误代码 | 宏定义 | 描述 |
---|---|---|
0xA0012001 | MI_ERR_VDF_INVALID_DEVID | 设备 ID 超出合法范围 |
0xA0012002 | MI_ERR_VDF_INVALID_CHNID | 通道组号错误或无效区域句柄 |
0xA0012003 | MI_ERR_VDF_ILLEGAL_PARAM | 参数超出合法范围 |
0xA0012004 | MI_ERR_VDF_EXIST | 重复创建已存在的设备、通道或资源 |
0xA0012005 | MI_ERR_VDF_UNEXIST | 试图使用或者销毁不存在的设备、通道或者资源 |
0xA0012006 | MI_ERR_VDF_NULL_PTR | 函数参数中有空指针 |
0xA0012007 | MI_ERR_VDF_NOT_CONFIG | 模块没有配置 |
0xA0012008 | MI_ERR_VDF_NOT_SUPPORT | 不支持的参数或者功能 |
0xA0012009 | MI_ERR_VDF_NOT_PERM | 该操作不允许,如试图修改静态配置参数 |
0xA001200C | MI_ERR_VDF_NOMEM | 分配内存失败,如系统内存不足 |
0xA001200D | MI_ERR_VDF_NOBUF | 分配缓存失败,如申请的数据缓冲区太大 |
0xA001200E | MI_ERR_VDF_BUF_EMPTY | 缓冲区中无数据 |
0xA001200F | MI_ERR_VDF_BUF_FULL | 缓冲区中数据满 |
0xA0012010 | MI_ERR_VDF_NOTREADY | 系统没有初始化或没有加载相应模块 |
0xA0012011 | MI_ERR_VDF_BADADDR | 地址非法 |
0xA0012012 | MI_ERR_VDF_BUSY | 系统忙 |
0xA0012013 | MI_ERR_VDF_CHN_NOT_STARTED | 通道没有开始 |
0xA0012014 | MI_ERR_VDF_CHN_NOT_STOPED | 通道没有停止 |
0xA0012015 | MI_ERR_VDF_NOT_INIT | 模块没有初始化 |
0xA0012016 | MI_ERR_VDF_INITED | 模块已经初始化 |
0xA0012017 | MI_ERR_VDF_NOT_ENABLE | 通道或端口没有ENABLE |
0xA0012018 | MI_ERR_VDF_NOT_DISABLE | 通道或端口没有DISABLE |
0xA0012019 | MI_ERR_VDF_TIMEOUT | 超时 |
0xA001201A | MI_ERR_VDF_DEV_NOT_STARTED | 设备没有开始 |
0xA001201B | MI_ERR_VDF_DEV_NOT_STOPED | 设备没有停止 |
0xA001201C | MI_ERR_VDF_CHN_NO_CONTENT | 通道没有资料 |
0xA001201D | MI_ERR_VDF_NOVASAPCE | 映射虚拟地址失败 |
0xA001201E | MI_ERR_VDF_NOITEM | 没有record记录 |
0xA001201F | MI_ERR_VDF_FAILED | 未明确定义的错误 |