HI_MPI_VI_GetSkipModeEx
【描述】
获取VI高级丢点模式。
【语法】
HI_S32 HI_MPI_VI_GetSkipModeEx(VI_CHN ViChn,VI_SKIP_MODE_EX_S *pstModeEx);
【参数】
| 参数名称 | 描述 | 输入/输出 |
|---|---|---|
| ViChn | VI通道号 | 输入 |
| pstModeEx | VI丢点模式 | 输出 |
【返回值】
同上
【芯片差异】
| 芯片类型 | 是否支持 |
|---|---|
| Hi3536 | 否 |
| Hi3521A/Hi3521DV100/Hi3531A/Hi3531DV100 | 是 |
【需求】
同上
【注意】
参见HI_MPI_VI_SetSkipModeEx的注意事项。
【举例】
参见HI_MPI_VI_SetSkipModeEx的举例
【相关主题】
无
HI_MPI_VI_SetRotate
【描述】
设置VI图像旋转属性。
【语法】
HI_S32 HI_MPI_VI_SetRotate(VI_CHN ViChn,const ROTATE_E enRotate);
【参数】
| 参数名称 | 描述 | 输入/输出 |
|---|---|---|
| ViChn | VI物理通道号。 取值范围:[0,VIU_MAX_PHYCHN_NUM) | 输入 |
| enRotate | 旋转属性 | 输入 |
【返回值】
同上
【芯片差异】
| 芯片类型 | 是否支持 |
|---|---|
| Hi3536 | 否 |
| Hi3521A/Hi3521DV100/Hi3531A/Hi3531DV100 | 是 |
【需求】
同上
【注意】
· 用户图片不支持旋转。
· 非用户图片设置:
- Rotate是静态属性,不能动态修改,且必须在设置通道属性后,在Enable通道前设置此属性。
- 仅支持非场输出的SP420和YUV400图像的旋转。
- 仅支持90度、180度、270度的旋转,不支持任意角度旋转。
- 设置旋转后,物理通道输出的宽高可能会发送变化,但获取的通道属性中的通道宽高仍为用户设置值。比如720P输入的图像,在旋转90、270度时,实际输出的图像大小为(720,1280),但HI_MPI_VI_GetChnAttr获取的DestSize宽高仍为(1280,720)。
- 旋转会多占用一块COMM VB,并且旋转后的COMM VB的大小可能和旋转前不一致,因此开启旋转,需要根据开启旋转的通道数以及大小多分配相应的COMM VB。
- Rotate、mirror及flip不能和混合采集同时设置,可能会引起图像抖动。
【举例】
HI_S32 s32Ret;
VI_CHN ViChn = 0;
ROTATE_E enRotate;
/* first enable vi device */
/* set vi chn attr */
s32Ret = HI_MPI_VI_SetChnAttr(ViChn,&stChnAttr);
if(s32Ret != HI_SUCCESS)
{
printf("Set chn attributes failed with error code %#x!\n",s32Ret);
return HI_FAILURE;
}
/* Set Rotate_90 */
s32Ret = HI_MPI_VI_SetRotate(ViChn,ROTATE_90);
if(HI_SUCCESS != s32ret)
{
printf("Set vi rotate err:0x%x\n",s32ret);
return s32Ret;
}
s32Ret = HI_MPI_VI_EnableChn(ViChn);
if(s32Ret != HI_SUCCESS)
{
printf("Enable can failed with error code %#x!\n",s32Ret);
return HI_FAILURE;
}
/* Get Rotate */
s32Ret = HI_MPI_VI_GetRotate(ViChn,&enRotate);
if(HI_SUCCESS != s32ret)
{
printf("Get vi rotate err:0x%x\n",s32ret);
return s32Ret;
}
【相关主题】
无
HI_MPI_VI_GetRotate
【描述】
获取VI图像旋转属性。
【语法】
HI_S32 HI_MPI_VI_GetRotate(VI_CHN ViChn,ROTATE_E *penRotate);
【参数】
| 参数名称 | 描述 | 输入/输出 |
|---|---|---|
| ViChn | VI物理通道号。 取值范围:[0,VIU_MAX_PHYCHN_NUM) | 输入 |
| penRotate | 旋转属性指针。 | 输出 |
【返回值】
同上
【芯片差异】
| 芯片类型 | 是否支持 |
|---|---|
| Hi3536 | 否 |
| Hi3521A/Hi3521DV100/Hi3531A/Hi3531DV100 | 是 |
【需求】
同上
【注意】
无
【相关主题】
HI_MPI_VI_SetRotate
HI_MPI_VI_SetModParam
【描述】
设置VI模块参数
【语法】
HI_S32 HI_MPI_VI_SetModParam(const VI_MOD_PARAM_S *pstModParam);
【参数】
| 参数名称 | 描述 | 输入/输出 |
|---|---|---|
| pstModParam | VI模块参数指针 | 输入 |
【返回值】
同上
【芯片差异】
无
【需求】
同上
【注意】
· 该接口用于在加载VI模块后重新设置部分模块参数,若未调用该接口则使用加载模块时传入的模块参数或其默认值。
· 必须在设置VI设备属性或扩展属性之前调用该接口,否则返回对应错误码。
【举例】
无
【相关主题】
HI_MPI_VI_GetModParam
HI_MPI_VI_GetModParam
【描述】
获取VI模块参数。
【语法】
HI_S32 HI_MPI_VI_GetModParam(VI_MOD_PARAM_S *pstModParam);
【参数】
| 参数名称 | 描述 | 输入/输出 |
|---|---|---|
| pstModParam | VI模块参数指针 | 输出 |
【返回值】
同上
【需求】
同上
【注意】
无
【举例】
无
【相关主题】
HI_MPI_VI_SetModParam
HI_MPI_VI_AttachVbPool
【描述】
将VI通道绑定到某个视频缓存VB池中。
【语法】
HI_S32 HI_MPI_VI_AttachVbPool(VI_CHN ViChn,VB_POOL,hVbPool);
【参数】
| 参数名称 | 描述 | 输入/输出 |
|---|---|---|
| ViChn | 视频通道号。 取值范围:[0,VIU_MAX_CHN_NUM) | 输入 |
| hVbPool | 视频缓存VB池信息 | 输入 |
【返回值】
同上
【需求】
同上
【注意】
· 必须保证通道已创建。
· 通道必须是物理通道,不包括级联扩展通道。
· 用户必须调用接口HI_MPI_VB_CreatePool创建一个视频缓存VB池,再通过调用接口HI_MPI_VI_AttachVbPool把当前通道绑定到固定PoolId的VB池中。可以把多个通道绑定到同一个VB池中,但是不能把同一个通道绑定到多个VB池中。
· 当要切换当前通道绑定的VB池时,只需再调一次接口HI_MPI_VI_AttachVbPool正确配置需要绑定到的VB池即可。
· hVbPool必须保证是已创建VB池的有效PoolId。
· 此接口对用户图片无效,用户图片还是使用公共VB。
【举例】
无
【相关主题】
HI_MPI_VI_DetachVbPool
HI_MPI_VI_DetachVbPool
【描述】
将VI通道从某个视频缓存VB池中解绑定。
【语法】
HI_S32 HI_MPI_VI_DetachVbPool(VI_CHN ViChn);
【参数】
| 参数名称 | 描述 | 输入/输出 |
|---|---|---|
| ViChn | 视频通道号。 取值范围:[0,VIU_MAX_CHN_NUM) | 输入 |
【返回值】
同上
【需求】
同上
【注意】
必须保证通道已创建。
【举例】
无
【相关主题】
HI_MPI_VI_AttachVbPool
本文详细介绍了海思VI模块的多个关键API,包括获取和设置丢点模式、旋转属性、模块参数,以及VI通道与视频缓存VB池的绑定与解绑定。这些API对于控制和优化视频输入处理流程至关重要。

被折叠的 条评论
为什么被折叠?



