7.3.8 视频输出
概述
VOT(视频输出)模块主动从内存中读取图像 和图形数据,并通过相应的显示输出设备输出图像。芯片支持的显示/回写设备、视频层和图形层情况如下表所示。
功能描述
基本概念
-
高清显示设备
SDK将高清设备标示为DHVx,其中x为索引号,从0开始取值,标示第几路高清设备。X3有一个高清设备DHV0。
-
视频层
- 对于固定在每个显示设备上的视频层,SDK对应采取VHVx来标示。X3 DHV0 有一个视频层VHV0。
- VHV0 支持放大,支持2个通道
- X3 输出接口支持 RGB、BT1120/BT656、MIPI,三种接口都支持最大输出时序 1080P@60fps
-
视频回写
回写设备称之为WD。回写功能:X3只支持设备级的回写,捕获设备级输出的视频数据,可用于显示和编码。
- 通道
通道由视频层管理,X3每个视频层支持2个通道。
- 图形层
X3有2个图形层,固定绑定到DHV0。
- 输入输出数据格式
VOT支持输入和输出指定格式的数据,其中输出是指回写数据到DDR。X3支持的输入输出数据格式见下表。
输入格 式 | 输出格式 |
---|---|
FORMAT_YUV422_UYVY | FORMAT_YUV422_UYVY |
FORMAT_YUV422_VYUY | FORMAT_YUV422_VYUY |
FORMAT_YUV422_YVYU | FORMAT_YUV422_YVYU |
FORMAT_YUV422_YUYV | FORMAT_YUV422_YUYV |
FORMAT_YUV422SP_UV | FORMAT_YUV420SP_UV |
FORMAT_YUV422SP_VU | FORMAT_YUV420SP_VU |
FORMAT_YUV420SP_UV | FORMAT_BGR0 |
FORMAT_YUV420SP_VU | |
FORMAT_YUV422P_UV | |
FORMAT_YUV422P_VU | |
FORMAT_YUV420P_UV |
API参考
视频输出(VOT)实现启用视频输出设备或通道、发送视频数据到输出通道等功能。
VOT提供如下API:
HB_VOT_SetPubAttr:设置视频输出设备公共属性。
HB_VOT_GetPubAttr:获取视频输出设备公共属性。
HB_VOT_Enable:启用视频输出设备。
HB_VOT_Disable:关闭视频输出设备。
HB_VOT_SetLcdBackLight:设置LCD背光
HB_VOT_SetVideoLayerAttr:设置视频层属性。
HB_VOT_GetVideoLayerAttr:获取视频层属性。
HB_VOT_EnableVideoLayer:使能视频层。
HB_VOT_DisableVideoLayer:禁止视频层。
HB_VOT_SetVideoLayerCSC:设置视频层CSC。
HB_VOT_GetVideoLayerCSC:获取视频层CSC。
HB_VOT_SetVideoLayerUpScale:设置视频层放大参数
HB_VOT_GetVideoLayerUpScale:获取视频层放大参数
HB_VOT_BatchBegin:设置视频层属性批处理开始。
HB_VOT_BatchEnd: 设置视频层属性批处理结束。
HB_VOT_GetScreenFrame:获取设备输出图像。
HB_VOT_ReleaseScreenFrame:释放设备输出图像。
HB_VOT_SetChnAttr:设置视频输出通道属性。
HB_VOT_GetChnAttr:获取视频输出通道属性。
HB_VOT_SetChnAttrEx:设置视频输出通道高级参数。
HB_VOT_GetChnAttrEx:设置视频输出通道高级参数。
HB_VOT_EnableChn:使能视频输出通道。
HB_VOT_DisableChn:禁止视频输出通道。
HB_VOT_SetChnCrop:设置通道裁剪属性。
HB_VOT_GetChnCrop:获取通道裁剪属性。
HB_VOT_SetChnDisplayPosition:设置通道显示位置。
HB_VOT_GetChnDisplayPosition:获取通道显示位置。
HB_VOT_SetChnFrameRate:设置通道显示帧率。
HB_VOT_GetChnFrameRate:获取 通道显示帧率。
HB_VOT_ShowChn:显示通道图像。
HB_VOT_HideChn:隐藏通道图像。
HB_VOT_SendFrame:发送输出图像。
HB_VOT_ClearChnBuf:清空图像缓存。
HB_VOT_EnableWB:使能回写。
HB_VOT_DisableWB:禁止回写。
HB_VOT_SetWBAttr:设置回写属性。
HB_VOT_GetWBAttr:获取回写属性。
HB_VOT_GetWBFrame:获取回写图像。
HB_VOT_ReleaseWBFrame:释放回写图像。
HB_VOT_ShutDownHDMI:关闭HDMI输出图像到设备,显示模块仍然正常工作。
HB_VOT_StartHDMI:启用HDMI输出图像到设备。
HB_VOT_SetPubAttr
【函数声明】
int HB_VOT_SetPubAttr(uint8_t dev, const VOT_PUB_ATTR_S *pstPubAttr);
【功能描述】
设置视频输出公共属性。
【参数描述】
参数名称 | 描述 | 输入/输出 |
---|---|---|
dev | 视频输出设备id。取值范围:0。 | 输入 |
pstPubAttr | 视频输出设备公共属性。 | 输入 |
【返回值】
返回值 | 描述 |
---|---|
0 | 成功。 |
非0 | 失败。 |
【注意事项】
无
【参考代码】
见 HB_VOT_Enable
HB_VOT_GetPubAttr
【函数声明】
int HB_VOT_GetPubAttr(uint8_t dev, VOT_PUB_ATTR_S *pstPubAttr);
【功能描述】
获取视频输出公共属性。
【参数描述】
参数名称 | 描述 | 输入/输出 |
---|---|---|
dev | 视频输出设备id。 取值范围:0。 | 输入 |
pstPubAttr | 视频输出设备公共属性。 | 输出 |
【返回值】
返回值 | 描述 |
---|---|
0 | 成功。 |
非0 | 失败。 |
【注意事项】
无
【参考代码】
HB_VOT_Enable
【函数声明】
int HB_VOT_Enable(uint8_t dev);
【功能描述】
启用视频输出设备。
【参数描述】
参数名称 | 描述 | 输入/输出 |
---|---|---|
dev | 视频输出设备id。 取值范围:0。 | 输入 |
【返回值】
返回值 | 描述 |
---|---|
0 | 成功。 |
非0 | 失败。 |
【注意事项】
无
【参考代码】
int ret = 0; VOT_PUB_ATTR_S stPubAttr = {};
ret = HB_VOT_GetPubAttr(0, &stPubAttr);
if (ret) {
printf("HB_VOT_GetPubAttr failed.\n");
// break;
}
stPubAttr.enOutputMode = HB_VOT_OUTPUT_BT1120;
stPubAttr.u32BgColor = 0xFF7F88;
ret = HB_VOT_SetPubAttr(0, &stPubAttr);
if (ret) {
printf("HB_VOT_SetPubAttr failed.\n");
// break;
}
ret = HB_VOT_Enable(0);
if (ret) {
printf("HB_VOT_Enable failed.\n");
}
ret = HB_VOT_Disable(0);
if (ret) {
printf("HB_VOT_Disable failed.\n");
}
HB_VOT_Disable
【函数声明】
int HB_VOT_Disable(uint8_t dev);
【功能描述】
禁用视频输出设备。
【参数描述】
参数名称 | 描述 | 输入/输出 |
---|---|---|
dev | 视频输出设备id。 取值范围:0。 | 输入 |
【返回值】
返回值 | 描述 |
---|---|
0 | 成功。 |
非0 | 失败。 |
【注意事项】
无
【参考代码】
HB_VOT_SetLcdBackLight
【函数声明】
int HB_VOT_SetLcdBackLight (uint8_t dev, uint32_t backlight);
【功能描述】
设置LCD背光亮度。
【参数描述】
参数名称 | 描述 | 输入/输出 |
---|---|---|
dev | 视频输 出设备id。 取值范围:0。 | 输入 |
backlight | 背光亮度值。 取值范围0-10,值越大越亮。 亮度值为0,则屏幕全黑。 | 输入 |
【返回值】
返回值 | 描述 |
---|---|
0 | 成功。 |
非0 | 失败。 |
【注意事项】
无
【参考代码】
无
HB_VOT_SetVideoLayerAttr
【函数声明】
int HB_VOT_SetVideoLayerAttr(uint8_t layer, const VOT_VIDEO_LAYER_ATTR_S *pstLayerAttr);
【功能描述】
设置视频层属性。
【参数描述】
参数名称 | 描述 | 输入/输出 |
---|---|---|
layer | 视频输出视频层id。 取值范围:0. | 输入 |
pstLayerAttr | 视频输出视频层属性。 | 输入 |
【返回值】
返回值 | 描述 |
---|---|
0 | 成功。 |
非0 | 失败。 |
【注意事项】
需要先使能设备
【参考代码】
见HB_VOT_EnableVideoLayer
HB_VOT_GetVideoLayerAttr
【函数声明】
int HB_VOT_GetVideoLayerAttr(uint8_t layer, VOT_VIDEO_LAYER_ATTR_S *pstLayerAttr);
【功能描述】