MI DISP API¶
REVISION HISTORY¶
| Revision No. | Description |
Date |
|---|---|---|
| 2.03 | 04/12/2018 | |
| 2.04 | 06/06/2019 | |
| 2.05 | 06/19/2019 | |
| 2.06 | 05/13/2020 | |
| 2.07 | 06/18/2020 | |
| 2.08 | 08/04/2020 | |
| 2.09 | 09/03/2020 | |
| 2.10 | 10/26/2020 | |
| 2.11 | 12/24/2020 | |
| 2.12 | 01/05/2021 | |
| 2.13 | 01/22/2021 | |
| 2.14 | 04/16/2021 | |
| 2.15 | 04/22/2021 | |
| 2.16 | 05/17/2021 | |
| 2.17 | 05/25/2021 | |
| 2.18 | 06/10/2021 | |
| 2.19 | 08/05/2021 | |
| 08/25/2021 | ||
| 2.20 | 09/03/2021 | |
| 2.21 | 10/12/2021 | |
| 2.22 | 11/29/2021 | |
| 2.23 | 12/08/2021 | |
| 2.24 | 12/20/2021 | |
| 2.25 | 2/16/2022 | |
| 2.26 | 3/7/2022 | |
| 2.27 | 06/10/2022 | |
| 2.28 | 06/28/2022 | |
| 2.29 | 08/03/2022 | |
| 2.30 | 08/08/2022 | |
| 2.31 | 10/13/2022 | |
| 2.32 | 10/27/2022 | |
| 2.33 | 11/10/2022 | |
| 2.34 | 05/12/2022 | |
| 2.35 | 03/14/2023 | |
| 03/14/2023 | ||
| 2.36 | 04/11/2024 | |
| 2.37 | 08/09/2024 | |
| 2.38 | 08/09/2024 | |
| 2.39 | 08/09/2024 | |
| 2.40 | 01/08/2025 | |
| 2.41 | 02/07/2025 | |
| 2.42 | 05/27/2025 | |
| 2.43 | 08/22/2025 | |
| 2.44 | 09/18/2025 | |
| 2.45 | 10/31/2025 | |
| 2.46 | 11/17/2025 | |
| 2.47 | 05/18/2026 | |
| 2.48 | 07/06/2026 |
1. 概述¶
1.1. 模块说明¶
DISP是一个视频处理及显示单元,主要功能是对前端输出的图像做硬件拼接及图像效果处理,并将处理后的图像通过HDMI/VGA/MIPI/TTL等接口输出到显示器。
关键字说明:
-
DEV
显示设备。对应DISP0/DISP1等
-
MOP
读取内存图像数据并做拼图处理的硬件单元
-
LAYER
视频层。RDMA硬件抽象层,一般指MOP、SCL_RDMA等。
-
CSC
颜色空间转换单元
-
OSD Mixer
视频层和UI叠加器件
-
GUI FB/HW Cursor
UI层
-
PIP
画中画
-
WBC
视频回写设备。捕获视频层或设备级的视频数据,可用于多dev的同源显示。
-
PQ
Picture Quality。图像效果处理单元。
1.2. 基本结构¶
DISP主要是用来管理视频显示单元,将处理后的图像输出到不同的显示器接口。
- DISP主要功能是通过RDMA获取前端图像数据,并负责图像的拼接、旋转、裁剪、放大等处理任务,当RDMA为MOPG类型时可支持显示多个不重叠的窗口;当RDMA为MOPS类型时可以做overlap叠加到MOPG的窗口上;当RDMA为SCL_RDMA类型时仅支持单窗口显示。
- 数据经RDMA处理后流入DISP内部PQ模块,该模块可以进一步调节picture quality。最后和GOP输出的UI做blending,将最终图像显示到屏幕接口。
-
DISP支持HDMI、VGA、TTL、LVDS、MIPI DSI等等屏幕接口。

图1‑1 DISP硬件流程框图
如上图,从使用场景看,DISP前级可以绑定VDEC、SCL或其他模块,也可以是User Input Buffer;WBC输出的模块可以是VENC、Other DISP,也可以是User Output Buffer。
从软件开发角度看,DISP软件分层结构如下图,使用者主要通过MI_DISP_API/MI_HDMI_API/MI_WBC_API等接口操作DISP/HDMI/WBC硬件。

1.3. 功能介绍及工作原理¶
1.3.1. 多路拼图与图层管理¶

-
输入端口管理:DISP的MOPG硬件有多个gwin,软件抽象为对应个数的input port,每个端口接收前端输出的YUV数据(如NV12格式)。所有input port在MOPG上的显示位置可以任意设置,但需严格保证窗口之间无重叠。
-
数据流控制:每个input port分配独立的显存区域,通过DMA直接传输图像数据至显示接口。
1.3.2. 画中画(PIP)¶

-
层级优先级:MOPS可用于PIP功能,将画面叠加到MOPG上,默认优先级高于MOPG,如果两个MOP上都有内容,那么MOPS在上,MOPG在下,并且支持动态调整叠加顺序。
-
实时切换: 通过寄存器配置快速切换PIP的显隐状态,支持动态调整叠加窗口的位置和大小。
1.3.3. 图像处理核心功能¶

-
动态缩放: 单窗口支持H/V方向最大16倍,来满足每个window对最终显示尺寸的需求。

图1‑6 图像裁剪 -
图像裁剪: 支持对输入图像的局部区域裁剪后放大显示(Zoom In)。

图1‑7 图像旋转 -
图像旋转: 支持以MOP为单位做旋转90度或者270度,同时支持旋转加放大,以满足旋转后需要满屏显示的场景。
1.3.4. WBC(视频回写)¶


-
视频回写设备,捕获视频层或设备级的视频数据,可用于多dev同源显示
-
WDMA软件抽象为 WBC。DISP一般无输出,接panel,使用WBC来抽象出output
-
WBC输入buffer由disp0/disp1输送,再回写至VENC/USER BUFFER/Other Disp
1.3.5. PQ(图像质量)¶
- 在支持PQ的Chip上可对输出的图像效果进行调节,包括饱和度、亮度、对比度、锐度、色温、Gamma等功能
1.4. 应用场景¶
MI_DISP可应用于以下场景:
-
Pure linux场景
在linux环境下基于MI_DISP/MI_HDMI/MI_WBC提供的API接口进行开发。
-
Pure rtos场景
在rtos环境下,应用程序可以基于MI_DISP/MI_HDMI/MI_WBC提供的API接口进行开发。
-
Dualos场景
在dualos环境下,在linux端或rtos端运行的应用程序均基于MI_DISP/MI_HDMI/MI_WBC API开发。
1.5. 芯片差异¶
当前文档请参考1.5.14. Mhera的介绍
1.5.1. Taiyaki/Takoyaki¶
注意:
-
HDMI和VGA接口可以同时输出,MIPI、TTL接口只能单独输出。
-
MOP1的输出画面会叠加到MOP0上,实现PIP的功能,即MOP1的显示优先级高于MOP0。
-
MOP0上面的16个Input Port的显示位置不能互相叠加。
-
DISP模块与其他模块只可以通过E_MI_SYS_BIND_TYPE_FRAME_BASE来绑定。
-
DISP模块输入图像的数据格式只可以是E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420。
1.5.2. Pretzel/Pudding¶
注意:
-
Pretzel/Pudding不支持亮度、饱和度和色度调节。
-
DISP模块与其他模块只可以通过E_MI_SYS_BIND_TYPE_FRAME_BASE来绑定。
-
DISP模块输入图像的数据格式只可以是E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420。
1.5.3. Tiramisu¶
注意:
-
对于每一个device,HDMI和VGA接口可以同时输出,CVBS、MIPI、TTL、BT1120、BT656、BT601、sRGB、MCU接口只能单独输出。
-
MOP1的输出画面会叠加到MOP0上,实现PIP的功能,即MOP1的显示优先级高于MOP0。
-
MOP0上面的16个Input port的显示位置不能互相叠加。
-
MOP2和MOP3的使用方式同MOP0和MOP1。
-
DISP0和DISP1的输出可以通过WBC回写到内存。
-
DISP模块与其他模块只可以通过E_MI_SYS_BIND_TYPE_FRAME_BASE来绑定。
-
DISP模块输入图像的数据格式只可以是E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420。
1.5.4. Ikayaki¶
注意:
-
TTL和sRGB不能同时输出。
-
DISP模块与其他模块只可以通过E_MI_SYS_BIND_TYPE_FRAME_BASE来绑定。
-
DISP模块输入图像的数据格式只可以是E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420。
1.5.5. Muffin¶
注意:
-
对于每一个device,HDMI和VGA接口可以同时输出,CVBS、MIPI、TTL、BT1120、BT656、BT601、sRGB、MCU接口只能单独输出。
-
MOP1的输出画面会叠加到MOP0上,实现PIP的功能,即MOP1的显示优先级高于MOP0。
-
MOP0上面的32个Input port的显示位置不能互相叠加。
-
MOP2、MOP3和MOP4、MOP5的使用方式同MOP0和MOP1。
-
DISP0和DISP1的输出可以通过WBC回写到内存。
-
DISP模块与其他模块只可以通过E_MI_SYS_BIND_TYPE_FRAME_BASE来绑定。
-
DISP模块输入图像的数据格式只可以是E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420。
1.5.6. Mochi¶
注意:
-
对于每一个device,HDMI和VGA接口可以同时输出,CVBS接口只能单独输出。
-
MOP1的输出画面会叠加到MOP0上,实现PIP的功能,即MOP1的显示优先级高于MOP0。
-
MOP0上面的32个Input port的显示位置不能互相叠加。
-
MOP2、MOP3的使用方式同MOP0和MOP1。
-
DISP0和DISP1的输出可以通过WBC回写到内存。
-
DISP模块与其他模块只可以通过E_MI_SYS_BIND_TYPE_FRAME_BASE来绑定。
-
DISP模块输入图像的数据格式只可以是E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420。
1.5.7. Maruko¶

注意:
-
sRGB、TTL、BT656和BT1120不能同时输出,同一时间只能输出其中一种。
-
DISP模块与其他模块只可以通过E_MI_SYS_BIND_TYPE_FRAME_BASE来绑定。
-
DISP模块输入图像的数据格式可以是 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420、 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420_NV21、 E_MI_SYS_PIXEL_FRAME_YUV420_PLANAR、 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_422、 E_MI_SYS_PIXEL_FRAME_YUV422_PLANAR、 E_MI_SYS_PIXEL_FRAME_YUV422_YUYV、 E_MI_SYS_PIXEL_FRAME_YUV422_UYVY、 E_MI_SYS_PIXEL_FRAME_ARGB8888、 E_MI_SYS_PIXEL_FRAME_ABGR8888、 E_MI_SYS_PIXEL_FRAME_BGRA8888。
1.5.8. Opera¶
注意:
-
对于每一个device,MIPIDSI和LVDS单通道接口可以同时输出,TTL、BT1120、BT656、LVDS双通道接口只能单独输出。
-
MOP1的输出画面会叠加到MOP0上,实现PIP的功能,即MOP1的显示优先级高于MOP0。
-
MOP0上面的32个Input port的显示位置不能互相叠加。
-
MOP2、MOP3的使用方式同MOP0和MOP1。
-
Disp1的所有port可以合并至Disp0,最大支持66个Gwin合并。
-
DISP0和DISP1的输出可以通过WBC回写到内存。
-
DISP模块与其他模块可以通过E_MI_SYS_BIND_TYPE_FRAME_BASE来绑定,其中MOP1、MOP3还可通过E_MI_SYS_BIND_TYPE_REALTIME绑定。
-
DISP模块输入图像的数据格式可以是 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420、 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420_NV21、 E_MI_SYS_PIXEL_FRAME_YUV420_PLANAR、 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_422、 E_MI_SYS_PIXEL_FRAME_YUV422_PLANAR、 E_MI_SYS_PIXEL_FRAME_YUV422_YUYV、 E_MI_SYS_PIXEL_FRAME_YUV422_UYVY、 E_MI_SYS_PIXEL_FRAME_YUV422_VYUY、 E_MI_SYS_PIXEL_FRAME_YUV422_YVYU。 其中MOP0和MOP2仅支持E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420格式。
-
WBC模块输出图像的数据格式可以是 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420、 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420_NV21、 E_MI_SYS_PIXEL_FRAME_YUV420_PLANAR、 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_422、 E_MI_SYS_PIXEL_FRAME_YUV422_PLANAR、 E_MI_SYS_PIXEL_FRAME_YUV422_YUYV、 E_MI_SYS_PIXEL_FRAME_YUV422_UYVY、 E_MI_SYS_PIXEL_FRAME_YUV422_VYUY、 E_MI_SYS_PIXEL_FRAME_YUV422_YVYU、 E_MI_SYS_PIXEL_FRAME_ARGB8888。
1.5.9. Souffle¶

注意:
-
MIPIDSI、TTL、BT656和BT1120不能同时输出,同一时间只能输出其中一种。
-
DISP模块与其他模块只可以通过E_MI_SYS_BIND_TYPE_FRAME_BASE来绑定。
-
DISP模块输入图像的数据格式可以是 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420、 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420_NV21、 E_MI_SYS_PIXEL_FRAME_YUV420_PLANAR、 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_422、 E_MI_SYS_PIXEL_FRAME_YUV422_PLANAR、 E_MI_SYS_PIXEL_FRAME_YUV422_YUYV、 E_MI_SYS_PIXEL_FRAME_YUV422_UYVY、 E_MI_SYS_PIXEL_FRAME_ARGB8888、 E_MI_SYS_PIXEL_FRAME_ABGR8888、 E_MI_SYS_PIXEL_FRAME_BGRA8888。
1.5.10. Pcupid¶

注意:
-
MIPIDSI、TTL、BT656、sRGB和MCU不能同时输出,同一时间只能输出其中一种。
-
DISP模块与其他模块只可以通过E_MI_SYS_BIND_TYPE_FRAME_BASE来绑定。
-
DISP模块输入图像的数据格式可以是 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420、 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420_NV21、 E_MI_SYS_PIXEL_FRAME_YUV420_PLANAR、 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_422、 E_MI_SYS_PIXEL_FRAME_YUV422_PLANAR、 E_MI_SYS_PIXEL_FRAME_YUV422_YUYV、 E_MI_SYS_PIXEL_FRAME_YUV422_UYVY、 E_MI_SYS_PIXEL_FRAME_YUV422_VYUY、 E_MI_SYS_PIXEL_FRAME_YUV422_YVYU。
1.5.11. Ibopper¶

注意:
-
HDMI和VGA接口可以同时输出,BT656、TTL接口只能单独输出。
-
MOP1的输出画面会叠加到MOP0上,实现PIP的功能,即MOP1的显示优先级高于MOP0。
-
MOP0上面的48个Input Port的显示位置不能互相叠加。
-
DISP0的输出可以通过WBC回写到内存。
-
DISP模块与其他模块只可以通过E_MI_SYS_BIND_TYPE_FRAME_BASE来绑定。
-
DISP模块输入图像的数据格式可以是 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420、 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420_NV21、 E_MI_SYS_PIXEL_FRAME_YUV420_PLANAR、 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_422、 E_MI_SYS_PIXEL_FRAME_YUV422_PLANAR、 E_MI_SYS_PIXEL_FRAME_YUV422_YUYV、 E_MI_SYS_PIXEL_FRAME_YUV422_UYVY、 E_MI_SYS_PIXEL_FRAME_YUV422_VYUY、 E_MI_SYS_PIXEL_FRAME_YUV422_YVYU。 其中MOP0仅支持E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420格式。
-
WBC模块输出图像的数据格式可以是 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420、 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420_NV21、 E_MI_SYS_PIXEL_FRAME_YUV420_PLANAR、 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_422、 E_MI_SYS_PIXEL_FRAME_YUV422_PLANAR、 E_MI_SYS_PIXEL_FRAME_YUV422_YUYV、 E_MI_SYS_PIXEL_FRAME_YUV422_UYVY、 E_MI_SYS_PIXEL_FRAME_YUV422_VYUY、 E_MI_SYS_PIXEL_FRAME_YUV422_YVYU、 E_MI_SYS_PIXEL_FRAME_ARGB8888。
1.5.12. Ifackel¶

注意:
-
TTL、MIPIDSI、BT656、BT1120、SRGB和MCU不能同时输出,同一时间只能输出其中一种。
-
DISP模块与其他模块绑定时,frame mode是通过E_MI_SYS_BIND_TYPE_FRAME_BASE来绑定,realtime mode是通过E_MI_SYS_BIND_TYPE_REALTIME来绑定。
-
DISP为realtime mode时,layerid=10;DISP为frame mode时,layerid=0。
-
DISP模块输入图像的数据格式可以是 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420、 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420_NV21、 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_422、 E_MI_SYS_PIXEL_FRAME_YUV420_PLANAR、 E_MI_SYS_PIXEL_FRAME_YUV422_PLANAR、 E_MI_SYS_PIXEL_FRAME_YUV422_YUYV、 E_MI_SYS_PIXEL_FRAME_YUV422_UYVY、 E_MI_SYS_PIXEL_FRAME_YUV422_VYUY、 E_MI_SYS_PIXEL_FRAME_YUV422_YVYU、 E_MI_SYS_PIXEL_FRAME_ARGB8888、 E_MI_SYS_PIXEL_FRAME_ABGR8888、 E_MI_SYS_PIXEL_FRAME_BGRA8888。
1.5.13. Jaguar1¶

注意:
-
对于每一个device,LVDS单通道接口可以同时输出,MIPIDSI、TTL、CVBS、BT1120、BT656、BT601、MCU、LVDS双通道接口只能单独输出。
-
MOP1的输出画面会叠加到MOP0上,实现PIP的功能,即MOP1的显示优先级高于MOP0。
-
MOP0上面的16个Input Port的显示位置不能互相叠加。
-
MOP2和MOP3的使用方式同MOP0和MOP1。
-
Disp1的所有port可以合并至Disp0,最大支持34个Gwin合并。
-
DISP模块与其他模块可以通过E_MI_SYS_BIND_TYPE_FRAME_BASE来绑定,其中MOP1、MOP3还可通过E_MI_SYS_BIND_TYPE_HW_AUTOSYNC绑定。
-
DISP模块输入图像的数据格式可以是 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420、 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420_NV21、 E_MI_SYS_PIXEL_FRAME_YUV420_PLANAR、 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_422、 E_MI_SYS_PIXEL_FRAME_YUV422_PLANAR、 E_MI_SYS_PIXEL_FRAME_YUV422_YUYV、 E_MI_SYS_PIXEL_FRAME_YUV422_UYVY、 E_MI_SYS_PIXEL_FRAME_YUV422_VYUY、 E_MI_SYS_PIXEL_FRAME_YUV422_YVYU、 E_MI_SYS_PIXEL_FRAME_RGB888。 其中MOP0和MOP2仅支持E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420格式。
1.5.14. Mhera¶

注意:
-
TTL、MIPIDSI、BT656、BT1120不能同时输出,同一时间只能输出其中一种。
-
MOP1和MOP101的输出画面会叠加到MOP0上,实现PIP的功能,即MOP101的显示优先级高于MOP1,MOP1的显示优先级高于MOP0。
-
MOP0上面的64个Input Port的显示位置不能互相叠加。
-
MOP2和MOP3、MOP103的使用方式同MOP0和MOP1、MOP101。
-
Disp1的所有port可以合并至Disp0,最大支持100个Gwin合并。
-
DISP模块输入图像的数据格式可以是 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420、 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420_NV21、 E_MI_SYS_PIXEL_FRAME_YUV420_PLANAR、 E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_422、 E_MI_SYS_PIXEL_FRAME_YUV422_PLANAR、 E_MI_SYS_PIXEL_FRAME_YUV422_YUYV、 E_MI_SYS_PIXEL_FRAME_YUV422_UYVY、 E_MI_SYS_PIXEL_FRAME_YUV422_VYUY、 E_MI_SYS_PIXEL_FRAME_YUV422_YVYU、 E_MI_SYS_PIXEL_FRAME_RGB888。 其中MOP0和MOP2仅支持E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420格式。
下表是不同芯片系列输出接口的差异:
| 输出接口 芯片系列 |
HDMI | VGA | MIPI DSI | TTL | CVBS | sRGB | BT601 | BT656 | BT1120 | LVDS | 8080 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Pretzel | 不支持 | 不支持 | 不支持 | 支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 |
| Macaron | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 |
| Taiyaki | 支持 | 支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 |
| Takoyaki | 不支持 | 不支持 | 支持 | 支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 |
| Pudding | 不支持 | 不支持 | 不支持 | 支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 |
| Ispahan | 不支持 | 不支持 | 不支持 | 支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 |
| Tiramisu | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 不支持 | 支持 |
| Ikayaki | 不支持 | 不支持 | 不支持 | 支持 | 不支持 | 支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 |
| Muffin | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 不支持 | 支持 |
| Mochi | 支持 | 支持 | 不支持 | 不支持 | 支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 | 不支持 |
| Maruko | 不支持 | 不支持 | 不支持 | 支持 | 不支持 | 支持 | 不支持 | 支持 | 支持 | 不支持 | 不支持 |
| Opera | 不支持 | 不支持 | 支持 | 支持 | 不支持 | 不支持 | 支持 | 支持 | 不支持 | 支持 | 不支持 |
| Souffle | 不支持 | 不支持 | 支持 | 支持 | 不支持 | 不支持 | 不支持 | 支持 | 支持 | 不支持 | 不支持 |
| Iford | 不支持 | 不支持 | 不支持 | 支持 | 不支持 | 不支持 | 不支持 | 支持 | 不支持 | 不支持 | 不支持 |
| Pcupid | 不支持 | 不支持 | 支持 | 支持 | 不支持 | 支持 | 不支持 | 支持 | 不支持 | 不支持 | 支持 |
| Ibopper | 支持 | 支持 | 不支持 | 支持 | 不支持 | 不支持 | 不支持 | 支持 | 不支持 | 不支持 | 不支持 |
| Ifackel | 不支持 | 不支持 | 支持 | 支持 | 不支持 | 支持 | 不支持 | 支持 | 支持 | 不支持 | 支持 |
| Jaguar1 | 不支持 | 不支持 | 支持 | 支持 | 支持 | 不支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
| Mhera | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | 不支持 | 支持 | 支持 | 不支持 | 不支持 |
1.6. 开发流程¶
1.6.1 编译配置¶
-
进入alkaid project根目录,make menuconfig

-
回车键进入Sdk Config子选项

-
回车键进入Interface Compile Config子选项

-
空格键选中disp子模块,并重新编译project
编译完成将在sdk/interface/src/disp下生成 mi_disp.ko, 同时将mi_disp.h,mi_disp_datatype.h release到 project/release 目录, 在pure linux环境下会默认打包进入images。
1.6.2 配置DISP参数¶
DISP的输出接口配置参数在系统配置文件config.json中管理。具体配置请参考屏参配置指导
1.6.3 接口调用¶
DISP用户开发主要是调用api配置disp相关属性、配置输出接口时序,通过不同的参数来实现不同的应用场景。
其他接口使用方式请参考API注意事项

DISP的接口调用分为以下几步:
-
配置DISP device
-
使能DISP device
-
初始化HDMI/PANEL
-
配置DISP video layer
-
绑定DISP video layer到DISP device
-
使能DISP video layer
-
配置DISP input port
-
使能DISP input port
-
送图像数据
1.7. 实例介绍¶
本实例介绍DISP api的调用流程
功能总览:
- 显示设备初始化:配置HDMI/PANEL的接口属性并启用DISP Device。
- 设置WBC回写数据(非必要):回写DISP数据至VENC/USER BUFFER/Other DISP。
- 视频层管理:创建视频层(Layer),绑定到DISP Device,设备窗口属性和旋转模式。
- 输入端口配置:定义输入源的参数(分辨率,显示区域)并启用端口。
- 资源释放:退出时禁用端口、解绑图层并关闭设备。
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <pthread.h>
#include <sys/prctl.h>
#include <poll.h>
#include <fcntl.h>
#include <stdlib.h>
#include <signal.h>
#include <assert.h>
#include <sys/resource.h>
#include <sys/mman.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/stat.h>
#include "mi_sys.h"
#include "mi_disp.h"
#include "mi_common.h"
#include "mi_panel.h"
#include "mi_hdmi.h"
// 定义变量和结构体
MI_U32 DispDev = 0; // 显示设备ID(如DISP0)
MI_U32 DispLayer = 0; // 视频层ID(如Layer0)
MI_U32 DispInport = 0; // 输入端口ID(如Port0)
MI_S32 DispWbc = 0; //WBC ID
MI_DISP_PubAttr_t stPubAttr; // 定义Device参数数据结构
MI_DISP_WBC_Source_t stSetWbcSource; // 定义wbc回写源数据结构
MI_DISP_WBC_Attr_t stSetWbcAttr; // 定义WBC参数数据结构
MI_DISP_VideoLayerAttr_t stLayerAttr; // 定义视频层参数数据结构
MI_DISP_InputPortAttr_t stInputPortAttr; // 定义输入端口参数数据结构
MI_DISP_VidWinRect_t stWinRect; // 定义显示窗口缩放参数数据结构
MI_DISP_RotateConfig_t stRotateConfig; // 定义显示窗口旋转参数数据结构,默认无旋转
memset(&stPubAttr,0,sizeof(MI_DISP_PubAttr_t));
memset(&stLayerAttr,0,sizeof(MI_DISP_VideoLayerAttr_t));
memset(&stInputPortAttr,0,sizeof(MI_DISP_InputPortAttr_t));
memset(&stWinRect, 0, sizeof(MI_DISP_VidWinRect_t));
memset(&stRotateConfig, 0, sizeof(MI_DISP_RotateConfig_t));
// WBC配置(Non-essential steps)
MI_DISP_SetWBCSource(DispWbc, &stSetWbcSource);
MI_DISP_SetWBCAttr(DispWbc, &stSetWbcAttr);
MI_DISP_EnableWBC(DispWbc);
// 初始化DISP Device参数
stPubAttr.eIntfSync = E_MI_DISP_OUTPUT_1080P60; // 输出Timing:1080P60
stPubAttr.eIntfType = E_MI_DISP_INTF_HDMI; // 接口类型:HDMI
MI_DISP_SetPubAttr(DispDev, &stPubAttr); // 配置DISP Device参数
MI_DISP_Enable(DispDev); // 启用DISP Device
//HDMI related init
//Necessary steps. Not listed here
// 初始化视频层参数
stLayerAttr.stVidLayerSize.u16Width = 1920; // 分辨率宽
stLayerAttr.stVidLayerSize.u16Height = 1080; // 分辨率高
stLayerAttr.stVidLayerDispWin.u16X = 0; // 配置视频层显示起点X
stLayerAttr.stVidLayerDispWin.u16Y = 0; // 配置视频层显示起点Y
stLayerAttr.stVidLayerDispWin.u16Width = 1920; // 配置视频层显示宽度
stLayerAttr.stVidLayerDispWin.u16Height = 1080; // 配置视频层显示高度
stRotateConfig.eRotateMode = E_MI_DISP_ROTATE_NONE;
MI_DISP_BindVideoLayer(DispLayer,DispDev); // 绑定视频层到DISP Device
MI_DISP_SetVideoLayerAttr(DispLayer, &stLayerAttr); // 配置视频层参数
MI_DISP_EnableVideoLayer(DispLayer); // 启用视频层
MI_DISP_SetVideoLayerRotateMode(DispLayer, &stRotateConfig); // 设置旋转角度(Non-essential steps)
stInputPortAttr.u16SrcWidth = 1920; // 配置输入图像的宽度
stInputPortAttr.u16SrcHeight = 1080; // 配置输入图像的高度
stInputPortAttr.stDispWin.u16X = 0; // 配置窗口显示坐标起点X
stInputPortAttr.stDispWin.u16Y = 0; // 配置窗口显示坐标起点Y
stInputPortAttr.stDispWin.u16Width = 1920; // 配置窗口显示宽度
stInputPortAttr.stDispWin.u16Height = 1080; // 配置窗口显示高度
stWinRect.u16X = 0; // 配置输入图裁剪起点X
stWinRect.u16Y = 0; // 配置输入图裁剪起点Y
stWinRect.u16Width = 1920; // 配置输入图裁剪宽度
stWinRect.u16Height = 1080; // 配置输入图裁剪高度
// 应用窗口配置
MI_DISP_SetInputPortAttr(DispLayer, DispInport, &stInputPortAttr); // 配置显示窗口参数
MI_DISP_SetZoomInWindow(DispLayer, DispInport, &stWinRect); // 配置显示窗口裁剪参数(Non-essential steps)
// 批量处理(Non-essential steps)
MI_DISP_SetVideoLayerAttrBatchBegin(DispLayer); // 开启窗口批量处理
MI_DISP_EnableInputPort(DispLayer, DispInport); // 启用窗口
MI_DISP_SetVideoLayerAttrBatchEnd(DispLayer); // 结束窗口批量处理
/* exit flow */
// 禁用窗口
MI_DISP_SetVideoLayerAttrBatchBegin(DispLayer); // Non-essential steps
MI_DISP_DisableInputPort(DispLayer, DispInport);// 关闭窗口
// 将视频层和显示设备解绑
MI_DISP_SetVideoLayerAttrBatchEnd(DispLayer); // Non-essential steps
MI_DISP_DisableVideoLayer(DispLayer); // 禁用视频层
MI_DISP_UnBindVideoLayer(DispLayer, DispDev); // 解绑视频层
MI_DISP_Disable(DispDev); // 关闭DISP Device
2. API参考¶
该功能模块提供以下API:
| API名 | 功能 | 支持的芯片 |
|---|---|---|
| MI_DISP_Enable | 启用视频输出设备 | ALL |
| MI_DISP_Disable | 禁用视频输出设备 | ALL |
| MI_DISP_SetPubAttr | 配置视频输出设备的公共属性 | ALL |
| MI_DISP_GetPubAttr | 获取视频输出设备的公共属性 | ALL |
| MI_DISP_EnableVideoLayer | 使能视频层 | ALL |
| MI_DISP_DisableVideoLayer | 禁用视频层 | ALL |
| MI_DISP_SetVideoLayerAttr | 设定视频层属性 | ALL |
| MI_DISP_GetVideoLayerAttr | 获取视频层属性 | ALL |
| MI_DISP_BindVideoLayer | 绑定视频层到指定设备 | ALL |
| MI_DISP_UnBindVideoLayer | 解绑视频层与指定设备 | ALL |
| MI_DISP_SetPlayToleration | 设置播放容忍度 | MSR930、MSR650x |
| MI_DISP_GetPlayToleration | 获取播放容忍度 | MSR930、MSR650x |
| MI_DISP_SetVideoLayerAttrBatchBegin | 设置视频层上输入端口相关操作开始 | Muffin、Mochi、Maruko、Opera、Souffle、Iford、Pcupid、Ibopper、Ifackel、Jaguar1、Mhera |
| MI_DISP_SetVideoLayerAttrBatchEnd | 设置视频层上输入端口相关操作结束 | Muffin、Mochi、Maruko、Opera、Souffle、Iford、Pcupid、Ibopper、Ifackel、Jaguar1、Mhera |
| MI_DISP_EnableInputPort | 启用指定的视频输入端口 | ALL |
| MI_DISP_DisableInputPort | 禁用指定的视频输入端口 | ALL |
| MI_DISP_SetInputPortAttr | 配置指定视频输入端口的属性 | ALL |
| MI_DISP_GetInputPortAttr | 获取指定视频输入端口的属性 | ALL |
| MI_DISP_SetInputPortDispPos | 设置指定视频输入端口的显示位置 | ALL |
| MI_DISP_GetInputPortDispPos | 获取指定视频输入端口的显示位置 | ALL |
| MI_DISP_PauseInputPort | 暂停指定的视频输入端口 | ALL |
| MI_DISP_ResumeInputPort | 恢复指定的视频输入端口 | ALL |
| MI_DISP_StepInputPort | 单帧播放指定的视频输入端口 | ALL |
| MI_DISP_ShowInputPort | 显示指定的视频输入端口 | ALL |
| MI_DISP_HideInputPort | 隐藏指定的视频输入端口 | ALL |
| MI_DISP_SetInputPortSyncMode | 设定指定的视频输入端口同步模式 | MSR930、MSR650x |
| MI_DISP_QueryInputPortStat | 查询视频输入端口状态 | ALL |
| MI_DISP_SetZoomInWindow | 裁剪视频输入端口 | Takoyaki、Tiramisu、Ikayaki、Muffin、Mochi、Opera、Pcupid、Ibopper、Jaguar1、Mhera |
| MI_DISP_GetVgaParam | 获取VGA输出设备参数 | MSR930、MSR650x、Takoyaki、Tiramisu、Muffin、Mochi、Ibopper、Mhera |
| MI_DISP_SetVgaParam | 设定VGA输出设备参数 | MSR930、MSR650x、Takoyaki、Tiramisu、Muffin、Mochi、Ibopper、Mhera |
| MI_DISP_GetHdmiParam | 获取HDMI输出设备参数 | MSR930、MSR650x、Takoyaki、Tiramisu、Muffin、Mochi、Ibopper、Mhera |
| MI_DISP_SetHdmiParam | 设定HDMI输出设备参数 | MSR930、MSR650x、Takoyaki、Tiramisu、Muffin、Mochi、Ibopper、Mhera |
| MI_DISP_GetLcdParam | 获取LCD输出设备参数 | Takoyaki、Tiramisu、Ikayaki、Muffin、Mochi、Opera、Pcupid、Ibopper、Jaguar1、Mhera |
| MI_DISP_SetLcdParam | 设定LCD输出设备参数 | Takoyaki、Tiramisu、Ikayaki、Muffin、Mochi、Opera、Pcupid、Ibopper、Jaguar1、Mhera |
| MI_DISP_GetCvbsParam | 获取CVBS输出设备参数 | Tiramisu、Muffin、Mochi、Jaguar1 |
| MI_DISP_SetCvbsParam | 设定CVBS输出设备参数 | Tiramisu、Muffin、Mochi、Jaguar1 |
| MI_DISP_DeviceGetColorTempeture | 获取当前输出图像的色温参数 | Takoyaki、Tiramisu、Ikayaki、Muffin、Mochi、Opera、Pcupid、Ibopper、Jaguar1、Mhera |
| MI_DISP_DeviceSetColorTempeture | 设定当前输出图像的色温参数 | Takoyaki、Tiramisu、Ikayaki、Muffin、Mochi、Opera、Pcupid、Ibopper、Jaguar1、Mhera |
| MI_DISP_DeviceSetGammaParam | 设定当前输出图像的Gamma | Takoyaki、Tiramisu、Ikayaki、Muffin、Mochi、Opera、Pcupid、Ibopper、Ifackel、Jaguar1、Mhera |
| MI_DISP_SetVideoLayerRotateMode | 设定当前输出图像的旋转角度 | Takoyaki、Tiramisu、Muffin、Mochi、Opera、Jaguar1。其中只有Takoyaki和Tiramisu支持旋转180度。 |
| MI_DISP_ClearInputPortBuffer | 清除当前显示窗口内容 | ALL |
| MI_DISP_InitDev | 初始化disp设备 | ALL |
| MI_DISP_DeInitDev | 反初始化disp设备 | ALL |
| MI_DISP_SetWBCSource | 设置回写设备的回写源 | Tiramisu、Muffin、Mochi、Opera、Ibopper、Mhera |
| MI_DISP_GetWBCSource | 获取回写设备的回写源 | Tiramisu、Muffin、Mochi、Opera、Ibopper、Mhera |
| MI_DISP_SetWBCAttr | 设置回写设备属性 | Tiramisu、Muffin、Mochi、Opera、Ibopper、Mhera |
| MI_DISP_GetWBCAttr | 获取回写设备属性 | Tiramisu、Muffin、Mochi、Opera、Ibopper、Mhera |
| MI_DISP_EnableWBC | 使能回写设备 | Tiramisu、Muffin、Mochi、Opera、Ibopper、Mhera |
| MI_DISP_DisableWBC | 禁用回写设备 | Tiramisu、Muffin、Mochi、Opera、Ibopper、Mhera |
| MI_DISP_GetCurrentPts | 获取当前显示那一帧的时间戳 | Opera、Souffle、Iford、Pcupid、Ibopper、Ifackel、Jaguar1、Mhera |
| MI_DISP_SetPowerConfig | 设置输出能量属性 | ALL |
| MI_DISP_WriteMipiDsiCmd | 写mipidsi命令 | Takoyaki、Tiramisu、Muffin、Opera、Souffle、Pcupid、Ifackel、Jaguar1、Mhera |
| MI_DISP_ReadMipiDsiCmd | 读mipidsi命令 | Takoyaki、Tiramisu、Muffin、Pcupid、Ifackel、Jaguar1、Mhera |
-
注意
-
Opera、Souffle、Iford、Pcupid、Ibopper、Ifackel、Jaguar1、Mhera不需要调用MI_PANEL API。
-
Takoyaki支持的MIPI接口需要调用MI_PANEL_Init API。
-
Tiramisu,Takoyaki,Muffin,Maruko,Pretzel支持的TTL接口需要调用MI_PANEL_Init API。
-
Tiramisu,Muffin,Maruko支持的sRGB接口需要调用MI_PANEL_Init API。
-
Tiramisu,Muffin支持的8080接口需要调用MI_PANEL_Init API。
-
2.1. MI_DISP_Enable¶
-
功能
启用视频输出设备。
-
语法
MI_S32 MI_DISP_Enable (MI_DISP_DEV DispDev); -
形参
参数名称 描述 输入/输出 DispDev 视频输出设备号。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
-
由于系统没有初始化设备为使能状态,所以在使用视频输出功能前必须先进行设备使能操作。
-
在调用设备使能前,必须对设备公共属性进行配置,否则返回设备未配置错误。
-
Opera、Souffle、Iford、Pcupid、Ibopper、Ifackel、Jaguar1、Mhera不需要调用MI_PANEL API。
-
Takoyaki支持的MIPI接口需要调用MI_PANEL_Init API。
-
Tiramisu,Takoyaki,Muffin,Maruko,Pretzel支持的TTL接口需要调用MI_PANEL_Init API。
-
Tiramisu,Muffin,Maruko支持的sRGB接口需要调用MI_PANEL_Init API。
-
Tiramisu,Muffin支持的8080接口需要调用MI_PANEL_Init API。
-
-
流程框图

-
相关主题
2.2. MI_DISP_Disable¶
-
功能
禁用视频输出设备。
-
语法
MI_S32 MI_DISP_Disable(MI_DISP_DEV DispDev); -
形参
参数名称 描述 输入/输出 DispDev 视频输出设备号。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
-
Opera、Souffle、Iford、Pcupid、Ibopper、Ifackel、Jaguar1、Mhera不需要调用MI_PANEL API。
-
Takoyaki支持的MIPI接口需要调用MI_PANEL_DeInit API。
-
Tiramisu,Takoyaki,Muffin,Maruko,Pretzel支持的TTL接口需要调用MI_PANEL_DeInit API。
-
Tiramisu,Muffin,Maruko支持的sRGB接口需要调用MI_PANEL_DeInit API。
-
Tiramisu,Muffin支持的8080接口需要调用MI_PANEL_DeInit API。
-
-
流程框图

-
相关主题
2.3. MI_DISP_SetPubAttr¶
-
功能
配置视频输出设备的公共属性。
-
语法
MI_S32 MI_DISP_SetPubAttr(MI_DISP_DEV DispDev, const MI_DISP_PubAttr_t *pstPubAttr); -
形参
参数名称 描述 输入/输出 DispDev 输出设备号。 输入 pstPubAttr 输出设备公共属性结构体指针。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
相关主题
2.4. MI_DISP_GetPubAttr¶
-
功能
获取视频输出设备的公共属性。
-
语法
MI_S32 MI_DISP_GetPubAttr (MI_DISP_DEV DispDev, MI_DISP_PubAttr_t *pstPubAttr); -
形参
参数名称 描述 输入/输出 DispDev 输出设备号。 输入 pstPubAttr 输出设备公共属性结构体指针。 输出 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
相关主题
2.5. MI_DISP_EnableVideoLayer¶
-
功能
使能视频层
-
语法
MI_S32 MI_DISP_EnableVideoLayer (MI_DISP_LAYER DispLayer); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
相关主题
2.6. MI_DISP_DisableVideoLayer¶
-
功能
禁用视频层
-
语法
MI_S32 MI_DISP_DisableVideoLayer (MI_DISP_LAYER DispLayer); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 禁用视频层前需禁用其上全部的输入端口
-
相关主题
2.7. MI_DISP_SetVideoLayerAttr¶
-
功能
设定视频层属性。
-
语法
MI_S32 MI_DISP_SetVideoLayerAttr(MI_DISP_LAYER DispLayer, const MI_DISP_VideoLayerAttr_t *pstLayerAttr); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 pstLayerAttr 视频层属性结构体指针 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
相关主题
2.8. MI_DISP_GetVideoLayerAttr¶
-
功能
获取视频层属性。
-
语法
MI_S32 MI_DISP_GetVideoLayerAttr(MI_DISP_LAYER DispLayer, MI_DISP_VideoLayerAttr_t *pstLayerAttr); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 pstLayerAttr 视频层属性结构体指针 输出 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
相关主题
2.9. MI_DISP_BindVideoLayer¶
-
功能
绑定视频层到指定设备。
-
语法
MI_S32 MI_DISP_BindVideoLayer(MI_DISP_LAYER DispLayer, MI_DISP_DEV DispDev); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 DispDev 输出设备号。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
-
在调用此函数接口之前一定要确保设备已经处于启用状态。
-
调用前保证视频层所有的输入端口处于禁用状态
-
disp和其他模块绑定时,disp的device、video layer、input port和对应的channel、port映射关系如下:
Tiramisu:
Muffin支持两种绑定关系:
Mochi支持两种绑定关系:
Mhera支持两种绑定关系:

-
-
相关主题
2.10. MI_DISP_UnBindVideoLayer¶
-
功能
解绑视频层与指定设备
-
语法
MI_S32 MI_DISP_UnBindVideoLayer(MI_DISP_LAYER DispLayer, MI_DISP_DEV DispDev); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 DispDev 输出设备号。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
-
解绑前需禁用其上全部的输入端口。
-
解绑前需禁用视频层。
-
-
相关主题
2.11. MI_DISP_SetPlayToleration¶
-
功能
设置播放容忍度。
-
语法
MI_S32 MI_DISP_SetPlayToleration(MI_DISP_LAYER DispLayer, MI_U32 u32Toleration); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 u32Toleration 播放容忍度,用来调整帧率控制算法的误差允许范围 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
-
播放容忍度单位为毫秒。
-
调用前请保证视频层已经使能。
-
-
相关主题
2.12. MI_DISP_GetPlayToleration¶
-
功能
获取播放容忍度。
-
语法
MI_S32 MI_DISP_GetPlayToleration (MI_DISP_LAYER DispLayer, MI_U32 *pu32Toleration); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 pu32Toleration 播放容忍度。 输出 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
-
播放容忍度单位为毫秒。
-
调用前请保证视频层已经使能。
-
-
相关主题
2.13. MI_DISP_SetVideoLayerAttrBatchBegin¶
-
功能
设置视频层上输入端口相关操作开始。
-
语法
MI_S32 MI_DISP_SetVideoLayerAttrBatchBegin (MI_DISP_LAYER DispLayer); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
-
调用前请保证视频层已经使能。
-
MI_DISP_SetVideoLayerAttrBatchBegin和MI_DISP_SetVideoLayerAttrBatchEnd接口要配对使用,否则MI_DISP_SetVideoLayerAttrBatchBegin后设置视频层上输入端口相关操作不会生效。
-
此接口支持以下接口的批处理:
MI_DISP_EnableInputPort、MI_DISP_DisableInputPort、MI_DISP_HideInputPort、MI_DISP_ShowInputPort
-
对于不支持批处理的接口会立即生效。
-
批处理中输入端口操作都是在MI_DISP_SetVideoLayerAttrBatchEnd调用之后生效。
例如批处理禁用输入端口0 ~ 15,接口顺序为MI_DISP_SetVideoLayerAttrBatchBegin、MI_DISP_DisableInputPort(0 ~ 15)、MI_DISP_SetVideoLayerAttrBatchEnd。
-
-
相关主题
2.14. MI_DISP_SetVideoLayerAttrBatchEnd¶
-
功能
设置视频层上输入端口相关操作结束。
-
语法
MI_S32 MI_DISP_SetVideoLayerAttrBatchEnd (MI_DISP_LAYER DispLayer); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
-
调用前请保证MI_DISP_SetVideoLayerAttrBatchBegin已被调用。
-
调用前请保证视频层已经使能。
-
-
相关主题
2.15. MI_DISP_EnableInputPort¶
-
功能
启用指定的视频输入端口。
-
语法
MI_S32 MI_DISP_EnableInputPort (MI_DISP_LAYER DispLayer, MI_DISP_INPUTPORT LayerInputPort); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 LayerInputPort 视频输入端口号。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
-
调用前必须使能视频层
-
调用前必须绑定视频层
-
-
相关主题
2.16. MI_DISP_DisableInputPort¶
-
功能
禁用指定的视频输入端口。
-
语法
MI_S32 MI_DISP_DisableInputPort (MI_DISP_LAYER DispLayer, MI_DISP_INPUTPORT LayerInputPort); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 LayerInputPort 视频输入端口号。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
-
相关主题
2.17. MI_DISP_SetInputPortAttr¶
-
功能
配置指定视频输入端口的属性。
-
语法
MI_S32 MI_DISP_SetInputPortAttr(MI_DISP_LAYER DispLayer, MI_DISP_INPUTPORT LayerInputPort, MI_DISP_InputPortAttr_t *pstInputPortAttr); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 LayerInputPort 视频输入端口号。 输入 pstInputPortAttr 视频输入端口属性指针 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
-
调用前必须使能视频层
-
调用前必须绑定视频层
-
-
相关主题
2.18. MI_DISP_GetInputPortAttr¶
-
功能
获取指定视频输入端口的属性。
-
语法
MI_S32 MI_DISP_GetInputPortAttr(MI_DISP_LAYER DispLayer, MI_DISP_INPUTPORT LayerInputPort, MI_DISP_InputPortAttr_t *pstInputPortAttr); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 LayerInputPort 视频输入端口号。 输入 pstInputPortAttr 视频输入端口属性指针 输出 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
-
调用前必须使能视频层
-
调用前必须绑定视频层
-
-
相关主题
2.19. MI_DISP_SetInputPortDispPos¶
-
功能
设置指定视频输入端口的显示位置。
-
语法
MI_S32 MI_DISP_SetInputPortDispPos(MI_DISP_LAYER DispLayer, MI_DISP_INPUTPORT LayerInputPort, const MI_DISP_Position_t *pstDispPos); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 LayerInputPort 视频输入端口号。 输入 pstDispPos 输入端口位置指针 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
-
相关主题
2.20. MI_DISP_GetInputPortDispPos¶
-
功能
获取指定视频输入端口的显示位置。
-
语法
MI_S32 MI_DISP_GetInputPortDispPos(MI_DISP_LAYER DispLayer, MI_DISP_INPUTPORT LayerInputPort, MI_DISP_Position_t *pstDispPos); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 LayerInputPort 视频输入端口号。 输入 pstDispPos 输入端口位置指针 输出 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
-
相关主题
2.21. MI_DISP_PauseInputPort¶
-
功能
暂停指定的视频输入端口。
-
语法
MI_S32 MI_DISP_PauseInputPort (MI_DISP_LAYER DispLayer, MI_DISP_INPUTPORT LayerInputPort); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 LayerInputPort 视频输入端口号。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
-
相关主题
2.22. MI_DISP_ResumeInputPort¶
-
功能
恢复指定的视频输入端口。
-
语法
MI_S32 MI_DISP_ResumeInputPort (MI_DISP_LAYER DispLayer, MI_DISP_INPUTPORT LayerInputPort); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 LayerInputPort 视频输入端口号。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
-
相关主题
2.23. MI_DISP_StepInputPort¶
-
功能
单帧播放指定的视频输入端口。
-
语法
MI_S32 MI_DISP_StepInputPort (MI_DISP_LAYER DispLayer, MI_DISP_INPUTPORT LayerInputPort); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 LayerInputPort 视频输入端口号。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
-
相关主题
2.24. MI_DISP_ShowInputPort¶
-
功能
显示指定的视频输入端口。
-
语法
MI_S32 MI_DISP_ShowInputPort (MI_DISP_LAYER DispLayer, MI_DISP_INPUTPORT LayerInputPort); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 LayerInputPort 视频输入端口号。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
-
相关主题
2.25. MI_DISP_HideInputPort¶
-
功能
隐藏指定的视频输入端口。
-
语法
MI_S32 MI_DISP_HideInputPort (MI_DISP_LAYER DispLayer, MI_DISP_INPUTPORT LayerInputPort); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 LayerInputPort 视频输入端口号。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
-
相关主题
2.26. MI_DISP_SetInputPortSyncMode¶
-
功能
设定指定的视频输入端口同步模式。
-
语法
MI_S32 MI_DISP_SetInputPortSyncMode (MI_DISP_LAYER DispLayer, MI_DISP_INPUTPORT LayerInputPort, MI_DISP_SyncMode_e eMode); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 LayerInputPort 视频输入端口号。 输入 eMode 输入端口同步模式 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
2.27. MI_DISP_QueryInputPortStat¶
-
功能
查询视频输入端口状态。
-
语法
MI_S32 MI_DISP_QueryInputPortStat(MI_DISP_LAYER DispLayer, MI_DISP_INPUTPORT LayerInputPort, MI_DISP_QueryChannelStatus_t *pstStatus);
n
-
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 LayerInputPort 视频输入端口号。 输入 pstStatus 输入端口状态指针。 输出 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
2.28. MI_DISP_SetZoomInWindow¶
-
功能
裁剪视频输入端口。
-
语法
MI_S32 MI_DISP_SetZoomInWindow(MI_DISP_LAYER DispLayer, MI_DISP_INPUTPORT LayerInputPort, MI_DISP_VidWinRect_t *pstZoomRect); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 LayerInputPort 视频输入端口号。 输入 pstZoomRect 视频裁剪属性指针。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
-
相关主题
2.29. MI_DISP_GetVgaParam¶
-
功能
获取VGA输出设备参数。
-
语法
MI_S32 MI_DISP_GetVgaParam(MI_DISP_DEV DispDev, MI_DISP_VgaParam_t *pstVgaParam); -
形参
参数名称 描述 输入/输出 DispDev 视频输出设备号。 输入 pstVgaParam VGA图像输出效果结构体指针。 输出 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
-
相关主题
2.30. MI_DISP_SetVgaParam¶
-
功能
设定VGA输出设备参数。
-
语法
MI_S32 MI_DISP_SetVgaParam (MI_DISP_DEV DispDev, MI_DISP_VgaParam_t *pstVgaParam); -
形参
参数名称 描述 输入/输出 DispDev 视频输出设备号。 输入 pstVgaParam VGA图像输出效果结构体指针。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
-
相关主题
2.31. MI_DISP_GetHdmiParam¶
-
功能
获取HDMI输出设备参数。
-
语法
MI_S32 MI_DISP_GetHdmiParam(MI_DISP_DEV DispDev, MI_DISP_HdmiParam_t *pstHdmiParam); -
形参
参数名称 描述 输入/输出 DispDev 视频输出设备号。 输入 pstHdmiParam HDMI图像输出效果结构体指针。 输出 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
-
相关主题
2.32. MI_DISP_SetHdmiParam¶
-
功能
设定HDMI输出设备参数。
-
语法
MI_S32 MI_DISP_SetHdmiParam(MI_DISP_DEV DispDev, MI_DISP_HdmiParam_t *pstHdmiParam); -
形参
参数名称 描述 输入/输出 DispDev 视频输出设备号。 输入 pstHdmiParam HDMI图像输出效果结构体指针。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
-
相关主题
2.33. MI_DISP_GetLcdParam¶
-
功能
获取LCD输出设备参数。
-
语法
MI_S32 MI_DISP_GetLcdParam(MI_DISP_DEV DispDev, MI_DISP_LcdParam_t *pstLcdParam); -
形参
参数名称 描述 输入/输出 DispDev 视频输出设备号。 输入 pstLcdParam LCD图像输出效果结构体指针。 输出 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
-
相关主题
2.34. MI_DISP_SetLcdParam¶
-
功能
设定LCD输出设备参数。
-
语法
MI_S32 MI_DISP_SetLcdParam(MI_DISP_DEV DispDev, MI_DISP_LcdParam_t *pstLcdParam); -
形参
参数名称 描述 输入/输出 DispDev 视频输出设备号。 输入 pstLcdParam LCD图像输出效果结构体指针。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
-
相关主题
2.35. MI_DISP_GetCvbsParam¶
-
功能
获取CVBS输出设备参数。
-
语法
MI_S32 MI_DISP_GetCvbsParam(MI_DISP_DEV DispDev, MI_DISP_CvbsParam_t *pstCvbsParam); -
形参
参数名称 描述 输入/输出 DispDev 视频输出设备号。 输入 pstCvbsParam CVBS图像输出效果结构体指针。 输出 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
-
相关主题
2.36. MI_DISP_SetCvbsParam¶
-
功能
设定CVBS输出设备参数。
-
语法
MI_S32 MI_DISP_SetCvbsParam(MI_DISP_DEV DispDev, MI_DISP_CvbsParam_t *pstCvbsParam); -
形参
参数名称 描述 输入/输出 DispDev 视频输出设备号。 输入 pstCvbsParam CVBS图像输出效果结构体指针。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
-
相关主题
2.37. MI_DISP_DeviceGetColorTempeture¶
-
功能
获取图像输出色温参数。
-
语法
MI_S32 MI_DISP_DeviceGetColorTempeture(MI_DISP_DEV DispDev, MI_DISP_ColorTemperature_t *pstColorTempInfo); -
形参
参数名称 描述 输入/输出 DispDev 视频输出设备号。 输入 pstColorTempInfo 图像输出色温参数结构体指针。 输出 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
-
相关主题
2.38. MI_DISP_DeviceSetColorTempeture¶
-
功能
设定图像输出色温参数。
-
语法
MI_S32 MI_DISP_DeviceSetColorTempeture(MI_DISP_DEV DispDev, MI_DISP_ColorTemperature_t *pstColorTempInfo); -
形参
参数名称 描述 输入/输出 DispDev 视频输出设备号。 输入 pstColorTempInfo 图像输出色温参数结构体指针。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
-
相关主题
2.39. MI_DISP_DeviceSetGammaParam¶
-
功能
设定图像输出Gamma参数。
-
语法
MI_S32 MI_DISP_DeviceSetGammaParam(MI_DISP_DEV DispDev, MI_DISP_GammaParam_t *pstGammaParam); -
形参
参数名称 描述 输入/输出 DispDev 视频输出设备号。 输入 pstGammaParam 图像输出Gamma参数结构体指针。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
2.40. MI_DISP_SetVideoLayerRotateMode¶
-
功能
设定视频层旋转参数。
-
语法
MI_S32 MI_DISP_SetVideoLayerRotateMode(MI_DISP_LAYER DispLayer, MI_DISP_RotateConfig_t *pstRotateConfig); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 pstRotateConfig 图像输出旋转参数结构体指针。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
-
调用前需使能视频层。
-
调用前需禁用其上全部的输入端口。
-
前级需绑定VDEC/SCL。
-
每个视频层仅支持一个输入端口。例如,开启旋转90°后,每个视频层仅能启用输入端口0。
-
旋转功能最大支持的分辨率是1920x1080。
-
2.41. MI_DISP_ClearInputPortBuffer¶
-
功能
清除当前显示窗口视频数据。
-
语法
MI_S32 MI_DISP_ClearInputPortBuffer(MI_DISP_LAYER DispLayer, MI_DISP_INPUTPORT LayerInputPort, MI_BOOL bClrAll); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号。 输入 LayerInputPort 视频输入端口号。 输入 bClrAll 是否清除当前显示内容 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频层。
2.42. MI_DISP_InitDev¶
-
功能
初始化disp设备。
-
语法
MI_S32 MI_DISP_InitDev(MI_DISP_InitParam_t *pstInitParam); -
形参
参数名称 描述 输入/输出 pstInitParam 设备初始化参数。 暂没有用到,可以配置为NULL 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 如果本接口在调用任意的DISP API之前没有调用,内部会自动初始化设备
2.43. MI_DISP_DeInitDev¶
-
功能
反初始化disp设备。
-
语法
MI_S32 MI_DISP_DeInitDev(void); -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
-
此函数必须在初始化设备后调用,否则返回失败。
-
如果本接口在app退出前没有调用,内部会自动反初始化设备。
-
在动态切换到下一个输出接口类型之前,要先调用此接口函数。
-
2.44. MI_DISP_SetWBCSource¶
-
功能
设置视频回写设备的回写源,可设置从设备回写还是从设备的视频层回写。
-
语法
MI_S32 MI_DISP_SetWBCSource(MI_DISP_WBC DispWbc, const MI_DISP_WBC_Source_t *pstWbcSource); -
形参
参数名称 描述 输入/输出 DispWbc 回写设备号。 输入 pstWbcSource 回写源结构体指针。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
-
回写设备只支持一个。
-
u32SourceId 只支持0/1。
-
-
举例
MI_DISP_WBC_Source_t stWbcSource; MI_DISP_WBC_Attr_t stWbcAttr; stWbcSource.eSourceType = MI_DISP_WBC_SOURCE_DEV; stWbcSource.u32SourceId = 0; MI_DISP_SetWBCSource(0, &stWbcSource); stWbcAttr.stTargetSize.u32Width = 720; stWbcAttr.stTargetSize.u32Height = 576; stWbcAttr.ePixFormat = E_MI_SYS_PIXEL_FRAME_YUV_SEMIPLANAR_420; MI_DISP_SetWBCAttr(0, &stWbcAttr); MI_DISP_EnableWBC(0); stSrcChnPort.eModId = E_MI_MODULE_ID_WBC; stSrcChnPort.u32DevId = 0; stSrcChnPort.u32ChnId = 0; stSrcChnPort.u32PortId = 0; stDstChnPort.eModId = E_MI_MODULE_ID_DISP; stDstChnPort.u32DevId = 1; stDstChnPort.u32ChnId = 0; stDstChnPort.u32PortId = 0; MI_SYS_BindChnPort(0, &stSrcChnPort, &stDstChnPort, 30, 30); -
相关主题
2.45. MI_DISP_GetWBCSource¶
-
功能
获取视频回写设备的回写源。
-
语法
MI_S32 MI_DISP_GetWBCSource(MI_DISP_WBC DispWbc, MI_DISP_WBC_Source_t *pstWbcSource); -
形参
参数名称 描述 输入/输出 DispWbc 回写设备号。 输入 pstWbcSource 回写源结构体指针。 输出 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
-
回写设备只支持一个。
-
u32SourceId 只支持0/1。
-
-
相关主题
2.46. MI_DISP_SetWBCAttr¶
-
功能
设置视频回写设备属性。
-
语法
MI_S32 MI_DISP_SetWBCAttr(MI_DISP_WBC DispWbc, const MI_DISP_WBC_Attr_t *pstWbcAttr); -
形参
参数名称 描述 输入/输出 DispWbc 回写设备号。 输入 pstWbcAttr 回写设备属性结构体指针。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
-
回写设备只支持一个。
-
u32SourceId 只支持0/1。
-
-
相关主题
2.47. MI_DISP_GetWBCAttr¶
-
功能
获取视频回写设备属性。
-
语法
MI_S32 MI_DISP_GetWBCAttr(MI_DISP_WBC DispWbc, MI_DISP_WBC_Attr_t *pstWbcAttr); -
形参
参数名称 描述 输入/输出 DispWbc 回写设备号。 输入 pstWbcAttr 回写设备属性结构体指针。 输出 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
-
回写设备只支持一个。
-
u32SourceId 只支持0/1。
-
-
相关主题
2.48. MI_DISP_EnableWBC¶
-
功能
使能视频回写设备。
-
语法
MI_S32 MI_DISP_EnableWBC(MI_DISP_WBC DispWbc); -
形参
参数名称 描述 输入/输出 DispWbc 回写设备号。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
-
回写设备只支持一个。
-
u32SourceId 只支持0/1。
-
-
相关主题
2.49. MI_DISP_DisableWBC¶
-
功能
禁用视频回写设备。
-
语法
MI_S32 MI_DISP_DisableWBC(MI_DISP_WBC DispWbc); -
形参
参数名称 描述 输入/输出 DispWbc 回写设备号。 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
-
回写设备只支持一个。
-
u32SourceId 只支持0/1。
-
-
相关主题
2.50. MI_DISP_GetCurrentPts¶
-
功能
获取当前显示那一帧的时间戳。
-
语法
MI_S32 MI_DISP_GetCurrentPts (MI_DISP_LAYER DispLayer, MI_DISP_INPUTPORT LayerInputPort, MI_U64 *pu64Pts); -
形参
参数名称 描述 输入/输出 DispLayer 视频输出视频层号 输入 LayerInputPort 视频输入端口号 输入 pu64Pts 存储时间戳指针 输出 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
-
注意
- 调用前必须使能视频输入端口。
2.51. MI_DISP_SetPowerConfig¶
-
功能
设置输出能量属性。
-
语法
MI_S32 MI_DISP_SetPowerConfig (MI_DISP_DEV DispDev, MI_DISP_PowerConfig_t *pstPowerCfg); -
形参
参数名称 描述 输入/输出 DispDev 视频输出设备号 输入 pstPowerCfg 配置结构体指针 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
2.52. MI_DISP_WriteMipiDsiCmd¶
-
功能
写mipidsi命令。
-
语法
MI_S32 MI_DISP_WriteMipiDsiCmd(MI_DISP_DEV DispDev, MI_DISP_WriteMipiDsiCmd_t *pstWriteMipiDsiCmd); -
形参
参数名称 描述 输入/输出 DispDev 视频输出设备号 输入 pstWriteMipiDsiCmd 配置结构体指针 输入 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
2.53. MI_DISP_ReadMipiDsiCmd¶
-
功能
读mipidsi命令。
-
语法
MI_S32 MI_DISP_ReadMipiDsiCmd(MI_DISP_DEV DispDev, MI_DISP_ReadMipiDsiCmd_t *pstReadMipiDsiCmd); -
形参
参数名称 描述 输入/输出 DispDev 视频输出设备号 输入 pstReadMipiDsiCmd 配置结构体指针 输入输出 -
返回值
-
0:成功。
-
非0:失败,详情参照错误码。
-
-
依赖
-
头文件:mi_disp.h、mi_disp_datatype.h
-
库文件:libmi_disp.a / libmi_disp.so
-
3. 数据类型¶
DISP模块相关数据类型定义如下:
| 数据类型 | 描述 | 支持的芯片 |
|---|---|---|
| MI_DISP_DEV | 定义DISP_DEV类型 | ALL |
| MI_DISP_LAYER | 定义DISP_LAYER类型 | ALL |
| MI_DISP_INPUTPORT | 定义LAYER_INPUTPORT类型。 | ALL |
| MI_DISP_Interface_e | 定义DISP视频输出接口 | ALL |
| MI_DISP_OutputTiming_e | 定义DISP视频输出timing | ALL |
| MI_DISP_SyncInfo_t | 定义DISP视频输出时序相关参数。 | ALL |
| MI_DISP_PubAttr_t | 定义 DISP公共属性。 | ALL |
| MI_DISP_Csc_t | 定义 DISP 颜色转换信息 | MSR930、MSR650x、Taiyaki、Takoyaki、Tiramisu、Muffin、Mochi、Opera、Pcupid、Ibopper、Jaguar1、Mhera |
| MI_DISP_CscMatrix_e | 定义 DISP 颜色转换矩阵 | MSR930、MSR650x、Taiyaki、Takoyaki、Tiramisu、Muffin、Mochi、Opera、Pcupid、Ibopper、Jaguar1、Mhera |
| MI_DISP_VgaParam_t | 定义 DISP VGA输出参数信息 | MSR930、MSR650x、Taiyaki、Tiramisu、Muffin、Mochi、Ibopper、Mhera |
| MI_DISP_HdmiParam_t | 定义 DISP HDMI输出参数信息。 | MSR930、MSR650x、Taiyaki、Tiramisu、Muffin、Mochi、Ibopper、Mhera |
| MI_DISP_LcdParam_t | 定义DISP LCD输出参数信息 | Takoyaki、Tiramisu、Ikayaki、Muffin、Mochi、Opera、Pcupid、Ibopper、Jaguar1、Mhera |
| MI_DISP_CvbsParam_t | 定义 DISP CVBS输出图像参数。 | Tiramisu、Muffin、Mochi、Jaguar1 |
| MI_DISP_ColorTemperature_t | 定义DISP视频输出色温参数 | Takoyaki、Tiramisu、Ikayaki、Muffin、Mochi、Opera、Pcupid、Ibopper、Jaguar1、Mhera |
| MI_DISP_GammaParam_t | 定义DISP视频输出Gamma参数 | Takoyaki、Tiramisu、Ikayaki、Muffin、Mochi、Opera、Pcupid、Ibopper、Ifackel、Jaguar1、Mhera |
| MI_DISP_VideoLayerSize_t | 定义 DISP视频层画面大小。 | ALL |
| MI_DISP_VideoLayerAttr_t | 定义 DISP视频层属性 | ALL |
| MI_DISP_RotateMode_e | 定义 DISP 视频输出旋转角度 | Takoyaki、Tiramisu、Muffin、Mochi、Opera、Jaguar1。其中只有Takoyaki和Tiramisu支持旋转180度。 |
| MI_DISP_RotateConfig_t | 定义DISP视频旋转参数 | Takoyaki、Tiramisu、Muffin、Mochi、Opera、Jaguar1。其中只有Takoyaki和Tiramisu支持旋转180度。 |
| MI_DISP_VidWinRect_t | 定义DISP视频输出窗口信息 | ALL |
| MI_DISP_InputPortAttr_t | 定义 DISP输入端口属性 | ALL |
| MI_DISP_Position_t | 定义 DISP输入端口位置 | ALL |
| MI_DISP_SyncMode_e | 定义 DISP同步模式 | MSR930、MSR650x |
| MI_DISP_InputPortStatus_e | 定义 DISP输入端口状态类型 | ALL |
| MI_DISP_QueryChannelStatus_t | 定义 DISP输入端口状态信息。 | ALL |
| MI_DISP_InitParam_t | 定义DISP设备初始化参数 | ALL |
| MI_DISP_WBC | 定义DISP_WBC类型 | Tiramisu、Muffin、Mochi、Opera、Ibopper、Mhera |
| MI_DISP_WBC_SourceType_e | 视频回写设备捕获数据的源类型 | Tiramisu、Muffin、Mochi、Opera、Ibopper、Mhera |
| MI_DISP_WBC_Source_t | 视频回写设备回写源 | Tiramisu、Muffin、Mochi、Opera、Ibopper、Mhera |
| MI_DISP_WBC_TargetSize_t | 视频回写的目标大小 | Tiramisu、Muffin、Mochi、Opera、Ibopper、Mhera |
| MI_DISP_WBC_Attr_t | 视频回写设备属性 | Tiramisu、Muffin、Mochi、Opera、Ibopper、Mhera |
| MI_DISP_PowerConfig_t | 输出能量配置。 | ALL |
| MI_DISP_MipiDsiPacketType_e | mipidsi 包类型。 | Takoyaki、Tiramisu、Muffin、Opera、Souffle、Pcupid、Ifackel、Jaguar1 |
| MI_DISP_WriteMipiDsiCmd_t | 写 mipidsi 命令配置。 | Takoyaki、Tiramisu、Muffin、Opera、Souffle、Pcupid、Ifackel、Jaguar1、Mhera |
| MI_DISP_ReadMipiDsiCmd_t | 读取 mipidsi 命令配置。 | Takoyaki、Tiramisu、Muffin、Pcupid、Ifackel、Jaguar1、Mhera |
| MI_DISP_ErrCode_e | 定义DISP错误码 | ALL |
| MI_DISP_LayerId_e | 定义DISP层ID | ALL |
| MI_DISP_CompressAttr_t | 定义DISP压缩属性 | ALL |
3.1. MI_DISP_DEV¶
-
说明
定义DISP_DEV类型。
-
定义
typedef MI_S32 MI_DISP_DEV;
3.2. MI_DISP_LAYER¶
-
说明
定义DISP LAYER类型。
DISP以video layer作为输出单位,对于有多个Input Port的DISP来说,所有Input Port最终拼接为一个video layer输出到显示器;对于只有一个Input Port的DISP,Input Port size等于video layer size。
-
定义
typedef MI_S32 MI_DISP_LAYER;
3.3. MI_DISP_INPUTPORT¶
-
说明
定义 LAYER_INPUTPORT类型。
-
定义
typedef MI_U32 MI_DISP_INPUTPORT;
3.4. MI_DISP_Interface_e¶
-
说明
定义视频输出接口。
-
定义
typedef enum { E_MI_DISP_INTF_CVBS = 0, E_MI_DISP_INTF_YPBPR, E_MI_DISP_INTF_VGA, E_MI_DISP_INTF_BT656, E_MI_DISP_INTF_BT1120, E_MI_DISP_INTF_HDMI, E_MI_DISP_INTF_LCD, E_MI_DISP_INTF_BT656_H, E_MI_DISP_INTF_BT656_L, E_MI_DISP_INTF_TTL, E_MI_DISP_INTF_MIPIDSI, E_MI_DISP_INTF_TTL_SPI_IF, E_MI_DISP_INTF_SRGB, E_MI_DISP_INTF_MCU, E_MI_DISP_INTF_MCU_NOFLM, E_MI_DISP_INTF_BT601, E_MI_DISP_INTF_BT1120_DDR, E_MI_DISP_INTF_LVDS, E_MI_DISP_INTF_LVDS1, E_MI_DISP_INTF_DUAL_LVDS, E_MI_DISP_INTF_MIPIDSI1, E_MI_DISP_INTF_MAX, }MI_DISP_Interface_e; -
接口支持的Timing
接口(eIntfType) 支持的时序(eIntfSync) E_MI_DISP_INTF_HDMI E_MI_DISP_OUTPUT_1080P60, E_MI_DISP_OUTPUT_1080P30, E_MI_DISP_OUTPUT_1080P50, E_MI_DISP_OUTPUT_1080P25, E_MI_DISP_OUTPUT_1080P24, E_MI_DISP_OUTPUT_1920x1080_2997, E_MI_DISP_OUTPUT_1920x1080_5994, E_MI_DISP_OUTPUT_1920x1080_2398, E_MI_DISP_OUTPUT_720P60, E_MI_DISP_OUTPUT_720P30, E_MI_DISP_OUTPUT_720P50, E_MI_DISP_OUTPUT_720P25, E_MI_DISP_OUTPUT_720P24, E_MI_DISP_OUTPUT_1280x720_2997, E_MI_DISP_OUTPUT_1280x720_5994, E_MI_DISP_OUTPUT_480P60, E_MI_DISP_OUTPUT_576P50, E_MI_DISP_OUTPUT_640x480_60, E_MI_DISP_OUTPUT_848x480_60, E_MI_DISP_OUTPUT_800x600_60, E_MI_DISP_OUTPUT_2560x1440_60, E_MI_DISP_OUTPUT_2560x1440_50, E_MI_DISP_OUTPUT_2560x1440_30, E_MI_DISP_OUTPUT_2560x1600_60, E_MI_DISP_OUTPUT_1024x768_60, E_MI_DISP_OUTPUT_1280x1024_60, E_MI_DISP_OUTPUT_1366x768_60, E_MI_DISP_OUTPUT_1440x900_60, E_MI_DISP_OUTPUT_1280x800_60, E_MI_DISP_OUTPUT_1680x1050_60, E_MI_DISP_OUTPUT_1600x1200_60, E_MI_DISP_OUTPUT_1280x768_60, E_MI_DISP_OUTPUT_1280x960_60, E_MI_DISP_OUTPUT_1360x768_60, E_MI_DISP_OUTPUT_1400x1050_60, E_MI_DISP_OUTPUT_1600x900_60, E_MI_DISP_OUTPUT_1920x1440_60, E_MI_DISP_OUTPUT_1920x1200_60, E_MI_DISP_OUTPUT_3840x2160_30, E_MI_DISP_OUTPUT_3840x2160_25, E_MI_DISP_OUTPUt_3840x2160_24, E_MI_DISP_OUTPUT_3840x2160_2997 E_MI_DISP_INTF_VGA E_MI_DISP_OUTPUT_1080P60, E_MI_DISP_OUTPUT_1080P30, E_MI_DISP_OUTPUT_1080P50, E_MI_DISP_OUTPUT_1080P25, E_MI_DISP_OUTPUT_1080P24, E_MI_DISP_OUTPUT_1920x1080_2997, E_MI_DISP_OUTPUT_1920x1080_5994, E_MI_DISP_OUTPUT_1920x1080_2398, E_MI_DISP_OUTPUT_720P60, E_MI_DISP_OUTPUT_720P30, E_MI_DISP_OUTPUT_720P50, E_MI_DISP_OUTPUT_720P25, E_MI_DISP_OUTPUT_720P24, E_MI_DISP_OUTPUT_1280x720_2997, E_MI_DISP_OUTPUT_1280x720_5994, E_MI_DISP_OUTPUT_480P60, E_MI_DISP_OUTPUT_576P50, E_MI_DISP_OUTPUT_640x480_60, E_MI_DISP_OUTPUT_848x480_60, E_MI_DISP_OUTPUT_800x600_60, E_MI_DISP_OUTPUT_1024x768_60, E_MI_DISP_OUTPUT_1280x1024_60, E_MI_DISP_OUTPUT_1366x768_60, E_MI_DISP_OUTPUT_1440x900_60, E_MI_DISP_OUTPUT_1280x800_60, E_MI_DISP_OUTPUT_1680x1050_60, E_MI_DISP_OUTPUT_1600x1200_60, E_MI_DISP_OUTPUT_1280x768_60, E_MI_DISP_OUTPUT_1280x960_60, E_MI_DISP_OUTPUT_1360x768_60, E_MI_DISP_OUTPUT_1400x1050_60, E_MI_DISP_OUTPUT_1600x900_60, E_MI_DISP_OUTPUT_1920x1200_60 E_MI_DISP_INTF_HDMI+E_MI_DISP_INTF_VGA E_MI_DISP_OUTPUT_1080P60, E_MI_DISP_OUTPUT_1080P30, E_MI_DISP_OUTPUT_1080P50, E_MI_DISP_OUTPUT_1080P25, E_MI_DISP_OUTPUT_1080P24, E_MI_DISP_OUTPUT_1920x1080_2997, E_MI_DISP_OUTPUT_1920x1080_5994, E_MI_DISP_OUTPUT_1920x1080_2398, E_MI_DISP_OUTPUT_720P60, E_MI_DISP_OUTPUT_720P30, E_MI_DISP_OUTPUT_720P50, E_MI_DISP_OUTPUT_720P25, E_MI_DISP_OUTPUT_720P24, E_MI_DISP_OUTPUT_1280x720_2997, E_MI_DISP_OUTPUT_1280x720_5994, E_MI_DISP_OUTPUT_480P60, E_MI_DISP_OUTPUT_576P50, E_MI_DISP_OUTPUT_640x480_60, E_MI_DISP_OUTPUT_848x480_60, E_MI_DISP_OUTPUT_800x600_60, E_MI_DISP_OUTPUT_1024x768_60, E_MI_DISP_OUTPUT_1280x1024_60, E_MI_DISP_OUTPUT_1366x768_60, E_MI_DISP_OUTPUT_1440x900_60, E_MI_DISP_OUTPUT_1280x800_60, E_MI_DISP_OUTPUT_1680x1050_60, E_MI_DISP_OUTPUT_1600x1200_60, E_MI_DISP_OUTPUT_1280x768_60, E_MI_DISP_OUTPUT_1280x960_60, E_MI_DISP_OUTPUT_1360x768_60, E_MI_DISP_OUTPUT_1400x1050_60, E_MI_DISP_OUTPUT_1600x900_60, E_MI_DISP_OUTPUT_1920x1200_60 E_MI_DISP_INTF_BT1120 E_MI_DISP_OUTPUT_1080P60, E_MI_DISP_OUTPUT_1080P30, E_MI_DISP_OUTPUT_1080P50, E_MI_DISP_OUTPUT_1080P25, E_MI_DISP_OUTPUT_720P60, E_MI_DISP_OUTPUT_720P30, E_MI_DISP_OUTPUT_720P50, E_MI_DISP_OUTPUT_720P25, E_MI_DISP_OUTPUT_480P60, E_MI_DISP_OUTPUT_576P50, E_MI_DISP_OUTPUT_720I25, E_MI_DISP_OUTPUT_720I30, E_MI_DISP_OUTPUT_720I50, E_MI_DISP_OUTPUT_720I60, E_MI_DISP_OUTPUT_1080I25, E_MI_DISP_OUTPUT_1080I30, E_MI_DISP_OUTPUT_USER E_MI_DISP_INTF_BT1120_DDR E_MI_DISP_OUTPUT_3840x2160_30, E_MI_DISP_OUTPUT_3840x2160_25, E_MI_DISP_OUTPUT_1080P60, E_MI_DISP_OUTPUT_1080P30, E_MI_DISP_OUTPUT_1080P50, E_MI_DISP_OUTPUT_1080P25, E_MI_DISP_OUTPUT_720P60, E_MI_DISP_OUTPUT_720P30, E_MI_DISP_OUTPUT_720P50, E_MI_DISP_OUTPUT_720P25, E_MI_DISP_OUTPUT_480P60, E_MI_DISP_OUTPUT_576P50, E_MI_DISP_OUTPUT_USER E_MI_DISP_INTF_BT656 E_MI_DISP_OUTPUT_1080P30, E_MI_DISP_OUTPUT_1080P50, E_MI_DISP_OUTPUT_1080P25, E_MI_DISP_OUTPUT_720P60, E_MI_DISP_OUTPUT_720P30, E_MI_DISP_OUTPUT_720P50, E_MI_DISP_OUTPUT_720P25, E_MI_DISP_OUTPUT_480P60, E_MI_DISP_OUTPUT_576P50, E_MI_DISP_OUTPUT_720I25, E_MI_DISP_OUTPUT_720I30, E_MI_DISP_OUTPUT_720I50, E_MI_DISP_OUTPUT_720I60, E_MI_DISP_OUTPUT_1080I25, E_MI_DISP_OUTPUT_1080I30, E_MI_DISP_OUTPUT_USER E_MI_DISP_INTF_CVBS E_MI_DISP_OUTPUT_PAL, E_MI_DISP_OUTPUT_NTSC E_MI_DISP_INTF_TTL E_MI_DISP_OUTPUT_USER E_MI_DISP_INTF_MIPIDSI E_MI_DISP_OUTPUT_3840x2160_30, E_MI_DISP_OUTPUT_3840x2160_25, E_MI_DISP_OUTPUT_1080P60, E_MI_DISP_OUTPUT_1080P30, E_MI_DISP_OUTPUT_1080P50, E_MI_DISP_OUTPUT_1080P25, E_MI_DISP_OUTPUT_720P60, E_MI_DISP_OUTPUT_720P30, E_MI_DISP_OUTPUT_720P50, E_MI_DISP_OUTPUT_720P25, E_MI_DISP_OUTPUT_480P60, E_MI_DISP_OUTPUT_576P50, E_MI_DISP_OUTPUT_USER E_MI_DISP_INTF_MIPIDSI1 E_MI_DISP_OUTPUT_3840x2160_30, E_MI_DISP_OUTPUT_3840x2160_25, E_MI_DISP_OUTPUT_1080P60, E_MI_DISP_OUTPUT_1080P30, E_MI_DISP_OUTPUT_1080P50, E_MI_DISP_OUTPUT_1080P25, E_MI_DISP_OUTPUT_720P60, E_MI_DISP_OUTPUT_720P30, E_MI_DISP_OUTPUT_720P50, E_MI_DISP_OUTPUT_720P25, E_MI_DISP_OUTPUT_480P60, E_MI_DISP_OUTPUT_576P50, E_MI_DISP_OUTPUT_USER E_MI_DISP_INTF_MCU E_MI_DISP_OUTPUT_USER E_MI_DISP_INTF_MCU_NOFLM E_MI_DISP_OUTPUT_USER E_MI_DISP_INTF_SRGB E_MI_DISP_OUTPUT_USER E_MI_DISP_INTF_LVDS E_MI_DISP_OUTPUT_3840x2160_30, E_MI_DISP_OUTPUT_3840x2160_25, E_MI_DISP_OUTPUT_1080P60, E_MI_DISP_OUTPUT_1080P30, E_MI_DISP_OUTPUT_1080P50, E_MI_DISP_OUTPUT_1080P25, E_MI_DISP_OUTPUT_720P60, E_MI_DISP_OUTPUT_720P30, E_MI_DISP_OUTPUT_720P50, E_MI_DISP_OUTPUT_720P25, E_MI_DISP_OUTPUT_480P60, E_MI_DISP_OUTPUT_576P50, E_MI_DISP_OUTPUT_USER E_MI_DISP_INTF_LVDS1 E_MI_DISP_OUTPUT_3840x2160_30, E_MI_DISP_OUTPUT_3840x2160_25, E_MI_DISP_OUTPUT_1080P60, E_MI_DISP_OUTPUT_1080P30, E_MI_DISP_OUTPUT_1080P50, E_MI_DISP_OUTPUT_1080P25, E_MI_DISP_OUTPUT_720P60, E_MI_DISP_OUTPUT_720P30, E_MI_DISP_OUTPUT_720P50, E_MI_DISP_OUTPUT_720P25, E_MI_DISP_OUTPUT_480P60, E_MI_DISP_OUTPUT_576P50, E_MI_DISP_OUTPUT_USER E_MI_DISP_INTF_DUAL_LVDS E_MI_DISP_OUTPUT_3840x2160_30, E_MI_DISP_OUTPUT_3840x2160_25, E_MI_DISP_OUTPUT_1080P60, E_MI_DISP_OUTPUT_1080P30, E_MI_DISP_OUTPUT_1080P50, E_MI_DISP_OUTPUT_1080P25, E_MI_DISP_OUTPUT_720P60, E_MI_DISP_OUTPUT_720P30, E_MI_DISP_OUTPUT_720P50, E_MI_DISP_OUTPUT_720P25, E_MI_DISP_OUTPUT_480P60, E_MI_DISP_OUTPUT_576P50, E_MI_DISP_OUTPUT_USER -
注意事项
- E_MI_DISP_INTF_BT1120 为单边沿采样;E_MI_DISP_INTF_BT1120_DDR 为双边沿采样。
- 目前仅Souffle chip 的bt1120 和 bt656 interface 支持 E_MI_DISP_OUTPUT_720I25,E_MI_DISP_OUTPUT_720I30,E_MI_DISP_OUTPUT_720I50,E_MI_DISP_OUTPUT_720I60,E_MI_DISP_OUTPUT_1080I25,E_MI_DISP_OUTPUT_1080I30时序。
-
相关数据类型及接口
3.5. MI_DISP_OutputTiming_e¶
-
说明
定义 DISP timing类型。
-
定义
typedef enum { E_MI_DISP_OUTPUT_PAL = 0, E_MI_DISP_OUTPUT_NTSC, E_MI_DISP_OUTPUT_960H_PAL, /* ITU-R BT.1302 960 x 576 at 50 Hz (interlaced)*/ E_MI_DISP_OUTPUT_960H_NTSC, /* ITU-R BT.1302 960 x 480 at 60 Hz (interlaced)*/ E_MI_DISP_OUTPUT_480i60, E_MI_DISP_OUTPUT_576i50, E_MI_DISP_OUTPUT_480P60, E_MI_DISP_OUTPUT_576P50, E_MI_DISP_OUTPUT_720P50, E_MI_DISP_OUTPUT_720P60, E_MI_DISP_OUTPUT_1080P24, E_MI_DISP_OUTPUT_1080P25, E_MI_DISP_OUTPUT_1080P30, E_MI_DISP_OUTPUT_1080I50, E_MI_DISP_OUTPUT_1080I60, E_MI_DISP_OUTPUT_1080P50, E_MI_DISP_OUTPUT_1080P60, E_MI_DISP_OUTPUT_640x480_60, /* VESA 640 x 480 at 60 Hz (non-interlaced) CVT */ E_MI_DISP_OUTPUT_800x600_60, /* VESA 800 x 600 at 60 Hz (non-interlaced) */ E_MI_DISP_OUTPUT_1024x768_60, /* VESA 1024 x 768 at 60 Hz (non-interlaced) */ E_MI_DISP_OUTPUT_1280x1024_60, /* VESA 1280 x 1024 at 60 Hz (non-interlaced) */ E_MI_DISP_OUTPUT_1366x768_60, /* VESA 1366 x 768 at 60 Hz (non-interlaced) */ E_MI_DISP_OUTPUT_1440x900_60, /* VESA 1440 x 900 at 60 Hz (non-interlaced) CVT Compliant */ E_MI_DISP_OUTPUT_1280x800_60, /* 1280*800@60Hz VGA@60Hz*/ E_MI_DISP_OUTPUT_1680x1050_60, /* VESA 1680 x 1050 at 60 Hz (non-interlaced) */ E_MI_DISP_OUTPUT_1920x2160_30, /* 1920x2160_30 */ E_MI_DISP_OUTPUT_1600x1200_60, /* VESA 1600 x 1200 at 60 Hz (non-interlaced) */ E_MI_DISP_OUTPUT_1920x1200_60, /* VESA 1920 x 1600 at 60 Hz (non-interlaced) CVT (Reduced Blanking)*/ E_MI_DISP_OUTPUT_2560x1440_30, /* 2560x1440_30 */ E_MI_DISP_OUTPUT_2560x1440_50, /* 2560x1440_50 */ E_MI_DISP_OUTPUT_2560x1440_60, /* 2560x1440_60 */ E_MI_DISP_OUTPUT_2560x1600_60, /* 2560x1600_60 */ E_MI_DISP_OUTPUT_3840x2160_25, /* 3840x2160_25 */ E_MI_DISP_OUTPUT_3840x2160_30, /* 3840x2160_30 */ E_MI_DISP_OUTPUT_3840x2160_60, /* 3840x2160_60 */ E_MI_DISP_OUTPUT_1920x1080_5994, /* 1920x1080_59.94 */ E_MI_DISP_OUTPUT_1920x1080_2997, /* 1920x1080_29.97 */ E_MI_DISP_OUTPUT_1280x720_5994, /* 1280X720_59.94 */ E_MI_DISP_OUTPUT_1280x720_2997, /* 1280x720_29.97 */ E_MI_DISP_OUTPUT_3840x2160_2997, /* 3840x2160_29.97 */ E_MI_DISP_OUTPUT_720P24, /* 1280x720_24 */ E_MI_DISP_OUTPUT_720P25, /* 1280x720_25 */ E_MI_DISP_OUTPUT_720P30, /* 1280x720_30 */ E_MI_DISP_OUTPUT_1920x1080_2398, /* 1920x1080_23.98*/ E_MI_DISP_OUTPUt_3840x2160_24, /* 3840x2160_24 */ E_MI_DISP_OUTPUT_848x480_60, /* 848x480_60 */ E_MI_DISP_OUTPUT_1280x768_60, /* 1280x768_60 */ E_MI_DISP_OUTPUT_1280x960_60, /* 1280x960_60 */ E_MI_DISP_OUTPUT_1360x768_60, /* 1360x768_60 */ E_MI_DISP_OUTPUT_1400x1050_60, /* 1400x1050_60 */ E_MI_DISP_OUTPUT_1600x900_60, /* 1600x900_60 */ E_MI_DISP_OUTPUT_1920x1440_60, /* 1920x1440_60 */ E_MI_DISP_OUTPUT_USER, E_MI_DISP_OUTPUT_720I25, /*only for bt1120 and bt656*/ E_MI_DISP_OUTPUT_720I30, E_MI_DISP_OUTPUT_720I50, /*only for bt1120 and bt656*/ E_MI_DISP_OUTPUT_720I60, /*only for bt1120 and bt656*/ E_MI_DISP_OUTPUT_1080I25, /*only for bt1120 and bt656*/ E_MI_DISP_OUTPUT_1080I30, E_MI_DISP_OUTPUT_MAX, } MI_DISP_OutputTiming_e; -
成员
各个Timing的定义,LCD显示应该使用E_MI_DISP_OUTPUT_USER。
-
相关数据类型及接口
3.6. MI_DISP_SyncInfo_t¶
-
说明
定义DISP输出屏参信息。
-
定义
typedef struct MI_DISP_SyncInfo_s { MI_BOOL bSynm; /* sync mode(0:timing,as BT.656; 1:signal,as LCD) */ MI_BOOL bIop; /* interlaced or progressive display(0:i; 1:p) */ MI_U8 u8Intfb; /* interlace bit width while output */ MI_U16 u16VStart ; /* vertical de start */ MI_U16 u16Vact ; /* vertical active area */ MI_U16 u16Vbb; /* vertical back blank porch */ MI_U16 u16Vfb; /* vertical front blank porch */ MI_U16 u16HStart; /* herizontal de start */ MI_U16 u16Hact; /* herizontal active area */ MI_U16 u16Hbb; /* herizontal back blank porch */ MI_U16 u16Hfb; /* herizontal front blank porch */ MI_U16 u16Hmid; /* bottom herizontal active area */ MI_U16 u16Bvact; /* bottom vertical active area */ MI_U16 u16Bvbb; /* bottom vertical back blank porch */ MI_U16 u16Bvfb; /* bottom vertical front blank porch */ MI_U16 u16Hpw; /* horizontal pulse width */ MI_U16 u16Vpw; /* vertical pulse width */ MI_BOOL bIdv; /* inverse data valid of output */ MI_BOOL bIhs; /* inverse horizontal synch signal */ MI_BOOL bIvs; /* inverse vertical synch signal */ MI_U32 u32FrameRate; } MI_DISP_SyncInfo_t -
成员
成员名称 描述 u16VStart 场有效开始。一般等于场同步信号脉宽+场同步信号后肩 u16Vact 场有效行数 u16Vbb 场同步信号后肩 u16Vfb 场同步信号前肩 u16HStart 行有效开始。一般等于行同步信号脉宽+行同步信号后肩 u16Hact 行有效像素点数 u16Hbb 行同步信号后肩 u16Hfb 行同步信号前肩 u16Hpw 行同步信号脉宽 u16Vpw 场同步信号脉宽 u32Framerate 帧率 表中未列参数暂未使用到
-
注意事项
- LCD显示时才需要配置屏参信息。
-
相关数据类型及接口
3.7. MI_DISP_PubAttr_t¶
-
说明
定义 DISP公共属性。
-
定义
typedef struct MI_DISP_PubAttr_s { MI_U8 * pu8PanelName; /* The screen parameters specified by the user */ MI_U32 u32PanelNameSize; /* The size of pu8PanelName */ MI_U32 u32BgColor; /* Background color of a device */ MI_DISP_Interface_e eIntfType; /* Type of a VO interface */ MI_DISP_OutputTiming_e eIntfSync; /* Type of a VO interface timing */ MI_DISP_SyncInfo_t stSyncInfo; /* Information about VO interface timings */ } MI_DISP_PubAttr_t; -
成员
成员名称 描述 pu8PanelName 用户指定的屏参,需与u32PanelNameSize配合使用 u32PanelNameSize pu8PanelName的字符串大小,需与pu8PanelName配合使用 u32BgColor 设定背景颜色。 u32IntfType 接口定义:MI_DISP_Interface_e eIntfSync 接口时序定义:MI_DISP_OutputTiming_e stSyncInfo 接口自定义时序定义:MI_DISP_SyncInfo_t -
注意事项
-
stSyncInfo是针对用户选择E_MI_DISP_OUTPUT_USER,即Timing自定义的Case。
-
u32BgColor有两套定义
带有MOP(支持放大)的chip定义为:
bit 功能 24~31 未使用 16~23 V 8~15 U 0~7 Y 带有SCL_RDMA(不支持放大)的chip定义为:
bit 功能 24~31 未使用 16~23 B 8~15 G 0~7 R
-
-
相关数据类型及接口
3.8. MI_DISP_Csc_t¶
-
说明
定义 DISP 颜色转换信息。
-
定义
typedef struct MI_DISP_Csc_s { MI_DISP_CscMatrix_e eCscMatrix; MI_U32 u32Luma; /* luminance: 0 ~ 100 default: 50 */ MI_U32 u32Contrast; /* contrast : 0 ~ 100 default: 50 */ MI_U32 u32Hue; /* hue : 0 ~ 100 default: 50 */ MI_U32 u32Saturation; /* saturation: 0 ~ 100 default: 50 */ } MI_DISP_Csc_t; -
成员
成员名称 描述 eCscMatrix 颜色转换矩阵 u32Luma 亮度调节 u32Contrast 对比度调节 u32Hue 色度调节 u32Saturation 饱和度调节 -
相关数据类型及接口
3.9. MI_DISP_CscMatrix_e¶
-
说明
定义 DISP 颜色转换矩阵。
-
定义
typedef enum { E_MI_DISP_CSC_MATRIX_BYPASS = 0, /* do not change color space */ E_MI_DISP_CSC_MATRIX_BT601_TO_BT709, /* change color space from BT.601 to BT.709 */ E_MI_DISP_CSC_MATRIX_BT709_TO_BT601, /* change color space from BT.709 to BT.601 */ E_MI_DISP_CSC_MATRIX_BT601_TO_RGB_PC, /* change color space from BT.601 to RGB */ E_MI_DISP_CSC_MATRIX_BT709_TO_RGB_PC, /* change color space from BT.709 to RGB */ E_MI_DISP_CSC_MATRIX_RGB_TO_BT601_PC, /* change color space from RGB to BT.601 */ E_MI_DISP_CSC_MATRIX_RGB_TO_BT709_PC, /* change color space from RGB to BT.709 */ E_MI_DISP_CSC_MATRIX_USER, /* Change color space from PQ.bin */ E_MI_DISP_CSC_MATRIX_NUM } MI_DISP_CscMatrix_e; -
成员
成员名称 描述 E_MI_DISP_CSC_MATRIX_BYPASS 不做颜色转换 E_MI_DISP_CSC_MATRIX_BT601_TO_BT709 BT.601到BT.709色彩空间的CSC矩阵 E_MI_DISP_CSC_MATRIX_BT709_TO_BT601 BT.709到BT.601色彩空间的CSC矩阵 E_MI_DISP_CSC_MATRIX_BT601_TO_RGB_PC BT.601到RGB色彩空间的CSC矩阵。 E_MI_DISP_CSC_MATRIX_BT709_TO_RGB_PC BT.709到RGB色彩空间的CSC矩阵。 E_MI_DISP_CSC_MATRIX_RGB_TO_BT601_PC RGB到BT.601 色彩空间的CSC矩阵。 E_MI_DISP_CSC_MATRIX_RGB_TO_BT709_PC RGB到BT.709 色彩空间的CSC矩阵。 E_MI_DISP_CSC_MATRIX_USER 色彩空间从PQ.bin中获取。 -
相关数据类型及接口
3.10. MI_DISP_VgaParam_t¶
-
说明
定义 DISP VGA设定参数信息。
-
定义
typedef struct MI_DISP_VgaParam_s { MI_DISP_Csc_t stCsc; /* color space */ MI_U32 u32Gain; /* current gain of VGA signals. [0, 64). default:0x30 */ MI_U32 u32Sharpness; } MI_DISP_VgaParam_t; -
成员
成员名称 描述 stCsc 色彩转换信息定义 u32Gain 信号强度增益 u32Sharpness 锐利度定义 -
相关数据类型及接口
3.11. MI_DISP_HdmiParam_t¶
-
说明
定义 DISP HDMI设定参数信息。
-
定义
typedef struct MI_DISP_HdmiParam_s { MI_DISP_Csc_t stCsc; /* color space */ MI_U32 u32Gain; /* current gain of HDMI signals. [0, 64). default:0x30 */ MI_U32 u32Sharpness; } MI_DISP_HdmiParam_t; -
成员
成员名称 描述 stCsc 色彩转换信息定义 u32Gain 信号强度增益 u32Sharpness 锐利度定义 -
相关数据类型及接口
3.12. MI_DISP_LcdParam_t¶
-
说明
定义 DISP LCD输出图像参数。
-
定义
typedef struct MI_DISP_LcdParam_s { MI_DISP_Csc_t stCsc; /* color space */ MI_U32 u32Sharpness; } MI_DISP_LcdParam_t; -
成员
成员名称 描述 stCsc 色彩转换信息定义 u32Sharpness 锐利度定义 -
相关数据类型及接口
3.13. MI_DISP_CvbsParam_t¶
-
说明
定义 DISP CVBS输出图像参数。
-
定义
typedef struct MI_DISP_CvbsParam_s { MI_DISP_Csc_t stCsc; /* color space */ MI_U32 u32Sharpness; } MI_DISP_CvbsParam_t; -
成员
成员名称 描述 stCsc 色彩转换信息定义 u32Sharpness 锐利度定义 -
相关数据类型及接口
3.14. MI_DISP_ColorTemperature_t¶
-
说明
定义视频输出图像色温参数
-
定义
typedef struct { MI_U16 u16RedOffset; MI_U16 u16GreenOffset; MI_U16 u16BlueOffset; MI_U16 u16RedColor; // 00~FF, 0x80 is no change MI_U16 u16GreenColor;// 00~FF, 0x80 is no change MI_U16 u16BlueColor; // 00~FF, 0x80 is no change }MI_DISP_ColorTemperature_t; -
成员
成员名称 描述 u16RedColor 色温矫正参数R分量 u16GreenColor 色温矫正参数G分量 u16BlueColor 色温矫正参数B分量 -
相关数据类型及接口
3.15. MI_DISP_GammaParam_t¶
-
说明
定义视频输出图像Gamma参数
-
定义
typedef struct MI_DISP_GammaParam_s { MI_BOOL bEn; MI_U16 u16EntryNum; union { MI_U8 * pu8ColorR; MI_PTR64 p64ColorR; }; union { MI_U8 * pu8ColorG; MI_PTR64 p64ColorG; }; union { MI_U8 * pu8ColorB; MI_PTR64 p64ColorB; }; } MI_DISP_GammaParam_t; -
成员
成员名称 描述 bEn 使能Gamma调整 u16EntryNum Gamma table成员个数 pu8ColorR R table指针 p64ColorR 保留字段 pu8ColorG G table指针 p64ColorG 保留字段 pu8ColorB B table 指针 p64ColorB 保留字段 -
相关数据类型及接口
3.16. MI_DISP_VideoLayerSize_t¶
-
说明
定义 DISP layer层画面大小。
-
定义
typedef struct MI_DISP_VideoLayerSize_s { MI_U32 u16Width; MI_U32 u16Height; } MI_DISP_VideoLayerSize_t; -
成员
成员名称 描述 u32Width 水平方向大小 u32Height 竖直方向大小 -
相关数据类型及接口
3.17. MI_DISP_VideoLayerAttr_t¶
-
说明
定义 DISP 视频层属性。
-
定义
typedef struct MI_DISP_VideoLayerAttr_s { MI_DISP_VidWinRect_t stVidLayerDispWin; /* Display resolution */ MI_DISP_VideoLayerSize_t stVidLayerSize; /* Canvas size of the video layer */ MI_DISP_PixelFormat_e ePixFormat; /* Pixel format of the video layer */ } MI_DISP_VideoLayerAttr_t; -
成员
成员名称 描述 stVidLayerDispWin 输入端口显示位置 stVidLayerSize 视频层大小 ePixFormat 输入像素数据格式 -
相关数据类型及接口
3.18. MI_DISP_RotateMode_e¶
-
说明
定义 DISP 视频输出旋转角度。
-
定义
typedef enum { E_MI_DISP_ROTATE_NONE, E_MI_DISP_ROTATE_90, E_MI_DISP_ROTATE_180, E_MI_DISP_ROTATE_270, E_MI_DISP_ROTATE_NUM, }MI_DISP_RotateMode_e; -
成员
成员名称 描述 E_MI_DISP_ROTATE_NONE 不做旋转 E_MI_DISP_ROTATE_90 顺时针旋转90度 E_MI_DISP_ROTATE_180 顺时针旋转180度 E_MI_DISP_ROTATE_270 顺时针旋转270度 -
相关数据类型及接口
3.19. MI_DISP_RotateConfig_t¶
-
说明
定义 DISP 视频输出旋转参数。
-
定义
typedef struct MI_DISP_RotateConfig_s { MI_DISP_RotateMode_e eRotateMode; }MI_DISP_RotateConfig_t; -
成员
成员名称 描述 MI_DISP_RotateConfig_t; 配置输出视频旋转 -
相关数据类型及接口
3.20. MI_DISP_VidWinRect_t¶
-
说明
定义 DISP窗口属性。
-
定义
typedef struct MI_DISP_VidWinRect_s { MI_U16 u16X; MI_U16 u16Y; MI_U16 u16Width; MI_U16 u16Height; } MI_DISP_VidWinRect_t; -
成员
成员名称 描述 u16X 水平方向起点 u16Y 竖直方向起点 u16Width 水平方向大小 u16Height 竖直方向大小 -
注意事项
-
每个窗口位置的x,y,width,height须2pixels对齐
-
裁剪不能超出源区域
-
-
相关数据类型及接口
3.21. MI_DISP_InputPortAttr_t¶
-
说明
定义 DISP输入端口属性。
-
定义
typedef struct MI_DISP_InputPortAttr_s { MI_DISP_VidWinRect_t stDispWin; /* rect of video out chn */ MI_U16 u16SrcWidth; MI_U16 u16SrcHeight; MI_SYS_CompressMode_e eDecompressMode; } MI_DISP_InputPortAttr_t; -
成员
成员名称 描述 stDispWin 指定输入端口输出窗口位置及尺寸 u16SrcWidth 指定端口输入图像宽 u16SrcHeight 指定端口输入图像高 eDecompressMode 指定端口解压缩模式 -
注意事项
-
Takoyaki/Taiyaki/Tiramisu/Muffin/Mochi/Opera/Pcupid/Ibopper/Jaguar1/Mhera系列芯片可以对每个port做scaling up(不支持scaling down),H/V方向最大放大倍数为16倍。
-
如果芯片不支持独立对port做scaling up,使用时注意u16SrcWidth要等于stDispWin 中定义的u16Width,u16SrcHeight要等于stDispWin中定义的u16Height。
-
对于有多个input port的video layer来说,每个port在video layer上的显示位置可以任意设置。
-
Input port的显示位置不能与已Enable(包括Hide)的port相互叠加,但已Disable的port可以叠加。
-
每个window的x,y,width,height须2pixels对齐。
-
关于eDecompressMode,Mochi系列芯片支持E_MI_SYS_COMPRESS_MODE_NONE/E_MI_SYS_COMPRESS_MODE_TO_6BIT,其他chip仅支持E_MI_SYS_COMPRESS_MODE_NONE。

-
-
相关数据类型及接口
3.22. MI_DISP_Position_t¶
-
说明
定义 DISP输入端口位置。
-
定义
typedef struct MI_DISP_Position_s { MI_U16 u16X; MI_U16 u16Y; } MI_DISP_Position_t; -
成员
成员名称 描述 u16X 水平方向起始点 u16Y 竖直方向起始点 -
相关数据类型及接口
3.23. MI_DISP_SyncMode_e¶
-
说明
定义 DISP同步模式。
-
定义
typedef enum { E_MI_DISP_SYNC_MODE_INVALID = 0, E_MI_DISP_SYNC_MODE_CHECK_PTS, E_MI_DISP_SYNC_MODE_FREE_RUN, E_MI_DISP_SYNC_MODE_NUM, } MI_DISP_SyncMode_e; -
成员
成员名称 描述 E_MI_DISP_SYNC_MODE_INVALID 无效的同步模式 E_MI_DISP_SYNC_MODE_CHECK_PTS 检查PTS的同步模式 E_MI_DISP_SYNC_MODE_FREE_RUN 不检查PTS的同步模式 -
相关数据类型及接口
3.24. MI_DISP_InputPortStatus_e¶
-
说明
定义 DISP输入端口状态类型。
-
定义
typedef enum { E_MI_LAYER_INPUTPORT_STATUS_INVALID = 0, E_MI_LAYER_INPUTPORT_STATUS_PAUSE, E_MI_LAYER_INPUTPORT_STATUS_RESUME, E_MI_LAYER_INPUTPORT_STATUS_STEP, E_MI_LAYER_INPUTPORT_STATUS_REFRESH, E_MI_LAYER_INPUTPORT_STATUS_SHOW, E_MI_LAYER_INPUTPORT_STATUS_HIDE, E_MI_LAYER_INPUTPORT_STATUS_NUM, } MI_DISP_InputPortStatus_e; -
成员
成员名称 描述 E_MI_LAYER_INPUTPORT_STATUS_INVALID 无效的状态模式 E_MI_LAYER_INPUTPORT_STATUS_PAUSE 暂停状态 E_MI_LAYER_INPUTPORT_STATUS_RESUME 恢复状态 E_MI_LAYER_INPUTPORT_STATUS_STEP 步进状态 E_MI_LAYER_INPUTPORT_STATUS_REFRESH 刷新状态 E_MI_LAYER_INPUTPORT_STATUS_SHOW 显示状态 E_MI_LAYER_INPUTPORT_STATUS_HIDE 隐藏状态
3.25. MI_DISP_QueryChannelStatus_t¶
-
说明
定义 DISP输入端口状态信息。
-
定义
typedef struct MI_DISP_QueryChannelStatus_s { MI_BOOL bEnable; MI_DISP_InputPortStatus_e eStatus; } MI_DISP_QueryChannelStatus_t; -
成员
成员名称 描述 bEnable 输入端口使能状态 eStatus 输入端口状态类型 -
相关数据类型及接口
3.26. MI_DISP_InitParam_t¶
-
说明
DISP设备初始化参数。
-
定义
typedef struct MI_DISP_InitParam_s { MI_U32 u32DevId; MI_U8 *u8Data; } MI_DISP_InitParam_t; -
成员
成员名称 描述 u32DevId 设备ID u8Data 数据指针buffer -
相关数据类型及接口
3.27. MI_DISP_WBC¶
-
说明
定义DISP_WBC类型。
-
定义
typedef MI_S32 MI_DISP_WBC
3.28. MI_DISP_WBC_SourceType_e¶
-
说明
视频回写设备捕获数据的源类型,用于区别是从视频层回写还是从设备回写。
-
定义
typedef enum { MI_DISP_WBC_SOURCE_DEV, MI_DISP_WBC_SOURCE_VIDEO, }MI_DISP_WBC_SourceType_e; -
成员
成员名称 描述 MI_DISP_WBC_SOURCE_DEV 回写源是设备(video+UI) MI_DISP_WBC_SOURCE_VIDEO 回写源是视频层(video only) -
相关数据类型及接口
3.29. MI_DISP_WBC_Source_t¶
-
说明
视频回写设备回写源。
-
定义
typedef struct MI_DISP_WBC_Source_s { MI_DISP_WBC_SourceType_e eSourceType; MI_U32 u32SourceId; }MI_DISP_WBC_Source_t; -
成员
成员名称 描述 eSourceType 回写源类型 u32SourceId 回写源的设备ID -
相关数据类型及接口
3.30. MI_DISP_WBC_TargetSize_t¶
-
说明
视频回写设备的回写目标大小。
-
定义
typedef struct MI_DISP_WBC_TargetSize_s { MI_U32 u32Width; MI_U32 u32Height; }MI_DISP_WBC_TargetSize_t; -
成员
成员名称 描述 u32Width 回写目标的宽 u32Height 回写目标的高 -
注意事项
- WBC支持缩小,不支持放大。如果配置目标分辨率比源分辨率小,那么会自动缩小。
-
相关数据类型及接口
3.31. MI_DISP_WBC_Attr_t¶
-
说明
视频回写设备属性。
-
定义
typedef struct MI_DISP_WBC_Attr_s { MI_DISP_WBC_TargetSize_t stTargetSize; MI_SYS_PixelFormat_e ePixFormat; MI_SYS_CompressMode_e eCompressMode; }MI_DISP_WBC_Attr_t; -
成员
成员名称 描述 stTargetSize 回写目标大小 ePixFormat 回写图像的像素格式 eCompressMode 压缩模式 -
注意事项
- eCompressMode只有Mochi系列芯片时才支持。
-
相关数据类型及接口
3.32. MI_DISP_PowerConfig_t¶
-
说明
输出能量配置。
-
定义
typedef struct MI_DISP_PowerConfig_s { MI_BOOL bEnable; } MI_DISP_PowerConfig_t; -
成员
成员名称 描述 bEnable 使能 -
相关数据类型及接口
3.33. MI_DISP_MipiDsiPacketType_e¶
-
说明
mipidsi 包类型。
-
定义
typedef enum { E_MI_DISP_MIPIDSI_PACKET_TYPE_DCS = 0, E_MI_DISP_MIPIDSI_PACKET_TYPE_GENERIC = 1, E_MI_DISP_MIPIDSI_PACKET_TYPE_MAX } MI_DISP_MipiDsiPacketType_e; -
成员
成员名称 描述 E_MI_DISP_MIPIDSI_PACKET_TYPE_DCS 显示命令集类型 E_MI_DISP_MIPIDSI_PACKET_TYPE_GENERIC 通用包类型 -
相关数据类型及接口
3.34. MI_DISP_WriteMipiDsiCmd_t¶
-
说明
写 mipidsi 命令配置。
-
定义
typedef struct MI_DISP_WriteMipiDsiCmd_s { MI_DISP_MipiDsiPacketType_e ePacketType; MI_U32 u32CmdBufSize; MI_PTR64 p64CmdBuf; } MI_DISP_WriteMipiDsiCmd_t; -
成员
成员名称 描述 ePacketType 包类型 u32CmdBufSize 命令缓存大小 p64CmdBuf 命令缓存指针 -
相关数据类型及接口
3.35. MI_DISP_ReadMipiDsiCmd_t¶
-
说明
读取 mipidsi 命令配置。
-
定义
typedef struct MI_DISP_ReadMipiDsiCmd_s { MI_U8 u8RegAddr; MI_U32 u32CmdBufSize; MI_PTR64 p64CmdBuf; } MI_DISP_ReadMipiDsiCmd_t; -
成员
成员名称 描述 u8RegAddr 寄存器地址 u32CmdBufSize 命令缓存大小 p64CmdBuf 命令缓存指针 -
相关数据类型及接口
3.36. MI_DISP_ErrCode_e¶
-
说明
定义DISP错误码。
-
定义
typedef enum { E_MI_DISP_ERR_CODE_DEV_NOT_CONFIG = 0x40, E_MI_DISP_ERR_CODE_DEV_NOT_ENABLE, E_MI_DISP_ERR_CODE_ALREADY_ENABLED, E_MI_DISP_ERR_CODE_ALREADY_BOUND, E_MI_DISP_ERR_CODE_NOT_BIND, E_MI_DISP_ERR_CODE_LAYER_NOT_ENABLE, E_MI_DISP_ERR_CODE_LAYER_NOT_DISABLE, E_MI_DISP_ERR_CODE_LAYER_NOT_CONFIG, E_MI_DISP_ERR_CODE_INPUTPORT_NOT_DISABLE, E_MI_DISP_ERR_CODE_INPUTPORT_NOT_ENABLE, E_MI_DISP_ERR_CODE_INPUTPORT_NOT_CONFIG, E_MI_DISP_ERR_CODE_INPUTPORT_NOT_ALLOC, E_MI_DISP_ERR_CODE_INVALID_PATTERN, E_MI_DISP_ERR_CODE_INVALID_POSITION, E_MI_DISP_ERR_CODE_WAIT_TIMEOUT, E_MI_DISP_ERR_CODE_INVALID_VIDEO_FRAME, E_MI_DISP_ERR_CODE_INVALID_RECT_PARA, E_MI_DISP_ERR_CODE_INPUTPORT_SHOW_AREA_OVERLAP, // The input port show area overlap. E_MI_DISP_ERR_CODE_INVALID_LAYERID, E_MI_DISP_ERR_CODE_LAYER_ALREADY_BOUND, E_MI_DISP_ERR_CODE_LAYER_NOT_BIND, E_MI_DISP_ERR_CODE_MAX } MI_DISP_ErrCode_e; -
成员
参考 DISP错误码描述
-
相关数据类型及接口
3.37. MI_DISP_LayerId_e¶
-
说明
定义DISP层ID。
-
定义
typedef enum { MI_DISP_DEV0_LAYER_MOPG0 = 0, MI_DISP_DEV0_LAYER_MOPS0 = 1, MI_DISP_DEV0_LAYER_MOPS1 = 101, MI_DISP_DEV1_LAYER_MOPG0 = 2, MI_DISP_DEV1_LAYER_MOPS0 = 3, MI_DISP_DEV1_LAYER_MOPS1 = 103, MI_DISP_DEV2_LAYER_MOPG0 = 4, MI_DISP_DEV2_LAYER_MOPS0 = 5, MI_DISP_DEV2_LAYER_MOPS1 = 105, MI_DISP_DEV3_LAYER_MOPG0 = 6, MI_DISP_DEV3_LAYER_MOPS0 = 7, MI_DISP_DEV3_LAYER_MOPS1 = 107, MI_DISP_DEV0_LAYER_REALTIME = 8, MI_DISP_DEV1_LAYER_REALTIME = 9, MI_DISP_DEV2_LAYER_REALTIME = 10, MI_DISP_DEV3_LAYER_REALTIME = 11, MI_DISP_DEV0_LAYER_UI = 12, MI_DISP_DEV0_LAYER_CURSOR = 13, MI_DISP_DEV1_LAYER_UI = 14, MI_DISP_DEV1_LAYER_CURSOR = 15, MI_DISP_DEV2_LAYER_UI = 16, MI_DISP_DEV2_LAYER_CURSOR = 17, MI_DISP_DEV3_LAYER_UI = 18, MI_DISP_DEV3_LAYER_CURSOR = 19, MI_DISP_DEV0_LAYER_LOWLATENCY = 21, MI_DISP_DEV1_LAYER_LOWLATENCY = 22, MI_DISP_DEV2_LAYER_LOWLATENCY = 23, MI_DISP_DEV3_LAYER_LOWLATENCY = 24 } MI_DISP_LayerId_e; -
成员
成员名称 描述 MI_DISP_DEV0_LAYER_MOPG0 DISP设备0的多窗口视频层 MI_DISP_DEV0_LAYER_MOPS0 DISP设备0的单窗口视频层 MI_DISP_DEV0_LAYER_MOPS1 DISP设备0的另一个单窗口视频层 MI_DISP_DEV1_LAYER_MOPG0 DISP设备1的多窗口视频层 MI_DISP_DEV1_LAYER_MOPS0 DISP设备1的单窗口视频层 MI_DISP_DEV1_LAYER_MOPS1 DISP设备1的另一个单窗口视频层 MI_DISP_DEV2_LAYER_MOPG0 DISP设备2的多窗口视频层 MI_DISP_DEV2_LAYER_MOPS0 DISP设备2的单窗口视频层 MI_DISP_DEV2_LAYER_MOPS1 DISP设备2的另一个单窗口视频层 MI_DISP_DEV3_LAYER_MOPG0 DISP设备3的多窗口视频层 MI_DISP_DEV3_LAYER_MOPS0 DISP设备3的单窗口视频层 MI_DISP_DEV3_LAYER_MOPS1 DISP设备3的另一个单窗口视频层 MI_DISP_DEV0_LAYER_REALTIME DISP设备0的硬件实时绑定层 MI_DISP_DEV1_LAYER_REALTIME DISP设备1的硬件实时绑定层 MI_DISP_DEV2_LAYER_REALTIME DISP设备2的硬件实时绑定层 MI_DISP_DEV3_LAYER_REALTIME DISP设备3的硬件实时绑定层 MI_DISP_DEV0_LAYER_UI DISP设备0的UI层 MI_DISP_DEV0_LAYER_CURSOR DISP设备0的鼠标层 MI_DISP_DEV1_LAYER_UI DISP设备1的UI层 MI_DISP_DEV1_LAYER_CURSOR DISP设备1的鼠标层 MI_DISP_DEV2_LAYER_UI DISP设备2的UI层 MI_DISP_DEV2_LAYER_CURSOR DISP设备2的鼠标层 MI_DISP_DEV3_LAYER_UI DISP设备3的UI层 MI_DISP_DEV3_LAYER_CURSOR DISP设备3的鼠标层 MI_DISP_DEV0_LAYER_LOWLATENCY DISP设备0的低延迟层 MI_DISP_DEV1_LAYER_LOWLATENCY DISP设备1的低延迟层 MI_DISP_DEV2_LAYER_LOWLATENCY DISP设备2的低延迟层 MI_DISP_DEV3_LAYER_LOWLATENCY DISP设备3的低延迟层
下表是不同芯片系列输出接口的差异:
| 视频层 | Macaron | Ispahan | Takoyaki | Pudding | Tiramisu | Ikayaki | Muffin | Mochi | Maruko | Opera | Souffle | Iford | Pcupid | Ifado | Ibopper | Ifackel | Jaguar1 | iFliegen | Mhera |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| MI_DISP_DEV0_LAYER_MOPG0 | N | N | Y | N | Y | N | Y | Y | N | Y | N | N | N | N | Y | N | Y | N | Y |
| MI_DISP_DEV0_LAYER_MOPS0 | N | N | Y | N | Y | Y | Y | Y | N | Y | N | N | Y | N | Y | Y | Y | N | Y |
| MI_DISP_DEV0_LAYER_MOPS1 | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | Y |
| MI_DISP_DEV1_LAYER_MOPG0 | N | N | N | N | Y | N | Y | Y | N | Y | N | N | N | N | N | N | Y | N | Y |
| MI_DISP_DEV1_LAYER_MOPS0 | N | N | N | N | Y | N | Y | Y | N | Y | N | N | N | N | N | N | Y | N | Y |
| MI_DISP_DEV1_LAYER_MOPS1 | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | Y |
| MI_DISP_DEV2_LAYER_MOPG0 | N | N | N | N | N | N | Y | N | N | N | N | N | N | N | N | N | N | N | N |
| MI_DISP_DEV2_LAYER_MOPS0 | N | N | N | N | N | N | Y | N | N | N | N | N | N | N | N | N | N | N | N |
| MI_DISP_DEV2_LAYER_MOPS1 | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N |
| MI_DISP_DEV3_LAYER_MOPG0 | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N |
| MI_DISP_DEV3_LAYER_MOPS0 | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N |
| MI_DISP_DEV3_LAYER_MOPS1 | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N |
| MI_DISP_DEV0_LAYER_REALTIME | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | Y | N | N | N |
| MI_DISP_DEV1_LAYER_REALTIME | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N |
| MI_DISP_DEV2_LAYER_REALTIME | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N |
| MI_DISP_DEV3_LAYER_REALTIME | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N |
| MI_DISP_DEV0_LAYER_UI | N | N | N | N | Y | N | Y | Y | N | Y | N | N | N | N | Y | N | Y | N | Y |
| MI_DISP_DEV0_LAYER_CURSOR | N | N | N | N | Y | N | Y | Y | N | Y | N | N | N | N | Y | N | Y | N | Y |
| MI_DISP_DEV1_LAYER_UI | N | N | N | N | Y | N | Y | Y | N | Y | N | N | N | N | N | N | Y | N | Y |
| MI_DISP_DEV1_LAYER_CURSOR | N | N | N | N | Y | N | Y | Y | N | Y | N | N | N | N | N | N | Y | N | Y |
| MI_DISP_DEV2_LAYER_UI | N | N | N | N | N | N | Y | N | N | N | N | N | N | N | N | N | N | N | Y |
| MI_DISP_DEV2_LAYER_CURSOR | N | N | N | N | N | N | Y | N | N | N | N | N | N | N | N | N | N | N | Y |
| MI_DISP_DEV3_LAYER_UI | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N |
| MI_DISP_DEV3_LAYER_CURSOR | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N |
| MI_DISP_DEV0_LAYER_LOWLATENCY | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | Y | N | N |
| MI_DISP_DEV1_LAYER_LOWLATENCY | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N |
| MI_DISP_DEV2_LAYER_LOWLATENCY | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N |
| MI_DISP_DEV3_LAYER_LOWLATENCY | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N | N |
-
相关数据类型及接口
3.38. MI_DISP_CompressAttr_t¶
-
说明
定义DISP压缩属性。
-
定义
typedef struct MI_DISP_CompressAttr_s { MI_BOOL bSupportCompress; /* Whether to support compress */ } MI_DISP_CompressAttr_t; -
成员
成员名称 描述 bSupportCompress 是否开启压缩模式 -
相关数据类型及接口
4. DISP错误码¶
DISP API 错误码如下表所示。
| 错误代码 | 宏定义 | 描述 |
|---|---|---|
| 0xA00F2001 | MI_ERR_DISP_INVALID_DEVID | 设备ID 超出合法范围 |
| 0xA00F2002 | MI_ERR_DISP_INVALID_CHNID | 输入端口ID 超出合法范围 |
| 0xA00F2003 | MI_ERR_DISP_ILLEGAL_PARAM | 参数超出合法范围 |
| 0xA00F2004 | MI_ERR_DISP_CHN_EXIST | 通道已存在 |
| 0xA00F2005 | MI_ERR_DISP_CHN_UNEXIST | 通道不存在 |
| 0xA00F2006 | MI_ERR_DISP_NULL_PTR | 函数参数中有空指针 |
| 0xA00F2007 | MI_ERR_DISP_NOT_CONFIG | 未配置 |
| 0xA00F2008 | MI_ERR_DISP_NOT_SUPPORT | 不支持的操作 |
| 0xA00F2009 | MI_ERR_DISP_NOT_PERMIT | 操作不允许 |
| 0xA00F200C | MI_ERR_DISP_NO_MEM | 内存不足 |
| 0xA00F200D | MI_ERR_DISP_NOBUF | 缓冲区分配失败 |
| 0xA00F200E | MI_ERR_DISP_BUF_EMPTY | 缓冲区为空 |
| 0xA00F200F | MI_ERR_DISP_BUF_FULL | 缓冲区已满 |
| 0xA00F2010 | MI_ERR_DISP_SYS_NOTREADY | 系统未初始化 |
| 0xA00F2011 | MI_ERR_DISP_BADADDR | 错误的地址 |
| 0xA00F2012 | MI_ERR_DISP_BUSY | 资源忙 |
| 0xA00F2013 | MI_ERR_DISP_CHN_NOT_START | 通道未启动 |
| 0xA00F2014 | MI_ERR_DISP_CHN_NOT_STOP | 通道未停止 |
| 0xA00F2015 | MI_ERR_DISP_NOT_INIT | 模块未初始化 |
| 0xA00F2016 | MI_ERR_DISP_INITED | 模块已初始化 |
| 0xA00F2017 | MI_ERR_DISP_NOT_ENABLE | 设备/通道/端口未使能 |
| 0xA00F2018 | MI_ERR_DISP_NOT_DISABLE | 设备/通道/端口未禁止 |
| 0xA00F2019 | MI_ERR_DISP_SYS_TIMEOUT | 系统超时 |
| 0xA00F201A | MI_ERR_DISP_NOT_STARTED | 设备未启动 |
| 0xA00F201B | MI_ERR_DISP_NOT_STOPED | 设备未停止 |
| 0xA00F201C | MI_ERR_DISP_CHN_NO_CONTENT | 通道无数据 |
| 0xA00F201D | MI_ERR_DISP_NOVASPACE | 虚拟地址空间映射失败 |
| 0xA00F201E | MI_ERR_DISP_NOITEM | 环形池无可用记录项 |
| 0xA00F201F | MI_ERR_DISP_FAILED | 未知错误 |
| 0xA00F2040 | MI_ERR_DISP_DEV_NOT_CONFIG | 设备未配置 |
| 0xA00F2041 | MI_ERR_DISP_DEV_NOT_ENABLE | 设备未使能 |
| 0xA00F2042 | MI_ERR_DISP_DEV_ALREADY_ENABLED | 设备已使能 |
| 0xA00F2043 | MI_ERR_DISP_DEV_ALREADY_BOUND | 设备已被绑定 |
| 0xA00F2044 | MI_ERR_DISP_DEV_NOT_BIND | 设备未被绑定 |
| 0xA00F2045 | MI_ERR_DISP_LAYER_NOT_ENABLE | 视频层未使能 |
| 0xA00F2046 | MI_ERR_DISP_LAYER_NOT_DISABLE | 视频层未禁止 |
| 0xA00F2047 | MI_ERR_DISP_LAYER_NOT_CONFIG | 视频层未配置 |
| 0xA00F2048 | MI_ERR_DISP_INPUTPORT_NOT_DISABLE | 输入端口未禁止 |
| 0xA00F2049 | MI_ERR_DISP_INPUTPORT_NOT_ENABLE | 输入端口未使能 |
| 0xA00F204A | MI_ERR_DISP_INPUTPORT_NOT_CONFIG | 输入端口未配置 |
| 0xA00F204B | MI_ERR_DISP_INPUTPORT_NOT_ALLOC | 输入端口未分配资源 |
| 0xA00F204C | MI_ERR_DISP_INVALID_PATTERN | 无效样式 |
| 0xA00F204D | MI_ERR_DISP_INVALID_POSITION | 无效位置 |
| 0xA00F204E | MI_ERR_DISP_WAIT_TIMEOUT | 等待超时 |
| 0xA00F204F | MI_ERR_DISP_INVALID_VIDEO_FRAME | 无效视频帧 |
| 0xA00F2050 | MI_ERR_DISP_INVALID_RECT_PARA | 无效矩形参数 |
| 0xA00F2051 | MI_ERR_DISP_INPUTPORT_SHOW_AREA_OVERLAP | 输入端口区域重叠 |
| 0xA00F2052 | MI_ERR_DISP_INVALID_LAYERID | 视频层号超出范围 |
| 0xA00F2053 | MI_ERR_DISP_LAYER_ALREADY_BOUND | 视频层已绑定 |
| 0xA00F2054 | MI_ERR_DISP_LAYER_NOT_BIND | 视频层未绑定 |
5. PROCFS介绍¶
5.1. DISP cat¶
-
调试信息
# cat /proc/mi_modules/mi_disp/mi_disp0
-
调试信息分析
记录当前DISP的使用状况以及device属性、layer属性、inputport属性,可以动态地获取到这些信息,方便调试和测试。
-
参数说明
参数 描述 device info EnableCnt 设备使能的次数 IrqNum 中断号 IrqCnt 中断发生次数 IrqCnt/Ms 在一定时间内的中断发生次数,单位是毫秒 Ips 每秒中断发生的次数 MaxIv/MinIv 一定时间内中断的最大与最小间隔时间,单位是微秒 BgColor 背景色(YUYV 各占8bit) PqPath 当前加载的PQ bin文件路径 PqEn PQ画质功能使能 0:关闭 1:使能 Interface 接口类型 取值范围:(CVBS、 YPBPR、 VGA、BT656、BT1120、MCU、 MCU_NOFLM、HDMI、LCD、 BT656_H、 BT656_L、TTL、MIPI_DSI、 TTL_SPI、SRGB) DevTiming 输出时序
取值范围: [E_MI_DISP_OUTPUT_PAL~ E_MI_DISP_OUTPUT_USER]CscMatrix CSC 矩阵选择 取值范围: [E_MI_DISP_CSC_MATRIX_BYPASS~ E_MI_DISP_CSC_MATRIX_RGB_TO_BT709_PC] device info Luma 亮度 取值范围: [0 ~ 99] 默认 50 Contrast 对比度 取值范围: [0 ~ 99] 默认 50 Hue 色调 取值范围: [0 ~ 99] 默认 50 Saturation 饱和度 取值范围: [0 ~ 99] 默认 50 Sharpness 锐度 取值范围: [0 ~ 255] 默认 0 Gain 信号增益 取值范围: [0 ~ 255] 默认 0 ScanMode 扫描模式(Progressive/Interlace) OutFormat 输出信号格式 HSYNC 水平同步信号宽度 HBP 水平后沿(Horizontal Back Porch) HACTIVE 水平有效显示宽度 HFP 水平前沿(Horizontal Front Porch) HTOTAL 水平总计 VSYNC 垂直同步信号宽度 VBP 垂直后沿(Vertical Back Porch) VACTIVE 垂直有效显示高度 VFP 垂直前沿(Vertical Front Porch) VTOTAL 垂直总计 CLK 像素时钟频率 layer info LayerId layer ID 取值范围根据芯片规格而定 BindedDevID 绑定的device ID 取值范围根据芯片规格而定 LayerWidth Layer的宽 LayerHeight Layer的高 LayDispWidth Layer显示的宽 LayDispHeight Layer显示的高 Toleration PTS误差允许阈值,单位毫秒 rotatemode 旋转模式 取值范围: [E_MI_DISP_ROTATE_NONE~E_MI_DISP_ROTATE_270] port info PortId port ID 取值范围根据芯片规格而定 enable 使能或者禁用 0:禁用 1:使能 CurStatus port状态 取值范围:[invalid、pause、resume、step、refresh、show、hide] 默认是invalid src_w 原始图像宽度 src_h 原始图像高度 crop_x 裁剪区域起始横坐标 crop_y 裁剪区域起始纵坐标 crop_w 裁剪区域宽度 crop_h 裁剪区域高度 show_x 该port在layer上的起始横坐标 show_y 该port在layer上的起始纵坐标 show_w 该port显示的宽度 show_h 该port显示的高度 Decom 输入数据解压模式 RecvBufCnt 当前接收到buff的总量 RecvBuf_W 输入的图像宽 RecvBuf_H 输入的图像高 Content_W 输入图像有效宽 Content_H 输入图像有效高 RecvBufStride 输入图像的Stride PixFmt 输入图像像素格式 syncmode Check PTS/Free Run 取值范围:[Invalid、CheckPts、FreeRun] RecvBufCom 输入图像的压缩格式 OnScreenTask 当前正在显示的Task,如果为NULL,有可能是没有送buff到disp、或disp没中断、或disp的cmdq没生效 FiredTask 即将要显示的Task bClearAllTask 是否丢弃所有Task 0:不丢弃 1:丢弃所有Task FinishCnt/Ms 一定时间内完成的Task数量,单位是毫秒 fps 帧率 MaxIv/MinIv 一定时间内已完成Task的最大与最小间隔时间,单位是微秒 bDropInBuf 是否丢弃输入buffer 0:不丢弃 1:丢弃 DropInBufCnt 已丢弃的输入buffer数量
5.2. DISP echo¶
| 功能 | 获取当前DISP所支持的echo命令及其具体使用形式 |
|---|---|
| 命令 | echo help > /proc/mi_modules/mi_disp/mi_disp0 |
| 参数说明 | 无 |
| 举例 | echo help > /proc/mi_modules/mi_disp/mi_disp0 |
| 功能 | dump frame data |
|---|---|
| 命令 | echo dumpframe [layerid] [portid] [path] > /proc/mi_modules/mi_disp/mi_disp0 |
| 参数说明 | [layerid] 视频层id [portid] port id [path] dump出来的数据的存储路径 |
| 举例 | echo dumpframe 0 0 /mnt/ > /proc/mi_modules/mi_disp/mi_disp0 |
| 功能 | stop disp单个port get buff |
|---|---|
| 命令 | echo stopgetbuff [layerid] [portid] [ON/OFF] > /proc/mi_modules/mi_disp/mi_disp0 |
| 参数说明 | [layerid] 视频层id [portid] port id [ON/OFF] ON:stop OFF:resume |
| 举例 | echo stopgetbuff 0 0 ON > /proc/mi_modules/mi_disp/mi_disp0 |
| 功能 | 设置背景色 |
|---|---|
| 命令 | echo bgcolor [devid] [value] > /proc/mi_modules/mi_disp/mi_disp0 |
| 参数说明 | [devid] 设备id [value] 颜色值 |
| 举例 | echo bgcolor 0 255 > /proc/mi_modules/mi_disp/mi_disp0 |
| 功能 | 动态设置画面效果 |
|---|---|
| 命令 | echo csc [devid] [CscMatrix] [Contrast] [Hue] [Luma] [Saturation] [Sharpness] [Gain] > /proc/mi_modules/mi_disp/mi_disp0 |
| 参数说明 | [devid] 设备id [CscMatrix] 颜色矩阵 [Contrast] 对比度 [Hue] 色调 [Luma] 亮度 [Saturation] 饱和度 [Sharpness] 锐利度 [Gain] 增益 |
| 举例 | echo csc 0 0 50 50 50 50 0 0 > /proc/mi_modules/mi_disp/mi_disp0 |
| 功能 | 色温调试 |
|---|---|
| 命令 | echo colortemp [devid] [BlueOffset] [GreenOffset] [RedOffset] [BlueColor] [GreenColor] [RedColor] > /proc/mi_modules/mi_disp/mi_disp0 |
| 参数说明 | [devid]当前使用的dev id [Blue/Green/Redoffset]没有用到 [RedColor] R分量(0-255) [GreenColor] G分量(0-255) [BlueColor]B分量(0-255) |
| 举例 | echo colortemp 0 50 50 50 50 50 50 > /proc/mi_modules/mi_disp/mi_disp0 |
| 功能 | 对layer进行旋转设置 |
|---|---|
| 命令 | echo rotate [layerid] [0/ 1/ 2]> /proc/mi_modules/mi_disp/mi_disp0 |
| 参数说明 | [layerid] 视频层id [0/ 1/ 2] rotate配置: 0:E_MI_DISP_ROTATE_NONE,不旋转 1:E_MI_DISP_ROTATE_90,旋转90° 2:E_MI_DISP_ROTATE_270,旋转270° |
| 举例 | echo rotate 1 1 > /proc/mi_modules/mi_disp/mi_disp0 |
| 功能 | 对某个port的原始数据进行裁剪 |
|---|---|
| 命令 | echo crop [layerid] [portid] [x] [y] [width] [height]> /proc/mi_modules/mi_disp/mi_disp0 |
| 参数说明 | [layerid] 视频层id [portid] port id [x] 裁剪区域起始横坐标 [y] 裁剪区域起始纵坐标 [width] 裁剪区域宽度 [height] 裁剪区域高度 |
| 举例 | echo crop 0 0 0 0 100 100 > /proc/mi_modules/mi_disp/mi_disp0 |
| 功能 | 对某个port进行隐藏 |
|---|---|
| 命令 | echo hide [layerid] [portid] > /proc/mi_modules/mi_disp/mi_disp0 |
| 参数说明 | [layerid] 视频层id [portid] port id |
| 举例 | echo hide 0 0 > /proc/mi_modules/mi_disp/mi_disp0 |
| 功能 | 对某个port进行显示 |
|---|---|
| 命令 | echo show [layerid] [portid] > /proc/mi_modules/mi_disp/mi_disp0 |
| 参数说明 | [layerid] 视频层id [portid] port id |
| 举例 | echo show 0 0 > /proc/mi_modules/mi_disp/mi_disp0 |
| 功能 | 对某个port停止获取数据 |
|---|---|
| 命令 | echo pause [layerid] [portid] > /proc/mi_modules/mi_disp/mi_disp0 |
| 参数说明 | [layerid] 视频层id [portid] port id |
| 举例 | echo pause 0 0 > /proc/mi_modules/mi_disp/mi_disp0 |
| 功能 | 对某个port恢复,继续获取数据 |
|---|---|
| 命令 | echo resume [layerid] [portid] > /proc/mi_modules/mi_disp/mi_disp0 |
| 参数说明 | [layerid] 视频层id [portid] port id |
| 举例 | echo resume 0 0 > /proc/mi_modules/mi_disp/mi_disp0 |
| 功能 | 控制某个port获取一帧数据后停止获取数据 |
|---|---|
| 命令 | echo step [layerid] [portid] > /proc/mi_modules/mi_disp/mi_disp0 |
| 参数说明 | [layerid] 视频层id [portid] port id |
| 举例 | echo step 0 0 > /proc/mi_modules/mi_disp/mi_disp0 |
| 功能 | 对某个port的数据进行清空 |
|---|---|
| 命令 | echo clear [layerid] [portid] > /proc/mi_modules/mi_disp/mi_disp0 |
| 参数说明 | [layerid] 视频层id [portid] port id |
| 举例 | echo clear 0 0 > /proc/mi_modules/mi_disp/mi_disp0 |
| 功能 | 设置输入端口解压模式 |
|---|---|
| 命令 | echo setdecompress [layerid] [portid] [mode] > /proc/mi_modules/mi_disp/mi_disp0 |
| 参数说明 | [layerid] 视频层id [portid] port id [mode] 解压模式 |
| 举例 | echo setdecompress 0 0 0 > /proc/mi_modules/mi_disp/mi_disp0 |
| 功能 | 设置视频层显示优先级 |
|---|---|
| 命令 | echo setpriority [layerid] [priority] > /proc/mi_modules/mi_disp/mi_disp0 |
| 参数说明 | [layerid] 视频层id [priority] 优先级 |
| 举例 | echo setpriority 0 0 > /proc/mi_modules/mi_disp/mi_disp0 |
| 功能 | 打印当前panel参数 |
|---|---|
| 命令 | echo showpnlparam > /proc/mi_modules/mi_disp/mi_disp0 |
| 参数说明 | 无 |
| 举例 | echo showpnlparam > /proc/mi_modules/mi_disp/mi_disp0 |
| 功能 | PQ画质调试 |
|---|---|
| 命令 | echo pq [loadbin/loadsetting/srcid/process] [参数] > /proc/mi_modules/mi_disp/mi_disp0 |
| 参数说明 | loadbin [file_path] 加载PQ bin loadsetting [manual] 加载PQ设置 srcid [srcid] [dev] 设置源id process [en] [dev] 使能PQ处理 |
| 举例 | echo pq loadbin /mnt/pq.bin > /proc/mi_modules/mi_disp/mi_disp0 |
| 功能 | 控制disp某个port在帧堆积后是否drop buf |
|---|---|
| 命令 | echo dropbuf [layerid] [portid] [ON/OFF] > /proc/mi_modules/mi_disp/mi_disp0 |
| 参数说明 | [layerid] 视频层id [portid] port id [ON/OFF] ON:enable OFF:disable |
| 举例 | echo dropbuf 0 0 ON > /proc/mi_modules/mi_disp/mi_disp0 |
5.3. WBC cat¶
-
前置条件:WBC PROCFS 节点(mi_wbc0)仅在调用 MI_DISP_EnableWBC 成功后才会生成;未使能 WBC 时执行 cat 会报 "No such file or directory"。
-
调试信息
# cat proc/mi_modules/mi_disp/mi_wbc0
-
调试信息分析
记录当前WBC的使用状况以及数据属性,可以动态地获取到这些信息,方便调试和测试。
-
参数说明
参数 描述 device info irqnum 中断号 Isrcnt 中断发生次数 irq enable 中断状态: 0:禁用 1:使能 src dev src 设备号 srcw 数据源宽度 srch 数据源高度 src type 数据源类型 0:video+ui 1:video targetW 数据输出宽度 targetH 数据输出高度 OnScreenTask 当前正在输出的Task FiredTask 即将要输出的Task
5.4. WBC echo¶
- 前置条件:WBC PROCFS 节点(mi_wbc0)仅在调用 MI_DISP_EnableWBC 成功后才会生成;未使能 WBC 时执行 echo 会报 "nonexistent directory"。
| 功能 | 获取当前WBC所支持的echo命令及其具体使用形式 |
|---|---|
| 命令 | echo help > /proc/mi_modules/mi_disp/mi_wbc0 |
| 参数说明 | 无 |
| 举例 | echo help > /proc/mi_modules/mi_disp/mi_wbc0 |
| 功能 | dump frame data |
|---|---|
| 命令 | echo dumpframe [path] > /proc/mi_modules/mi_disp/mi_wbc0 |
| 参数说明 | [path] dump 出的frame的存储路径 |
| 举例 | echo dumpframe /mnt/ > /proc/mi_modules/mi_disp/mi_wbc0 |
6. MODPARAM.json介绍¶
6.1. 参数名及使用方式¶
| 参数名 | 默认值 | 是否支持客户配置 | 作用 |
|---|---|---|---|
| threadPriority | 98 | Y | disp/wbc线程优先级 |
| u64CpuMaskAffinity | 0 | Y | 调整disp绑定的cpu内核 |
| s32InBufExtraSize | 0 | Y | 增加disp input buffer大小 |
| debugFilePath | "" | Y | 设置自定义屏参路径 |
| au32LayerTraceLevel | 0 | Y | 设置layer trace level,数组下标对应layer id, value: 0:off, 1:on |
| au32LowLatencyMode | 0 | Y | 设置低延迟模式,数组下标对应disp id, value: 0:non-low-latency, 1:low-latency slave mode, 2:low-latency master mode(modparam.json 未显式配置时取默认值 0) |
| au32WbcTraceLevel | 0 | Y | 设置wbc trace level,数组下标对应wbc id, value: 0:off, 1:on |
| abEnDispTrigSnr | 0 | Y | 设置disp trigger sensor功能,仅在disp bind mode为frame mode时可配置, 数组下标对应disp id, value: 0:disable, 1:enable(modparam.json 未显式配置时取默认值 0) |
| au32LatencyValue | 0 | Y | 设置disp启动的延时时间,单位:10us, 范围: 0us ~ 1帧时间/10us, 在配置au32LowLatencyMode为low-latency mode或使能au32EnDispTrigSnr时有效,数组下标对应disp id(modparam.json 未显式配置时取默认值 0) |
| au32UiDefaultPriority | [12, 14] | Y | 设置disp UI的显示优先级,数组下标对应disp id |
| au32CurDefaultPriority | [13, 15] | Y | 设置disp Cur的显示优先级,数组下标对应disp id |
6.2. MODPARAM.json参数用法举例¶
修改举例 vim /config/modparam.json:
{
"E_MI_MODULE_ID_DISP" :
{
"threadPriority" : 98,
"u64CpuMaskAffinity" : 0,
"debugFilePath" : "/customer/config.json",
"s32InBufExtraSize": 0,
"au32LayerTraceLevel": [0, 1],
"au32WbcTraceLevel": [0, 1],
"au32LowLatencyMode" : [0, 0, 0],
"abEnDispTrigSnr" : [0, 0, 0],
"au32LatencyValue" : [0, 0, 0],
"au32UiDefaultPriority": [12, 14],
"au32CurDefaultPriority": [13, 15]
},
"E_MI_MODULE_ID_WBC" :
{
"threadPriority" : 98
}
}