MI WARP API

Version 2.04


1. API 参考


1.1. 功能模块 API

API名 功能
MI_WARP_CreateDevice 创建WARP设备
MI_WARP_DestroyDevice 销毁WARP设备
MI_WARP_StartDev 启动设备
MI_WARP_StopDev 停止设备
MI_WARP_CreateChannel 创建设备通道
MI_WARP_DestroyChannel 销毁设备通道
MI_WARP_SetChnBin 设置WARP配置参数表
MI_WARP_InitDev 初始化WARP设备
MI_WARP_DeInitDev 反初始化WARP设备

1.2. MI_WARP_CreateDevice

  • 功能

    调用此接口创建WARP设备。

  • 语法

    MI_ S32 MI_WARP_CreateDevice(MI_WARP_DEV devId);
    
  • 形参

    参数名称 描述 输入/输出
    devId 设备ID。 输入
  • 返回值

    • MI_WARP_OK, 创建设备成功。

    • 其它, 创建设备失败,详情参照错误码

  • 依赖

    • 头文件:mi_warp.h

    • 库文件:libmi_warp.a

  • 注意

    • 根据设备ID创建WARP设备,设备ID不重复。

    • WARP设备创建后,再次调用将返回已创建。

  • 举例

    /*declaration*/
    
    MI_S32 s32Ret = 0;
    
    MI_U8 *szBbTablePath=BbTable.bin”;
    
    MI_U8 *szDisplaceTablePath = DispTable.bin”;
    
    /* create WARP device*/
    
    s32Ret = MI_WARP_CreateDevice(0);
    
    if (MI_OK != s32Ret)
    
    {
    
        return -1;
    
    }
    
    /*load bounding box table*/
    
    s32Ret = MI_WARP_SetChnBin(0, 0, MI_WARP_BOUND_BOX_TABLE, szBbTablePath)
    
    if (MI_OK != s32Ret)
    
    {
    
        return -1;
    
    }
    
    /*load displacement table*/
    
    s32Ret = MI_WARP_SetChnBin(0, 0, MI_WARP_DISP_ABSOLUTE_TABLE, szDisplaceTablePath)
    
    if (MI_OK != s32Ret)
    
    {
    
        return -1;
    
    }
    
    /*create WARP channel*/
    
    s32Ret = MI_WARP_CreateChannel(0, 0);
    
    if (MI_OK != s32Ret)
    
    {
    
        return -1;
    
    }
    
    /*start WARP device*/
    
    s32Ret = MI_WARP_StartDev (0);
    
    if (MI_OK != s32Ret)
    
    {
    
        return -1;
    
    }
    
    /*stop WARP device*/
    
    MI_WARP_StopDev(0);
    
    /*destroy WARP channel*/
    
    MI_WARP_DestroyChannel(0, 0);
    
    /*destroy WARP device*/
    
    MI_WARP_DestroyDevice(0);
    
  • 相关主题

    MI_WARP_DestroyDevice


1.3. MI_WARP_DestroyDevice

  • 功能

    调用此接口销毁WARP设备。

  • 语法

    MI_ S32 MI_WARP_DestroyDevice(MI_WARP_DEV devId);
    
  • 形参

    参数名称 描述 输入/输出
    devId 设备ID。 输入
  • 返回值

    • MI_WARP_OK,成功销毁WARP设备。

    • 其它, 销毁WARP设备失败,详情参照错误码

  • 依赖

    • 头文件:mi_warp.h

    • 库文件:libmi_warp.a

  • 注意

    调用 MI_WARP_CreateDeviceMI_WARP_DestroyDevice 的次数需要对应。

  • 举例

    参考MI_WARP_CreateDevice

  • 相关主题

    MI_WARP_CreateDevice


1.4. MI_WARP_StartDev

  • 功能

    使能设备。

  • 语法

    MI_S32 MI_WARP_StartDev(MI_WARP_DEV devId);
    
  • 形参

    参数名称 描述 输入/输出
    devId 设备ID。 输入
  • 返回值

    • MI_WARP_OK,成功。

    • 其它, 使能设备失败,详情参照错误码

  • 依赖

    • 头文件:mi_warp.h

    • 库文件:libmi_warp.a

  • 举例

    参考MI_WARP_CreateDevice

  • 相关主题

    MI_WARP_StopDev


1.5. MI_WARP_StopDev

  • 功能

    禁用设备。

  • 语法

    MI_S32 MI_WARP_StopDev(MI_WARP_DEV devId);
    
  • 形参

    参数名称 描述 输入/输出
    devId 设备ID。 输入
  • 返回值

    • MI_WARP_OK,成功禁用设备。

    • 其它, 禁用设备失败,详情参照错误码

  • 依赖

    • 头文件:mi_warp.h

    • 库文件:libmi_warp.a

  • 举例

    参考MI_WARP_CreateDevice举例 。

  • 相关主题

    MI_WARP_StartDev


1.6. MI_WARP_CreateChannel

  • 功能

    创建设备通道。

  • 语法

    MI_S32 MI_WARP_CreateChannel(MI_WARP_DEV devId, MI_WARP_CHN chnId);
    
  • 形参

    参数名称 描述 输入/输出
    devId 设备ID。 输入
    chnId 通道ID。 输入
  • 返回值

    • MI_WARP_OK,创建设备通道成功。

    • 其它, 创建设备通道失败,详情参照错误码

  • 依赖

    • 头文件:mi_warp.h

    • 库文件:libmi_warp.a

  • 注意

    • 设备通道ID不重复。

    • 每个通道有一个输入口和一个输出口。

  • 举例

    参考MI_WARP_CreateDevice举例 。

  • 相关主题

    MI_WARP_DestroyChannel


1.7. MI_WARP_DestroyChannel

  • 功能

    销毁设备通道。

  • 语法

    MI_S32 MI_WARP_DestroyChannel(MI_WARP_DEV devId, MI_WARP_CHN chnId);
    
  • 形参

    参数名称 描述 输入/输出
    devId 设备ID。 输入
    chnId 通道ID。 输入
  • 返回值

    • MI_WARP_OK, 销毁设备通道成功。

    • 其它,销毁设备通道失败,详情参照错误码

  • 依赖

    • 头文件:mi_warp.h

    • 库文件:libmi_warp.a

  • 举例

    参考MI_WARP_CreateDevice举例。

  • 相关主题

    MI_WARP_CreateChannel


1.8. MI_WARP_SetChnBin

  • 功能

    导入WARP配置文件。

  • 语法

    MI_S32 MI_WARP_SetChnBin(MI_WARP_DEV devId, MI_WARP_CHN chnId,
    MI_WARP_TableType_e eTableType, const MI_S8 *pTablePath);
    
  • 形参

    参数名称 描述 输入/输出
    devId 设备ID。 输入
    chnId 通道ID。 输入
    eTableType WARP配置文件类型,有Bounding Box Table和Displacement Table两种。 输入
    pTablePath 配置文件路径。 输入

1.9. MI_WARP_InitDev

  • 描述

    初始化WARP设备。

  • 语法

    MI_S32 MI_WARP_InitDev(MI_WARP_InitParam_t *pstInitParam);
    
  • 参数

    参数名称 描述 输入/输出
    pstInitParam 设备初始化参数。 输入
  • 返回值

    • MI_OK成功。

    • 非MI_OK失败,参照错误码

  • 依赖

    • 头文件:mi_warp.h

    • 库文件:libmi_warp.a


1.10. MI_WARP_DeInitDev

  • 描述

    反初始WARP设备。

  • 语法

    MI_S32 MI_WARP_DeInitDev(void);
    
  • 返回值

    • MI_OK成功。

    • 非MI_OK失败,参照错误码

  • 依赖

    • 头文件:mi_warp.h

    • 库文件:libmi_warp.a

  • 注意

    • 此函数必须在初始化设备后调用,否则返回失败。

    • 如果本接口在app退出前没有调用,内部会自动反初始化设备。

  • 返回值

    • MI_WARP_OK,导入WARP配置成功。

    • 其它,导入WARP配置失败,详情参照错误码

  • 依赖

    • 头文件:mi_warp.h

    • 库文件:libmi_warp.a

  • 举例

    参考MI_WARP_CreateDevice举例。


2. WARP 数据类型


2.1. 数据类型定义

函数 说明
MI_WARP_DEV WARP设备ID
MI_DEV_CHN WARP通道ID
MI_WARP_TableType_e WARP 配置文件类型
MI_WARP_InitParam_t 定义WARP设备初始化参数

2.2. MI_WARP_DEV

  • 说明

    设备ID。

  • 定义

    typedef MI_U32 MI_WARP_DEV;
    

2.3. MI_WARP_CHN

  • 说明

    设备通道ID。

  • 定义

    typedef MI_U32 MI_WARP_CHN;
    

2.4. MI_WARP_TableType_e

  • 说明

    WARP设备配置文件类型。

  • 定义

    typedef enum
    
    {
    
        MI_WARP_DISP_ABSOLUTE_TABLE,
    
        MI_WARP_DISP_RELATIVE_TABLE,
    
        MI_WARP_BOUND_BOX_TABLE,
    
        MI_WARP_TABLE_TYPE_MAX
    
    }MI_WARP_TableType_e;
    
  • 成员

    成员 描述
    MI_WARP_DISP_ABSOLUTE_TABLE WARP设备Displacement绝对位置表
    MI_WARP_DISP_RELATIVE_TABLE WARP设备Displacement相对位置表
    MI_WARP_BOUND_BOX_TABLE WARP设备BoundingBox表

2.5. MI_WARP_InitParam_t

  • 说明

    warp设备初始化参数

  • 定义

    typedef struct MI_WARP_InitParam_s
    
    {
    
        MI_U32 u32DevId;
    
        MI_U8 *u8Data;
    
    } MI_WARP_InitParam_t;
    
  • 成员

    成员名称 描述
    u32DevId 设备ID
    u8Data 数据指针buffer
  • 相关数据类型及接口

    MI_WARP_InitDev


3. 错误码

WARP API 错误码如下所示。

错误代码 宏定义 描述
0xA0152003 MI_ERR_WARP_ILLEGAL_PARAM 非法参数
0xA0152006 MI_ERR_WARP_NULL_PTR 参数为空指针
0xA0152002 MI_ERR_WARP_BUSY 设备忙
0xA015201D MI_ERR_WARP_FAIL 操作失败
0xA0152001 MI_ERR_WARP_INVALID_DEVID 非法的设备ID
0xA0152008 MI_ERR_WARP_NOT_SUPPORT 不支持的操作
0xA0152016 MI_ERR_WARP_MOD_INITED 模块已经初始化
0xA0152015 MI_ERR_WARP_MOD_NOT_INIT 模块未初始化
0xA0152280 MI_ERR_WARP_DEV_OPENED 设备已经启动
0xA0152281 MI_ERR_WARP_DEV_NOT_OPEN 设备未启动
0xA015201B MI_ERR_WARP_DEV_NOT_STOP 设备未停止
0xA0152282 MI_ERR_WARP_DEV_NOT_CLOSE 设备未关闭
0xA0152283 MI_ERR_WARP_CHN_OPENED 通道已经打开
0xA0152284 MI_ERR_WARP_CHN_NOT_OPEN 通道未开启
0xA0152285 MI_ERR_WARP_CHN_NOT_STOP 通道未停止
0xA0152286 MI_ERR_WARP_CHN_STOPED 通道已经停止
0xA0152287 MI_ERR_WARP_CHN_NOT_CLOSE 通道未关闭
0xA0152018 MI_ERR_WARP_PORT_NOT_DISABLE 端口未被禁用
0xA0152288 MI_ERR_WARP_PORT_NOT_UNBIND 端口未解绑