跳转至

DISP(显示输出)接口说明文档

文档版本 V1.1
修订日期 2026-08-21
代码基线 hi_aiot_solution 8.18
对应头文件 components/media/pipeline/include/hi_mapi_disp.h
类型定义 components/media/pipeline/include/hi_mapi_disp_define.hinclude/adapt/*_adapt_define.h
适用模块 DISP / HI3516CV610

1 概述

DISP 模块负责将视频图像输出到显示设备(如 MIPI-DSI 屏、HDMI、LCD 等)。HI3516CV610 平台上仅支持 1 路显示设备(disp_hdl = 0),该设备下仅支持 1 个视频窗口(wnd_hdl = 0)。典型调用顺序为:hi_mapi_disp_inithi_mapi_disp_starthi_mapi_disp_start_windowhi_mapi_disp_send_framehi_mapi_disp_stop_windowhi_mapi_disp_stophi_mapi_disp_deinit。所有接口在调用前均要求该 disp_hdl 已经 init,否则返回 HI_MAPI_DISP_ENOTREADY

2 接口总览

编号 接口 功能概述
1 hi_mapi_disp_init 初始化显示设备,将显示属性(接口类型、时序、CSC 等)下发到 HAL。
2 hi_mapi_disp_deinit 去初始化显示设备,释放 HAL 资源。
3 hi_mapi_disp_start 启动显示设备的视频层(Video Layer),根据视频层属性配置显示分辨率、帧率、缓冲长度等。
4 hi_mapi_disp_stop 停止显示设备的视频层。
5 hi_mapi_disp_set_attr_ex 设置显示设备扩展属性(当前支持视频层 / 图形层 CSC)。
6 hi_mapi_disp_get_attr_ex 获取显示设备扩展属性(当前支持视频层 / 图形层 CSC)。
7 hi_mapi_disp_set_window_attr 设置窗口属性(窗口位置、大小、优先级)。
8 hi_mapi_disp_get_window_attr 获取窗口属性。
9 hi_mapi_disp_set_window_attr_ex 设置窗口扩展属性(旋转、宽高比)。
10 hi_mapi_disp_get_window_attr_ex 获取窗口扩展属性(旋转、宽高比)。
11 hi_mapi_disp_start_window 启动指定窗口,使其可以接收视频帧。
12 hi_mapi_disp_stop_window 停止指定窗口。
13 hi_mapi_disp_clear_window 清空指定窗口缓冲中尚未显示的帧。
14 hi_mapi_disp_send_frame 向指定窗口发送一帧 YUV 图像数据用于显示。
15 hi_mapi_disp_get_screen_resolution 获取当前显示设备的屏幕物理分辨率(单位:像素)。
16 hi_mapi_disp_get_video_screen 获取 LVGL 视频屏幕对象指针,并将对象的引用计数加一;调用方使用后需通过 hi_mapi_disp_release_video_screen 释放。
17 hi_mapi_disp_release_video_screen 释放由 hi_mapi_disp_get_video_screen 获取的视频屏幕对象,并将引用计数减一。

3 API 参考

1 hi_mapi_disp_init

【描述】 初始化显示设备,将显示属性(接口类型、时序、CSC 等)下发到 HAL。

【语法】

td_s32 hi_mapi_disp_init(td_handle disp_hdl, const hi_mapi_disp_attr *disp_attr);

【参数】

参数名称 输入/输出 类型 描述
disp_hdl 输入 td_handle 显示设备句柄。HI3516CV610 仅支持 0
disp_attr 输入 const hi_mapi_disp_attr * 显示设备属性,不能为 NULL

hi_mapi_disp_attr 成员:

成员名称 描述
pub_attr 显示设备公共属性(背景色、接口类型、接口时序、同步信息)。
user_info_attr 用户自定义显示信息(包含 user_info 用户同步信息、dev_frame_rate 设备帧率)。

【返回值】

返回值 描述
0 成功。
非0 失败,其值为错误码。
HI_MAPI_DISP_EINVALID_DEVID disp_hdl 越界(HI3516CV610 仅支持 0)。
HI_MAPI_DISP_ENULL_PTR disp_attr 为空指针。

【需求】

  • 头文件:hi_mapi_disp.h
  • 库文件:libhi_mapi.so

【注意】

  • 重复调用:若该设备已经 init,接口直接返回成功(幂等)。
  • 调用前必须保证 MAPI 系统已经 init

【举例】 无

【相关主题】 hi_mapi_disp_deinithi_mapi_disp_start

2 hi_mapi_disp_deinit

【描述】 去初始化显示设备,释放 HAL 资源。

【语法】

td_s32 hi_mapi_disp_deinit(td_handle disp_hdl);

【参数】

参数名称 输入/输出 类型 描述
disp_hdl 输入 td_handle 显示设备句柄,HI3516CV610 仅支持 0

【返回值】

返回值 描述
0 成功。
非0 失败,其值为错误码。
HI_MAPI_DISP_EINVALID_DEVID disp_hdl 越界。
HI_MAPI_DISP_ENOTREADY 设备未初始化。
HI_MAPI_DISP_EBUSY 设备仍处于 started 状态,需先调用 hi_mapi_disp_stop

【需求】

  • 头文件:hi_mapi_disp.h
  • 库文件:libhi_mapi.so

【注意】 无

【举例】 无

【相关主题】 hi_mapi_disp_init

3 hi_mapi_disp_start

【描述】 启动显示设备的视频层(Video Layer),根据视频层属性配置显示分辨率、帧率、缓冲长度等。

【语法】

td_s32 hi_mapi_disp_start(td_handle disp_hdl, const hi_mapi_disp_video_layer_attr *video_layer_attr);

【参数】

参数名称 输入/输出 类型 描述
disp_hdl 输入 td_handle 显示设备句柄,HI3516CV610 仅支持 0
video_layer_attr 输入 const hi_mapi_disp_video_layer_attr * 视频层属性,不能为 NULL

hi_mapi_disp_video_layer_attr 成员:

成员名称 描述
image_size 视频层图像宽高(单位:像素)。宽度范围 (0, 16384],高度范围 (0, 8192]
frame_rate 视频层帧率(单位:fps)。
buf_len 视频层缓冲帧数。

【返回值】

返回值 描述
0 成功。
非0 失败,其值为错误码。
HI_MAPI_DISP_EINVALID_DEVID disp_hdl 越界。
HI_MAPI_DISP_ENULL_PTR video_layer_attr 为空指针。
HI_MAPI_DISP_ENOTREADY 设备未初始化。

【需求】

  • 头文件:hi_mapi_disp.h
  • 库文件:libhi_mapi.so

【注意】

  • 重复调用:若该设备已经 started,接口直接返回成功。
  • 视频层宽高不能超过显示设备最大分辨率(16384 × 8192)。

【举例】 无

【相关主题】 hi_mapi_disp_stophi_mapi_disp_init

4 hi_mapi_disp_stop

【描述】 停止显示设备的视频层。

【语法】

td_s32 hi_mapi_disp_stop(td_handle disp_hdl);

【参数】

参数名称 输入/输出 类型 描述
disp_hdl 输入 td_handle 显示设备句柄,HI3516CV610 仅支持 0

【返回值】

返回值 描述
0 成功。
非0 失败,其值为错误码。
HI_MAPI_DISP_EINVALID_DEVID disp_hdl 越界。
HI_MAPI_DISP_ENOTREADY 设备未初始化。

【需求】

  • 头文件:hi_mapi_disp.h
  • 库文件:libhi_mapi.so

【注意】 无

【举例】 无

【相关主题】 hi_mapi_disp_start

5 hi_mapi_disp_set_attr_ex

【描述】 设置显示设备扩展属性(当前支持视频层 / 图形层 CSC)。

【语法】

td_s32 hi_mapi_disp_set_attr_ex(td_handle disp_hdl, hi_mapi_disp_cmd cmd, const td_void *attr, td_u32 attr_len);

【参数】

参数名称 输入/输出 类型 描述
disp_hdl 输入 td_handle 显示设备句柄,HI3516CV610 仅支持 0
cmd 输入 hi_mapi_disp_cmd 扩展命令。HI_MAPI_DISP_CMD_VIDEO_CSC:设置视频层 CSC;HI_MAPI_DISP_CMD_GRAPHIC_CSC:设置图形层 CSC。
attr 输入 const td_void * 扩展属性指针,实际类型为 hi_mapi_disp_csc_attr_ex *,不能为 NULL
attr_len 输入 td_u32 attr 指向结构体的字节长度,必须等于 sizeof(hi_mapi_disp_csc_attr_ex)

【返回值】

返回值 描述
0 成功。
非0 失败,其值为错误码。
HI_MAPI_DISP_EINVALID_DEVID disp_hdl 越界。
HI_MAPI_DISP_ENULL_PTR attr 为空指针。
HI_MAPI_DISP_ENOTREADY 设备未初始化。
HI_MAPI_DISP_EILLEGAL_PARAM cmd 不支持,或 attr_len 不等于结构体大小。

【需求】

  • 头文件:hi_mapi_disp.h
  • 库文件:libhi_mapi.so

【注意】 无

【举例】 无

【相关主题】 hi_mapi_disp_get_attr_ex

6 hi_mapi_disp_get_attr_ex

【描述】 获取显示设备扩展属性(当前支持视频层 / 图形层 CSC)。

【语法】

td_s32 hi_mapi_disp_get_attr_ex(td_handle disp_hdl, hi_mapi_disp_cmd cmd, td_void *attr, td_u32 attr_len);

【参数】

参数名称 输入/输出 类型 描述
disp_hdl 输入 td_handle 显示设备句柄,HI3516CV610 仅支持 0
cmd 输入 hi_mapi_disp_cmd 扩展命令,取值同 hi_mapi_disp_set_attr_ex
attr 输出 td_void * 接收扩展属性,实际类型为 hi_mapi_disp_csc_attr_ex *,不能为 NULL
attr_len 输入 td_u32 attr 缓冲区字节长度,必须等于 sizeof(hi_mapi_disp_csc_attr_ex)

【返回值】

返回值 描述
0 成功。
非0 失败,其值为错误码。
HI_MAPI_DISP_EINVALID_DEVID disp_hdl 越界。
HI_MAPI_DISP_ENULL_PTR attr 为空指针。
HI_MAPI_DISP_ENOTREADY 设备未初始化。
HI_MAPI_DISP_EILLEGAL_PARAM cmd 不支持或 attr_len 错误。

【需求】

  • 头文件:hi_mapi_disp.h
  • 库文件:libhi_mapi.so

【注意】 无

【举例】 无

【相关主题】 hi_mapi_disp_set_attr_ex

7 hi_mapi_disp_set_window_attr

【描述】 设置窗口属性(窗口位置、大小、优先级)。

【语法】

td_s32 hi_mapi_disp_set_window_attr(td_handle disp_hdl, td_handle wnd_hdl,
                                  const hi_mapi_disp_window_attr *wnd_attr);

【参数】

参数名称 输入/输出 类型 描述
disp_hdl 输入 td_handle 显示设备句柄,HI3516CV610 仅支持 0
wnd_hdl 输入 td_handle 窗口句柄,HI3516CV610 仅支持 0
wnd_attr 输入 const hi_mapi_disp_window_attr * 窗口属性,不能为 NULL

hi_mapi_disp_window_attr 成员:

成员名称 描述
rect 窗口在屏幕上的位置与尺寸(xywidthheight,单位:像素)。
priority 窗口优先级,值越大显示越靠上。

【返回值】

返回值 描述
0 成功。
非0 失败,其值为错误码。
HI_MAPI_DISP_EINVALID_DEVID disp_hdl 越界。
HI_MAPI_DISP_EINVALID_CHNID wnd_hdl 越界。
HI_MAPI_DISP_ENULL_PTR wnd_attr 为空指针。
HI_MAPI_DISP_ENOTREADY 设备未初始化或尚未 start

【需求】

  • 头文件:hi_mapi_disp.h
  • 库文件:libhi_mapi.so

【注意】

  • 调用前必须已经调用过 hi_mapi_disp_start

【举例】 无

【相关主题】 hi_mapi_disp_get_window_attr

8 hi_mapi_disp_get_window_attr

【描述】 获取窗口属性。

【语法】

td_s32 hi_mapi_disp_get_window_attr(td_handle disp_hdl, td_handle wnd_hdl, hi_mapi_disp_window_attr *wnd_attr);

【参数】

参数名称 输入/输出 类型 描述
disp_hdl 输入 td_handle 显示设备句柄,HI3516CV610 仅支持 0
wnd_hdl 输入 td_handle 窗口句柄,HI3516CV610 仅支持 0
wnd_attr 输出 hi_mapi_disp_window_attr * 接收窗口属性,不能为 NULL

【返回值】

返回值 描述
0 成功。
非0 失败,其值为错误码。
HI_MAPI_DISP_EINVALID_DEVID disp_hdl 越界。
HI_MAPI_DISP_EINVALID_CHNID wnd_hdl 越界。
HI_MAPI_DISP_ENULL_PTR wnd_attr 为空指针。
HI_MAPI_DISP_ENOTREADY 设备未初始化或尚未 start

【需求】

  • 头文件:hi_mapi_disp.h
  • 库文件:libhi_mapi.so

【注意】 无

【举例】 无

【相关主题】 hi_mapi_disp_set_window_attr

9 hi_mapi_disp_set_window_attr_ex

【描述】 设置窗口扩展属性(旋转、宽高比)。

【语法】

td_s32 hi_mapi_disp_set_window_attr_ex(td_handle disp_hdl, td_handle wnd_hdl, hi_mapi_disp_window_cmd cmd,
    const td_void *attr, td_u32 attr_len);

【参数】

参数名称 输入/输出 类型 描述
disp_hdl 输入 td_handle 显示设备句柄,HI3516CV610 仅支持 0
wnd_hdl 输入 td_handle 窗口句柄,HI3516CV610 仅支持 0
cmd 输入 hi_mapi_disp_window_cmd HI_MAPI_DISP_WINDOW_CMD_ROTATE:旋转;HI_MAPI_DISP_WINDOW_CMD_ASPECTRATIO:宽高比。
attr 输入 const td_void * 扩展属性指针,按 cmdhi_mapi_disp_window_rotate *hi_mapi_disp_window_aspect_ratio *,不能为 NULL
attr_len 输入 td_u32 attr 结构体字节长度,必须与 cmd 对应结构体大小一致。

【返回值】

返回值 描述
0 成功。
非0 失败,其值为错误码。
HI_MAPI_DISP_EINVALID_DEVID disp_hdl 越界。
HI_MAPI_DISP_EINVALID_CHNID wnd_hdl 越界。
HI_MAPI_DISP_ENULL_PTR attr 为空指针。
HI_MAPI_DISP_ENOTREADY 设备未初始化。
HI_MAPI_DISP_EILLEGAL_PARAM cmd 不支持或 attr_len 错误。

【需求】

  • 头文件:hi_mapi_disp.h
  • 库文件:libhi_mapi.so

【注意】 无

【举例】 无

【相关主题】 hi_mapi_disp_get_window_attr_ex

10 hi_mapi_disp_get_window_attr_ex

【描述】 获取窗口扩展属性(旋转、宽高比)。

【语法】

td_s32 hi_mapi_disp_get_window_attr_ex(td_handle disp_hdl, td_handle wnd_hdl, hi_mapi_disp_window_cmd cmd,
    td_void *attr, td_u32 attr_len);

【参数】

参数名称 输入/输出 类型 描述
disp_hdl 输入 td_handle 显示设备句柄,HI3516CV610 仅支持 0
wnd_hdl 输入 td_handle 窗口句柄,HI3516CV610 仅支持 0
cmd 输入 hi_mapi_disp_window_cmd 扩展命令,取值同 hi_mapi_disp_set_window_attr_ex
attr 输出 td_void * 接收扩展属性,不能为 NULL
attr_len 输入 td_u32 attr 缓冲区字节长度,必须与 cmd 对应结构体大小一致。

【返回值】

返回值 描述
0 成功。
非0 失败,其值为错误码。
HI_MAPI_DISP_EINVALID_DEVID disp_hdl 越界。
HI_MAPI_DISP_EINVALID_CHNID wnd_hdl 越界。
HI_MAPI_DISP_ENULL_PTR attr 为空指针。
HI_MAPI_DISP_ENOTREADY 设备未初始化。
HI_MAPI_DISP_EILLEGAL_PARAM cmd 不支持或 attr_len 错误。

【需求】

  • 头文件:hi_mapi_disp.h
  • 库文件:libhi_mapi.so

【注意】 无

【举例】 无

【相关主题】 hi_mapi_disp_set_window_attr_ex

11 hi_mapi_disp_start_window

【描述】 启动指定窗口,使其可以接收视频帧。

【语法】

td_s32 hi_mapi_disp_start_window(td_handle disp_hdl, td_handle wnd_hdl);

【参数】

参数名称 输入/输出 类型 描述
disp_hdl 输入 td_handle 显示设备句柄,HI3516CV610 仅支持 0
wnd_hdl 输入 td_handle 窗口句柄,HI3516CV610 仅支持 0

【返回值】

返回值 描述
0 成功。
非0 失败,其值为错误码。
HI_MAPI_DISP_EINVALID_DEVID disp_hdl 越界。
HI_MAPI_DISP_EINVALID_CHNID wnd_hdl 越界。
HI_MAPI_DISP_ENOTREADY 设备未初始化或尚未 start

【需求】

  • 头文件:hi_mapi_disp.h
  • 库文件:libhi_mapi.so

【注意】

  • 重复启动已启动的窗口会直接返回成功。

【举例】 无

【相关主题】 hi_mapi_disp_stop_window

12 hi_mapi_disp_stop_window

【描述】 停止指定窗口。

【语法】

td_s32 hi_mapi_disp_stop_window(td_handle disp_hdl, td_handle wnd_hdl);

【参数】

参数名称 输入/输出 类型 描述
disp_hdl 输入 td_handle 显示设备句柄,HI3516CV610 仅支持 0
wnd_hdl 输入 td_handle 窗口句柄,HI3516CV610 仅支持 0

【返回值】

返回值 描述
0 成功。
非0 失败,其值为错误码。
HI_MAPI_DISP_EINVALID_DEVID disp_hdl 越界。
HI_MAPI_DISP_EINVALID_CHNID wnd_hdl 越界。
HI_MAPI_DISP_ENOTREADY 设备未初始化或尚未 start

【需求】

  • 头文件:hi_mapi_disp.h
  • 库文件:libhi_mapi.so

【注意】

  • 若窗口已处于停止状态,直接返回成功。

【举例】 无

【相关主题】 hi_mapi_disp_start_window

13 hi_mapi_disp_clear_window

【描述】 清空指定窗口缓冲中尚未显示的帧。

【语法】

td_s32 hi_mapi_disp_clear_window(td_handle disp_hdl, td_handle wnd_hdl);

【参数】

参数名称 输入/输出 类型 描述
disp_hdl 输入 td_handle 显示设备句柄,HI3516CV610 仅支持 0
wnd_hdl 输入 td_handle 窗口句柄,HI3516CV610 仅支持 0

【返回值】

返回值 描述
0 成功。
非0 失败,其值为错误码。
HI_MAPI_DISP_EINVALID_DEVID disp_hdl 越界。
HI_MAPI_DISP_EINVALID_CHNID wnd_hdl 越界。
HI_MAPI_DISP_ENOTREADY 设备未初始化。

【需求】

  • 头文件:hi_mapi_disp.h
  • 库文件:libhi_mapi.so

【注意】 无

【举例】 无

【相关主题】 hi_mapi_disp_send_frame

14 hi_mapi_disp_send_frame

【描述】 向指定窗口发送一帧 YUV 图像数据用于显示。

【语法】

td_s32 hi_mapi_disp_send_frame(td_handle disp_hdl, td_handle wnd_hdl, const hi_mapi_frame_data *framedata);

【参数】

参数名称 输入/输出 类型 描述
disp_hdl 输入 td_handle 显示设备句柄,HI3516CV610 仅支持 0
wnd_hdl 输入 td_handle 窗口句柄,HI3516CV610 仅支持 0
framedata 输入 const hi_mapi_frame_data * 帧数据,不能为 NULL;其 frame_data_type 必须为 HI_MAPI_FRAME_DATA_TYPE_YUV

【返回值】

返回值 描述
0 成功。
非0 失败,其值为错误码。
HI_MAPI_DISP_EINVALID_DEVID disp_hdl 越界。
HI_MAPI_DISP_EINVALID_CHNID wnd_hdl 越界。
HI_MAPI_DISP_ENULL_PTR framedata 为空指针。
HI_MAPI_DISP_ENOTREADY 设备未初始化。
HI_MAPI_DISP_EILLEGAL_PARAM frame_data_type 不是 YUV。

【需求】

  • 头文件:hi_mapi_disp.h
  • 库文件:libhi_mapi.so

【注意】

  • 只支持 YUV 帧数据,不支持 RAW。

【举例】 无

【相关主题】 hi_mapi_disp_clear_window

15 hi_mapi_disp_get_screen_resolution

【描述】 获取当前显示设备的屏幕物理分辨率(单位:像素)。

【语法】

td_s32 hi_mapi_disp_get_screen_resolution(td_handle disp_hdl, td_u32 *width, td_u32 *hight);

【参数】

参数名称 输入/输出 类型 描述
disp_hdl 输入 td_handle 显示设备句柄,HI3516CV610 仅支持 0
width 输出 td_u32 * 屏幕宽度,不能为 NULL
hight 输出 td_u32 * 屏幕高度,不能为 NULL

【返回值】

返回值 描述
0 成功。
非0 失败,其值为错误码。
HI_MAPI_DISP_EINVALID_DEVID disp_hdl 越界。
HI_MAPI_DISP_ENULL_PTR widthhight 为空指针。
HI_MAPI_DISP_ENOTREADY 设备未初始化。

【需求】

  • 头文件:hi_mapi_disp.h
  • 库文件:libhi_mapi.so

【注意】 无

【举例】 无

【相关主题】 无

16 hi_mapi_disp_get_video_screen

【描述】 获取 LVGL 视频屏幕对象指针,并将对象的引用计数加一;调用方使用后需通过 hi_mapi_disp_release_video_screen 释放。

【语法】

void *hi_mapi_disp_get_video_screen(td_handle disp_hdl);

【参数】

参数名称 输入/输出 类型 描述
disp_hdl 输入 td_handle 显示设备句柄,HI3516CV610 仅支持 0

【返回值】

返回值 描述
非NULL LVGL 视频屏幕对象指针,成功。
NULL 失败:disp_hdl 越界,或显示设备尚未 start

【需求】

  • 头文件:hi_mapi_disp.h
  • 库文件:libhi_mapi.so

【注意】

  • 仅在编译时启用 SUPPORT_LVGL 时可用。
  • hi_mapi_disp_release_video_screen 必须成对使用,避免泄漏。

【举例】 无

【相关主题】 hi_mapi_disp_release_video_screen

17 hi_mapi_disp_release_video_screen

【描述】 释放由 hi_mapi_disp_get_video_screen 获取的视频屏幕对象,并将引用计数减一。

【语法】

td_s32 hi_mapi_disp_release_video_screen(td_handle disp_hdl, void *video_screen);

【参数】

参数名称 输入/输出 类型 描述
disp_hdl 输入 td_handle 显示设备句柄,HI3516CV610 仅支持 0
video_screen 输入 void * hi_mapi_disp_get_video_screen 返回的屏幕指针,不能为 NULL

【返回值】

返回值 描述
0 成功。
非0 失败,其值为错误码。
HI_MAPI_DISP_EINVALID_DEVID disp_hdl 越界。
HI_MAPI_DISP_ENULL_PTR video_screen 为空指针。
HI_MAPI_DISP_ENOTREADY 设备未初始化。

【需求】

  • 头文件:hi_mapi_disp.h
  • 库文件:libhi_mapi.so

【注意】 无

【举例】 无

【相关主题】 hi_mapi_disp_get_video_screen

4 数据类型

1 hi_mapi_disp_intf_type

【说明】 定义显示接口类型的位掩码(td_s32),每个 bit 代表一种接口类型,可组合使用。

【定义】

typedef td_s32 hi_mapi_disp_intf_type;

#define HI_MAPI_DISP_INTF_CVBS       (0x01L << 0)
#define HI_MAPI_DISP_INTF_VGA        (0x01L << 1)
#define HI_MAPI_DISP_INTF_BT656      (0x01L << 2)
#define HI_MAPI_DISP_INTF_BT1120     (0x01L << 3)
#define HI_MAPI_DISP_INTF_HDMI       (0x01L << 4)
#define HI_MAPI_DISP_INTF_RGB_6BIT   (0x01L << 5)
#define HI_MAPI_DISP_INTF_RGB_8BIT   (0x01L << 6)
#define HI_MAPI_DISP_INTF_RGB_16BIT  (0x01L << 7)
#define HI_MAPI_DISP_INTF_RGB_18BIT  (0x01L << 8)
#define HI_MAPI_DISP_INTF_RGB_24BIT  (0x01L << 9)
#define HI_MAPI_DISP_INTF_MIPI       (0x01L << 10)
#define HI_MAPI_DISP_INTF_MIPI_SLAVE (0x01L << 11)
#define HI_MAPI_DISP_INTF_HDMI1      (0x01L << 12)
#define HI_MAPI_DISP_INTF_LCD        (0x01L << 13)

【成员】

成员名称 描述
HI_MAPI_DISP_INTF_CVBS CVBS 复合视频接口(bit 0)。
HI_MAPI_DISP_INTF_VGA VGA 接口(bit 1)。
HI_MAPI_DISP_INTF_BT656 BT.656 接口(bit 2)。
HI_MAPI_DISP_INTF_BT1120 BT.1120 接口(bit 3)。
HI_MAPI_DISP_INTF_HDMI HDMI 接口(bit 4)。
HI_MAPI_DISP_INTF_RGB_6BIT 6-bit RGB 接口(bit 5)。
HI_MAPI_DISP_INTF_RGB_8BIT 8-bit RGB 接口(bit 6)。
HI_MAPI_DISP_INTF_RGB_16BIT 16-bit RGB 接口(bit 7)。
HI_MAPI_DISP_INTF_RGB_18BIT 18-bit RGB 接口(bit 8)。
HI_MAPI_DISP_INTF_RGB_24BIT 24-bit RGB 接口(bit 9)。
HI_MAPI_DISP_INTF_MIPI MIPI DSI 接口(bit 10)。
HI_MAPI_DISP_INTF_MIPI_SLAVE MIPI DSI Slave 接口(bit 11)。
HI_MAPI_DISP_INTF_HDMI1 HDMI1 接口(bit 12)。
HI_MAPI_DISP_INTF_LCD LCD 接口(bit 13)。

【注意事项】

  • 该类型为位掩码,可组合多个接口类型。
  • 实际使用时通常只设置一种接口类型。

【相关数据类型及接口】 hi_mapi_disp_pub_attrhi_mapi_disp_init

2 hi_mapi_disp_intf_sync

【说明】 定义显示接口时序标准枚举,涵盖模拟标清、VESA、HDTV 及自定义时序。

【定义】

typedef enum {
    HI_MAPI_DISP_OUTPUT_PAL             = 0,
    HI_MAPI_DISP_OUTPUT_NTSC            = 1,
    HI_MAPI_DISP_OUTPUT_960H_PAL        = 2,
    HI_MAPI_DISP_OUTPUT_960H_NTSC       = 3,
    HI_MAPI_DISP_OUTPUT_640x480_60      = 4,
    HI_MAPI_DISP_OUTPUT_480P60          = 5,
    HI_MAPI_DISP_OUTPUT_576P50          = 6,
    HI_MAPI_DISP_OUTPUT_800x600_60      = 7,
    HI_MAPI_DISP_OUTPUT_1024x768_60     = 8,
    HI_MAPI_DISP_OUTPUT_720P50          = 9,
    HI_MAPI_DISP_OUTPUT_720P60          = 10,
    HI_MAPI_DISP_OUTPUT_1280x800_60     = 11,
    HI_MAPI_DISP_OUTPUT_1280x1024_60    = 12,
    HI_MAPI_DISP_OUTPUT_1366x768_60     = 13,
    HI_MAPI_DISP_OUTPUT_1400x1050_60    = 14,
    HI_MAPI_DISP_OUTPUT_1440x900_60     = 15,
    HI_MAPI_DISP_OUTPUT_1680x1050_60    = 16,
    HI_MAPI_DISP_OUTPUT_1080P24         = 17,
    HI_MAPI_DISP_OUTPUT_1080P25         = 18,
    HI_MAPI_DISP_OUTPUT_1080P30         = 19,
    HI_MAPI_DISP_OUTPUT_1080I50         = 20,
    HI_MAPI_DISP_OUTPUT_1080I60         = 21,
    HI_MAPI_DISP_OUTPUT_1080P50         = 22,
    HI_MAPI_DISP_OUTPUT_1080P60         = 23,
    HI_MAPI_DISP_OUTPUT_1600x1200_60    = 24,
    HI_MAPI_DISP_OUTPUT_1920x1200_60    = 25,
    HI_MAPI_DISP_OUTPUT_1920x2160_30    = 26,
    HI_MAPI_DISP_OUTPUT_2560x1440_30    = 27,
    HI_MAPI_DISP_OUTPUT_2560x1440_60    = 28,
    HI_MAPI_DISP_OUTPUT_2560x1600_60    = 29,
    HI_MAPI_DISP_OUTPUT_3840x2160_24    = 30,
    HI_MAPI_DISP_OUTPUT_3840x2160_25    = 31,
    HI_MAPI_DISP_OUTPUT_3840x2160_30    = 32,
    HI_MAPI_DISP_OUTPUT_3840x2160_50    = 33,
    HI_MAPI_DISP_OUTPUT_3840x2160_60    = 34,
    HI_MAPI_DISP_OUTPUT_4096x2160_24    = 35,
    HI_MAPI_DISP_OUTPUT_4096x2160_25    = 36,
    HI_MAPI_DISP_OUTPUT_4096x2160_30    = 37,
    HI_MAPI_DISP_OUTPUT_4096x2160_50    = 38,
    HI_MAPI_DISP_OUTPUT_4096x2160_60    = 39,
    HI_MAPI_DISP_OUTPUT_7680x4320_30    = 40,
    HI_MAPI_DISP_OUTPUT_240x320_50      = 41,
    HI_MAPI_DISP_OUTPUT_320x240_50      = 42,
    HI_MAPI_DISP_OUTPUT_240x320_60      = 43,
    HI_MAPI_DISP_OUTPUT_320x240_60      = 44,
    HI_MAPI_DISP_OUTPUT_800x600_50      = 45,
    HI_MAPI_DISP_OUTPUT_720x1280_60     = 46,
    HI_MAPI_DISP_OUTPUT_1080x1920_60    = 47,
    HI_MAPI_DISP_OUTPUT_USER            = 48,
    HI_MAPI_DISP_OUTPUT_BUTT
} hi_mapi_disp_intf_sync;

【成员】

成员名称 描述
HI_MAPI_DISP_OUTPUT_PAL PAL 标清(值为 0)。
HI_MAPI_DISP_OUTPUT_NTSC NTSC 标清(值为 1)。
HI_MAPI_DISP_OUTPUT_960H_PAL 960×576@50Hz 隔行(值为 2)。
HI_MAPI_DISP_OUTPUT_960H_NTSC 960×480@60Hz 隔行(值为 3)。
HI_MAPI_DISP_OUTPUT_640x480_60 VESA 640×480@60Hz(值为 4)。
HI_MAPI_DISP_OUTPUT_480P60 720×480@60Hz(值为 5)。
HI_MAPI_DISP_OUTPUT_576P50 720×576@50Hz(值为 6)。
HI_MAPI_DISP_OUTPUT_800x600_60 VESA 800×600@60Hz(值为 7)。
HI_MAPI_DISP_OUTPUT_1024x768_60 VESA 1024×768@60Hz(值为 8)。
HI_MAPI_DISP_OUTPUT_720P50 1280×720@50Hz(值为 9)。
HI_MAPI_DISP_OUTPUT_720P60 1280×720@60Hz(值为 10)。
HI_MAPI_DISP_OUTPUT_1280x800_60 1280×800@60Hz(值为 11)。
HI_MAPI_DISP_OUTPUT_1280x1024_60 VESA 1280×1024@60Hz(值为 12)。
HI_MAPI_DISP_OUTPUT_1366x768_60 VESA 1366×768@60Hz(值为 13)。
HI_MAPI_DISP_OUTPUT_1400x1050_60 VESA 1400×1050@60Hz(值为 14)。
HI_MAPI_DISP_OUTPUT_1440x900_60 VESA 1440×900@60Hz(值为 15)。
HI_MAPI_DISP_OUTPUT_1680x1050_60 VESA 1680×1050@60Hz(值为 16)。
HI_MAPI_DISP_OUTPUT_1080P24 1920×1080@24Hz(值为 17)。
HI_MAPI_DISP_OUTPUT_1080P25 1920×1080@25Hz(值为 18)。
HI_MAPI_DISP_OUTPUT_1080P30 1920×1080@30Hz(值为 19)。
HI_MAPI_DISP_OUTPUT_1080I50 1920×1080@50Hz 隔行(值为 20)。
HI_MAPI_DISP_OUTPUT_1080I60 1920×1080@60Hz 隔行(值为 21)。
HI_MAPI_DISP_OUTPUT_1080P50 1920×1080@50Hz(值为 22)。
HI_MAPI_DISP_OUTPUT_1080P60 1920×1080@60Hz(值为 23)。
HI_MAPI_DISP_OUTPUT_1600x1200_60 VESA 1600×1200@60Hz(值为 24)。
HI_MAPI_DISP_OUTPUT_1920x1200_60 VESA 1920×1200@60Hz(值为 25)。
HI_MAPI_DISP_OUTPUT_1920x2160_30 1920×2160@30Hz(值为 26)。
HI_MAPI_DISP_OUTPUT_2560x1440_30 2560×1440@30Hz(值为 27)。
HI_MAPI_DISP_OUTPUT_2560x1440_60 2560×1440@60Hz(值为 28)。
HI_MAPI_DISP_OUTPUT_2560x1600_60 2560×1600@60Hz(值为 29)。
HI_MAPI_DISP_OUTPUT_3840x2160_24 3840×2160@24Hz(值为 30)。
HI_MAPI_DISP_OUTPUT_3840x2160_25 3840×2160@25Hz(值为 31)。
HI_MAPI_DISP_OUTPUT_3840x2160_30 3840×2160@30Hz(值为 32)。
HI_MAPI_DISP_OUTPUT_3840x2160_50 3840×2160@50Hz(值为 33)。
HI_MAPI_DISP_OUTPUT_3840x2160_60 3840×2160@60Hz(值为 34)。
HI_MAPI_DISP_OUTPUT_4096x2160_24 4096×2160@24Hz(值为 35)。
HI_MAPI_DISP_OUTPUT_4096x2160_25 4096×2160@25Hz(值为 36)。
HI_MAPI_DISP_OUTPUT_4096x2160_30 4096×2160@30Hz(值为 37)。
HI_MAPI_DISP_OUTPUT_4096x2160_50 4096×2160@50Hz(值为 38)。
HI_MAPI_DISP_OUTPUT_4096x2160_60 4096×2160@60Hz(值为 39)。
HI_MAPI_DISP_OUTPUT_7680x4320_30 7680×4320@30Hz(值为 40)。
HI_MAPI_DISP_OUTPUT_240x320_50 240×320@50Hz(值为 41)。
HI_MAPI_DISP_OUTPUT_320x240_50 320×240@50Hz(值为 42)。
HI_MAPI_DISP_OUTPUT_240x320_60 240×320@60Hz(值为 43)。
HI_MAPI_DISP_OUTPUT_320x240_60 320×240@60Hz(值为 44)。
HI_MAPI_DISP_OUTPUT_800x600_50 800×600@50Hz(值为 45)。
HI_MAPI_DISP_OUTPUT_720x1280_60 720×1280@60Hz,MIPI DSI Tx 竖屏(值为 46)。
HI_MAPI_DISP_OUTPUT_1080x1920_60 1080×1920@60Hz,MIPI DSI Tx 竖屏(值为 47)。
HI_MAPI_DISP_OUTPUT_USER 用户自定义时序(值为 48),需配合 hi_mapi_disp_user_intf_sync_info 使用。
HI_MAPI_DISP_OUTPUT_BUTT 枚举上界哨兵,不可使用。

【注意事项】

  • HI_MAPI_DISP_OUTPUT_USER 须配合 hi_mapi_disp_user_intf_sync_info 提供自定义时序参数。
  • 部分时序是否可用取决于具体硬件接口及屏幕能力。

【相关数据类型及接口】 hi_mapi_disp_pub_attrhi_mapi_disp_user_intf_sync_infohi_mapi_disp_init

3 hi_mapi_disp_clk_source

【说明】 定义显示设备时钟源类型枚举。

【定义】

typedef enum {
    HI_MAPI_DISP_CLK_SOURCE_PLL      = 0,
    HI_MAPI_DISP_CLK_SOURCE_LCDMCLK  = 1,
    HI_MAPI_DISP_CLK_SRC_PLL_FOUT4   = 2,
    HI_MAPI_DISP_CLK_SRC_FIXED       = 3,
    HI_MAPI_DISP_CLK_SOURCE_BUTT
} hi_mapi_disp_clk_source;

【成员】

成员名称 描述
HI_MAPI_DISP_CLK_SOURCE_PLL PLL 时钟源(值为 0),需配合 hi_mapi_disp_user_intf_sync_pll 配置。
HI_MAPI_DISP_CLK_SOURCE_LCDMCLK LCDMCLK 时钟源(值为 1),需配置 lcd_mclk_div
HI_MAPI_DISP_CLK_SRC_PLL_FOUT4 PLL FOUT4 时钟源(值为 2)。
HI_MAPI_DISP_CLK_SRC_FIXED 固定时钟源(值为 3),需配合 hi_mapi_disp_fixed_clk 选择具体频率。
HI_MAPI_DISP_CLK_SOURCE_BUTT 枚举上界哨兵,不可使用。

【注意事项】 无

【相关数据类型及接口】 hi_mapi_disp_user_intf_sync_attrhi_mapi_disp_init

4 hi_mapi_disp_fixed_clk

【说明】 定义固定时钟源(HI_MAPI_DISP_CLK_SRC_FIXED)可选的频率枚举。

【定义】

typedef enum {
    HI_MAPI_DISP_FIXED_CLK_148_5M  = 0,
    HI_MAPI_DISP_FIXED_CLK_134_4M  = 1,
    HI_MAPI_DISP_FIXED_CLK_108M    = 2,
    HI_MAPI_DISP_FIXED_CLK_74_25M  = 3,
    HI_MAPI_DISP_FIXED_CLK_64M     = 4,
    HI_MAPI_DISP_FIXED_CLK_54M     = 5,
    HI_MAPI_DISP_FIXED_CLK_37_125M = 6,
    HI_MAPI_DISP_FIXED_CLK_13_5M   = 7,
    HI_MAPI_DISP_FIXED_CLK_BUTT
} hi_mapi_disp_fixed_clk;

【成员】

成员名称 描述
HI_MAPI_DISP_FIXED_CLK_148_5M 148.5 MHz(值为 0)。
HI_MAPI_DISP_FIXED_CLK_134_4M 134.4 MHz(值为 1)。
HI_MAPI_DISP_FIXED_CLK_108M 108 MHz(值为 2)。
HI_MAPI_DISP_FIXED_CLK_74_25M 74.25 MHz(值为 3)。
HI_MAPI_DISP_FIXED_CLK_64M 64 MHz(值为 4)。
HI_MAPI_DISP_FIXED_CLK_54M 54 MHz(值为 5)。
HI_MAPI_DISP_FIXED_CLK_37_125M 37.125 MHz(值为 6)。
HI_MAPI_DISP_FIXED_CLK_13_5M 13.5 MHz(值为 7)。
HI_MAPI_DISP_FIXED_CLK_BUTT 枚举上界哨兵,不可使用。

【注意事项】 仅在 hi_mapi_disp_user_intf_sync_attr.clk_sourceHI_MAPI_DISP_CLK_SRC_FIXED 时使用。

【相关数据类型及接口】 hi_mapi_disp_user_intf_sync_attrhi_mapi_disp_clk_sourcehi_mapi_disp_init

5 hi_mapi_disp_user_intf_sync_pll

【说明】 定义 PLL 时钟源的分频参数,用于 HI_MAPI_DISP_CLK_SOURCE_PLL 时钟源模式。

【定义】

typedef struct {
    td_u32 fbdiv;
    td_u32 frac;
    td_u32 refdiv;
    td_u32 postdiv1;
    td_u32 postdiv2;
} hi_mapi_disp_user_intf_sync_pll;

【成员】

成员名称 描述
fbdiv PLL 反馈分频值。
frac PLL 小数分频值。
refdiv PLL 参考分频值。
postdiv1 PLL 后级分频 1。
postdiv2 PLL 后级分频 2。

【注意事项】 仅在 clk_sourceHI_MAPI_DISP_CLK_SOURCE_PLL 时有效。具体取值须根据目标像素时钟计算。

【相关数据类型及接口】 hi_mapi_disp_user_intf_sync_attrhi_mapi_disp_clk_sourcehi_mapi_disp_init

6 hi_mapi_disp_csc_matrix

【说明】 定义显示 CSC(色彩空间转换)矩阵枚举,描述从源色彩空间到目标色彩空间的转换。

【定义】

typedef enum {
    HI_MAPI_DISP_CSC_MATRIX_BT601LIMIT_TO_BT601LIMIT = 0,
    HI_MAPI_DISP_CSC_MATRIX_BT601FULL_TO_BT601LIMIT  = 1,
    HI_MAPI_DISP_CSC_MATRIX_BT709LIMIT_TO_BT601LIMIT = 2,
    HI_MAPI_DISP_CSC_MATRIX_BT709FULL_TO_BT601LIMIT  = 3,
    HI_MAPI_DISP_CSC_MATRIX_BT601LIMIT_TO_BT709LIMIT = 4,
    HI_MAPI_DISP_CSC_MATRIX_BT601FULL_TO_BT709LIMIT  = 5,
    HI_MAPI_DISP_CSC_MATRIX_BT709LIMIT_TO_BT709LIMIT = 6,
    HI_MAPI_DISP_CSC_MATRIX_BT709FULL_TO_BT709LIMIT  = 7,
    HI_MAPI_DISP_CSC_MATRIX_BT601LIMIT_TO_BT601FULL  = 8,
    HI_MAPI_DISP_CSC_MATRIX_BT601FULL_TO_BT601FULL   = 9,
    HI_MAPI_DISP_CSC_MATRIX_BT709LIMIT_TO_BT601FULL  = 10,
    HI_MAPI_DISP_CSC_MATRIX_BT709FULL_TO_BT601FULL   = 11,
    HI_MAPI_DISP_CSC_MATRIX_BT601LIMIT_TO_BT709FULL  = 12,
    HI_MAPI_DISP_CSC_MATRIX_BT601FULL_TO_BT709FULL   = 13,
    HI_MAPI_DISP_CSC_MATRIX_BT709LIMIT_TO_BT709FULL  = 14,
    HI_MAPI_DISP_CSC_MATRIX_BT709FULL_TO_BT709FULL   = 15,
    HI_MAPI_DISP_CSC_MATRIX_BT601LIMIT_TO_RGBFULL    = 16,
    HI_MAPI_DISP_CSC_MATRIX_BT601FULL_TO_RGBFULL     = 17,
    HI_MAPI_DISP_CSC_MATRIX_BT709LIMIT_TO_RGBFULL    = 18,
    HI_MAPI_DISP_CSC_MATRIX_BT709FULL_TO_RGBFULL     = 19,
    HI_MAPI_DISP_CSC_MATRIX_BT601LIMIT_TO_RGBLIMIT   = 20,
    HI_MAPI_DISP_CSC_MATRIX_BT601FULL_TO_RGBLIMIT    = 21,
    HI_MAPI_DISP_CSC_MATRIX_BT709LIMIT_TO_RGBLIMIT   = 22,
    HI_MAPI_DISP_CSC_MATRIX_BT709FULL_TO_RGBLIMIT    = 23,
    HI_MAPI_DISP_CSC_MATRIX_RGBFULL_TO_BT601LIMIT    = 24,
    HI_MAPI_DISP_CSC_MATRIX_RGBFULL_TO_BT601FULL     = 25,
    HI_MAPI_DISP_CSC_MATRIX_RGBFULL_TO_BT709LIMIT    = 26,
    HI_MAPI_DISP_CSC_MATRIX_RGBFULL_TO_BT709FULL     = 27,
    HI_MAPI_DISP_CSC_MATRIX_BUTT
} hi_mapi_disp_csc_matrix;

【成员】

成员名称 描述
HI_MAPI_DISP_CSC_MATRIX_BT601LIMIT_TO_BT601LIMIT BT.601 limit → BT.601 limit(单位矩阵,值为 0)。
HI_MAPI_DISP_CSC_MATRIX_BT601FULL_TO_BT601LIMIT BT.601 full → BT.601 limit(值为 1)。
HI_MAPI_DISP_CSC_MATRIX_BT709LIMIT_TO_BT601LIMIT BT.709 limit → BT.601 limit(值为 2)。
HI_MAPI_DISP_CSC_MATRIX_BT709FULL_TO_BT601LIMIT BT.709 full → BT.601 limit(值为 3)。
HI_MAPI_DISP_CSC_MATRIX_BT601LIMIT_TO_BT709LIMIT BT.601 limit → BT.709 limit(值为 4)。
HI_MAPI_DISP_CSC_MATRIX_BT601FULL_TO_BT709LIMIT BT.601 full → BT.709 limit(值为 5)。
HI_MAPI_DISP_CSC_MATRIX_BT709LIMIT_TO_BT709LIMIT BT.709 limit → BT.709 limit(单位矩阵,值为 6)。
HI_MAPI_DISP_CSC_MATRIX_BT709FULL_TO_BT709LIMIT BT.709 full → BT.709 limit(值为 7)。
HI_MAPI_DISP_CSC_MATRIX_BT601LIMIT_TO_BT601FULL BT.601 limit → BT.601 full(值为 8)。
HI_MAPI_DISP_CSC_MATRIX_BT601FULL_TO_BT601FULL BT.601 full → BT.601 full(单位矩阵,值为 9)。
HI_MAPI_DISP_CSC_MATRIX_BT709LIMIT_TO_BT601FULL BT.709 limit → BT.601 full(值为 10)。
HI_MAPI_DISP_CSC_MATRIX_BT709FULL_TO_BT601FULL BT.709 full → BT.601 full(值为 11)。
HI_MAPI_DISP_CSC_MATRIX_BT601LIMIT_TO_BT709FULL BT.601 limit → BT.709 full(值为 12)。
HI_MAPI_DISP_CSC_MATRIX_BT601FULL_TO_BT709FULL BT.601 full → BT.709 full(值为 13)。
HI_MAPI_DISP_CSC_MATRIX_BT709LIMIT_TO_BT709FULL BT.709 limit → BT.709 full(值为 14)。
HI_MAPI_DISP_CSC_MATRIX_BT709FULL_TO_BT709FULL BT.709 full → BT.709 full(单位矩阵,值为 15)。
HI_MAPI_DISP_CSC_MATRIX_BT601LIMIT_TO_RGBFULL BT.601 limit → RGB full(值为 16)。
HI_MAPI_DISP_CSC_MATRIX_BT601FULL_TO_RGBFULL BT.601 full → RGB full(值为 17)。
HI_MAPI_DISP_CSC_MATRIX_BT709LIMIT_TO_RGBFULL BT.709 limit → RGB full(值为 18)。
HI_MAPI_DISP_CSC_MATRIX_BT709FULL_TO_RGBFULL BT.709 full → RGB full(值为 19)。
HI_MAPI_DISP_CSC_MATRIX_BT601LIMIT_TO_RGBLIMIT BT.601 limit → RGB limit(值为 20)。
HI_MAPI_DISP_CSC_MATRIX_BT601FULL_TO_RGBLIMIT BT.601 full → RGB limit(值为 21)。
HI_MAPI_DISP_CSC_MATRIX_BT709LIMIT_TO_RGBLIMIT BT.709 limit → RGB limit(值为 22)。
HI_MAPI_DISP_CSC_MATRIX_BT709FULL_TO_RGBLIMIT BT.709 full → RGB limit(值为 23)。
HI_MAPI_DISP_CSC_MATRIX_RGBFULL_TO_BT601LIMIT RGB full → BT.601 limit(值为 24)。
HI_MAPI_DISP_CSC_MATRIX_RGBFULL_TO_BT601FULL RGB full → BT.601 full(值为 25)。
HI_MAPI_DISP_CSC_MATRIX_RGBFULL_TO_BT709LIMIT RGB full → BT.709 limit(值为 26)。
HI_MAPI_DISP_CSC_MATRIX_RGBFULL_TO_BT709FULL RGB full → BT.709 full(值为 27)。
HI_MAPI_DISP_CSC_MATRIX_BUTT 枚举上界哨兵,不可使用。

【注意事项】

  • "limit" 指有限范围(16–235 / 16–240),"full" 指全范围(0–255)。
  • 单位矩阵(源与目标色彩空间相同)不做实际转换。

【相关数据类型及接口】 hi_mapi_disp_csc_attrhi_mapi_disp_set_attr_exhi_mapi_disp_get_attr_ex

7 hi_mapi_disp_user_intf_sync_attr

【说明】 定义用户自定义接口同步的时钟属性,包含时钟源类型及对应的分频/固定时钟配置。

【定义】

typedef struct {
    hi_mapi_disp_clk_source clk_source;
    union {
        hi_mapi_disp_user_intf_sync_pll user_sync_pll;
        td_u32                          lcd_mclk_div;
        hi_mapi_disp_fixed_clk          fixed_clk;
    };
} hi_mapi_disp_user_intf_sync_attr;

【成员】

成员名称 描述
clk_source 时钟源类型(枚举 hi_mapi_disp_clk_source)。
user_sync_pll clk_sourceHI_MAPI_DISP_CLK_SOURCE_PLL 时有效,PLL 分频参数。
lcd_mclk_div clk_sourceHI_MAPI_DISP_CLK_SOURCE_LCDMCLK 时有效,LCD MCLK 分频值。
fixed_clk clk_sourceHI_MAPI_DISP_CLK_SRC_FIXED 时有效,固定时钟频率选择。

【注意事项】

  • 联合体成员按 clk_source 取值选择使用,不可同时设置多个。

【相关数据类型及接口】 hi_mapi_disp_clk_sourcehi_mapi_disp_user_intf_sync_pllhi_mapi_disp_fixed_clkhi_mapi_disp_pub_attrhi_mapi_disp_init

8 hi_mapi_disp_user_intf_manual_sync_attr

【说明】 定义用户自定义手动同步时序属性,包含设备分频参数及基础同步属性。

【定义】

typedef struct {
    hi_mapi_disp_user_intf_sync_attr user_intf_sync_attr;
    td_u32                           pre_div;
    td_u32                           dev_div;
} hi_mapi_disp_user_intf_manual_sync_attr;

【成员】

成员名称 描述
user_intf_sync_attr 用户接口同步时钟属性(类型 hi_mapi_disp_user_intf_sync_attr)。
pre_div 设备前级分频值,取值范围 [1, 32]
dev_div 设备时钟分频值,取值范围 [1, 4]

【注意事项】 无

【相关数据类型及接口】 hi_mapi_disp_user_intf_sync_attrhi_mapi_disp_user_intf_sync_infohi_mapi_disp_init

9 hi_mapi_disp_user_intf_auto_sync_attr

【说明】 定义用户自定义自动同步时序属性,仅包含像素时钟频率。

【定义】

typedef struct {
    td_u32 pixel_clk;
} hi_mapi_disp_user_intf_auto_sync_attr;

【成员】

成员名称 描述
pixel_clk 像素时钟频率,单位 Hz。

【注意事项】 无

【相关数据类型及接口】 hi_mapi_disp_user_intf_sync_infohi_mapi_disp_init

10 hi_mapi_disp_op_mode

【说明】 定义用户自定义时序的操作模式枚举(自动/手动)。

【定义】

typedef enum {
    HI_MAPI_DISP_OP_MODE_AUTO   = 0,
    HI_MAPI_DISP_OP_MODE_MANUAL = 1,
    HI_MAPI_DISP_OP_MODE_BUTT
} hi_mapi_disp_op_mode;

【成员】

成员名称 描述
HI_MAPI_DISP_OP_MODE_AUTO 自动模式(值为 0),由硬件自动推导时序,使用 auto_sync_attr
HI_MAPI_DISP_OP_MODE_MANUAL 手动模式(值为 1),由用户指定完整时序参数,使用 manual_sync_attr
HI_MAPI_DISP_OP_MODE_BUTT 枚举上界哨兵,不可使用。

【注意事项】 无

【相关数据类型及接口】 hi_mapi_disp_user_intf_sync_infohi_mapi_disp_init

11 hi_mapi_disp_user_intf_sync_info

【说明】 定义用户自定义接口同步信息,包含操作模式、时钟翻转标志及自动/手动时序参数。

【定义】

typedef struct {
    hi_mapi_disp_op_mode mode;
    td_bool              clk_reverse;
    union {
        hi_mapi_disp_user_intf_auto_sync_attr   auto_sync_attr;
        hi_mapi_disp_user_intf_manual_sync_attr manual_sync_attr;
    };
} hi_mapi_disp_user_intf_sync_info;

【成员】

成员名称 描述
mode 操作模式(枚举 hi_mapi_disp_op_mode),决定使用自动或手动时序。
clk_reverse 时钟反转标志:TD_TRUE 反转,TD_FALSE 正常。
auto_sync_attr modeHI_MAPI_DISP_OP_MODE_AUTO 时有效,自动同步属性。
manual_sync_attr modeHI_MAPI_DISP_OP_MODE_MANUAL 时有效,手动同步属性。

【注意事项】

  • 联合体成员按 mode 取值选择使用。
  • 仅当 intf_syncHI_MAPI_DISP_OUTPUT_USER 时使用该结构。

【相关数据类型及接口】 hi_mapi_disp_op_modehi_mapi_disp_user_intf_auto_sync_attrhi_mapi_disp_user_intf_manual_sync_attrhi_mapi_disp_user_info_attrhi_mapi_disp_init

12 hi_mapi_disp_user_info_attr

【说明】 定义用户自定义时序的完整属性,包含同步信息及设备帧率。

【定义】

typedef struct {
    hi_mapi_disp_user_intf_sync_info user_info;
    td_u32                           dev_frame_rate;
} hi_mapi_disp_user_info_attr;

【成员】

成员名称 描述
user_info 用户接口同步信息(类型 hi_mapi_disp_user_intf_sync_info)。
dev_frame_rate 设备输出帧率,单位 fps。

【注意事项】 无

【相关数据类型及接口】 hi_mapi_disp_user_intf_sync_infohi_mapi_disp_attrhi_mapi_disp_init

13 hi_mapi_disp_sync_info

【说明】 定义显示接口时序参数,包含同步模式、主/副场时序及同步极性。

【定义】

typedef struct {
    td_bool synm;
    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;
} hi_mapi_disp_sync_info;

【成员】

成员名称 描述
synm 同步模式:TD_FALSE 为时序同步(如 BT.656),TD_TRUE 为信号同步(如 LCD)。
iop 扫描方式:TD_FALSE 为隔行,TD_TRUE 为逐行。
intfb 隔行模式下的输出位宽。
vact 垂直有效区域行数。
vbb 垂直后肩(back blank porch)行数。
vfb 垂直前肩(front blank porch)行数。
hact 水平有效区域像素数。
hbb 水平后肩像素数。
hfb 水平前肩像素数。
hmid 底场水平有效区域像素数(隔行模式)。
bvact 底场垂直有效区域行数(隔行模式)。
bvbb 底场垂直后肩行数。
bvfb 底场垂直前肩行数。
hpw 水平同步脉冲宽度。
vpw 垂直同步脉冲宽度。
idv 数据有效信号极性反转:TD_TRUE 反转。
ihs 水平同步信号极性反转:TD_TRUE 反转。
ivs 垂直同步信号极性反转:TD_TRUE 反转。

【注意事项】

  • 逐行模式下 hmidbvactbvbbbvfb 无效。
  • 该结构体一般由 hi_mapi_disp_intf_sync 预定义时序自动填充,仅在 HI_MAPI_DISP_OUTPUT_USER 模式下需要用户手动设置。

【相关数据类型及接口】 hi_mapi_disp_pub_attrhi_mapi_disp_init

14 hi_mapi_disp_pub_attr

【说明】 定义显示设备的公共属性,包含背景颜色、接口类型、接口时序及同步信息。

【定义】

typedef struct {
    td_u32                    bg_color;
    hi_mapi_disp_intf_type    intf_type;
    hi_mapi_disp_intf_sync    intf_sync;
    hi_mapi_disp_sync_info    sync_info;
} hi_mapi_disp_pub_attr;

【成员】

成员名称 描述
bg_color 设备背景颜色,RGB 格式。
intf_type 显示接口类型(类型 hi_mapi_disp_intf_type,位掩码)。
intf_sync 接口时序标准(枚举 hi_mapi_disp_intf_sync)。
sync_info 接口时序详细信息(类型 hi_mapi_disp_sync_info)。

【注意事项】

  • intf_sync 为非 USER 值时,sync_info 由系统自动填充。
  • intf_syncHI_MAPI_DISP_OUTPUT_USER 时,须自行填充 sync_info

【相关数据类型及接口】 hi_mapi_disp_intf_typehi_mapi_disp_intf_synchi_mapi_disp_sync_infohi_mapi_disp_attrhi_mapi_disp_init

15 hi_mapi_disp_attr

【说明】 定义显示设备的完整属性,包含公共属性与用户自定义时序属性。

【定义】

typedef struct {
    hi_mapi_disp_pub_attr       pub_attr;
    hi_mapi_disp_user_info_attr user_info_attr;
} hi_mapi_disp_attr;

【成员】

成员名称 描述
pub_attr 显示设备公共属性(类型 hi_mapi_disp_pub_attr)。
user_info_attr 用户自定义时序属性(类型 hi_mapi_disp_user_info_attr),仅当 intf_syncHI_MAPI_DISP_OUTPUT_USER 时有效。

【注意事项】 无

【相关数据类型及接口】 hi_mapi_disp_pub_attrhi_mapi_disp_user_info_attrhi_mapi_disp_inithi_mapi_disp_deinit

16 hi_mapi_disp_video_layer_attr

【说明】 定义显示视频层(Video Layer)属性,包含图像分辨率、帧率及缓冲长度。

【定义】

typedef struct {
    hi_mapi_size image_size;
    td_u32       frame_rate;
    td_u32       buf_len;
} hi_mapi_disp_video_layer_attr;

【成员】

成员名称 描述
image_size 视频层显示分辨率(类型 hi_mapi_size),单位像素。
frame_rate 视频层帧率,单位 fps。
buf_len 视频层缓冲帧数。

【注意事项】

  • buf_len 越大延迟越高但显示越平滑。

【相关数据类型及接口】 hi_mapi_size公共数据类型);hi_mapi_disp_starthi_mapi_disp_stop

17 hi_mapi_disp_window_attr

【说明】 定义显示窗口属性,包含窗口位置、大小及优先级。

【定义】

typedef struct {
    hi_mapi_rect rect;
    td_u32       priority;
} hi_mapi_disp_window_attr;

【成员】

成员名称 描述
rect 窗口矩形区域(类型 hi_mapi_rect),包含左上角坐标及宽高,单位像素。
priority 窗口优先级,值越大越靠前显示。

【注意事项】

  • HI3516CV610 窗口数量上限 OT_VO_MAX_CHN_NUM 为 4。

【相关数据类型及接口】 hi_mapi_rect公共数据类型);hi_mapi_disp_set_window_attrhi_mapi_disp_get_window_attr

18 hi_mapi_disp_csc_attr

【说明】 定义显示 CSC(色彩空间转换)属性,包含转换矩阵、亮度、对比度、色调、饱和度及扩展 CSC 开关。

【定义】

typedef struct {
    hi_mapi_disp_csc_matrix csc_matrix;
    td_u32                  luma;
    td_u32                  contrast;
    td_u32                  hue;
    td_u32                  satuature;
    td_bool                 enable_ex_csc;
} hi_mapi_disp_csc_attr;

【成员】

成员名称 描述
csc_matrix CSC 转换矩阵(枚举 hi_mapi_disp_csc_matrix)。
luma 亮度,取值范围 [0, 100],默认值 50。
contrast 对比度,取值范围 [0, 100],默认值 50。
hue 色调,取值范围 [0, 100],默认值 50。
satuature 饱和度,取值范围 [0, 100],默认值 50。
enable_ex_csc 扩展 CSC 开关(用于亮度扩展调整):TD_TRUE 启用,TD_FALSE 禁用,默认 TD_FALSE(0)。

【注意事项】

  • 该类型为底层 CSC 属性结构体。在 hi_mapi_disp_set_attr_ex / hi_mapi_disp_get_attr_ex 接口中,使用包装类型 hi_mapi_disp_csc_attr_ex

【相关数据类型及接口】 hi_mapi_disp_csc_matrixhi_mapi_disp_csc_attr_exhi_mapi_disp_set_attr_exhi_mapi_disp_get_attr_ex

19 hi_mapi_disp_csc_attr_ex

【说明】 定义显示扩展 CSC 属性的包装结构,用于 hi_mapi_disp_set_attr_ex / hi_mapi_disp_get_attr_ex 接口。

【定义】

typedef struct {
    hi_mapi_disp_csc_attr vo_csc;
} hi_mapi_disp_csc_attr_ex;

【成员】

成员名称 描述
vo_csc 视频层 CSC 属性(类型 hi_mapi_disp_csc_attr)。

【注意事项】 无

【相关数据类型及接口】 hi_mapi_disp_csc_attrhi_mapi_disp_set_attr_exhi_mapi_disp_get_attr_ex

20 hi_mapi_disp_window_rotate

【说明】 定义窗口旋转属性。

【定义】

typedef struct {
    hi_mapi_rotation rorate;
} hi_mapi_disp_window_rotate;

【成员】

成员名称 描述
rorate 旋转角度(枚举 hi_mapi_rotation,参见公共数据类型),取值 HI_MAPI_ROTATION_0 / 90 / 180 / 270

【注意事项】 无

【相关数据类型及接口】 hi_mapi_rotation公共数据类型);hi_mapi_disp_set_window_attr_exHI_MAPI_DISP_WINDOW_CMD_ROTATE)、hi_mapi_disp_get_window_attr_ex

21 hi_mapi_disp_window_aspect_ratio

【说明】 定义窗口宽高比属性,包含水平分割使能及宽高比属性。

【定义】

typedef struct {
    td_bool                  hor_split_en;
    hi_mapi_aspect_ratio_attr aspect_ratio;
} hi_mapi_disp_window_aspect_ratio;

【成员】

成员名称 描述
hor_split_en 水平分割使能(仅 HI3516CV610 / HI3516DV500 / HI3519DV500 平台有效):TD_TRUE 启用,TD_FALSE 禁用。
aspect_ratio 宽高比属性(类型 hi_mapi_aspect_ratio_attr,参见公共数据类型),包含模式、背景色及视频区域。

【注意事项】

  • hor_split_en 在 HI3516CV610 平台上编译有效。

【相关数据类型及接口】 hi_mapi_aspect_ratio_attr公共数据类型);hi_mapi_disp_set_window_attr_exHI_MAPI_DISP_WINDOW_CMD_ASPECTRATIO)、hi_mapi_disp_get_window_attr_ex

22 hi_mapi_disp_cmd

【说明】 定义显示设备扩展属性命令枚举,用于 hi_mapi_disp_set_attr_ex / hi_mapi_disp_get_attr_ex

【定义】

typedef enum {
    HI_MAPI_DISP_CMD_VIDEO_CSC,
    HI_MAPI_DISP_CMD_GRAPHIC_CSC,
    HI_MAPI_DISP_CMD_BUTT
} hi_mapi_disp_cmd;

【成员】

成员名称 描述
HI_MAPI_DISP_CMD_VIDEO_CSC 视频层 CSC 属性命令(值为 0),对应属性类型为 hi_mapi_disp_csc_attr_ex
HI_MAPI_DISP_CMD_GRAPHIC_CSC 图形层 CSC 属性命令(值为 1),对应属性类型为 hi_mapi_disp_csc_attr_ex
HI_MAPI_DISP_CMD_BUTT 枚举上界哨兵,不可使用。

【注意事项】 无

【相关数据类型及接口】 hi_mapi_disp_csc_attr_exhi_mapi_disp_set_attr_exhi_mapi_disp_get_attr_ex

23 hi_mapi_disp_window_cmd

【说明】 定义窗口扩展属性命令枚举,用于 hi_mapi_disp_set_window_attr_ex / hi_mapi_disp_get_window_attr_ex

【定义】

typedef enum {
    HI_MAPI_DISP_WINDOW_CMD_ROTATE,
    HI_MAPI_DISP_WINDOW_CMD_ASPECTRATIO,
    HI_MAPI_DISP_WINDOW_CMD_BUTT
} hi_mapi_disp_window_cmd;

【成员】

成员名称 描述
HI_MAPI_DISP_WINDOW_CMD_ROTATE 窗口旋转命令(值为 0),对应属性类型为 hi_mapi_disp_window_rotate
HI_MAPI_DISP_WINDOW_CMD_ASPECTRATIO 窗口宽高比命令(值为 1),对应属性类型为 hi_mapi_disp_window_aspect_ratio
HI_MAPI_DISP_WINDOW_CMD_BUTT 枚举上界哨兵,不可使用。

【注意事项】 无

【相关数据类型及接口】 hi_mapi_disp_window_rotatehi_mapi_disp_window_aspect_ratiohi_mapi_disp_set_window_attr_exhi_mapi_disp_get_window_attr_ex

5 错误码

模块编号 mod=7,错误码基址 0xA3078000

错误代码 宏定义 描述
0xA3078001 HI_MAPI_DISP_EINVALID_DEVID 设备号无效。
0xA3078002 HI_MAPI_DISP_EINVALID_CHNID 通道号无效。
0xA3078006 HI_MAPI_DISP_ENULL_PTR 空指针。
0xA3078008 HI_MAPI_DISP_ENOT_SUPPORT 不支持的操作。
0xA3078010 HI_MAPI_DISP_ENOTREADY 系统未就绪。