VIF模块初始化启动及退出流程(sensor前级模块后续补充)
--------------------------------------------
=========================
MI_VIF_SetDevAttr函数
设置 VIF 设备属性。基本设备属性默认了部分芯片配置,满足绝大部分的 AD 芯片对接要求。
函数原型:
MI_S32 MI_VIF_SetDevAttr(
MI_VIF_DEV u32VifDev,
MI_VIF_DevAttr_t *pstDevAttr)
typedef struct MI_VIF_DevAttr_s //定义视频输入设备的属性。
{
MI_VIF_IntfMode_e eIntfMode;
MI_VIF_WorkMode_e eWorkMode;
MI_VIF_HDRType_e eHDRType;
MI_VIF_ClkEdge_e eClkEdge;
MI_VIF_DataYuvSeq_e eDataSeq;
MI_VIF_BitOrder_e eBitOrder;
/* adjust bit order layout */
MI_VIF_SyncAttr_t stSyncAttr;
} MI_VIF_DevAttr_t;
VIF 设备的视频接口模式,用于与外围 camera、sensor对接,应此,某些接口参数应该和sensor接口的设置一样。例如:
eIntfMode 接口模式等可以使用MI_SNR_GetPadInfo接口获取设备信息进行设置VIF 设备属性
struct MI_VIF_DevAttr_s 成员如下:
参数说明:
依赖文件:
头文件:mi_vif_datatype.h、mi_vif.h
库文件:libmi_vif.a
返回值:MI_OK 成功
非0 失败
在调用前要保证 VIF 设备处于禁用状态。如果 VIF 设备已处于使能状态,可以使用
MI_VIF_DisableDev 来禁用设备。
参数 pstDevAttr 主要用来配置指定 VIF 设备的视频接口模式,用于与外围 camera、
sensor对接,支持的接口模式包括 BT.656、digital camera、MIPI sensor。
-----------------------------------------------
MI_VIF_SetChnPortAttr函数
设置 VIF 通道次属性
函数原型:
MI_S32 MI_VIF_SetChnPortAttr(
MI_VIF_CHN u32VifChn,
MI_VIF_PORT u32ChnPort,
MI_VIF_ChnPortAttr_t *pstAttr);
参数说明:
依赖文件:
头文件:mi_vif_datatype.h、mi_vif.h
库文件:libmi_vif.a
返回值:MI_OK 成功
非0 失败
使用注意:
默认情况下,使用 MI_VIF_SetChnPortAttr 接口的目的是设置端口属性,如CapSize、DestSize、FrameRate等等
----------------------------------------
MI_VIF_EnableDev函数
启用 VIF 设备
函数原型:
MI_S32 MI_VIF_EnableDev(MI_VIF_DEV u32VifDev);
参数说明:
依赖文件:
头文件:mi_vif_datatype.h、mi_vif.h
库文件:libmi_vif.a
返回值:MI_OK 成功
非0 失败
使用注意:
启用前必须已经设置设备属性,否则返回失败。
可重复启用,不返回失败。
-----------------------------------------
MI_VIF_EnableChnPort函数
启用 VIF 通道
函数原型:
MI_S32 MI_VIF_EnableChnPort (MI_VIF_CHN u32VifChn,MI_VIF_PORT u32ChnPort);
参数说明:
依赖文件:
头文件:mi_vif_datatype.h、mi_vif.h
库文件:libmi_vif.a
返回值:MI_OK 成功
非0 失败
使用注意:
必须先设置通道属性,且通道所绑定的 VIF 设备必须使能。可重复启用 VIF 通道,不返回失败。