数据类型

视频输出相关数据类型定义如下:

  • OT_VO_MAX_PHYS_DEV_NUM:定义视频输出物理设备最大个数。

  • OT_VO_MAX_VIRT_DEV_NUM:定义视频输出虚拟设备最大个数。

  • OT_VO_MAX_CAS_DEV_NUM:定义视频输出级联设备最大个数。

  • OT_VO_MAX_DEV_NUM:定义视频输出设备最大个数。

  • OT_VO_VIRT_DEV_0:定义虚拟设备0的设备号。

  • OT_VO_VIRT_DEV_1:定义虚拟设备1的设备号。

  • OT_VO_VIRT_DEV_2:定义虚拟设备2的设备号。

  • OT_VO_VIRT_DEV_3:定义虚拟设备3的设备号。

  • OT_VO_CAS_DEV_1:定义级联设备1的设备号。

  • OT_VO_CAS_DEV_2:定义级联设备2的设备号。

  • OT_VO_MAX_PHYS_VIDEO_LAYER_NUM:定义视频输出物理视频层最大个数。

  • OT_VO_MAX_GFX_LAYER_NUM:定义视频输出图形层最大个数。

  • OT_VO_MAX_PHYS_LAYER_NUM:定义视频输出物理视频层和图形层最大个数。

  • OT_VO_MAX_LAYER_NUM:定义所有视频层和图形层最大个数。

  • OT_VO_MAX_LAYER_IN_DEV:定义每个设备中最大的(视频)层数。

  • OT_VO_LAYER_V0:定义视频层0的层号。

  • OT_VO_LAYER_V1:定义视频层1的层号。

  • OT_VO_LAYER_V2:定义视频层2的层号。

  • OT_VO_LAYER_V3:定义视频层3的层号。

  • OT_VO_LAYER_G0:定义图形层0的层号。

  • OT_VO_LAYER_G1:定义图形层1的层号。

  • OT_VO_LAYER_G2:定义图形层2的层号。

  • OT_VO_LAYER_G3:定义图形层3的层号。

  • OT_VO_LAYER_G4:定义图形层4的层号。

  • ot_vo_get_virt_layer:定义获取虚拟设备对应的虚拟视频层号宏。

  • ot_vo_get_cas_layer:定义获取级联设备对应的级联设备视频层号宏。

  • OT_VO_MAX_PRIORITY:定义视频层最大优先级。

  • OT_VO_MIN_TOLERATE:定义最小的播放容忍度。

  • OT_VO_MAX_TOLERATE:定义最大的播放容忍度。

  • OT_VO_MAX_CHN_NUM:定义通道最大个数。

  • OT_VO_MIN_CHN_WIDTH:定义通道最小宽度。

  • OT_VO_MIN_CHN_HEIGHT:定义通道最小高度。

  • OT_VO_MAX_IMG_WIDTH:定义VO处理图像最大宽度。

  • OT_VO_MAX_IMG_HEIGHT:定义VO处理图像最大高度。

  • OT_VO_MAX_ZOOM_RATIO:定义最大缩放比例。

  • OT_VO_MAX_NODE_NUM:定义最大节点个数。

  • OT_VO_MAX_WBC_NUM:定义回写设备最大个数。

  • OT_VO_MAX_CAS_PATTERN:定义最大的级联样式。

  • OT_VO_MAX_CAS_POS_32RGN:定义32区域最大的级联位置。

  • OT_VO_MAX_CAS_POS_64RGN:定义64区域最大的级联位置。

  • ot_vo_dev:定义设备号。

  • ot_vo_layer:定义视频层号。

  • ot_vo_chn:定义通道号。

  • ot_vo_wbc:定义回写通路号。

  • ot_vo_intf_type:定义接口类型。

  • ot_vo_intf_sync:定义时序类型。

  • ot_vo_sync_info:定义时序信息。

  • ot_vo_pub_attr:定义视频输出设备属性结构体。

  • ot_vo_dev_param:定义VO视频输出设备参数结构体。

  • ot_vo_mod_param:VO模块参数。

  • ot_vo_clk_src:VO设备的时钟源类型。

  • ot_vo_fixed_clk:VO固定时钟频点类型。

  • ot_vo_pll:用户接口时序PLL信息,用于配置PLL.

  • ot_vo_user_sync_attr:用户接口时序属性,包括配置时钟源类型、时钟大小(时钟源输出的大小)配置信息。

  • ot_vo_user_sync_info:用户接口时序信息,包括配置时钟源类型、时钟大小、时钟分频比和时钟相位。

  • ot_vo_less_buf_attr:VO模块省BUF属性参数。

  • ot_vo_user_notify_attr:VO模块用户通知属性参数。

  • ot_vo_intf_plug_status:定义VGA/CVBS接口连接状态类型。

  • ot_vo_intf_status:定义VGA/CVBS接口状态结构体。

  • ot_vo_csc_matrix:定义CSC转换矩阵。

  • ot_vo_csc:定义图像输出效果结构体。

  • ot_vo_vga_param:定义VGA图像输出效果结构体。

  • ot_vo_hdmi_param:定义HDMI图像输出效果结构体。

  • ot_vo_rgb_param:定义RGB图像输出效果结构体。

  • ot_vo_clk_edge:定义时钟单沿双沿类型。

  • ot_vo_bt_param:定义BT.1120或BT.656图像输出效果结构体。

  • ot_vo_mipi_param:定义MIPI图像输出效果结构体。

  • ot_vo_partition_mode:定义视频层分割模式枚举类型。

  • ot_vo_video_layer_attr:定义视频层属性结构体。

  • ot_vo_layer_param:定义视频层参数,用于调整视频层内视频内容的显示效果。

  • ot_vo_chn_attr:定义视频输出通道属性结构体。

  • ot_vo_chn_param:定义视频输出通道参数(幅型比)结构体。

  • ot_vo_zoom_in_type:定义局部放大类型。

  • ot_vo_zoom_ratio:定义按比例局部放大结构体。

  • ot_vo_zoom_attr:定义局部放大属性结构体。

  • ot_vo_border:定义边框属性结构体。

  • ot_vo_mirror_mode:定义通道的镜像类型。

  • ot_vo_chn_status:定义视频输出通道状态结构体。

  • ot_vo_wbc_attr:定义视频回写的属性。

  • ot_vo_wbc_mode:定义视频回写的模式。

  • ot_vo_wbc_src_type:定义视频回写源的类型。

  • ot_vo_wbc_src:定义视频回写源。

  • ot_vo_cas_mode:定义级联的单路双路模式。

  • ot_vo_cas_data_transmission_mode:定义级联的单双沿数据传输模式。

  • ot_vo_cas_rgn:定义级联的区域类型

  • ot_vo_cas_attr:定义级联属性。

  • ot_vo_export_callback:定义中断回调通知函数结构。

  • ot_vo_export_symbol:定义注册中断回调函数结构体。

  • ot_vo_register_export_callback:定义注册中断回调钩子函数。

OT_VO_MAX_PHYS_DEV_NUM

【说明】

定义视频输出物理设备最大个数。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_VO_MAX_PHYS_DEV_NUM      3

SS928V100:

#define OT_VO_MAX_PHYS_DEV_NUM      2

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100

最多3个物理设备

SS928V100

最多2个物理设备

【注意事项】

SS522V101不支持DHD1。

【相关数据类型及接口】

无。

OT_VO_MAX_VIRT_DEV_NUM

【说明】

定义视频输出虚拟设备最大个数。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/SS928V100/SS626V100:

#define OT_VO_MAX_VIRT_DEV_NUM     32

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS522V101/SS928V100/SS626V100

最多32个虚拟设备

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_MAX_CAS_DEV_NUM

【说明】

定义视频输出级联扩展设备最大个数。

【定义】

SS528V100:

#define OT_VO_MAX_CAS_DEV_NUM      2

SS625V100/SS524V100/SS522V101/SS928V100/SS626V100:

#define OT_VO_MAX_CAS_DEV_NUM      0

【解决方案差异】

解决方案

描述

SS528V100

最多2个级联扩展设备

SS625V100/SS524V100/SS522V101 /SS928V100/SS626V100

不支持

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_MAX_DEV_NUM

【说明】

定义视频输出设备最大个数。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/SS928V100/SS626V100:

#define OT_VO_MAX_DEV_NUM          (OT_VO_MAX_PHYS_DEV_NUM + OT_VO_MAX_VIRT_DEV_NUM + OT_VO_MAX_CAS_DEV_NUM)

【解决方案差异】

解决方案

描述

SS528V100

最多(OT_VO_MAX_PHYS_DEV_NUM + OT_VO_MAX_VIRT_DEV_NUM + OT_VO_MAX_CAS_DEV_NUM) 37个设备

SS625V100

最多(OT_VO_MAX_PHYS_DEV_NUM + OT_VO_MAX_VIRT_DEV_NUM + OT_VO_MAX_CAS_DEV_NUM) 35个设备

SS524V100/SS522V101

最多(OT_VO_MAX_PHYS_DEV_NUM + OT_VO_MAX_VIRT_DEV_NUM + OT_VO_MAX_CAS_DEV_NUM) 35个设备

SS928V100

最多(OT_VO_MAX_PHYS_DEV_NUM + OT_VO_MAX_VIRT_DEV_NUM + OT_VO_MAX_CAS_DEV_NUM) 34个设备

SS626V100

最多(OT_VO_MAX_PHYS_DEV_NUM + OT_VO_MAX_VIRT_DEV_NUM + OT_VO_MAX_CAS_DEV_NUM) 35个设备

【注意事项】

SS522V101不支持DHD1。

【相关数据类型及接口】

无。

OT_VO_VIRT_DEV_0

【说明】

定义虚拟设备0的设备号。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_VO_VIRT_DEV_0           3

SS928V100:

#define OT_VO_VIRT_DEV_0           2

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100

虚拟设备0设备号为3

SS928V100

虚拟设备0设备号为2

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_VIRT_DEV_1

【说明】

定义虚拟设备1的设备号。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_VO_VIRT_DEV_1           4

SS928V100:

#define OT_VO_VIRT_DEV_1           3

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100

虚拟设备1设备号为4

SS928V100

虚拟设备1设备号为3

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_VIRT_DEV_2

【说明】

定义虚拟设备2的设备号。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_VO_VIRT_DEV_2           5

SS928V100:

#define OT_VO_VIRT_DEV_2           4

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100

虚拟设备2设备号为5

SS928V100

虚拟设备2设备号为4

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_VIRT_DEV_3

【说明】

定义虚拟设备3的设备号。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_VO_VIRT_DEV_3           6

SS928V100:

#define OT_VO_VIRT_DEV_3           5

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100

虚拟设备3设备号为6

SS928V100

虚拟设备3设备号为5

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_CAS_DEV_1

【说明】

定义级联设备1的设备号。

【定义】

SS528V100:

#define OT_VO_CAS_DEV_1          35

【解决方案差异】

解决方案

描述

SS528V100

级联设备1设备号为35

SS625V100/SS524V100/SS522V101/SS928V100/SS626V100

不支持

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_CAS_DEV_2

【说明】

定义级联设备2的设备号。

【定义】

SS528V100

#define OT_VO_CAS_DEV_2          36

【解决方案差异】

解决方案

描述

SS528V100

级联设备2设备号为36

SS625V100/SS524V100/SS522V101/SS928V100/SS626V100

不支持

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_MAX_PHYS_VIDEO_LAYER_NUM

【说明】

定义物理视频层最大个数。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_VO_MAX_PHYS_VIDEO_LAYER_NUM        4

SS928V100:

#define OT_VO_MAX_PHYS_VIDEO_LAYER_NUM        3

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100

最多4个物理视频层。

SS928V100

最多3个物理视频层。

【注意事项】

SS522V101不支持VHD1。

【相关数据类型及接口】

无。

OT_VO_MAX_GFX_LAYER_NUM

【说明】

定义图形层最大个数。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101:

#define OT_VO_MAX_GFX_LAYER_NUM       4

SS928V100:

#define OT_VO_MAX_GFX_LAYER_NUM       3

SS626V100:

#define OT_VO_MAX_GFX_LAYER_NUM       5

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS522V101

最多4个图形层。

SS928V100

最多3个图形层。

SS626V100

最多5个图形层。

【注意事项】

SS522V101不支持G1。

【相关数据类型及接口】

无。

OT_VO_MAX_PHYS_LAYER_NUM

【说明】

定义物理视频层和图形层最大个数。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/SS928V100/SS626V100:

#define OT_VO_MAX_PHYS_LAYER_NUM         (OT_VO_MAX_PHYS_VIDEO_LAYER_NUM + OT_VO_MAX_GFX_LAYER_NUM)

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS522V101

最多(OT_VO_MAX_PHYS_VIDEO_LAYER_NUM + OT_VO_MAX_GFX_LAYER_NUM)共8个物理视频层和图形层。

SS928V100

最多(OT_VO_MAX_PHYS_VIDEO_LAYER_NUM + OT_VO_MAX_GFX_LAYER_NUM)共6个物理视频层和图形层。

SS626V100

最多(OT_VO_MAX_PHYS_VIDEO_LAYER_NUM + OT_VO_MAX_GFX_LAYER_NUM)共9个物理视频层和图形层。

【注意事项】

SS522V101不支持VHD1和G1。

【相关数据类型及接口】

无。

OT_VO_MAX_LAYER_NUM

【说明】

定义所有视频层和图形层最大个数。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/SS928V100/SS626V100:

#define OT_VO_MAX_LAYER_NUM (OT_VO_MAX_PHYS_LAYER_NUM + OT_VO_MAX_VIRT_DEV_NUM + OT_VO_MAX_CAS_DEV_NUM)

【解决方案差异】

解决方案

描述

SS528V100

最多(OT_VO_MAX_PHYS_LAYER_NUM + OT_VO_MAX_VIRT_DEV_NUM + OT_VO_MAX_CAS_DEV_NUM)共42个视频层和图形层。

SS625V100

最多(OT_VO_MAX_PHYS_LAYER_NUM + OT_VO_MAX_VIRT_DEV_NUM + OT_VO_MAX_CAS_DEV_NUM)共40个视频层和图形层。

SS524V100/SS522V101

最多(OT_VO_MAX_PHYS_LAYER_NUM + OT_VO_MAX_VIRT_DEV_NUM + OT_VO_MAX_CAS_DEV_NUM)共40个视频层和图形层。

SS928V100

最多(OT_VO_MAX_PHYS_LAYER_NUM + OT_VO_MAX_VIRT_DEV_NUM + OT_VO_MAX_CAS_DEV_NUM)共38个视频层和图形层。

SS626V100

最多(OT_VO_MAX_PHYS_LAYER_NUM + OT_VO_MAX_VIRT_DEV_NUM + OT_VO_MAX_CAS_DEV_NUM)共41个视频层和图形层。

【注意事项】

SS522V101不支持VHD1和G1。

【相关数据类型及接口】

无。

OT_VO_MAX_LAYER_IN_DEV

【说明】

每个设备上最大的视频层数。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/SS928V100/SS626V100:

#define OT_VO_MAX_LAYER_IN_DEV   2

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS522V101/SS928V100/SS626V100

最多2个视频层。

【注意事项】

仅指视频层,不包括图形层。

【相关数据类型及接口】

无。

OT_VO_LAYER_V0

【说明】

定义视频层0的层号。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/SS928V100/SS626V100:

#define OT_VO_LAYER_V0           0

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS522V101 /SS928V100/SS626V100

视频层0层号为0

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_LAYER_V1

【说明】

定义视频层1的层号。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/SS928V100/SS626V100:

#define OT_VO_LAYER_V1           1

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS928V100/SS626V100

视频层1层号为1

SS522V101

不支持

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_LAYER_V2

【说明】

定义视频层2的层号。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/SS928V100/SS626V100:

#define OT_VO_LAYER_V2          2

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS522V101 /SS928V100/SS626V100

视频层2层号为2

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_LAYER_V3

【说明】

定义视频层3的层号。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_VO_LAYER_V3           3

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100

视频层3层号为3

SS928V100

不支持

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_LAYER_G0

【说明】

定义图形层0的层号。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_VO_LAYER_G0           4

SS928V100:

#define OT_VO_LAYER_G0           3

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100

图形层0层号为4

SS928V100

图形层0层号为3

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_LAYER_G1

【说明】

定义图形层1的层号。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_VO_LAYER_G1           5

SS928V100:

#define OT_VO_LAYER_G1           4

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS626V100

图形层1层号为5

SS522V101

不支持

SS928V100

图形层1层号为4

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_LAYER_G2

【说明】

定义图形层2的层号。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_VO_LAYER_G2          6

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100

图形层2层号为6

SS928V100

不支持

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_LAYER_G3

【说明】

定义图形层3的层号。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_VO_LAYER_G3           7

SS928V100:

#define OT_VO_LAYER_G3           5

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100

图形层3层号为7

SS928V100

图形层3层号为5

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_LAYER_G4

【说明】

定义图形层4的层号。

【定义】

SS626V100:

#define OT_VO_LAYER_G4           8

【解决方案差异】

解决方案

描述

SS626V100

图形层4层号为8

SS528V100/SS625V100/SS524V100/SS522V101/SS928V100

不支持

【注意事项】

无。

【相关数据类型及接口】

无。

ot_vo_get_virt_layer

【说明】

定义获取虚拟设备对应的虚拟视频层号宏。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101:

#define ot_vo_get_virt_layer(vo_virt_dev) ((vo_virt_dev) + 5)

SS928V100:

#define ot_vo_get_virt_layer(vo_virt_dev) ((vo_virt_dev) + 4)

SS626V100:

#define ot_vo_get_virt_layer(vo_virt_dev) ((vo_virt_dev) + 6)

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS522V101

虚拟设备视频层为虚拟设备号加5

SS928V100

虚拟设备视频层为虚拟设备号加4

SS626V100

虚拟设备视频层为虚拟设备号加6

【注意事项】

无。

【相关数据类型及接口】

无。

ot_vo_get_cas_layer

【说明】

定义获取级联设备对应的级联设备视频层号宏。

【定义】

SS528V100:

#define ot_vo_get_cas_layer(vo_cas_dev)   ((vo_cas_dev) + 5)

【解决方案差异】

解决方案

描述

SS528V100

级联设备视频层为级联设备号加5

SS625V100/SS524V100/SS522V101/SS928V100/SS626V100

不支持级联

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_MAX_PRIORITY

【说明】

定义视频层和图形层最大优先级。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define OT_VO_MAX_PRIORITY  4

SS928V100:

#define OT_VO_MAX_PRIORITY  3

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100

视频层最大优先级为4。

SS928V100

视频层最大优先级为3。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_MIN_TOLERATE

【说明】

定义最小的播放容忍度,单位是毫秒(ms)。

【定义】

#define OT_VO_MIN_TOLERATE         1

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_MAX_TOLERATE

【说明】

定义最大的播放容忍度,单位是毫秒(ms)。

【定义】

#define OT_VO_MAX_TOLERATE         100000

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_MAX_CHN_NUM

【说明】

定义通道最大个数。

【定义】

SS528V100/SS524V100/SS522V101/SS928V100:

#define OT_VO_MAX_CHN_NUM          64

SS625V100:

#define OT_VO_MAX_CHN_NUM          49

SS626V100:

#define OT_VO_MAX_CHN_NUM          128

【解决方案差异】

解决方案

描述

SS528V100/SS524V100/SS522V101/SS928V100

最多支持64个通道。

SS625V100

最多支持49个通道。

SS626V100

最多支持128个通道。

【注意事项】

API接口的通道号检查时最大通道数OT_VO_MAX_CHN_NUM使用以上的【解决方案差异】中的值。

【相关数据类型及接口】

无。

OT_VO_MIN_CHN_WIDTH

【说明】

定义通道最小宽度。

【定义】

#define OT_VO_MIN_CHN_WIDTH        32

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_MIN_CHN_HEIGHT

【说明】

定义通道最小高度。

【定义】

#define OT_VO_MIN_CHN_HEIGHT       32

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_MAX_IMG_WIDTH

【说明】

定义VO处理图像最大宽度。

【定义】

#define OT_VO_MAX_IMG_WIDTH                16384

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_MAX_IMG_HEIGHT

【说明】

定义VO处理图像最大高度。

【定义】

#define OT_VO_MAX_IMG_HEIGHT               8192

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_MAX_ZOOM_RATIO

【说明】

定义最大缩放比例。

【定义】

#define OT_VO_MAX_ZOOM_RATIO       1000

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_MAX_NODE_NUM

【说明】

定义最大节点个数。

【定义】

#define OT_VO_MAX_NODE_NUM      16

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_MAX_WBC_NUM

【说明】

定义回写设备最大个数。

【定义】

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100:

#define VO_MAX_WBC_NUM              1

SS928V100:

#define VO_MAX_WBC_NUM              0

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_MAX_CAS_PATTERN

【说明】

定义最大的级联样式。

【定义】

SS528V100:

#define OT_VO_MAX_CAS_PATTERN         128

【解决方案差异】

解决方案

描述

SS528V100

最多128个级联样式。

SS625V100/SS524V100/SS522V101/SS928V100/SS626V100

不支持。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_MAX_CAS_POS_32RGN

【说明】

定义32区域最大的级联位置。

【定义】

SS528V100:

#define OT_VO_MAX_CAS_POS_32RGN         32

【解决方案差异】

解决方案

描述

SS528V100

最大32区域。

SS625V100/SS524V100/SS522V101/SS928V100/SS626V100

不支持。

【注意事项】

无。

【相关数据类型及接口】

无。

OT_VO_MAX_CAS_POS_64RGN

【说明】

定义64区域最大的级联位置。

【定义】

SS528V100:

#define OT_VO_MAX_CAS_POS_64RGN         64

【解决方案差异】

解决方案

描述

SS528V100

最大64区域。

SS625V100/SS524V100/SS522V101/SS928V100/SS626V100

不支持。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_vo_dev

【说明】

定义设备号。

【定义】

typedef td_s32 ot_vo_dev;

【成员】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS626V100

视频输出模块有3个视频输出设备,如下定义:

0:DHD0设备,即高清显示设备0。

1:DHD1设备,即高清显示设备1。

2:DSD0设备,即标清显示设备2。

SS522V101

视频输出模块有2个视频输出设备,如下定义:

0:DHD0设备,即高清显示设备0。

2:DSD0设备,即标清显示设备2。

SS928V100

视频输出模块有2个视频输出设备,如下定义:

0:DHD0设备,即高清显示设备0。

1:DHD1设备,即高清显示设备1。

【解决方案差异】

无。

【注意事项】

无。

【相关数据类型及接口】

ot_vo_pub_attr

ot_vo_layer

【说明】

定义视频层号。

【定义】

typedef td_s32 ot_vo_layer;

【成员】

解决方案

描述

SS528V100/SS625V100/SS524V100

视频输出模块有4个视频层和4个图形层,如下定义:

0:OT_VO_LAYER_V0,即视频层0;

1:OT_VO_LAYER_V1,即视频层1;

2:OT_VO_LAYER_V2,即视频层2,用作PIP层;

3:OT_VO_LAYER_V3,即视频层3。

4:OT_VO_LAYER_G0,即图形层0。

5:OT_VO_LAYER_G1,即图形层1。

6:OT_VO_LAYER_G2,即图形层2,用作鼠标层。

7:OT_VO_LAYER_G3,即图形层3。

SS522V101

视频输出模块有3个视频层和3个图形层,如下定义:

0:OT_VO_LAYER_V0,即视频层0;

2:OT_VO_LAYER_V2,即视频层2,用作PIP层;

3:OT_VO_LAYER_V3,即视频层3。

4:OT_VO_LAYER_G0,即图形层0。

6:OT_VO_LAYER_G2,即图形层2,用作鼠标层。

7:OT_VO_LAYER_G3,即图形层3。

SS928V100

视频输出模块有3个视频层和3个图形层,如下定义:

0:OT_VO_LAYER_V0,即视频层0;

1:OT_VO_LAYER_V1,即视频层1;

2:OT_VO_LAYER_V2,即视频层2,用作PIP层;

3:OT_VO_LAYER_G0,即图形层0。

4:OT_VO_LAYER_G1,即图形层1。

5:OT_VO_LAYER_G3,即图形层3。

SS626V100

视频输出模块有4个视频层和5个图形层,如下定义:

0:OT_VO_LAYER_V0,即视频层0;

1:OT_VO_LAYER_V1,即视频层1;

2:OT_VO_LAYER_V2,即视频层2,用作PIP层;

3:OT_VO_LAYER_V3,即视频层3,用作PIP层或标清视频层;

4:OT_VO_LAYER_G0,即图形层0。

5:OT_VO_LAYER_G1,即图形层1。

6:OT_VO_LAYER_G2,即图形层2,用作鼠标层。

7:OT_VO_LAYER_G3,即图形层3。

8:OT_VO_LAYER_G4,即图形层4。

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100

V0/V1/V3/G0/G1视频层和图形层固定绑定在相应的设备上面,PIP视频层V2可以选择绑定在设备DHD0或DHD1上,鼠标层G2可以选择绑定到设备DHD0/DHD1/DSD0上,图形层G3可以选择绑定到设备DHD0/DHD1/DSD0上。

SS522V101

V0/V3/G0视频层和图形层固定绑定在相应的设备上面,PIP视频层V2可以选择绑定在设备DHD0上,鼠标层G2可以选择绑定到设备DHD0/DSD0上,图形层G3可以选择绑定到设备DHD0/DSD0上。

SS928V100

V0/V1/G0/G1视频层和图形层固定绑定在相应的设备上面,PIP视频层V2可以选择绑定在设备DHD0或DHD1上,图形层G3可以选择绑定到设备DHD0/DHD1上。

SS626V100

V0/V1 /G0/G1视频层和图形层固定绑定在相应的设备上面,PIP视频层V2可以选择绑定在设备DHD0或DHD1上,V3可选择绑定在DHD1或DSD0上,鼠标层G2可以选择绑定到设备DHD0/DHD1/DSD0上,图形层G3可以选择绑定到设备DHD0/DHD1上,图形层G4可以选择绑定到设备DHD1/ DSD0上。

V2和V3不能同时绑定到DHD1上,G3和G4不能同时绑定到DHD1上。

【注意事项】

无。

【相关数据类型及接口】

ot_vo_video_layer_attr

ot_vo_chn

【说明】

定义通道号。

【定义】

typedef td_s32 ot_vo_chn;

【解决方案差异】

无。

【注意事项】

无。

【相关数据类型及接口】

ot_vo_chn_attr

ot_vo_wbc

【说明】

定义回写通路号。

【定义】

typedef td_s32 ot_vo_wbc;

【成员】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100

只支持一条回写通路,即同时只能回写一个源。

ot_vo_wbc的取值为0。

SS928V100

不支持。

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_vo_enable_wbc

ot_vo_intf_type

【说明】

定义接口类型。

【定义】

#define OT_VO_INTF_CVBS                   (0x01L << 0)
#define OT_VO_INTF_VGA                    (0x01L << 1)
#define OT_VO_INTF_BT656                  (0x01L << 2)
#define OT_VO_INTF_BT1120                 (0x01L << 3)
#define OT_VO_INTF_HDMI                   (0x01L << 4)
#define OT_VO_INTF_RGB_6BIT               (0x01L << 5)
#define OT_VO_INTF_RGB_8BIT               (0x01L << 6)
#define OT_VO_INTF_RGB_16BIT              (0x01L << 7)
#define OT_VO_INTF_RGB_18BIT              (0x01L << 8)
#define OT_VO_INTF_RGB_24BIT              (0x01L << 9)
#define OT_VO_INTF_MIPI                   (0x01L << 10)
#define OT_VO_INTF_MIPI_SLAVE             (0x01L << 11)
#define OT_VO_INTF_HDMI1                  (0x01L << 12)
typedef td_u32 ot_vo_intf_type;

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_vo_set_pub_attr

ot_vo_intf_sync

【说明】

定义时序类型枚举。

【定义】

typedef enum {
    OT_VO_OUT_PAL = 0,
    OT_VO_OUT_NTSC = 1,
    OT_VO_OUT_960H_PAL = 2,
    OT_VO_OUT_960H_NTSC = 3,
 
    OT_VO_OUT_640x480_60 = 4,
    OT_VO_OUT_480P60 = 5,
    OT_VO_OUT_576P50 = 6,
    OT_VO_OUT_800x600_60 = 7,
    OT_VO_OUT_1024x768_60 = 8,
    OT_VO_OUT_720P50 = 9,
    OT_VO_OUT_720P60 = 10,
    OT_VO_OUT_1280x800_60 = 11,
    OT_VO_OUT_1280x1024_60 = 12,
    OT_VO_OUT_1366x768_60 = 13,
    OT_VO_OUT_1400x1050_60 = 14,
    OT_VO_OUT_1440x900_60 = 15,
    OT_VO_OUT_1680x1050_60 = 16,
 
    OT_VO_OUT_1080P24 = 17,
    OT_VO_OUT_1080P25 = 18,
    OT_VO_OUT_1080P30 = 19,
    OT_VO_OUT_1080I50 = 20,
    OT_VO_OUT_1080I60 = 21,
    OT_VO_OUT_1080P50 = 22,
    OT_VO_OUT_1080P60 = 23,
 
    OT_VO_OUT_1600x1200_60 = 24,
    OT_VO_OUT_1920x1200_60 = 25,
    OT_VO_OUT_1920x2160_30 = 26,
    OT_VO_OUT_2560x1440_30 = 27,
    OT_VO_OUT_2560x1440_60 = 28,
    OT_VO_OUT_2560x1600_60 = 29,
 
    OT_VO_OUT_3840x2160_24 = 30,
    OT_VO_OUT_3840x2160_25 = 31,
    OT_VO_OUT_3840x2160_30 = 32,
    OT_VO_OUT_3840x2160_50 = 33,
    OT_VO_OUT_3840x2160_60 = 34,
    OT_VO_OUT_4096x2160_24 = 35,
    OT_VO_OUT_4096x2160_25 = 36,
    OT_VO_OUT_4096x2160_30 = 37,
    OT_VO_OUT_4096x2160_50 = 38,
    OT_VO_OUT_4096x2160_60 = 39,
    OT_VO_OUT_7680x4320_30 = 40,
 
    OT_VO_OUT_240x320_50 = 41,
    OT_VO_OUT_320x240_50 = 42,
    OT_VO_OUT_240x320_60 = 43,
    OT_VO_OUT_320x240_60 = 44,
    OT_VO_OUT_800x600_50 = 45,
 
    OT_VO_OUT_720x1280_60 = 46,
    OT_VO_OUT_1080x1920_60 = 47,
 
    OT_VO_OUT_USER = 48,
 
    OT_VO_OUT_BUTT,
} ot_vo_intf_sync;

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_vo_set_pub_attr

ot_vo_sync_info

【说明】

定义时序信息结构体。

【定义】

typedef struct {
    td_bool syncm;
    td_bool iop;
    td_u8 intfb;
 
    td_u16 vact;
    td_u16 vbb;
    td_u16 vfb;
 
    td_u16 hact;
    td_u16 hbb;
    td_u16 hfb;
    td_u16 hmid;
 
    td_u16 bvact;
    td_u16 bvbb;
    td_u16 bvfb;
 
    td_u16 hpw;
    td_u16 vpw;
 
    td_bool idv;
    td_bool ihs;
    td_bool ivs;
} ot_vo_sync_info;

【成员】

成员名称

描述

syncm

同步模式,RGB接口选择1,表示信号同步。

取值范围:[0, 1]

iop

0为隔行,1为逐行,RGB接口一般配置为1。

取值范围:[0, 1]

intfb

无效参数,可以忽略。

取值范围:[0, 255]

vact

垂直有效区,隔行输出时表示顶场垂直有效区。单位:行。

取值范围:[100, 4320]

vbb

垂直消隐后肩,隔行输出时表示顶场垂直消隐后肩。单位:行。

取值范围:[1, 256]

vfb

垂直消隐前肩,隔行输出时表示顶场垂直消隐前肩。单位:行。

取值范围:[1, 256]

hact

水平有效区。单位:像素。

取值范围:[1, 4096]

hbb

水平消隐后肩。单位:像素。

取值范围:[1, 65535]

hfb

水平消隐前肩。单位:像素。

取值范围:[1, 65535]

hmid

底场垂直同步有效像素值。

取值范围:[0, 65535]

bvact

底场垂直有效区,隔行时有效。单位:行。

取值范围:[0, 4096]

bvbb

底场垂直消隐后肩,隔行时有效。单位:行。

取值范围:[0, 256]

bvfb

底场垂直消隐前肩,隔行时有效。单位:行。

取值范围:[0, 256]。

hpw

水平同步信号的宽度。单位:像素。

取值范围:[1, 65535]

vpw

垂直同步信号的宽度。单位:行。

取值范围:[1, 256]

idv

数据有效信号的极性。配置0为高有效,配置1为低有效。

取值范围:[0, 1]

ihs

水平有效信号的极性,配置0为高有效,配置1为低有效。

取值范围:[0, 1]

ivs

垂直有效信号的极性,配置0为高有效,配置1为低有效。

取值范围:[0, 1]

图 1 时序信息结构示意图

表 1 时序像素时钟计算公式

像素时钟

pixel_clk

计算公式(MHz)

逐行时序

(hbb+hact+hfb)*(vbb+vact+vfb) * frame_rate / 1000000

隔行时序

(hbb+hact+hfb)*(vbb+vact+vfb +bvbb+bvact+bvfb) * frame_rate / 1000000

【注意事项】

  • 图1所示,配置消隐区时,水平消隐后肩hbb已经包含水平同步信号的宽度hpw;垂直消隐后肩vbb已经包含垂直同步信号高度vpw(隔行时,底场垂直消隐后肩bvbb已经包含vpw)。

  • 内部只做以下参数检查:

    • hact、hbb、hfb、vbb、vfb、hpw、vpw要求不能为0。

    • vact要求大于等于100。

    • idv、ihs、ivs只能为TD_TRUE或TD_FALSE。

    • 在iop为TD_FALSE时,要求bvact、bvbb和bvfb不能为0。用户须自行保证时序配置的正确性。

【相关数据类型及接口】

ss_mpi_vo_set_pub_attr

ot_vo_pub_attr

【说明】

定义视频输出公共属性结构体。

【定义】

typedef struct {
    td_u32                bg_color;
    ot_vo_intf_type        intf_type;
    ot_vo_intf_sync        intf_sync;
    ot_vo_sync_info        sync_info;
} ot_vo_pub_attr;

【成员】

成员名称

描述

bg_color

设备背景色,表示方法RGB888。

intf_type

接口类型,可选择以下值或组合:

OT_VO_INTF_CVBS

OT_VO_INTF_VGA

OT_VO_INTF_BT656

OT_VO_INTF_BT1120

OT_VO_INTF_HDMI

OT_VO_INTF_RGB_6BIT

OT_VO_INTF_RGB_8BIT

OT_VO_INTF_RGB_16BIT

OT_VO_INTF_RGB_18BIT

OT_VO_INTF_RGB_24BIT

OT_VO_INTF_MIPI

OT_VO_INTF_MIPI_SLAVE

OT_VO_INTF_HDMI1

intf_sync

接口时序。

sync_info

接口时序信息。

intf_sync配置用户时序OT_VO_OUT_USER时,该结构体生效。

【注意事项】

  • 对于SS626V100,配置为OT_VO_OUT_7680x4320_30时序时,背景色配置无效,默认显示为黑色。

  • 虚拟设备的接口类型为无用参数,不做参数检查。虚拟设备支持的时序为[OT_VO_OUT_PAL, OT_VO_OUT_USER]。

  • 当接口时序配置为OT_VO_OUT_USER时,sync_info定义的时序结构才会生效,表示用户自定义的时序结构。

  • 支持多接口同源输出,解决方案各设备支持情况见表1。同时使用多个接口类型示意:intf_type = OT_VO_INTF_BT1120 | OT_VO_INTF_HDMI。

    输出时序支持情况:同源输出接口支持的时序的交集。

  • 接口支持的时序范围见表2

  • 互斥使用的接口列表:列表中的接口,同一时刻仅能使用其中一种,见表3

  • 所有接口均支持用户时序。

  • 配置设备属性在设备下一次使能时生效。

  • 支持BT.1120接口输出时序OT_VO_OUT_3840x2160_24到OT_VO_OUT_3840x2160_30时序默认使用双沿148.5Mhz输出,其他时序默认使用单沿输出,对接的外设转换设备时要注意适配。

  • 对于SS626V100,配置为OT_VO_OUT_7680x4320_30时序时,请参考《SUHD开发参考》。

表 1 多接口同源输出

解决方案

多接口同源输出

DHD0

DHD1

DSD0

SS528V100/SS625V100/SS524V100

OT_VO_INTF_BT1120 |

OT_VO_INTF_HDMI |

OT_VO_INTF_VGA

同DHD0

不支持

SS522V101

OT_VO_INTF_BT1120 |

OT_VO_INTF_HDMI |

OT_VO_INTF_VGA

不涉及

不支持

SS928V100

OT_VO_INTF_BT1120 |

OT_VO_INTF_HDMI

不支持

不涉及

OT_VO_INTF_HDMI |

OT_VO_INTF_MIPI

SS626V100

OT_VO_INTF_BT1120 |

OT_VO_INTF_HDMI |

OT_VO_INTF_HDMI1 |

OT_VO_INTF_VGA

同DHD0

不支持

表 2 接口支持时序范围

解决方案

接口

intf_type

时序范围

intf_sync

DHD0

DHD1

DSD0

SS528V100

OT_VO_INTF_BT1120

[OT_VO_OUT_640x480_60, OT_VO_OUT_3840x2160_30],

OT_VO_OUT_USER

同DHD0

不支持

OT_VO_INTF_HDMI

[OT_VO_OUT_640x480_60, OT_VO_OUT_3840x2160_60] ,

OT_VO_OUT_USER

[OT_VO_OUT_640x480_60, OT_VO_OUT_3840x2160_30],

OT_VO_OUT_USER

不支持

OT_VO_INTF_VGA

[OT_VO_OUT_640x480_60, OT_VO_OUT_2560x1600_60] ,其中不支持如下三个时序OT_VO_OUT_1920x2160_30,OT_VO_OUT_2560x1440_30,OT_VO_OUT_2560x1440_60,

OT_VO_OUT_USER

同DHD0

不支持

OT_VO_INTF_CVBS

不支持

不支持

[OT_VO_OUT_PAL, OT_VO_OUT_NTSC],

OT_VO_OUT_USER

SS625V100

OT_VO_INTF_BT1120

[OT_VO_OUT_640x480_60, OT_VO_OUT_1080P60],

OT_VO_OUT_USER

同DHD0

不支持

OT_VO_INTF_HDMI

[OT_VO_OUT_640x480_60, OT_VO_OUT_3840x2160_30] ,

OT_VO_OUT_USER

[OT_VO_OUT_640x480_60, OT_VO_OUT_1080P60],

OT_VO_OUT_USER

不支持

OT_VO_INTF_VGA

[OT_VO_OUT_640x480_60, OT_VO_OUT_1080P60] ,

OT_VO_OUT_USER

同DHD0

不支持

OT_VO_INTF_CVBS

不支持

不支持

[OT_VO_OUT_PAL, OT_VO_OUT_NTSC],

OT_VO_OUT_USER

SS524V100

OT_VO_INTF_BT1120

[OT_VO_OUT_640x480_60, OT_VO_OUT_1080P60],

OT_VO_OUT_USER

同DHD0

不支持

OT_VO_INTF_HDMI

[OT_VO_OUT_640x480_60, OT_VO_OUT_3840x2160_30],

OT_VO_OUT_USER

[OT_VO_OUT_640x480_60, OT_VO_OUT_1080P60],

OT_VO_OUT_USER

不支持

OT_VO_INTF_VGA

[OT_VO_OUT_640x480_60, OT_VO_OUT_2560x1600_60] ,其中不支持如下三个时序OT_VO_OUT_1920x2160_30,OT_VO_OUT_2560x1440_30,OT_VO_OUT_2560x1440_60,

OT_VO_OUT_USER

[OT_VO_OUT_640x480_60, OT_VO_OUT_1080P60],

OT_VO_OUT_USER

不支持

OT_VO_INTF_BT656

[OT_VO_OUT_PAL, OT_VO_OUT_NTSC], OT_VO_OUT_USER

同DHD0

不支持

OT_VO_INTF_CVBS

不支持

不支持

[OT_VO_OUT_PAL, OT_VO_OUT_NTSC],

OT_VO_OUT_USER

SS522V101

OT_VO_INTF_BT1120

[OT_VO_OUT_640x480_60, OT_VO_OUT_1080P60],

OT_VO_OUT_USER

不支持

不支持

OT_VO_INTF_HDMI

[OT_VO_OUT_640x480_60, OT_VO_OUT_3840x2160_30],

OT_VO_OUT_USER

不支持

不支持

OT_VO_INTF_VGA

[OT_VO_OUT_640x480_60, OT_VO_OUT_1080P60],

OT_VO_OUT_USER

不支持

不支持

OT_VO_INTF_BT656

[OT_VO_OUT_PAL, OT_VO_OUT_NTSC],

OT_VO_OUT_USER

不支持

不支持

OT_VO_INTF_RGB_16BIT

OT_VO_OUT_USER

不支持

不支持

OT_VO_INTF_RGB_18BIT

OT_VO_OUT_USER

不支持

不支持

OT_VO_INTF_RGB_24BIT

OT_VO_OUT_USER

不支持

不支持

OT_VO_INTF_CVBS

不支持

不支持

[OT_VO_OUT_PAL, OT_VO_OUT_NTSC],

OT_VO_OUT_USER

SS928V100

OT_VO_INTF_HDMI

[OT_VO_OUT_640x480_60, OT_VO_OUT_3840x2160_60],

OT_VO_OUT_USER

不支持

不涉及

OT_VO_INTF_MIPI,

OT_VO_INTF_MIPI_SLAVE

OT_VO_OUT_576P50,

OT_VO_OUT_720P50,

OT_VO_OUT_720P60,

OT_VO_OUT_1024x768_60,

OT_VO_OUT_1280x1024_60,

OT_VO_OUT_1080P24,

OT_VO_OUT_1080P25,

OT_VO_OUT_1080P30,

OT_VO_OUT_1080P50,

OT_VO_OUT_1080P60,

OT_VO_OUT_720x1280_60,

OT_VO_OUT_1080x1920_60,

[OT_VO_OUT_3840x2160_24,

OT_VO_OUT_3840x2160_60],

OT_VO_OUT_USER

OT_VO_OUT_576P50,

OT_VO_OUT_720P50,

OT_VO_OUT_720P60,

OT_VO_OUT_1024x768_60,

OT_VO_OUT_1280x1024_60,

OT_VO_OUT_1080P24,

OT_VO_OUT_1080P25,

OT_VO_OUT_1080P30,

OT_VO_OUT_1080P50,

OT_VO_OUT_1080P60,

OT_VO_OUT_720x1280_60,

OT_VO_OUT_1080x1920_60,

OT_VO_OUT_USER

不涉及

OT_VO_INTF_BT1120

[OT_VO_OUT_640x480_60, OT_VO_OUT_1080P60],

OT_VO_OUT_USER

[OT_VO_OUT_640x480_60, OT_VO_OUT_720P60], OT_VO_OUT_1280x1024_60, [OT_VO_OUT_1080P24, OT_VO_OUT_1080P60], OT_VO_OUT_USER

不涉及

OT_VO_INTF_BT656

[OT_VO_OUT_PAL, OT_VO_OUT_NTSC],

OT_VO_OUT_USER

同DHD0

不涉及

OT_VO_INTF_RGB_6BIT,

OT_VO_INTF_RGB_8BIT ,

OT_VO_INTF_RGB_16BIT,

OT_VO_INTF_RGB_18BIT,

OT_VO_INTF_RGB_24BIT

OT_VO_OUT_USER

同DHD0

不涉及

OT_VO_INTF_CVBS

不支持

[OT_VO_OUT_PAL, OT_VO_OUT_NTSC],

OT_VO_OUT_USER

不涉及

SS626V100

OT_VO_INTF_BT1120

[OT_VO_OUT_640x480_60, OT_VO_OUT_3840x2160_30],

OT_VO_OUT_USER

同DHD0

不支持

OT_VO_INTF_HDMI

[OT_VO_OUT_640x480_60, OT_VO_OUT_3840x2160_60] ,

OT_VO_OUT_7680x4320_30,

OT_VO_OUT_USER

同DHD0

不支持

OT_VO_INTF_HDMI1

[OT_VO_OUT_640x480_60, OT_VO_OUT_3840x2160_60] ,

OT_VO_OUT_7680x4320_30,

OT_VO_OUT_USER

同DHD0

不支持

OT_VO_INTF_BT656

[OT_VO_OUT_PAL, OT_VO_OUT_NTSC], OT_VO_OUT_USER

同DHD0

不支持

OT_VO_INTF_VGA

[OT_VO_OUT_640x480_60, OT_VO_OUT_2560x1600_60] ,其中不支持如下三个时序OT_VO_OUT_1920x2160_30,OT_VO_OUT_2560x1440_30,OT_VO_OUT_2560x1440_60,

OT_VO_OUT_USER

同DHD0

不支持

OT_VO_INTF_CVBS

不支持

不支持

[OT_VO_OUT_PAL, OT_VO_OUT_NTSC],

OT_VO_OUT_USER

表 3 互斥使用的接口列表

解决方案

接口之间互斥使用

SS528V100/SS625V100

不涉及

SS524V100

OT_VO_INTF_BT1120、OT_VO_INTF_BT656

SS522V101

OT_VO_INTF_BT1120、OT_VO_INTF_BT656、OT_VO_INTF_RGB_16BIT、OT_VO_INTF_RGB_18BIT、OT_VO_INTF_RGB_24BIT

SS928V100

OT_VO_INTF_BT1120、OT_VO_INTF_BT656、OT_VO_INTF_RGB_6BIT、OT_VO_INTF_RGB_8BIT、OT_VO_INTF_RGB_16BIT、OT_VO_INTF_RGB_18BIT、OT_VO_INTF_RGB_24BIT、OT_VO_INTF_MIPI、OT_VO_INTF_MIPI_SLAVE

SS626V100

OT_VO_INTF_BT1120、OT_VO_INTF_BT656

【相关数据类型及接口】

ss_mpi_vo_set_pub_attr

ot_vo_dev_param

【说明】

定义VO视频输出设备参数结构体,用于配置VO的透传标记。

【定义】

typedef struct {
    td_bool vo_bypass_en;
} ot_vo_dev_param;

【成员】

成员名称

描述

vo_bypass_en

VO的透传标记。

【注意事项】

【相关数据类型及接口】

ss_mpi_vo_set_dev_param

ot_vo_mod_param

【说明】

VO模块参数。

【定义】

typedef struct {
    td_bool exit_dev_en;
    td_bool dev_clk_ext_en;
    td_bool vga_detect_en;
    td_u32 vdac_detect_cycle;
    td_bool cal_cost_time_en;
} ot_vo_mod_param;

【成员】

成员名称

描述

exit_dev_en

设置VO退出标记(默认为TD_TRUE)。

TD_TRUE:退出VO设备。

TD_FALSE:不退出VO设备。

dev_clk_ext_en

模块参数,表示是否由用户自己开启设备接口时钟。(默认TD_FALSE)

TD_TRUE:使能设备时VO模块内部不开启接口时钟,由用户自己开启。

TD_FALSE:使能设备时VO模块内部开启接口时钟。

vga_detect_en

是否使能VGA检测功能(默认为TD_FALSE)。

TD_FALSE:禁用;

TD_TRUE:使能。

vdac_detect_cycle

VDAC检测周期(默认为30)。

单位:帧中断

取值范围:大于等于10。取值为0,将关闭自动检测功能。

cal_cost_time_en

是否使能帧延时统计功能(默认为TD_TRUE)。

TD_FALSE:禁用;

TD_TRUE:使能。

【差异说明】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS522V101/SS626V100

vga_detect_en:支持,dev_clk_ext_en:支持。

SS928V100

vga_detect_en:不支持,dev_clk_ext_en:不支持。

【注意事项】

  • exit_dev_en标记表示通过ss_mpi_sys_exit(参考“系统控制”章节)退出VO时是否禁用VO设备。

  • dev_clk_ext_en主要用于多片视频同步场景,此场景下dev_clk_ext_en置TRUE,使能设备时并不开启接口时钟,当设备时钟开启也会关闭设备时钟,由用户统一在外部对多个设备同时开启接口时钟来达到时钟同步的效果。特别说明,对于SS528V100/SS625V100/SS524V100/SS522V101, 驱动加载时需要默认开启和保持DSD设备时钟开启,对于DSD设备可以设置时钟寄存器来关闭时钟开关,对于SS626V100,DSD设备时钟默认不会开启。

【相关数据类型及接口】

无。

ot_vo_clk_src

【说明】

VO设备的时钟源类型。

【定义】

typedef enum {
    OT_VO_CLK_SRC_PLL = 0,
    OT_VO_CLK_SRC_LCDMCLK = 1,
    OT_VO_CLK_SRC_PLL_FOUT4 = 2,
    OT_VO_CLK_SRC_FIXED = 3,
    OT_VO_CLK_SRC_BUTT,
} ot_vo_clk_src;

【成员】

成员名称

描述

OT_VO_CLK_SRC_PLL

PLL类型时钟源(从PLL FOUTPOSTDIV pin脚输出),参考范围:[16.326531, 594]MHz。

OT_VO_CLK_SRC_LCDMCLK

LCD分频器时钟源,参考范围:(0, 75]MHz。

OT_VO_CLK_SRC_PLL_FOUT4

PLL FOUT4类型时钟源(从PLL FOUT4 pin脚输出),参考范围:[2.040817, 594]MHz。

OT_VO_CLK_SRC_FIXED

固定频点类型时钟源,参考范围见ot_vo_fixed_clk

【注意事项】

时钟源特性说明:

  • 频点大小:PLL类型时钟源能够输出较大频点,适合用来输出1080P60、3840x2160_60等较大时序;LCD分频器时钟源和PLL FOUT4类型时钟源能够输出较小频点,适合用来输出中小型LCD屏幕的时序。

  • 频点精度:LCD分频器时钟源可能出现频率大小抖动等不稳定的现象;在需要稳定频率或时序输出时,如果支持所需频点,可考虑使用固定频点类型时钟源。

【相关数据类型及接口】

无。

ot_vo_fixed_clk

【说明】

VO固定时钟频点类型。

【定义】

typedef enum {
    OT_VO_FIXED_CLK_148_5M  = 0,
    OT_VO_FIXED_CLK_134_4M  = 1,
    OT_VO_FIXED_CLK_108M    = 2,
    OT_VO_FIXED_CLK_74_25M  = 3,
    OT_VO_FIXED_CLK_64M     = 4,
    OT_VO_FIXED_CLK_54M     = 5,
    OT_VO_FIXED_CLK_37_125M = 6,
    OT_VO_FIXED_CLK_13_5M   = 7,
    OT_VO_FIXED_CLK_BUTT,
} ot_vo_fixed_clk;

【成员】

成员名称

描述

OT_VO_FIXED_CLK_148_5M

固定时钟频点148.5MHz。

OT_VO_FIXED_CLK_134_4M

固定时钟频点134.4MHz。

OT_VO_FIXED_CLK_108M

固定时钟频点108MHz。

OT_VO_FIXED_CLK_74_25M

固定时钟频点74.25MHz。

OT_VO_FIXED_CLK_64M

固定时钟频点64MHz。

OT_VO_FIXED_CLK_54M

固定时钟频点54MHz。

OT_VO_FIXED_CLK_37_125M

固定时钟频点37.125MHz。

OT_VO_FIXED_CLK_13_5M

固定时钟频点13.5MHz。

【注意事项】

【相关数据类型及接口】

无。

ot_vo_pll

【说明】

用户接口时序PLL信息:用于配置PLL。

【定义】

typedef struct {
    td_u32 fb_div;
    td_u32 frac;
    td_u32 ref_div;
    td_u32 post_div1;
    td_u32 post_div2;
} ot_vo_pll;

【成员】

成员名称

描述

fb_div

PLL整数倍频系数,数值范围:[0,0xfff]。

frac

PLL小数分频系数,数值范围:[0,0xffffff]。

ref_div

PLL参考时钟分频系数,数值范围见如下【解决方案差异】。

post_div1

PLL第一级输出分频系数,数值范围:(0,0x7]。

post_div2

PLL第二级输出分频系数,数值范围:(0,0x7]。

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS522V101

ref_div数值范围:(0,4],建议为1。

SS928V100/SS626V100

ref_div数值范围:(0,1],只能为1。

【注意事项】

  • 该数据项仅用于配置【成员】表所列系数。

  • fb_div、frac、ref_div需满足:PLL引脚FOUTVCO范围在[800MHz, 3200MHz],FOUTVCO=FREF x (fb_div + frac / 2^24) / ref_div (FREF值固定为24)。

  • post_div1、post_div2需满足post_div1 >= post_div2。

  • PLL系数计算和配置方法参考以下步骤:

  1. 推导PLL输出大小。PLL系数用于计算PLL时钟源的输出大小,用户需要根据时序的像素时钟(见时序像素时钟计算公式表)、时钟分频比(见时钟分频比配置方法表)、前置分频比(见前置分频配置方法表)、推算出PLL的输出大小,可参考时钟源时钟大小配置方法表进行推导,时钟源、前置分频、时钟分频比拓扑结构如像素时钟简要示意图所示。

  2. 确认PLL输出到VO的Pin脚。PLL时钟源具体计算方法和Pin脚参见对应芯片手册的系统章节“PLL频率计算方法”。

    Tableau 1 PLL和PLL FOUT4频率计算方法(以SS528V100为例)

    PLL Pin

    计算方法描述

    注意事项

    FREF

    PLL 输入参考时钟

    SS528V100 要求固定输入 24MHz

    FOUTVCO

    FREF x ( fb_div + frac/ 2^24) / ref_div

    PLL 工作频率,要求大于等于800MHz,且小于等于3.2GHz

    FOUTVCO2X

    FOUTVCO * 2

    -

    FOUTPOSTDIV

    FOUTVCO / (post_div1 x post_div2)

    post_div1 >= post_div2

    FOUT1PH0

    FOUTVCO / (post_div1 x post_div2 x 2)

    -

    FOUT2

    FOUTVCO / (post_div1 x post_div2 x 4)

    -

    FOUT3

    FOUTVCO / (post_div1 x post_div2 x 6)

    -

    FOUT4

    FOUTVCO / (post_div1 x post_div2 x 8)

    post_div1 >= post_div2

    以配置PLL时钟源输出600MHz为例,目标是600MHz。

    • 确认PLL输出到VO的Pin脚:FOUTPOSTDIV,即FOUTPOSTDIV=600MHz。

    • 配置FOUTPOSTDIV为FOUTVCO的一半,根据FOUTPOSTDIV= FOUTVCO / (post_div1 x post_div2),post_div2=1,post_div1=2。

    • 配置FOUTVCO输出1200MHz,根据FREF x ( fb_div + frac/ 2^24) / ref_div=1200MHz,其中FREF=24MHz,若取ref_div=1,计算出fb_div=50,frac=0

  3. 步骤2中计算出来的fb_div,frac,ref_div,post_div1,post_div2填充到ot_vo_pll中,然后使用接口ss_mpi_vo_set_user_sync_info配置PLL。

【相关数据类型及接口】

ot_vo_user_sync_info

ot_vo_user_sync_attr

【说明】

用户接口时序属性,包括配置时钟源类型、时钟大小(时钟源输出的大小src_clk)配置信息。

【定义】

typedef struct {
    ot_vo_clk_src clk_src;
    union {
        ot_vo_pll vo_pll;
        td_u32 lcd_m_clk_div;
        ot_vo_fixed_clk fixed_clk;
    };
} ot_vo_user_sync_attr;

【成员】

成员名称

描述

clk_src

时钟源类型:PLL类型、LCD分频器时钟、PLL FOUT4(PLL FOUT4 Pin脚输出时钟),固定频点类型。

vo_pll

PLL配置信息。

lcd_m_clk_div

LCD分频器时钟分频系数。

fixed_clk

固定频点时钟序号。

【解决方案差异】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS626V100

clk_src:

DHD0:PLL类型时钟源

DHD1:PLL类型时钟源

DSD0:固定时钟源54MHz,不可配。

SS522V101

clk_src:

DHD0:PLL和PLL FOUT4类型时钟源

DSD0:固定时钟源54MHz,不可配。

SS928V100

clk_src:

DHD0:PLL和PLL FOUT4类型时钟源

DHD1:LCD分频器时钟和固定频点类型时钟源

【注意事项】

如果是PLL或PLL FOUT4类型的时钟源,频率计算方法见PLL和PLL FOUT4频率计算方法(以SS528V100为例)表,如果是LCD分频器类型时钟源,其分频系数lcd_m_clk_div计算方法见LCDMCLK分频系数lcd_m_clk_div计算方法表。

表 1 LCDMCLK分频系数lcd_m_clk_div计算方法

LCDMCLK

计算方法描述

注意事项

lcd_m_clk_div

(src_clk/1188) * 2^27

假定目标频率src_clk(MHz),则分频系数lcd_m_clk_div = (src_clk/1188) * 2^27;src_clk最大75MHz

表 2 时钟源时钟大小配置方法

解决方案

HDMI

含HDMI同源

MIPI

MIPI_SLAVE

VGA

BT.1120

CVBS

BT.656

RGB_16BIT

RGB_18BIT

RGB_24BIT

RGB_6BIT

RGB_8BIT

SS528V100/SS625V100

pre_div*pixel_clk*dev_div

不支持

pixel_clk*dev_div

pixel_clk*dev_div

不支持

不支持

不支持

SS524V100

pixel_clk*dev_div

不支持

不支持

SS522V101

pixel_clk*dev_div

不支持

SS626V100

pixel_clk*dev_div

不支持

不支持

SS928V100

pixel_clk*dev_div

不支持

pixel_clk*dev_div

pixel_clk*dev_div

pixel_clk*dev_div

pixel_clk*dev_div

注:pixel_clk表示时序的像素时钟大小,dev_div和pre_div见ot_vo_user_sync_info。

  • 仅在成员clk_src 为OT_VO_CLK_SRC_PLL或OT_VO_CLK_SRC_PLL_FOUT4时,联合体内vo_pll成员有效。

  • 仅在成员clk_src 为OT_VO_CLK_SRC_LCDMCLK时,联合体内lcd_m_clk_div成员有效。

  • 仅在成员clk_src 为OT_VO_CLK_SRC_FIXED时,联合体内fixed_clk成员有效。

  • lcd_m_clk_div范围:(0, 8473341]。

【相关数据类型及接口】

ot_vo_user_sync_info

ot_vo_user_sync_info

【说明】

用户接口时序信息,包括配置时钟源类型、时钟大小、时钟分频比和时钟相位,拓扑关系参见像素时钟简要示意图。

图 1 像素时钟简要示意图

【定义】

typedef struct {
    ot_vo_user_sync_attr user_sync_attr;
    td_u32 pre_div;
    td_u32 dev_div;
    td_bool clk_reverse_en;
} ot_vo_user_sync_info;

【成员】

成员名称

描述

user_sync_attr

用户接口时序属性:时钟源类型、时钟大小配置信息。

pre_div

设备前置分频,数值范围:[1, 32]。

dev_div

设备的时钟分频比,数值范围:[1, 4]。

clk_reverse_en

时钟相位是否反向。

TD_TRUE:时钟相位反向;

TD_FALSE:时钟相位正向,或者时钟相位不反向。

【注意事项】

设备时钟分频比与解决方案、设备、接口相关,建议配置方法如时钟分频比配置方法表。

表 1 时钟分频比配置方法

解决方案

HDMI

VGA

BT.1120

MIPI

MIPI_SLAVE

CVBS

BT.656

RGB_16BIT

RGB_18BIT

RGB_24BIT

RGB_6BIT

RGB_8BIT

SS528V100/SS625V100

固定为1

不支持

固定为4

不支持

不支持

不支持

SS524V100

固定为2

SS522V101

固定为1

SS626V100

不支持

SS928V100

固定为1

不支持

固定为1

固定为1

固定为1

3或4

  • 只有在SS528V100/SS625V100/SS524V100/SS522V101采用HDMI(含HDMI同源)接口输出时设备前置分频属性需要进行配置,其他接口输出时前置分频属性配置为1(不分频);而对于SS626V100/SS928V100的所有接口,前置分频属性必须配置为1(不分频)。——因此,从图1可以知道,对于同一个时序,HDMI接口(含HDMI同源)输出与非HDMI接口输出需要分别配置出两套不同的时钟源参数。根据像素时钟频率所在的范围来配置前置分频属性值。由于有前置分频的存在,锁相环配置时钟时需要相应的增加倍数。

表 2 前置分频配置方法

解决方案

像素时钟频率范围

HDMI(含HDMI同源)

其他接口

SS528V100/SS625V100

SS524V100/SS522V101

[21.25M,50M]

16

1

[50M,100M]

8

[100M,200M]

4

[200M,340M]

2

[340M,600M]

1

SS626V100/SS928V100

-

1

1

  • 时钟的相位反向clk_reverse_en可根据外设的要求进行配置,只对BT.1120/BT.656/RGB接口生效。非用户时序下的默认配置如相位反向clk_reverse_en默认配置表。

表 3 相位反向clk_reverse_en默认配置

解决方案

BT.1120

BT.656

RGB_16BIT

RGB_18BIT

RGB_24BIT

RGB_6BIT

RGB_8BIT

SS528V100/SS625V100

反向

NA

NA

SS524V100

反向

SS522V101

反向

正向

NA

SS626V100

NA

  

SS928V100

NA

反向

正向

反向

  • 以下是用户时序信息推导方法

表 4 用户时序信息推导方法

计算项

计算方法

HDMI接口输出1080P60

以SS528V100-DHD0-HDMI-1080P60为例。

时序结构intf_sync

ot_vo_intf_sync intf_sync = {

syncm = 0,

iop = 1,

intfb = 1,

vact = 1080,

vbb = 41,

vfb = 4,

hact = 1920,

hbb = 192,

hfb = 88,

hmid = 1,

bvact = 1,

bvbb = 1,

bvfb = 1,

hpw = 44,

vpw = 5,

idv = 0,

ihs = 0,

ivs = 0

};

像素时钟pixel_clk

pixel_clk=148.5MHz。从表1可知。

时钟分频dev_div

表1可知:dev_div =1

前置分频pre_div

表2可知,pre_div=4;不含HDMI输出时,配为1即可。

时钟源大小src_clk

表2可知:src_clk= pre_div*pixel_clk* dev_div =594MHz

时钟源类型clk_src

clk_src = OT_VO_CLK_SRC_PLL(根据ot_vo_user_sync_attr中列出的解决方案和设备支持的时钟源进行选择有多种时钟源可以选择时,可根据频点大小和时钟源特性进行选择如一般LCD接口输出频点较小小于75MHz),可使用PLL FOUT4类型或LCD分频器类型时钟源

时钟源参数

fb_div

frac

ref_div

post_div1

post_div2

lcd_m_clk_div

PLL参数:

表1可知:

fb_div=99

frac = 0;

ref_div = 1;

post_div1 = 2;

post_div2 = 2;

LCDMCLK参数(若涉及):

表1可知。

时钟相位反向clk_reverse_en

与对接设备相关。

用户时序信息最终结果

ot_vo_user_sync_info g_vo_user_sync_info = {

.user_sync_attr = {

.clk_src= OT_VO_CLK_SRC_PLL,

. vo_pll = {

.fb_div = 99,

.frac = 0,

.ref_div = 1,

.post_div1 = 2,

.post_div2 = 2,

},

},

.pre_div = 4,

.dev_div = 1,

.clk_reverse_en = TD_TRUE,

}

【相关数据类型及接口】

ot_vo_user_sync_attr

ot_vo_less_buf_attr

【说明】

VO模块省buffer属性参数。

【定义】

typedef struct {
    td_bool enable;
    td_u32 vtth;
} ot_vo_less_buf_attr;

【成员】

成员名称

描述

enable

设置省buffer开关默认为TD_FALSE)

TD_TRUE:使能省buffer开关

TD_FALSE:不使能省buffer开关。

vtth

buffer垂直时序门限值。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_vo_user_notify_attr

【说明】

VO模块用户通知属性参数。

【定义】

typedef struct {
    td_bool enable;
    td_u32 vtth;
} ot_vo_user_notify_attr;

【成员】

成员名称

描述

enable

设置用户通知开关默认为TD_FALSE)

TD_TRUE:使能用户通知开关

TD_FALSE:不使能用户通知开关。

vtth

用户通知垂直时序门限值。

【注意事项】

【相关数据类型及接口】

ot_vo_intf_plug_status

【说明】

定义VGA/CVBS接口连接状态类型。

【定义】

typedef enum {
    OT_VO_INTF_STATUS_NO_PLUG = 0,
    OT_VO_INTF_STATUS_PLUG = 1,
    OT_VO_INTF_STATUS_BUTT,
} ot_vo_intf_plug_status;

【成员】

成员名称

描述

OT_VO_INTF_STATUS_NO_PLUG

断开状态。

OT_VO_INTF_STATUS_PLUG

连接状态。

OT_VO_INTF_STATUS_BUTT

无效状态。

【注意事项】

【相关数据类型及接口】

ss_mpi_vo_query_intf_status

ot_vo_intf_status

【说明】

定义VGA/CVBS接口状态结构体。

【定义】

typedef struct {
    ot_vo_intf_plug_status plug_status;
} ot_vo_intf_status;

【成员】

成员名称

描述

plug_status

连接状态类型

【注意事项】

【相关数据类型及接口】

ss_mpi_vo_query_intf_status

ot_vo_csc_matrix

【说明】

定义CSC转换矩阵。

【定义】

typedef enum {
    OT_VO_CSC_MATRIX_BT601LIMIT_TO_BT601LIMIT = 0,
    OT_VO_CSC_MATRIX_BT601FULL_TO_BT601LIMIT = 1,
    OT_VO_CSC_MATRIX_BT709LIMIT_TO_BT601LIMIT = 2,
    OT_VO_CSC_MATRIX_BT709FULL_TO_BT601LIMIT = 3,
    OT_VO_CSC_MATRIX_BT601LIMIT_TO_BT709LIMIT = 4,
    OT_VO_CSC_MATRIX_BT601FULL_TO_BT709LIMIT = 5,
    OT_VO_CSC_MATRIX_BT709LIMIT_TO_BT709LIMIT = 6,
    OT_VO_CSC_MATRIX_BT709FULL_TO_BT709LIMIT = 7,
    OT_VO_CSC_MATRIX_BT601LIMIT_TO_BT601FULL = 8,
    OT_VO_CSC_MATRIX_BT601FULL_TO_BT601FULL = 9,
    OT_VO_CSC_MATRIX_BT709LIMIT_TO_BT601FULL = 10,
    OT_VO_CSC_MATRIX_BT709FULL_TO_BT601FULL = 11,
    OT_VO_CSC_MATRIX_BT601LIMIT_TO_BT709FULL = 12,
    OT_VO_CSC_MATRIX_BT601FULL_TO_BT709FULL = 13,
    OT_VO_CSC_MATRIX_BT709LIMIT_TO_BT709FULL = 14,
    OT_VO_CSC_MATRIX_BT709FULL_TO_BT709FULL = 15,
    OT_VO_CSC_MATRIX_BT601LIMIT_TO_RGBFULL = 16,
    OT_VO_CSC_MATRIX_BT601FULL_TO_RGBFULL = 17,
    OT_VO_CSC_MATRIX_BT709LIMIT_TO_RGBFULL = 18,
    OT_VO_CSC_MATRIX_BT709FULL_TO_RGBFULL = 19,
    OT_VO_CSC_MATRIX_BT601LIMIT_TO_RGBLIMIT = 20,
    OT_VO_CSC_MATRIX_BT601FULL_TO_RGBLIMIT = 21,
    OT_VO_CSC_MATRIX_BT709LIMIT_TO_RGBLIMIT = 22,
    OT_VO_CSC_MATRIX_BT709FULL_TO_RGBLIMIT = 23,
    OT_VO_CSC_MATRIX_RGBFULL_TO_BT601LIMIT = 24,
    OT_VO_CSC_MATRIX_RGBFULL_TO_BT601FULL = 25,
    OT_VO_CSC_MATRIX_RGBFULL_TO_BT709LIMIT = 26,
    OT_VO_CSC_MATRIX_RGBFULL_TO_BT709FULL = 27,
    OT_VO_CSC_MATRIX_BUTT,
} ot_vo_csc_matrix;

【成员】

成员名称

描述

OT_VO_CSC_MATRIX_BT601LIMIT_TO_BT601LIMIT

BT.601 LIMIT到BT.601 LIMIT色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT601FULL_TO_BT601LIMIT

BT.601 FULL到BT.601 LIMIT色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT709LIMIT_TO_BT601LIMIT

BT.709 LIMIT到BT.601 LIMIT色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT709FULL_TO_BT601LIMIT

BT.709 FULL到BT.601 LIMIT色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT601LIMIT_TO_BT709LIMIT

BT.601 LIMIT到BT.709 LIMIT色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT601FULL_TO_BT709LIMIT

BT.601 FULL到BT.709 LIMIT色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT709LIMIT_TO_BT709LIMIT

BT.709 LIMIT到BT.709 LIMIT色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT709FULL_TO_BT709LIMIT

BT.709 FULL到BT.709 LIMIT色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT601LIMIT_TO_BT601FULL

BT.601 LIMIT到BT.601 FULL色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT601FULL_TO_BT601FULL

BT.601 FULL到BT.601 FULL色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT709LIMIT_TO_BT601FULL

BT.709 LIMIT到BT.601 FULL色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT709FULL_TO_BT601FULL

BT.709 FULL到BT.601 FULL色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT601LIMIT_TO_BT709FULL

BT.601 LIMIT到BT.709 FULL色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT601FULL_TO_BT709FULL

BT.601 FULL到BT.709 FULL色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT709LIMIT_TO_BT709FULL

BT.709 LIMIT到BT.709 FULL色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT709FULL_TO_BT709FULL

BT.709 FULL到BT.709 FULL色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT601LIMIT_TO_RGBFULL

BT.601 LIMIT到RGB FULL色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT601FULL_TO_RGBFULL

BT.601 FULL到RGB FULL色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT709LIMIT_TO_RGBFULL

BT.709 LIMIT到RGB FULL色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT709FULL_TO_RGBFULL

BT.709 FULL到RGB FULL色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT601LIMIT_TO_RGBLIMIT

BT.601 LIMIT到RGB LIMIT色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT601FULL_TO_RGBLIMIT

BT.601 FULL到RGB LIMIT色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT709LIMIT_TO_RGBLIMIT

BT.709 LIMIT到RGB LIMIT色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_BT709FULL_TO_RGBLIMIT

BT.709 FULL到RGB LIMIT色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_RGBFULL_TO_BT601LIMIT

RGB FULL到BT.601 LIMIT色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_RGBFULL_TO_BT601FULL

RGB FULL到BT.601 FULL色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_RGBFULL_TO_BT709LIMIT

RGB FULL到BT.709 LIMIT色彩空间的CSC矩阵。

OT_VO_CSC_MATRIX_RGBFULL_TO_BT709FULL

RGB FULL到BT.709 FULL色彩空间的CSC矩阵。

【注意事项】

【相关数据类型及接口】

ss_mpi_vo_set_layer_csc

ot_vo_csc

【说明】

定义图像输出效果结构体。

【定义】

typedef struct {
    ot_vo_csc_matrix csc_matrix;
    td_u32 luma;
    td_u32 contrast;
    td_u32 hue;
    td_u32 saturation;
    td_bool ex_csc_en;
} ot_vo_csc;

【成员】

成员名称

描述

csc_matrix

CSC矩阵选择。

luma

亮度值。

contrast

对比度值。

hue

色调值。

saturation

饱和度值。

ex_csc_en

亮度扩展开关。

0:默认的亮度区间;

1:扩大的亮度区间。

【差异说明】

解决方案

描述

SS528V100/SS625V100/SS524V100/SS522V101/SS928V100/SS626V100

亮度值的取值范围:[0,100];

对比度值的取值范围:[0,100];

色调值的取值范围:[0,100];

饱和度值的取值范围:[0,100]。

亮度扩展开关的取值范围:[0,1]。

【注意事项】

【相关数据类型及接口】

ss_mpi_vo_set_layer_csc

ot_vo_vga_param

【说明】

定义VGA图像输出效果结构体。

【定义】

typedef struct {
    ot_vo_csc csc;
    td_u32 gain;
    td_s32 sharpen_strength;
} ot_vo_vga_param;

【成员】

成员名称

描述

csc

VGA的图像调节结构体,具体参考ot_vo_csc

luma、contrast、hue、saturation取值范围:[0, 100],默认值:50。

ex_csc_en取值范围:[0, 1],默认值:0。

gain取值范围:[0, 64)。

sharpen_strength 取值范围:[0, 255]。

接口csc_matrix默认值:OT_VO_CSC_MATRIX_BT601FULL_TO_RGBFULL。可以选择:

OT_VO_CSC_MATRIX_BT601LIMIT_TO_RGBFULL

OT_VO_CSC_MATRIX_BT601FULL_TO_RGBFULL

OT_VO_CSC_MATRIX_BT709LIMIT_TO_RGBFULL

OT_VO_CSC_MATRIX_BT709FULL_TO_RGBFULL

OT_VO_CSC_MATRIX_BT601LIMIT_TO_RGBLIMIT

OT_VO_CSC_MATRIX_BT601FULL_TO_RGBLIMIT

OT_VO_CSC_MATRIX_BT709LIMIT_TO_RGBLIMIT

OT_VO_CSC_MATRIX_BT709FULL_TO_RGBLIMIT

gain

DAC增益值。

取值范围:[0, 64)。

sharpen_strength

锐化强度值。

取值范围:[0,255],默认值:128。

【差异说明】

解决方案

描述

SS528V100/SS625V100

OT_VO_OUT_800x600_50、OT_VO_OUT_800x600_60、OT_VO_OUT_1024x768_60、OT_VO_OUT_1280x1024_60、OT_VO_OUT_1600x1200_60、OT_VO_OUT_1080I50、OT_VO_OUT_1080I60、OT_VO_OUT_1080P24、OT_VO_OUT_1080P25、OT_VO_OUT_1080P30、OT_VO_OUT_1080P50、OT_VO_OUT_1080P60时序下:

gain默认值:0xE

其他时序下:

gain默认值:0xA

SS524V100/SS522V101

gain默认值:0xB

SS626V100

gain默认值:0x11

SS928V100

不支持。

【注意事项】

【相关数据类型及接口】

ss_mpi_vo_set_vga_param

ot_vo_hdmi_param

【说明】

定义HDMI图像输出效果结构体。

【定义】

typedef struct {
    ot_vo_csc csc;
} ot_vo_hdmi_param;

【成员】

成员名称

描述

csc

HDMI的图像调节结构体,具体参考ot_vo_csc

luma、contrast、hue、saturation取值范围:[0, 100],默认值:50。

ex_csc_en取值范围:[0, 1],默认值:0。

接口csc_matrix默认值:OT_VO_CSC_MATRIX_BT601FULL_TO_BT601FULL。可以选择:

OT_VO_CSC_MATRIX_BT601LIMIT_TO_BT601LIMIT

OT_VO_CSC_MATRIX_BT601FULL_TO_BT601LIMIT

OT_VO_CSC_MATRIX_BT709LIMIT_TO_BT601LIMIT

OT_VO_CSC_MATRIX_BT709FULL_TO_BT601LIMIT

OT_VO_CSC_MATRIX_BT601LIMIT_TO_BT709LIMIT

OT_VO_CSC_MATRIX_BT601FULL_TO_BT709LIMIT

OT_VO_CSC_MATRIX_BT709LIMIT_TO_BT709LIMIT

OT_VO_CSC_MATRIX_BT709FULL_TO_BT709LIMIT

OT_VO_CSC_MATRIX_BT601LIMIT_TO_BT601FULL

OT_VO_CSC_MATRIX_BT601FULL_TO_BT601FULL

OT_VO_CSC_MATRIX_BT709LIMIT_TO_BT601FULL

OT_VO_CSC_MATRIX_BT709FULL_TO_BT601FULL

OT_VO_CSC_MATRIX_BT601LIMIT_TO_BT709FULL

OT_VO_CSC_MATRIX_BT601FULL_TO_BT709FULL

OT_VO_CSC_MATRIX_BT709LIMIT_TO_BT709FULL

OT_VO_CSC_MATRIX_BT709FULL_TO_BT709FULL

OT_VO_CSC_MATRIX_BT601LIMIT_TO_RGBFULL

OT_VO_CSC_MATRIX_BT601FULL_TO_RGBFULL

OT_VO_CSC_MATRIX_BT709LIMIT_TO_RGBFULL

OT_VO_CSC_MATRIX_BT709FULL_TO_RGBFULL

OT_VO_CSC_MATRIX_BT601LIMIT_TO_RGBLIMIT

OT_VO_CSC_MATRIX_BT601FULL_TO_RGBLIMIT

OT_VO_CSC_MATRIX_BT709LIMIT_TO_RGBLIMIT

OT_VO_CSC_MATRIX_BT709FULL_TO_RGBLIMIT

【注意事项】

【相关数据类型及接口】

ss_mpi_vo_set_hdmi_param

ot_vo_rgb_param

【说明】

定义RGB图像输出效果结构体。

【定义】

typedef struct {
    ot_vo_csc csc;
    td_bool rgb_inverted_en;
    td_bool bit_inverted_en;
} ot_vo_rgb_param;

【成员】

成员名称

描述

csc

RGB的图像调节结构体。

luma、contrast、hue、saturation取值范围:[0, 100],默认值:50。

ex_csc_en取值范围:[0, 1],默认值:0。

rgb_inverted_en取值范围:[0, 1],默认值:0。

bit_inverted_en取值范围:[0, 1],默认值:0。

接口csc_matrix默认值:OT_VO_CSC_MATRIX_BT601FULL_TO_RGBFULL。可以选择:

OT_VO_CSC_MATRIX_BT601LIMIT_TO_RGBFULL

OT_VO_CSC_MATRIX_BT601FULL_TO_RGBFULL

OT_VO_CSC_MATRIX_BT709LIMIT_TO_RGBFULL

OT_VO_CSC_MATRIX_BT709FULL_TO_RGBFULL

OT_VO_CSC_MATRIX_BT601LIMIT_TO_RGBLIMIT

OT_VO_CSC_MATRIX_BT601FULL_TO_RGBLIMIT

OT_VO_CSC_MATRIX_BT709LIMIT_TO_RGBLIMIT

OT_VO_CSC_MATRIX_BT709FULL_TO_RGBLIMIT

rgb_inverted_en

“R”,“G”,“B”分量顺序正向和反向设置,正向为RGB,反向为BGR,默认TD_FALSE不反向,即正向RGB,以下描述中左为高位管脚,右为低位管脚。

TD_FALSE: 正向RGB,“R”在高位,“B”在低位;

TD_TRUE: 反向BGR,“B”在高位,“R”在低位;

注:仅在并行接口OT_VO_INTF_RGB_16BIT,OT_VO_INTF_RGB_18BIT,OT_VO_INTF_RGB_24BIT时有效。

bit_inverted_en

数据bit位倒序,默认TD_FALSE不倒序,以下描述中左为高位管脚,右为低位管脚。

TD_FALSE时数据bit位正向排布(bit0在低位):

OT_VO_INTF_RGB_6BIT: bit排布[5:0],bit5在高位;

OT_VO_INTF_RGB_8BIT: bit排布[7:0],bit7在高位;

OT_VO_INTF_RGB_16BIT: bit排布[15:0],bit15在高位;

OT_VO_INTF_RGB_18BIT: bit排布[17:0],bit17在高位;

OT_VO_INTF_RGB_24BIT: bit排布[23:0],bit23在高位;

TD_TRUE时数据bit位反向排布(bit0在高位):

OT_VO_INTF_RGB_6BIT: bit排布[0:5],bit5在低位;

OT_VO_INTF_RGB_8BIT: bit排布[0:7],bit7在低位;

OT_VO_INTF_RGB_16BIT: bi排布t[0:15],bit15在低位;

OT_VO_INTF_RGB_18BIT: bit排布[0:17],bit17在低位;

OT_VO_INTF_RGB_24BIT: bit排布[0:23],bit23在低位。

【注意事项】

并行接口OT_VO_INTF_RGB_16BIT,OT_VO_INTF_RGB_18BIT,OT_VO_INTF_RGB_24BIT输出时,当rgb_inverted_en和bit_inverted_en同时配置为TD_TRUE,“RGB反向”先生效,“bit位倒序”后生效。

【相关数据类型及接口】

ss_mpi_vo_set_rgb_param

ot_vo_clk_edge

【说明】

定义时钟单沿双沿类型。

【定义】

typedef enum {
    OT_VO_CLK_EDGE_SINGLE = 0,  /* single-edge mode */
    OT_VO_CLK_EDGE_DUAL,        /* dual-edge mode */
    OT_VO_CLK_EDGE_BUTT
} ot_vo_clk_edge;

【成员】

成员名称

描述

OT_VO_CLK_EDGE_SINGLE

单沿。

OT_VO_CLK_EDGE_DUAL

双沿。

【注意事项】

【相关数据类型及接口】

无。

ot_vo_bt_param

【说明】

定义BT.1120或BT.656图像输出效果结构体。

【定义】

typedef struct {
    td_bool yc_inverted_en;
    td_bool bit_inverted_en;
    ot_vo_clk_edge clk_edge;
} ot_vo_bt_param;

【成员】

成员名称

描述

yc_inverted_en

“Y”,“C”分量顺序正向和反向设置,正向为YC,反向为CY,默认TD_FALSE不反向,即YC,以下描述中左为高位管脚,右为低位管脚。

TD_FALSE: 正向YC,“Y”在高位,“C”在低位;

TD_TRUE: 反向CY,“C”在高位,“Y”在低位;

注:仅在接口为OT_VO_INTF_BT1120时有效。

bit_inverted_en

数据bit位倒序,默认TD_FALSE不倒序,以下描述中左为高位管脚,右为低位管脚。

TD_FALSE时bit位正向排布(bit0在低位):

OT_VO_INTF_BT656: bit排布[7:0],bit7在高位;

OT_VO_INTF_BT1120:bit排布[15:0],bit15在高位。

TD_TRUE时bit位反向排布(bit0在高位):

OT_VO_INTF_BT656: bit排布[0:7],bit7在低位;

OT_VO_INTF_BT1120:bit排布[0:15],bit15在低位。

clk_edge

接口单双沿输出,静态属性。BT.1120接口支持单双沿配置输出,BT.656接口仅支持单沿配置输出。

【差异说明】

解决方案

描述

SS528V100/SS626V100

clk_edge的取值范围:[OT_VO_CLK_EDGE_SINGLE,OT_VO_CLK_EDGE_DUAL];

SS625V100/SS524V100/SS522V101/SS928V100

clk_edge的取值范围:只支持OT_VO_CLK_EDGE_SINGLE

【注意事项】

接口OT_VO_INTF_BT1120输出时,当yc_inverted_en和bit_inverted_en同时配置为TD_TRUE,“YC反向”先生效,“bit位倒序”后生效。

【相关数据类型及接口】

ss_mpi_vo_set_bt_param

ot_vo_mipi_param

【说明】

定义MIPI图像输出效果结构体。

【定义】

typedef struct {
    ot_vo_csc csc;
} ot_vo_mipi_param;

【成员】

成员名称

描述

csc

MIPI的图像调节结构体,具体参考ot_vo_csc

luma、contrast、hue、saturation取值范围:[0, 100],默认值:50。

ex_csc_en取值范围:[0, 1],默认值:0。

接口csc_matrix默认值:OT_VO_CSC_MATRIX_BT601FULL_TO_RGBFULL。可以选择:

OT_VO_CSC_MATRIX_BT601LIMIT_TO_BT601LIMIT

OT_VO_CSC_MATRIX_BT601FULL_TO_BT601LIMIT

OT_VO_CSC_MATRIX_BT709LIMIT_TO_BT601LIMIT

OT_VO_CSC_MATRIX_BT709FULL_TO_BT601LIMIT

OT_VO_CSC_MATRIX_BT601LIMIT_TO_BT709LIMIT

OT_VO_CSC_MATRIX_BT601FULL_TO_BT709LIMIT

OT_VO_CSC_MATRIX_BT709LIMIT_TO_BT709LIMIT

OT_VO_CSC_MATRIX_BT709FULL_TO_BT709LIMIT

OT_VO_CSC_MATRIX_BT601LIMIT_TO_BT601FULL

OT_VO_CSC_MATRIX_BT601FULL_TO_BT601FULL

OT_VO_CSC_MATRIX_BT709LIMIT_TO_BT601FULL

OT_VO_CSC_MATRIX_BT709FULL_TO_BT601FULL

OT_VO_CSC_MATRIX_BT601LIMIT_TO_BT709FULL

OT_VO_CSC_MATRIX_BT601FULL_TO_BT709FULL

OT_VO_CSC_MATRIX_BT709LIMIT_TO_BT709FULL

OT_VO_CSC_MATRIX_BT709FULL_TO_BT709FULL

OT_VO_CSC_MATRIX_BT601LIMIT_TO_RGBFULL

OT_VO_CSC_MATRIX_BT601FULL_TO_RGBFULL

OT_VO_CSC_MATRIX_BT709LIMIT_TO_RGBFULL

OT_VO_CSC_MATRIX_BT709FULL_TO_RGBFULL

OT_VO_CSC_MATRIX_BT601LIMIT_TO_RGBLIMIT

OT_VO_CSC_MATRIX_BT601FULL_TO_RGBLIMIT

OT_VO_CSC_MATRIX_BT709LIMIT_TO_RGBLIMIT

OT_VO_CSC_MATRIX_BT709FULL_TO_RGBLIMIT

【注意事项】

【相关数据类型及接口】

ss_mpi_vo_set_mipi_param

ot_vo_partition_mode

【说明】

定义视频层分割处理模式。

【定义】

typedef enum {
    OT_VO_PARTITION_MODE_SINGLE = 0,
    OT_VO_PARTITION_MODE_MULTI = 1,
    OT_VO_PARTITION_MODE_BUTT,
} ot_vo_partition_mode;

【成员】

成员名称

描述

OT_VO_PARTITION_MODE_SINGLE

视频层按照单区域配置给硬件显示。

OT_VO_PARTITION_MODE_MULTI

视频层按照多区域配置给硬件显示。

【注意事项】

VO软件本身不具备将多个通道的图像拼接的功能,一般通过两种方式进行处理:

  • 通过硬件多区域管理显示,对应OT_VO_PARTITION_MODE_MULTI模式,该模式不支持区域重叠;

  • 通过内部调用VGS拼接,最终配置单个拼接后的全图像给硬件显示,对应OT_VO_PARTITION_MODE_SINGLE模式,该模式支持区域重叠。

【相关数据类型及接口】

ss_mpi_vo_set_video_layer_attr

ot_vo_video_layer_attr

【说明】

定义视频层属性。

在视频层属性涉及三个概念,即设备分辨率、显示分辨率和图像分辨率。每种分辨率的概念可以从图1中看出。

  • 图像分辨率指放置各个通道图像的画布大小。

  • 显示分辨率是把图像分辨率中描述的画布经过VO放大或者裁剪后的显示区域。

  • 设备分辨率与设备时序一致,即如果时序为1080P30,那设备分辨率就为1920 x 1080。

图 1 视频层属性的相关概念示意

视频层的内存使用分为通道聚集(如图2所示)和非聚集(如图3所示)两种方式。

  • 聚集方式:

    • 决定内存分配大小的因素:实际显示通道的分辨率的总和。

    • 不支持视频层的放大功能。

    • 仅适用于MULTI模式。

    • 聚集方式使能后,对于MULTI模式下的视频层,可以调用通道显示位置接口(ss_mpi_vo_set_chn_display_pos)来合理布局通道的显示位置。

图 2 视频层使用聚集内存方式的场景a(聚集使用内存)

  • 非聚集方式:

    • 决定内存分配大小的因素:层上的通道的起始坐标(0,0)与最右下角的坐标所决定的区域大小。

    • 支持视频层的放大功能。

    • 在拼接好图像画面后,通道画面的显示位置不可以通过ss_mpi_vo_set_chn_display_pos接口调整。

图 3 视频层使用非聚集内存方式的场景b(非聚集使用内存)

【定义】

typedef struct {
    ot_rect display_rect;
    ot_size img_size;
    td_u32 display_frame_rate;
    ot_pixel_format pixel_format;
    td_bool double_frame_en;
    td_bool cluster_mode_en;
    ot_dynamic_range dst_dynamic_range;
    td_u32 display_buf_len;
    ot_vo_partition_mode partition_mode;
    ot_compress_mode compress_mode;
} ot_vo_video_layer_attr;

【成员】

成员名称

描述

display_rect

视频显示区域矩形结构体,SINGLE模式下display_rect为动态属性;MULTI模式下display_rect为静态属性。

img_size

图像分辨率结构体,即合成画面尺寸,静态属性。

display_frame_rate

视频显示帧率,静态属性。

pixel_format

视频层输入像素格式:YVU420 SEMIPLANAR,YVU422 SEMIPLANAR,YUV420 SEMIPLANAR,YUV422 SEMIPLANAR,YUV400,静态属性。

double_frame_en

视频层倍帧开关,静态属性。

cluster_mode_en

视频层内存聚集使能开关,静态属性。

dst_dynamic_range

视频层输出动态范围类型,静态属性。

display_buf_len

视频层显示缓存的长度,静态属性。

  • 非省buffer方案下取值范围:[0],[3, 15]。
  • 省buffer方案下取值范围:[0],[2,15]。

partition_mode

视频层的分割模式:OT_VO_PARTITION_MODE_SINGLE,OT_VO_PARTITION_MODE_MULTI,静态属性。

compress_mode

视频层支持压缩或解压模式:支持OT_COMPRESS_MODE_NONE,OT_COMPRESS_MODE_SEG,OT_COMPRESS_MODE_SEG_COMPACT, OT_COMPRESS_MODE_LINE,静态属性。

【差异说明】

解决方案

显示能力

输入像素格式

SS528V100

VHD0视频层的标准时序最大分辨率为4096x2160,用户时序下层支持最大分辨率为4096x4096。即display_rect不能超过这个值。

VHD0的缩放存在限制,对于sp422的视频输出像素格式,放大的倍数:垂直和水平都不能超过15倍;对于sp420的视频输出像素格式,放大的倍数:垂直不能超过7.5倍,水平不能超过15倍。

YVU420 SEMIPLANAR

YVU422 SEMIPLANAR

YUV420 SEMIPLANAR

YUV422 SEMIPLANAR

YUV400

VHD1视频层的标准时序最大分辨率为4096x2160,用户时序下层支持最大分辨率为4096x4096。即display_rect不能超过这个值。

VHD2视频层的标准时序最大分辨率为4096x2160,用户时序下层支持最大分辨率为4096x4096。即display_rect不能超过这个值。

VSD0视频层的标准时序最大分辨率为720x576,用户时序下层支持最大分辨率为720x720。即display_rect不能超过这个值。

SS625V100

VHD0视频层的标准时序最大分辨率为4096x2160,用户时序下层支持最大分辨率为4096x4096。即display_rect不能超过这个值。

VHD0的缩放存在限制,对于sp422的视频输出像素格式,放大的倍数:垂直和水平都不能超过15倍;对于sp420的视频输出像素格式,放大的倍数:垂直不能超过7.5倍,水平不能超过15倍。

YVU420 SEMIPLANAR

YVU422 SEMIPLANAR

YUV420 SEMIPLANAR

YUV422 SEMIPLANAR

YUV400

VHD1视频层的标准时序最大分辨率为2560x1600,用户时序下层支持最大分辨率为2560x4096。即display_rect不能超过这个值。

VHD2视频层的标准时序最大分辨率为4096x2160,用户时序下层支持最大分辨率为4096x4096。即display_rect不能超过这个值。

VSD0视频层的标准时序最大分辨率为720x576,用户时序下层支持最大分辨率为720x720。即display_rect不能超过这个值。

SS524V100

VHD0视频层的标准时序最大分辨率为3840x2160,用户时序下层支持最大分辨率为3840x3840。即display_rect不能超过这个值。

VHD0的缩放存在限制,对于sp422的视频输出像素格式,放大的倍数:垂直和水平都不能超过15倍;对于sp420的视频输出像素格式,放大的倍数:垂直不能超过7.5倍,水平不能超过15倍。

YVU420 SEMIPLANAR

YVU422 SEMIPLANAR

YUV420 SEMIPLANAR

YUV422 SEMIPLANAR

YUV400

VHD1视频层的标准时序最大分辨率为1920x1080,用户时序下层支持最大分辨率为1920x3840。即display_rect不能超过这个值。

VHD2视频层的标准时序最大分辨率为3840x2160,用户时序下层支持最大分辨率为3840x3840。即display_rect不能超过这个值。

VSD0视频层的标准时序最大分辨率为720x576,用户时序下层支持最大分辨率为720x720。即display_rect不能超过这个值。

SS522V101

VHD0视频层的标准时序最大分辨率为3840x2160,用户时序下层支持最大分辨率为3840x3840。即display_rect不能超过这个值。

VHD0的缩放存在限制,对于sp422的视频输出像素格式,放大的倍数:垂直和水平都不能超过15倍;对于sp420的视频输出像素格式,放大的倍数:垂直不能超过7.5倍,水平不能超过15倍。

YVU420 SEMIPLANAR

YVU422 SEMIPLANAR

YUV420 SEMIPLANAR

YUV422 SEMIPLANAR

YUV400

VHD2视频层的标准时序最大分辨率为3840x2160,用户时序下层支持最大分辨率为3840x3840。即display_rect不能超过这个值。

VSD0视频层的标准时序最大分辨率为720x576,用户时序下层支持最大分辨率为720x720。即display_rect不能超过这个值。

SS928V100

VHD0视频层的标准时序最大分辨率为3840x2160,用户时序下层支持最大分辨率为3840x3840。即display_rect不能超过这个值。

YVU420 SEMIPLANAR

YVU422 SEMIPLANAR

YUV420 SEMIPLANAR

YUV422 SEMIPLANAR

YUV400

VHD1视频层的标准时序最大分辨率为1920x1080,用户时序下层支持最大分辨率为1920x3840。即display_rect不能超过这个值。

VHD2视频层的标准时序最大分辨率为1920x1080,用户时序下层支持最大分辨率为1920x3840。即display_rect不能超过这个值。

SS626V100

VHD0视频层的标准时序最大分辨率为4096x2160,用户时序下层支持最大分辨率为4096x4096。即display_rect不能超过这个值。

YVU420 SEMIPLANAR

YVU422 SEMIPLANAR

YUV420 SEMIPLANAR

YUV422 SEMIPLANAR

YUV400

VHD1视频层的标准时序最大分辨率为4096x2160,用户时序下层支持最大分辨率为4096x4096。即display_rect不能超过这个值。

VHD2视频层的标准时序最大分辨率为4096x2160,用户时序下层支持最大分辨率为4096x4096。即display_rect不能超过这个值。

VSD0视频层的绑定到DHD1时标准时序最大分辨率为4096x2160,用户时序下层支持最大分辨率为4096x4096,绑定到DSD0时标准时序最大分辨率为720x576,用户时序下层支持最大分辨率为720x720。即display_rect不能超过这个值。

【注意事项】

  • display_rect范围不能超出设备分辨率。img_size和display_rect的范围都要大于或等于显示的最小分辨率32x32。

  • SS528V100/SS625V100/SS524V100/SS522V101视频层VHD0在SINGLE模式下支持放大,img_size小于display_rect时,视频层的图像将从img_size放大到display_rect显示;img_size大于display_rect时,显示为img_size与display_rect的交集;VHD1和VHD2不支持缩放,img_size如果大于display_rect,图像将被剪裁显示。

  • SS524V100/SS522V101视频层VHD0在MULTI模式下仅支持全屏放大。

  • SS928V100/SS626V100视频层不支持缩放。

  • img_size和display_rect要求2对齐。

  • 当设备输出时序为隔行时,且格式为YVU420 SEMIPLANAR或YUV420 SEMIPLANAR时,img_size高度height和display_rect高度height要求4对齐。

  • 如果视频层已使能,开启了回写功能并且回写源为该视频层时,SINGLE模式时动态切换显示区域宽高会改变回写的大小,回写大小和回写目标大小的限制参考ss_mpi_vo_set_wbc_attr接口的描述。

  • display_frame_rate是视频显示帧率。该值可设范围为(0, 240],该值一般设置为设备帧率,即:

    • 如果源是PAL制式,设置为25;

    • 如果源是NTSC制式,设置为30。

    如果设置的帧率比通道的源帧率高,则会造成不必要的性能浪费。

  • 对于不支持缩放的视频层,通常保持图像分辨率和显示分辨率一致。

  • Single模式下VO会占用3块私有VB用来显示轮转。如果开启省BUF配置,可节省一块VB.

  • Multi模式下,如果前端绑定VPSS为auto模式,VO会占用4块私有VB用来显示轮转;如果前端为User模式,VO可以不分配VB,此时占用前端模块发送过来的VB,显示完后释放。如果开启省BUF配置,可节省一块VB。

  • 在MULTI模式下,display_rect中的起始位置x和y无效,视频层始终以(0, 0)为起始坐标,用户通过配置各个通道的起始位置来实现显示位置的调节。

  • 在vpss auto模式场景时,配置压缩模式compress_mode表示希望vpss送码流的压缩模式,MULTI模式时只有非压和行压支持,SINGLE模式时compress_mode参数列出的压缩模式都支持。

  • 在vpss user模式场景时,MULTI模式时配置压缩模式compress_mode表示当前vo支持的解压能力,具体解压能力见解决方案视频层解压缩规格表。SINGLE模式时VO配置此解压模式是无效的,非直通和直通时时分别依赖VGS和VDP的解压能力,不受此配置的约束。

  • 在vpss auto模式场景时,配置压缩模式compress_mode为OT_COMPRESS_MODE_LINE时,如果通道的宽度小于480时,此时会默认让vpss送非压图像。

  • 不支持倍帧。

  • 在聚集模式下,img_size和display_rect不相等时也不会有缩放效果。

  • 显示区域宽度超过3840场景时,不支持像素格式YVU420 SEMIPLANAR或YUV420 SEMIPLANAR,并且不支持视频层的缩放。

【相关数据类型及接口】

ss_mpi_vo_set_video_layer_attr

ot_vo_layer_param

【说明】

定义视频层参数,用于调整视频层内视频内容的显示效果。

【定义】

typedef struct {
    ot_aspect_ratio aspect_ratio;
} ot_vo_layer_param;

【成员】

成员名称

描述

aspect_ratio

视频层内视频的幅型比,请参见“系统控制”章节。

【注意事项】

  • 手动模式下,幅型比参数中的视频区域video_rect (x, y, width, height):坐标(x, y)值在视频层属性成员的display_rect以内,坐标以display_rect为参考;宽高值范围为:img_size宽高=< (width, height)<=display_rect宽高,特别说明,若img_size宽高较display_rect宽高大,则任何幅型比参数均无效——无法设置幅型比。

  • 幅型比参数中的视频区域video_rect要求2对齐。

  • 幅型比背景色范围为[0, 0xFFFFFF]。

【相关数据类型及接口】

ss_mpi_vo_set_video_layer_param

ot_vo_chn_attr

【说明】

定义视频输出通道属性。

【定义】

typedef struct {
    td_u32 priority;
    ot_rect rect;
    td_bool deflicker_en;
} ot_vo_chn_attr;

【成员】

成员名称

描述

priority

视频通道叠加优先级,数值越大优先级越高,优先级高的在上层。

该属性只在SINGLE模式下有效。

SINGLE模式下优先级取值范围:[0, OT_VO_MAX_CHN_NUM-1]。

动态属性。

rect

通道矩形显示区域。以屏幕的左上角为原点。其取值必须是2对齐,且该矩形区域必须在屏幕范围之内。注意:MULTI模式下隔行时序且SPYCbCr420、SPYCrCb420显示时,高度必须4对齐。

动态属性。起点和宽高要求2对齐,通道宽高必须不小于32。

deflicker_en

是否使能抗闪烁。

TD_TRUE:使能;

TD_FALSE:禁用。

抗闪烁效果需要调用VGS实现,固只在SINGLE模式下有效。

动态属性。

【注意事项】

  • SINGLE模式下,当多个通道有重叠的显示区域时,优先级高的通道图像将覆盖优先级低的通道。优先级相同的各通道有重叠时,默认通道号大的图像将覆盖通道号小的通道图像。

  • 如果有视频层放大的情况,rect是放大前视频层上的起始位置和宽高,放大后显示的起始位置和宽高会按视频层放大的比例偏移或放大。

【相关数据类型及接口】

ss_mpi_vo_set_chn_attr

ot_vo_chn_param

【说明】

定义视频输出通道参数,用于幅型比功能。

【定义】

typedef struct {
    ot_aspect_ratio aspect_ratio;
} ot_vo_chn_param;

【成员】

成员名称

描述

aspect_ratio

幅型比参数。

【注意事项】

  • 设置幅型比参数可以实现用户需要显示的视频大小,对于没有视频显示的区域通过设置相应颜色来填充。

  • 幅型比参数需要满足2对齐且在通道区域范围内。

  • 如果输出图像有缩放,则图像会缩放到幅型比视频区域的大小,缩放比例不能超过解决方案支持的缩放比例,解决方案支持的缩放比例请参考5.2.3小节 处理流程。

  • 单区域下,幅型比是通过VGS调整视频内容显示位置和大小来实现的,特别说明,若设置为AUTO幅型比,且输入图像宽高比与通道宽高比相等时,则禁用幅型比功能;多区域下,幅型比是通过VPSS来实现的。

  • 幅型比背景色范围为[0, 0xFFFFFF]。

【相关数据类型及接口】

  • ss_mpi_vo_set_chn_param

  • ss_mpi_vo_set_chn_attr

ot_vo_zoom_in_type

【说明】

定义局部放大类型。

【定义】

typedef enum {
    OT_VO_ZOOM_IN_RECT = 0,
    OT_VO_ZOOM_IN_RATIO = 1,
    OT_VO_ZOOM_IN_BUTT,
} ot_vo_zoom_in_type;

【成员】

成员名称

描述

OT_VO_ZOOM_IN_RECT

按矩形局部放大。

OT_VO_ZOOM_IN_RATIO

按比例局部放大。

OT_VO_ZOOM_IN_BUTT

无效配置。

【注意事项】

无。

【相关数据类型及接口】

ss_mpi_vo_set_zoom_in_window

ot_vo_zoom_ratio

【说明】

定义按比例局部放大结构体。

【定义】

typedef struct {
    td_u32 x_ratio;
    td_u32 y_ratio;
    td_u32 width_ratio;
    td_u32 height_ratio;
} ot_vo_zoom_ratio;

【成员】

成员名称

描述

x_ratio

屏幕坐标上,待缩放区域起始点横坐标与显示通道图像宽的比例。

y_ratio

屏幕坐标上,待缩放区域起始点纵坐标与显示通道图像高的比例。

width_ratio

屏幕坐标上,待缩放区域宽与显示通道图像宽的比例。

height_ratio

屏幕坐标上,待缩放区域高与显示通道图像高的比例。

【注意事项】

  • 结构体成员变量的取值范围[0, 1000]。

  • 参数取值相对比例值是放大了1000倍,例如待缩放区域宽与显示通道图像宽的比例是0.6,对应的参数width_ratio则是600。

  • 取消局部放大功能时,只要将该结构体中的成员都置0即可。

【相关数据类型及接口】

ss_mpi_vo_set_zoom_in_window

ot_vo_zoom_attr

【说明】

定义局部放大属性结构体。局部放大原理示意如图1所示。

图 1 局部放大原理示意

【定义】

typedef struct {
    ot_vo_zoom_in_type zoom_type;
    union {
        ot_rect zoom_rect;
        ot_vo_zoom_ratio zoom_ratio;
    };
} ot_vo_zoom_attr;

【成员】

成员名称

描述

zoom_type

局部放大类型。

zoom_rect

局部放大窗口矩形坐标。局部放大窗口不小于32x32(即宽高不小于32)

zoom_ratio

局部放大窗口比例结构体。

【注意事项】

  • 局部放大支持两种截取VO通道源数据的方式,按位置和按比例:

    • 按位置时,配置联合体中的zoom_rect,要求参数为非负数,按2像素对齐。且局部放大窗口不小于32x32。

    • 按比例时,配置联合体中的zoom_ratio。参数范围要求[0, 1000],1000表示1:1,计算出来的宽高会按2对齐,如果计算出来的宽高小于32,则无放大效果。

  • 按位置和按比例两种类型都是相对于输入图像数据而言,而不是屏幕坐标。

  • 取消局部放大时,可以按位置方式设置zoom_rect为(0, 0, 0, 0),或按比例方式设置zoom_ratio为(0, 0, 0, 0)。

  • 若局部放大窗口部分超出输入图像,则截取源数据与窗口相交部分,若局部放大窗口全部超出输入图像,则无放大效果。

  • SINGLE模式时通道的宽高与截取窗口的宽高的比值不能大于16。

【相关数据类型及接口】

ss_mpi_vo_set_zoom_in_window

ot_vo_border

【说明】

定义边框属性结构体。

【定义】

typedef struct {
    td_bool enable;
    ot_border border;
} ot_vo_border;

【成员】

成员名称

描述

enable

是否使能边框。

border

边框属性结构体,包括边框各边的宽度和边框颜色。

【注意事项】

边框的宽度取值范围[0,14],且为偶数。VO上边框各边宽度允许不相等。

【相关数据类型及接口】

  • ss_mpi_vo_set_chn_border

  • ss_mpi_vo_get_chn_border

ot_vo_mirror_mode

【说明】

定义通道镜像类型。

【定义】

typedef enum {
    OT_VO_MIRROR_NONE = 0,
    OT_VO_MIRROR_HOR  = 1,
    OT_VO_MIRROR_VER  = 2,
    OT_VO_MIRROR_BOTH = 3,
    OT_VO_MIRROR_BUTT
} ot_vo_mirror_mode;

【成员】

成员名称

描述

OT_VO_MIRROR_NONE

通道图像镜像类型为不镜像操作。

OT_VO_MIRROR_HOR

通道图像镜像类型为水平镜像操作。

OT_VO_MIRROR_VER

通道图像镜像类型为垂直镜像操作。

OT_VO_MIRROR_BOTH

通道图像镜像类型为水平和垂直镜像操作。

【注意事项】

无。

【相关数据类型及接口】

  • ss_mpi_vo_set_chn_mirror

  • ss_mpi_vo_get_chn_mirror

ot_vo_chn_status

【说明】

视频输出通道状态结构体。

【定义】

typedef struct {
   td_u32 chn_buf_used;
   td_u32 chn_busy_num;
} ot_vo_chn_status;

【成员】

成员名称

描述

chn_buf_used

视频输出通道当前占用的视频buffer数目。

chn_busy_num

当前通道队列的视频buffer数目。

【注意事项】

通道当前占用buffer数目包括当前通道队列和通道正在显示的buffer。

【相关数据类型及接口】

ss_mpi_vo_query_chn_status

ot_vo_wbc_attr

【说明】

回写设备属性。

【定义】

typedef struct {
    ot_size target_size;
    ot_pixel_format pixel_format;
    td_u32 frame_rate;
    ot_dynamic_range dynamic_range;
    ot_compress_mode compress_mode;
} ot_vo_wbc_attr;

【成员】

成员名称

描述

target_size

回写的目标大小。

pixel_format

回写图像的像素格式。

frame_rate

回写视频的帧率。

dynamic_range

回写视频的动态范围。

compress_mode

回写视频的压缩模式。

【注意事项】

当回写模式为OT_VO_WBC_MODE_PROGRESSIVE_TO_INTERLACED时,帧率控制无效。

【相关数据类型及接口】

无。

ot_vo_wbc_mode

【说明】

回写模式枚举类型。

【定义】

typedef enum {
    OT_VO_WBC_MODE_NORM = 0,
    OT_VO_WBC_MODE_DROP_REPEAT = 1,
    OT_VO_WBC_MODE_PROGRESSIVE_TO_INTERLACED = 2,
    OT_VO_WBC_MODE_BUTT,
} ot_vo_wbc_mode;

【成员】

成员名称

描述

OT_VO_WBC_MODE_NORM

NORMAL模式,使用设备帧率回写。该模式下,仅根据设备帧率和回写帧率来控制采集图像。

OT_VO_WBC_MODE_DROP_REPEAT

DROP_REPEAT模式,丢弃重复显示帧模式。

1、该模式下,VO使用设备帧率和视频层VHDx显示帧率进行帧率控制而重复显示的帧,WBC只回写一次。

2、该模式下,根据视频层VHDx显示帧率和WBC回写帧率进行帧率控制。

3、该模式仅在设备是逐行显示时才有效。

4、回写源为设备,则VHD0显示时,VHDx指VHD0;VHD0禁用,VHD2显示时:VHDx指VHD2。

5、回写源为视频层,则VHDx指VHD0。

6、该模式在至少有一个视频层VHDx显示情况下有效。

OT_VO_WBC_MODE_PROGRESSIVE_TO_INTERLACED

PROGRESSIVE_TO_INTERLACED模式,逐行转隔行模式。

该模式下,WBC会将HD逐行显示的相邻两帧处理成一帧隔行图像。丢弃重复显示3次及以上的帧中断。

该模式仅在高清设备HD是逐行显示时才有效。

【注意事项】

  • WBC回写模式设为OT_VO_WBC_MODE_PROGRESSIVE_TO_INTERLACED时,如果高清设备HD是1080P@60fps显示,VI实际采集帧率为30fps,WBC会将60帧逐行显示的图像转为30帧隔行图像,使回写后的图像在监视器上达到较好的显示效果。因此,当HD是1080P@30fps显示时,该模式下WBC的回写帧率最大只能达到15fps,且该模式下设置的帧率控制无效。在该模式下,WBC实际回写帧率分以下几种情况:

    • 当display_frame_rate <= 1/2 x dev_frame_rate时,WBC实际回写帧率为display_frame_rate。

    • 当display_frame_rate == dev_frame_rate时,WBC实际回写帧率为1/2 x dev_frame_rate。

    • 当1/2 x dev_frame_rate < display_frame_rate < dev_frame_rate时,WBC实际回写帧率不固定,随display_frame_rate不同而变。

  • 建议用户设置display_frame_rate == 1/2 x dev_frame_rate。

  • WBC回写模式设为VO_WBC_MODE_DROP_REPEAT时,回写源为设备时,视频层VHD0禁用且PIP显示的情况下,则根据PIP显示帧率和WBC回写帧率进行帧率控制;回写源为设备时,视频层VHD0显示的情况下,则根据VHD0显示帧率和WBC回写帧率进行帧率控制;回写源为视频层时,视频层VHD0禁用情况下,则回写设备无输出。

  • WBC回写模式设为VO_WBC_MODE_DROP_REPEAT时,视频层VHD0显示情况下,如果设备是1080P@60fps显示,视频层VHD0显示帧率(回写源为设备时,取VHD0显示帧率)为30fps,WBC只回写视频层显示的30帧图像,丢弃设备上重复显示的帧图像,即该模式下回写帧率最大不会超过视频层显示帧率。例如:设备是1080P@60fps显示,视频层显示帧率为30fps,回写帧率为15fps,则丢弃重复显示帧后帧率为f1=30fps,根据视频层显示帧率f2=30fps和回写帧率f3=15fps进行帧率控制得实际帧率为15fps(f1*(f3/f2))。

【相关数据类型及接口】

无。

ot_vo_wbc_src_type

【说明】

回写设备捕获数据的源类型,用于区别是从视频层回写还是从设备回写。

【定义】

typedef enum {
    OT_VO_WBC_SRC_DEV = 0,
    OT_VO_WBC_SRC_VIDEO = 1,
    OT_VO_WBC_SRC_BUTT,
} ot_vo_wbc_src_type;

【成员】

成员名称

描述

OT_VO_WBC_SRC_DEV

回写源是设备。

OT_VO_WBC_SRC_VIDEO

回写源是视频层。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_vo_wbc_src

【说明】

回写设备回写源。

【定义】

typedef struct {
    ot_vo_wbc_src_type src_type;
    td_u32 src_id;
} ot_vo_wbc_src;

【成员】

成员名称

描述

src_type

回写源类型。

src_id

回写源的ID。

【注意事项】

回写源类型是设备时,回写源ID表示设备ID,回写源类型是视频层时,回写源ID表示视频层的ID。

【相关数据类型及接口】

无。

ot_vo_cas_mode

【说明】

定义级联的单路双路模式。

【定义】

typedef enum {
    OT_VO_CAS_MODE_SINGLE = 0,
    OT_VO_CAS_MODE_DUAL = 1,
    OT_VO_CAS_MODE_BUTT,
} ot_vo_cas_mode;

【成员】

成员名称

描述

OT_VO_CAS_MODE_SINGLE

级联单路模式。

OT_VO_CAS_MODE_DUAL

级联双路模式。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_vo_cas_data_transmission_mode

【说明】

定义级联的单双沿数据传输模式。

【定义】

typedef enum {
    OT_VO_CAS_MODE_SINGLE_EDGE = 0,
    OT_VO_CAS_MODE_DUAL_EDGE = 1,
    OT_VO_CAS_MODE_EDGE_BUTT,
} ot_vo_cas_data_transmission_mode;

【成员】

成员名称

描述

OT_VO_CAS_MODE_SINGLE_EDGE

单沿数据传输模式。

OT_VO_CAS_MODE_DUAL_EDGE

双沿数据传输模式。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_vo_cas_rgn

【说明】

定义级联的区域类型。

【定义】

typedef enum {
    OT_VO_CAS_RGN_64 = 0,
    OT_VO_CAS_RGN_32,
    OT_VO_CAS_RGN_BUTT,
} ot_vo_cas_rgn;

【成员】

成员名称

描述

OT_VO_CAS_RGN_64

级联64区域类型。

OT_VO_CAS_RGN_32

级联32区域类型。

【注意事项】

无。

【相关数据类型及接口】

无。

ot_vo_cas_attr

【说明】

定义级联属性。

【定义】

typedef struct {
    td_bool         is_slave;
    ot_vo_cas_rgn   cas_rgn;
    ot_vo_cas_mode  cas_mode;
    ot_vo_cas_data_transmission_mode cas_edge_mode;
} ot_vo_cas_attr;

【成员】

成员名称

描述

is_slave

视频级联主从模式,静态属性。

cas_rgn

视频级联区域类型,静态属性。

cas_mode

视频级联单路双路模式,静态属性。

cas_edge_mode

视频级联单沿双沿传输数据模式,静态属性。

【注意事项】

【相关数据类型及接口】

ss_mpi_vo_set_cas_attr

ot_vo_export_callback

【说明】

定义中断回调通知函数结构。

【定义】

typedef struct {
    void (*vo_notify)(int mod_id, int dev);
} ot_vo_export_callback;

【成员】

成员名称

描述

vo_notify

回调通知函数指针。

【注意事项】

在内核态使用。

【相关数据类型及接口】

ot_vo_export_symbol

ot_vo_export_symbol

【说明】

定义注册中断回调函数结构体。

【定义】

typedef struct {
    ot_vo_register_export_callback *vo_register_export_callback;
} ot_vo_export_symbol;

【成员】

成员名称

描述

vo_register_export_callback

注册回调通知函数指针。

【注意事项】

在内核态使用。

【相关数据类型及接口】

ot_vo_export_callback

ot_vo_register_export_callback

【说明】

定义注册中断回调钩子函数。

【定义】

typedef td_s32 ot_vo_register_export_callback(ot_vo_export_callback *export_callback);

【成员】

无。

【注意事项】

无。

【相关数据类型及接口】

无。

错误码

视频输出API错误码如下所示。

表 1 视频输出API错误码

错误代码

宏定义

描述

0xa00f8001

OT_ERR_VO_INVALID_DEV_ID

设备ID超出合法范围

0xa00f8003

OT_ERR_VO_INVALID_CHN_ID

通道ID超出合法范围

0xa00f8004

OT_ERR_VO_INVALID_LAYER_ID

层ID超出合法范围

0xa00f8007

OT_ERR_VO_ILLEGAL_PARAM

参数超出合法范围

0xa00f800a

OT_ERR_VO_NULL_PTR

函数参数中有空指针

0xa00f800b

OT_ERR_VO_NOT_CFG

未配置

0xa00f800c

OT_ERR_VO_NOT_SUPPORT

不支持的操作

0xa00f800d

OT_ERR_VO_NOT_PERM

操作不允许

0xa00f8010

OT_ERR_VO_NOT_ENABLE

未使能

0xa00f8011

OT_ERR_VO_NOT_DISABLE

未禁用

0xa00f8014

OT_ERR_VO_NO_MEM

分配内存失败

0xa00f8018

OT_ERR_VO_NOT_READY

系统未初始化

0xa00f8020

OT_ERR_VO_TIMEOUT

等待超时

0xa00f8022

OT_ERR_VO_BUSY

资源忙

0xa00f8024

OT_ERR_VO_NOT_BINDED

未被绑定

0xa00f8025

OT_ERR_VO_BINDED

已被绑定