5.3. API参考¶
视频输出(VO)实现视频输出设备,视频曾,信道等功能。
该功能模块所支持的 API,以下由大而小分别从设备、视频层、通道等方面进行介绍
设备相关API 如下:
CVI_VO_Enable :启用视频输出设备。
CVI_VO_Disable :禁用视频输出设备。
CVI_VO_SetPubAttr :设置视频输出设备的相关属性。
CVI_VO_GetPubAttr :获取视频输出设备的相关属性。
CVI_VO_CloseFd :关闭视频输出设备的文件句柄。
视频层相关API如下:
CVI_VO_EnableVideoLayer :启用视频层。
CVI_VO_DisableVideoLayer :禁用视频层。
CVI_VO_SetVideoLayerAttr :设置视频层的相关属性。
CVI_VO_GetVideoLayerAttr :获取视频层的相关属性。
通道相关API 如下:
CVI_VO_EnableChn :启用视频输出通道。
CVI_VO_DisableChn :禁用视频输出通道。
CVI_VO_SetChnAttr :设置视频输出通道的相关属性。
CVI_VO_GetChnAttr :获取视频输出通道的相关属性。
CVI_VO_ShowChn :显示指定的视频输出通道。
CVI_VO_HideChn :隐藏指定的视频输出通道。
CVI_VO_SetChnRotation :设置视频输出通道的旋转属性。
CVI_VO_GetChnRotation :获取视频输出通道的旋转属性。
CVI_VO_PauseChn :暂停指定的VO通道的输出。
CVI_VO_ResumeChn :恢复指定的 VO通道的输出。
5.3.1. CVI_VO_Enable¶
【描述】
启用视频输出设备。
【语法】
CVI_S32 CVI_VO_Enable(VO_DEV VoDev);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
VoDev |
视频输出设备号。 取值范围:[0, VO_MAX_DEV_NUM]。 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_vo.h, cvi_comm_vo.h
库文件:libvpu.a
【注意】
必须在使用视频输出功能前先进行设备使能操作。
在调用设备使能前,必须对设备公共属性进行配置,否则返回设备未配置错误。
如果希望更改 VO 的时序配置,则需要先调用 CVI_VO_Disable 接口,强制关闭 VO 硬件后再使能。以避免变更时序过程中出现不喜的瞬时。
【举例】
CVI_S32 s32Ret = CVI_SUCCESS;
s32Ret = CVI_VO_SetPubAttr(VoDev, pstPubAttr);
if (s32Ret != CVI_SUCCESS) {
SAMPLE_PRT("failed with %#x!\n", s32Ret);
return CVI_FAILURE;
}
s32Ret = CVI_VO_Enable(VoDev);
if (s32Ret != CVI_SUCCESS) {
SAMPLE_PRT("failed with %#x!\n", s32Ret);
return CVI_FAILURE;
}
【相关主题】
5.3.2. CVI_VO_Disable¶
【描述】
禁用视频输出设备。
【语法】
CVI_S32 CVI_VO_Disable(VO_DEV VoDev);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
VoDev |
视频输出设备号。 取值范围:[0, VO_MAX_DEV_NUM]。 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_vo.h, cvi_comm_vo.h
库文件:libvpu.a
【注意】
设备禁止前必须先禁止该设备上的视频层。
只有在VO 设备禁止下,才能做设置设备属性的变更。
【举例】
无
【相关主题】
5.3.3. CVI_VO_SetPubAttr¶
【描述】
配置视频输出设备的相关属性。
【语法】
CVI_S32 CVI_VO_SetPubAttr(VO_DEV VoDev, const VO_PUB_ATTR_S *pstPubAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
VoDev |
视频输出设备号。 取值范围:[0, VO_MAX_DEV_NUM]。 |
输入 |
pstPubAttr |
视频输出设备公共属性结构体指针。 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_vo.h, cvi_comm_vo.h
库文件:libvpu.a
【注意】
视频输出设备属性为静态属性, 必须 在执行 CVI_VO_Enable 前 配置 。
各个DEV 的使用说明详见 VO_DEV 。
视频输出设备属性的使用说明详见 VO_PUB_ATTR_S 章节。
【举例】
无
【相关主题】
5.3.4. CVI_VO_GetPubAttr¶
【描述】
获取视频输出设备的相关属性。
【语法】
CVI_S32 CVI_VO_GtPubAttr(VO_DEV VoDev, VO_PUB_ATTR_S *pstPubAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
VoDev |
视频输出设备号。 取值范围:[0, VO_MAX_DEV_NUM]。 |
输入 |
pstPubAttr |
视频输出设备公共属性结构体指针。 |
输出 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_vo.h, cvi_comm_vo.h
库文件:libvpu.a
【注意】
在设置设备公共属性前先获取属性,就可以只设置需要改变的 配置项。
【举例】
无
【相关主题】
5.3.5. CVI_VO_EnableVideoLayer¶
【描述】
启用视频层。
【语法】
CVI_S32 CVI_VO_EnableVideoLayer (VO_LAYER VoLayer);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
VoLayer |
视频输出视频层号。 取值范围:[0, VO_MAX_LAYER_NUM]。 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_vo.h, cvi_comm_vo.h
库文件:libvpu.a
【注意】
视频层使能前必须保证该视频层所绑定的设备处于使能状态。
【举例】
无
【相关主题】
5.3.6. CVI_VO_DisableVideoLayer¶
【描述】
禁用视频层。
【语法】
CVI_S32 CVI_VO_DisableVideoLayer (VO_LAYER VoLayer);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
VoLayer |
视频输出视频层号。 取值范围:[0, VO_MAX_LAYER_NUM]。 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_vo.h, cvi_comm_vo.h
库文件:libvpu.a
【注意】
视频层禁止前,其上的通道必须先禁止。
【举例】
无
【相关主题】
5.3.7. CVI_VO_SetVideoLayerAttr¶
【描述】
配置视频层的相关属性。
【语法】
CVI_S32 CVI_VO_SetVideoLayerAttr (VO_LAYER VoLayer, const VO_VIDEO_LAYER_ATTR_S *pstLayerAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
VoLayer |
视频输出视频层号。 取值范围:[0, VO_MAX_LAYER_NUM]。 |
输入 |
pstLayerAttr |
视频层属性结构体指针。 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_vo.h, cvi_comm_vo.h
库文件:libvpu.a
【注意】
无
【举例】
无
【相关主题】
5.3.8. CVI_VO_GetVideoLayerAttr¶
【描述】
获取视频层的相关属性。
【语法】
CVI_S32 CVI_VO_GetVideoLayerAttr (VO_LAYER VoLayer, VO_VIDEO_LAYER_ATTR_S *pstLayerAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
VoLayer |
视频输出视频层号。 取值范围:[0, VO_MAX_LAYER_NUM]。 |
输入 |
pstLayerAttr |
视频层属性结构体指针。 |
输出 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_vo.h, cvi_comm_vo.h
库文件:libvpu.a
【注意】
无
【举例】
无
【相关主题】
5.3.9. CVI_VO_EnableChn¶
【描述】
启用指定的视频输出通道。
【语法】
CVI_S32 CVI_VO_EnableChn(VO_LAYER VoLayer, VO_CHN VoChn);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
VoLayer |
视频输出视频层号。 取值范围:[0, VO_MAX_LAYER_NUM]。 |
输入 |
VoChn |
视频输出通道号。 取值范围:[0, VO_MAX_CHN_NUM]。 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_vo.h, cvi_comm_vo.h
库文件:libvpu.a
【注意】
调用前必须使能相应设备上的视频层。
信道使能前必须进行信道配置,否则返回信道未配置的错误 。
【举例】
无
【相关主题】
5.3.10. CVI_VO_DisableChn¶
【描述】
禁用视频输出通道。
【语法】
CVI_S32 CVI_VO_DisableChn(VO_LAYER VoLayer, VO_CHN VoChn);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
VoLayer |
视频输出视频层号。 取值范围:[0, VO_MAX_LAYER_NUM]。 |
输入 |
VoChn |
视频输出通道号。 取值范围:[0, VO_MAX_CHN_NUM]。 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_vo.h, cvi_comm_vo.h
库文件:libvpu.a
【注意】
无
【举例】
无
【相关主题】
5.3.11. CVI_VO_SetChnAttr¶
【描述】
配置视频输出信道的相关属性。
【语法】
CVI_S32 CVI_VO_SetPubAttr(VO_LAYER VoLayer, VO_CHN VoChn, const VO_CHN_ATTR_S *pstChnAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
VoLayer |
视频输出视频层号。 取值范围:[0, VO_MAX_LAYER_NUM]。 |
输入 |
VoChn |
视频输出通道号。 取值范围:[0, VO_MAX_CHN_NUM]。 |
输入 |
pstChnAttr |
视频输出通道属性结构体指针。 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_vo.h, cvi_comm_vo.h
库文件:libvpu.a
【注意】
通道显示区域需小于视频层属性中设定的stImageSize 大小。
【举例】
无
【相关主题】
5.3.12. CVI_VO_GetChnAttr¶
【描述】
获取视频输出通道的相关属性。
【语法】
CVI_S32 CVI_VO_GtPubAttr(VO_LAYER VoLayer, VO_CHN VoChn, VO_CHN_ATTR_S *pstChnAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
VoLayer |
视频输出视频层号。 取值范围:[0, VO_MAX_LAYER_NUM]。 |
输入 |
VoChn |
视频输出通道号。 取值范围:[0, VO_MAX_CHN_NUM]。 |
输入 |
pstChnAttr |
视频输出通道属性结构体指针。 |
输出 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_vo.h, cvi_comm_vo.h
库文件:libvpu.a
【注意】
无
【举例】
无
【相关主题】
5.3.13. CVI_VO_ShowChn¶
【描述】
显示指定的视频输出通道。
【语法】
CVI_S32 CVI_VO_ShowChn(VO_LAYER VoLayer, VO_CHN VoChn);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
VoLayer |
视频输出视频层号。 取值范围:[0, VO_MAX_LAYER_NUM]。 |
输入 |
VoChn |
视频输出通道号。 取值范围:[0, VO_MAX_CHN_NUM]。 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_vo.h, cvi_comm_vo.h
库文件:libvpu.a
【注意】
调用前必须使能相应设备上的视频通道。
默认下处于显示状态。
【举例】
无
【相关主题】
5.3.14. CVI_VO_HideChn¶
【描述】
隐藏指定的视频输出通道。
【语法】
CVI_S32 CVI_VO_HideChn(VO_LAYER VoLayer, VO_CHN VoChn);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
VoLayer |
视频输出视频层号。 取值范围:[0, VO_MAX_LAYER_NUM]。 |
输入 |
VoChn |
视频输出通道号。 取值范围:[0, VO_MAX_CHN_NUM]。 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_vo.h, cvi_comm_vo.h
库文件:libvpu.a
【注意】
无
【举例】
无
【相关主题】
5.3.15. CVI_VO_SetChnRotation¶
【描述】
设置 VO通道旋转的属性。
【语法】
CVI_S32 CVI_VO_SetChnRotation(VO_LAYER VoLayer, VO_CHN VoChn, ROTATION_E enRotation);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
VoLayer |
视频输出视频层号。 取值范围:[0, VO_MAX_LAYER_NUM]。 |
输入 |
VoChn |
视频输出通道号。 取值范围:[0, VO_MAX_CHN_NUM]。 |
输入 |
enRotation |
旋转属性。 详见 ROTATION_E 说明 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_vo.h, cvi_comm_vo.h
库文件:libvpu.a
【注意】
使用本接口前,需先调用 CVI_VO_SetChnAttr,否则提示失败。
CV183x仅支持RGB planar,YUV420 Planar及YUV400三种格式的旋转。
CV182x/CV181x仅支持NV12,NV21及YUV400三种格式的旋转。
设置后,旋转会作用于进入信道的视频图像,要注意设置视频层和视频信道的属性大小。例如通道设定大小为1920x1080,且旋转90度,因此输入给信道的图像应为1080x1920。
【举例】
无
【相关主题】
无
5.3.16. CVI_VO_GetChnRotation¶
【描述】
获取 VO通道旋转的属性。
【语法】
CVI_S32 CVI_VO_GetChnRotation(VO_LAYER VoLayer, VO_CHN VoChn, ROTATION_E *penRotation);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
VoLayer |
视频输出视频层号。 取值范围:[0, VO_MAX_LAYER_NUM]。 |
输入 |
VoChn |
视频输出通道号。 取值范围:[0, VO_MAX_CHN_NUM]。 |
输入 |
penRotation |
旋转属性指针。 详见 ROTATION_E 说明 |
输出 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_vo.h, cvi_comm_vo.h
库文件:libvpu.a
【注意】
使用本接口前,需先调用 CVI_VO_SetChnAttr,否则提示失败。
【举例】
无
【相关主题】
5.3.17. CVI_VO_PauseChn¶
【描述】
暂停指定的VO通道的输出。
【语法】
CVI_S32 CVI_VO_PauseChn(VO_LAYER VoLayer, VO_CHN VoChn);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
VoLayer |
视频输出视频层号。 取值范围:[0, VO_MAX_LAYER_NUM]。 |
输入 |
VoChn |
视频输出通道号。 取值范围:[0, VO_MAX_CHN_NUM]。 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_vo.h, cvi_comm_vo.h
库文件:libvpu.a
【注意】
调用前必须使能相应设备上的视频通道。
允许重复暂停同一通道,不返回失败。
【举例】
无
【相关主题】
5.3.18. CVI_VO_ResumeChn¶
【描述】
恢复指定的 VO通道的输出。
【语法】
CVI_S32 CVI_VO_ResumeChn(VO_LAYER VoLayer, VO_CHN VoChn);
【参数】
参数名称 |
描述 |
输入/输出 |
---|---|---|
VoLayer |
视频输出视频层号。 取值范围:[0, VO_MAX_LAYER_NUM]。 |
输入 |
VoChn |
视频输出通道号。 取值范围:[0, VO_MAX_CHN_NUM]。 |
输入 |
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_vo.h, cvi_comm_vo.h
库文件:libvpu.a
【注意】
调用前必须使能相应设备上的视频通道。
允许重复恢复同一通道,不返回失败。
【举例】
无
【相关主题】
5.3.19. CVI_VO_CloseFd¶
【描述】
关闭视频输出设备的文件句柄。
【语法】
CVI_S32 CVI_VO_CloseFd(CVI_VOID);
【参数】
无
【返回值】
返回值 |
描述 |
---|---|
0 |
成功。 |
非 0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_vo.h, cvi_comm_vo.h
库文件:libvpu.a
【注意】
此接口调用后,VO其他 MMF接口失效。
【举例】
无
【相关主题】
无