问题标签 [edid]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - C/C++ 在启动时查询 EDID
我正在寻找一种在我的 Android 系统启动时查询 EDID 数据的方法。
我想我可以使用ioctl
调用,我看到帧缓冲区位于/sys/class/graphics/fb*
. 但目前我只是得到垃圾输出。
这是我目前正在使用的命令,它在以下位置与帧缓冲区一起工作得很好/dev/graphics/fb*
:
但我希望能够改用 EDID 数据。希望有人能指出我正确的方向。
c - EDID 信息和 HDMI 配置
我正在使用 TDA19988 HDMI 成帧器,并且无法理解如何转换 EDID 信息以配置成帧器输出。
例如,从 EDID 我可以看到以下解析信息:
1280x720 0x41 74.2MHZ
H : 1280 start 1390 end 1430 total 1650 clock 45.0KHZ
V : 720 start 725 end 730 total 750 clock 60.0HZ
现在,HDMI 成帧器允许配置以下内容:
refpix (preset pixel) = ?
refline (预设线) = ?
npix(输入像素数)= ?
nline (输入行数) = ?
vs_line_start_1 (垂直同步线开始) = ?
vs_pix_start_1(垂直同步像素开始)=?
vs_line_end_1 (垂直同步线端) = ?
vs_pix_end_1(垂直同步像素结束)=?
hs_pix_start (水平同步像素数) = ?
vwin_start_1(垂直窗口开始)=?
vwin_end_1 (垂直窗口结束) = ?
de_start (数据启用开始) = ?
de_end (数据启用结束) = ?
我无法理解如何转换 EDID 信息以配置 HDMI 成帧器输出。有人可以给我一些帮助吗?
提前致谢!
windows - 宏碁显示器序列号
我正在尝试获取查看 Windows 注册表的 Acer 显示器的序列号。我在 Python 3 中使用以下代码解析注册表:
结果,我在 cmd 窗口中得到如下输出:
问题是“Serie”不是真正的序列号(Acer 显示器序列号有 22 个字符,看起来像“ETL480201781700F4B396L”)
有一种方法可以使用“Serie”和 SNID 构建真正的序列号也识别显示器。
以下是两个 Acer 显示器的示例:
有人知道如何获取此信息吗?
谢谢!
c# - 从 EDID 块中提取信息:5 位到字母?
我正在从 SetupAPI 调用中收集 EDID 块(作为字节),以获取一些详细的监视器信息。
正如EDID 文档所说,某些字节在其中存储“5 位字母”。
只是为了让您免于头痛,我附上了一个易于理解的方案:
如您所见,我需要从字节中提取 5 位字母。
我可以设法将字节拆分为 BitArray,但是我不知道如何将这些位转换为字母。
维基还说:
那么,转换这些位的最快和最轻松的方法是什么?
我想我可以预定义一个 Dictionary 对象,例如:
然后在其中搜索,但首先我不知道如何从“00010=B”到“11010=Z”,其次我确定必须有更合适的方法。
谢谢你的帮助。
c# - 识别显示设备的可靠方法?
我一直在研究一种用于识别显示设备(在我的例子中是电视)的解决方案,以保持专为使用多显示器而设计的主要布局。
假设我连接了 6 台电视。(通常其中 3 个通过 HDMI 端口,另外 3 个通过 DVI 端口(使用 DVI-to-HDMI 适配器)),它们的物理位置是 3x2,如下所示:
电视 1 ... 电视 2 ... 电视 3
电视4 ... 电视5 ... 电视6
目标
我想在每台特定的电视上显示一些全屏内容。Content1 必须转到 TV1,Content2 必须转到 TV2 等等......换句话说:我需要将我的内容推送到 DisplayDevice(电视) - 而不是任何位置或屏幕,因为它们可能会因 Windows 行为而改变。(见下文)
您可能知道,Windows 不会按照您连接它们的顺序枚举显示设备(或者实际上根本不基于任何规则?)。它使用完全不同的方式来枚举显示,例如:
\.\DISPLAY3 ... \.\DISPLAY6 ... \.\DISPLAY1
\.\DISPLAY4 ... \.\DISPLAY2 ... \.\DISPLAY5
为了克服这个问题,当我完成所有电视的连接以匹配它们的真实位置时,我会在显示设置中手动订购电视。
问题
但是这里有一个问题:一些电视型号只是在关机(或设置为待机模式)时假装它们已被拔掉,这会导致 Windows将显示设备从系统中删除并重新枚举重新显示设备。
由于这种行为(一些电视型号和 Windows 本身),我不能指望Screen.DisplayName属性甚至Screen.Location因为它们是变量。它们都在重新枚举过程后立即更改。
到目前为止我尝试过的解决方案
我试图获取所有显示设备的序列号,认为我可以找到一种方法将这些数字与 Screen.DisplayName 相关联。好吧,我实际上是通过使用 SetupAPI、EnumDisplayDevices 来管理到达那里的,但是在我意识到大多数电视没有有效的序列号之后,这一切都变成了垃圾。甚至三星电视也没有序列号(但三星显示器肯定有 - 所以我想这是关于“显示器”和“电视”之间的区别)
毕竟..
我仍在寻找解决这个问题的方法。我想到的另一个想法是,也许我应该停止尝试将内容推送到显示设备(因为它们无法识别)也许我应该尝试将内容推送到显卡的端口,这意味着我必须确定哪些端口显卡的数量与哪个显示设备(屏幕)相关,但我都在谈论它,但对此一无所知 - 甚至不知道这样的事情是否可能。
我正在寻找您的建议,现在谢谢。
audio - 如果在 xorg.conf (Nvidia304) 中使用 UseEDID “false”,如何取回音频
我的 Ubuntu 机器以前运行良好,然后我升级了。
问题在于它没有启动 xorg.conf,一切正常......但是
显示器(松下 PDP)有一个损坏的模式线(你在 LHS 上得到 1 厘米的 RHS 屏幕),所以需要一个定制的。激活模式行的唯一方法是使用 xorg.conf,除非 UseEDID “false”,否则它总是显示给定 EDID。
但是 UseEDID 为假,因为更新,机器没有音频。UseEDID = true,我们有音频。我已经来回启动了......它只是从坏显示/音频到无音频/好显示的一条线
试过 Nvidia 304 340 352 官方。
因此,任何人都可以提供最佳的前进方式。
android - Android 上的 EDID 信息
我需要通过 hdmi 获取连接到我的 android 设备的显示信息。我使用 DisplayManager 来获取显示信息,但我无法从中获取供应商信息。我的理解是,这种信息可以从扩展显示识别数据(EDID)中检索到。是否有任何 api 或方法来获取这些数据并在 android 中解析它?
我正在使用的 Android 版本是 4.0+
android - 从纵向切换到横向模式后android屏幕模糊
我正在开发带有 android 4.4 系统的 nvidia jetson tk1 开发板。我已经通过hdmi接口将板子连接到屏幕上。问题是每当我将屏幕切换到横向模式时,屏幕都会变得模糊,我的意思是屏幕刷新时会有一些不规则的线条。我使用内置应用程序旋转屏幕。由于我不熟悉 dsi 架构,任何人都可以帮助指出我应该检查哪个模块,edid,hdmi 或 android?谢谢。
drivers - 用于 5k 显示器的 Edid
EDID 1.4/1.3 结构中的horizontal Addressable Video in pixels
andVertical Addressable Video in lines
字段限制为 0-4095 范围内的值。对于 5k 显示器和更高分辨率,如何才能超出此限制?
我无法在规格或其他文件中找到任何信息。任何帮助表示赞赏。
xamarin - 如何在 OSX 中获取监视器 EDID?
我想在 OSX 中提取 EDID 信息?
它看起来像它存储在IORegistry
. 有没有办法使用当前的monomac
库来访问它?我可以使用标准interop
还是需要编写自定义shim
?
看起来ioreg
命令行也可以获取IODisplay
EDID 属性,但似乎没有一种简单的方法来获取设备的缩写列表。