HDMI相关

news/2024/11/8 23:31:30/

HDMI相关基础

  • 4.4 与 9.0 差异
  • AVMUTE 的使用
  • hdcp异常
    • 检查 HDCP 交互:
    • 检查 ksv(视频加密密钥):
    • HDCP 的内部检测:
  • 显示模式分析
    • 查看是否已连接电视机
    • 查看当前显示模式
    • 更改当前显示分辨率
  • 查看 EDID 信息
    • 查看显示设备的 EDID 信息
    • 查看电视机支持的最佳分辨率
  • Android 系统对 HDMI 输出制式的设置
    • 1. 查看当前输出制式的节点命令:
    • 2. 输出制式在 Framework 层的代码位置:
    • 主要接口说明
  • 最优分辨率、颜色空间、色深的配置
  • 使用 HDMI Bist 模式验证 HDMI 的显示
  • 节点说明


4.4 与 9.0 差异


4.4走framework MboxOutputModeService
9.0走systemcontrol

AVMUTE 的使用


对应的切点:/sys/class/amhdmitx/amhdmitx0/avmute
往其写入 1,表示进行 SET_AVMUTE
往其写入-1,表示进行 CLEAR_AVMUTE

hdcp异常


检查 HDCP 交互:

输入命令 cat /sys/module/hdmitx/parameters/hdmi_authenticated,输出大于 0 为成功,小于等于 0 为失败

检查 ksv(视频加密密钥):

输入命令 cat /sys/class/amhdmitx/amhdmitx0/hdcp_ksv_info,输出如下:

  • AKSV: 663fa14267 Valid
  • BKSV: 27c2d1b6ca Valid

如果出现 AKSV 为 invalid 的情况,请检查 HDCP key 烧录是否有误。
如果出现 BKSV 为 invalid 的情况,请检查歉收端是否为合法的带有 HDCP key 的设备。

HDCP 的内部检测:

输入命令 cat /sys/class/amhdmitx/amhdmitx0/hdcp_ksv_info,出现以下打印表示检测成功,否则为检测失败

显示模式分析


查看是否已连接电视机

输入命令 cat /sys/class/amhdmitx/amhdmitx0/hpd_state

0: 未连接电视
1:已连接电视

查看当前显示模式

输入命令 cat /sys/class/display/mode,输出当前分辨率(如:720p50hz)
输入命令 cat /sys/class/amhdmitx/amhdmitx0/disp_mode,也可查看分辨率,显示的是 vic 编号,其对应关系:

VIC: 0> HDMI_Unkown
VIC: 2> 480p
VIC: 4> 720p
VIC: 5> 1080i
VIC: 6> 480i
VIC: 16> 1080p
VIC: 17> 576p
VIC: 19> 720p50
VIC: 20> 1080i50
VIC: 21> 576i
VIC: 31> 1080p50
VIC: 93> 4k2k24hz
VIC: 94> 4k2k25hz
VIC: 95> 4k2k30hz
VIC: 98> smpte, 24hz

更改当前显示分辨率

输入 echo 1080p > /sys/class/display/mode

查看 EDID 信息


查看显示设备的 EDID 信息

cat /sys/class/amhdmitx/amhdmitx0/edid

查看电视机支持的最佳分辨率

cat /sys/class/amhdmitx/amhdmitx0/disp_cap
以下为输出(其中带星号的为最佳分辨率):

480i
576i
576p
720p
1080i
1080p
720p50hz*
1080i50hz
1080p50hz

Android 系统对 HDMI 输出制式的设置


1. 查看当前输出制式的节点命令:

cat /sys/class/display/mode

2. 输出制式在 Framework 层的代码位置:

frameworks/base/core/java/android/app/MboxOutputModeManager.java
frameworks/base/services/java/com/android/server/MboxOutputModeService.java

实际上最终都是通过 MboxOutputModeService 类实现对 HDMI 制式的设置。

主要接口说明

1. setDisplayMode()
Function: 设置当前屏幕的显示比例
Param: "4:3"
"16:9" 
2. setScreenModeValue()
Function: 设置屏幕的显示模式
Param: "full": 全屏
"normal" : 正常模式
"16_9": 16:9
"4_3" : 4:3
3. GetScreenModeValue()
Function: 获取当前屏幕的输出模式。
Param: 无
4. setHdrMode()
Function: 设置显示的 HDR 模式
Param: "0":关闭 HDR
"1":打开 HDR
"2": auto 模式
5. getHdrMode()
Function:获取 HDR 模式
Param:无
6. setColorspaceMode()
Function: 设置显示的颜色空间和色深
Param: "Auto"
"Y420 8bit"
"Y420 10bit"
"Y422 12bit" 
7. getColorspaceMode()
Function: 获取当前显示的颜色空间和色深
Param: 无
8. getSupportColorSpaceList()
Function: 获取当前显示设备支持的颜色空间和色深列表
Param: 无
9. getSupportResoulutionList()
Function: 获取当前显示设备支持的分辨率列表
Param:无
10. getBestMatchResolution()
Function: 获取当前显示设备最佳的分辨率
Param:无
11. setOutputMode()
Function:设置当前显示设备的显示模式
Param:"cvbs"
"720p60hz"
"1080p60hz"

最优分辨率、颜色空间、色深的配置


获取当前显示设备支持的颜色空间及色深的节点:
cat /sys/class/amhdmitx/amhdmitx0/dc_cap
获取当前显示设备支持的分辨率节点:
cat /sys/class/amhdmitx/amhdmitx0/disp_cap

使用 HDMI Bist 模式验证 HDMI 的显示


  1. 输出 BIST COLORBAR 模式:
    echo bist1920 > /sys/class/amhdmitx/amhdmitx0/debug
  2. 输出 BIST LINE 模式:
    echo bistline > /sys/class/amhdmitx/amhdmitx0/debug
  3. 输出 BIST DOT 模式:
    echo bistdot > /sys/class/amhdmitx/amhdmitx0/debug
  4. 退出 BIST 模式:
    echo bistoff > /sys/class/amhdmitx/amhdmitx0/debug

节点说明

/sys/class/amhdmitx/amhdmitx0/hdcp_ver   ro     //RX端支持的HDCP version
/sys/class/amhdmitx/amhdmitx0/hdcp_lstore ro    //本机含有的HDCP KEY类型
/sys/class/amhdmitx/amhdmitx0/disp_cap  ro      //RX支持的分辨率能力
/sys/class/amhdmitx/amhdmitx0/vesa_cap  ro      //RX端支持的VESA模式
/sys/class/amhdmitx/amhdmitx0/dc_cap   ro       //RX端支持的色深,色彩空间能力
/sys/class/amhdmitx/amhdmitx0/hdr_cap  ro       //RX端支持的hdr能力
/sys/class/amhdmitx/amhdmitx0/dv_cap   ro       //RX端支持的dolbyVersion能力
/sys/class/amhdmitx/amhdmitx0/hdcp_mode  rw     //{1|2}
/sys/class/amhdmitx/amhdmitx0/hdcp_ctrl   wo    //hdcp控制 {stop14|stop22}
/sys/module/hdmitx20/parameters/hdmi_authenticated  ro  //hdmi认证
/sys/class/amhdmitx/amhdmitx0/avmute  wo        //hdmi 声音图像{1 disable|-1 enable} 
/sys/class/display/mode  rw                     //读写分辨率模式
/sys/class/video/axis  rw                       //播放器显示窗口大小坐标
/sys/class/graphics/fb0/window_axis  rw         //页面播放大小坐标
/sys/class/amhdmitx/amhdmitx0/hpd_state  ro     //HDMI线的拨插动作 {0未连接|1已连接}
/sys/class/amhdmitx/amhdmitx0/phy       w        //{0 disable| 1 enable}echo bist3840 > /sys/class/amhdmitx/amhdmitx0/debug
echo bist1920 > /sys/class/amhdmitx/amhdmitx0/debug
echo bist1280 > /sys/class/amhdmitx/amhdmitx0/debug
echo bist720 > /sys/class/amhdmitx/amhdmitx0/debug
echo bistoff > /sys/class/amhdmitx/amhdmitx0/debug关 pq
echo vpp_pq disable > /sys/class/amvecm/debug
echo 0 > /sys/module/am_vecm/parameters/probe_ok
开 pq
echo vpp_pq enable > /sys/class/amvecm/debug
echo 1 > /sys/module/am_vecm/parameters/probe_ok//sr{0|1}
echo 0 > /sys/class/video/sr
echo 1 > /sys/class/video/sr//bypass DI
echo 1 > /sys/module/di/parameters/bypass_all//{0 disable| 1 enable}
echo 0 > /sys/class/amhdmitx/amhdmitx0/phy
echo 1 > /sys/class/amhdmitx/amhdmitx0/phy
//声音图像{1 disable|-1 enable} 
echo  1 >/sys/class/amhdmitx/amhdmitx0/avmute
echo -1 >/sys/class/amhdmitx/amhdmitx0/avmute//{stop14|stop22}
echo stop14 > /sys/class/amhdmitx/amhdmitx0/hdcp_ctrl
echo stop22 > /sys/class/amhdmitx/amhdmitx0/hdcp_ctrl//{1|2}
echo 1 > /sys/class/amhdmitx/amhdmitx0/hdcp_mode
echo 2 > /sys/class/amhdmitx/amhdmitx0/hdcp_mode$ps -A |grep -i hdcp
$kill -9 hdcp pid
$hdcp bin文件&echo null      > /sys/class/display/mode
echo 444,8bit  > /sys/class/amhdmitx/amhdmitx0/attr 
echo 1080p60hz > /sys/class/display/mode

http://www.ppmy.cn/news/233087.html

相关文章

HDMI接口介绍

文章目录 HDMI接口TMDS最小化传输差分信号HDMI引脚HDMI模块框图 HDMI接口 HDMI(High Definition Multimedia Interface)高清多媒体接口,传输数字信号以及音频信号。HDMI与去掉音频传输功能的UDI(Unified Display Interface)统一显示接口都继…

一、什么是HDMI

文章目录 一、HDMI介绍1.1 HDMI 特点1.2 常见的HDMI接口设备1.3 HDMI接口种类1.3.1 HDMI标准接口1.3.2 HDMI迷你接口1.3.3 HDMI微型接口 1.4 HDMI 构成1.5 HDMI协议和版本迭代1.5.1 HDMI 1.01.5.2 HDMI 1.11.5.3 HDMI 1.21.5.4 HDMI 1.2a1.5.5 HDMI 1.31.5.6 HDMI 1.41.5.7 HDM…

计算机使用hdmi需要设置方法,如何在计算机显示器上切换HDMI

想知道如何切换显示器的HDMI吗?以下是编辑器带来的如何切换电脑显示器的HDMI的内容,欢迎阅读! 计算机监视器切换hdmi方法: 是连接。这很简单。仅一根HDMI电缆,一端插入计算机图形卡的HDMI输出,另一端插入电…

显示器的 VGA、HDMI、DVI 和DisplayPort接口有什么区别?

整理参考:https://www.zhihu.com/question/19571221/answer/172861467 维基百科 百度百科 其他资料。。。 显示器接口 ★简介 最常见的显示器接口有VGA端子、数码视频接口 (DVI)、高画质多媒体接口(HDMI)和DisplayPort(DP)。 ★最常…

HDMI/DVI

一.基础知识 1.历史 早期在FPGA芯片上实现HDMI控制显示是使用HDMI发送芯片,eg:ADV7513,sil9022,CH7301等。用之前VGA控制中输出的RGB信号,行场同步信号和使能信号输入到HDMI芯片中处理再输出。 为了节省I/O引脚资源,直接在FPGA上…

硬件:显示器接口DP、HDMI、VGA、DVI有什么区别?

❤️作者主页:IT技术分享社区 ❤️作者简介:大家好,我是IT技术分享社区的博主,从事C#、Java开发九年,对数据库、C#、Java、前端、运维、电脑技巧等经验丰富。 ❤️个人荣誉: 数据库领域优质创作者🏆&#x…

【科普】显示器VGA、DVI、HDMI、DP等各种接口详细科普

由于显示器接口十分众多,比如说VGA、DVI、HDMI、DP等等等等,而每个接口都有各种型号,很容易让小白绕晕,因此这里详细介绍一下各个接口以及接口的相关型号参数。 目录 一、VGA接口二、DVI接口三、HDMI接口四、DP接口五、总结 一、…

HP笔记本HDMI检测不到外接显示器

我的笔记本电脑由于屏幕尺寸不大,所以搞了一个更大的显示器作为外接屏幕。 但是每隔一段时间都会出现检测不到外接显示器的情况, 具体表现如下: 使用拓展坞(type-C的)连接笔记本显示器可以正常显示,但是…