HDMI 设置 显示分辨率和频率
HDMI控制器支持很多显示的分辨率和频率,每种都有相对应的timing
比如:
这些值,在streamon的时候通过函数
“hdmi_timing_apply” 写到HDMI的setting core registers和 Timing generator registers寄存器。
在进行HDMI显示时,设置的格式必须要和hdmi preset(timing的预置值)一致,否则导致显示不正确,或者内存溢出错误。
在videodev2.h中有配置的宏
HDMI 在初始化的时候有默认的配置(hdmi_drv.c)
在probe中,根据预置的宏获取hdmi时钟参数,
S5PV210支持的参数为:
通过VIDIOC_ENUM_DV_PRESETS命令可以获取HDMI控制器枚举列表,
通过VIDIOC_S_DV_PRESET,可以设置当前HDMI预设值,
通过VIDIOC_G_DV_PRESET,可以获取当前预设值。
测试程序(测试环境:在显示完480P后,再显示1080P时必须重新配置的一个程序):
int setup_preset(int fd, int preset)
{int ret;int count;struct v4l2_dv_preset presetinfo;struct v4l2_dv_enum_preset enuminfo;memset(&presetinfo, 0, sizeof(presetinfo)); memset(&enuminfo, 0, sizeof(enuminfo)); //枚举s5pv210支持的preset值while((ret = ioctl(fd, VIDIOC_ENUM_DV_PRESETS, &enuminfo)) >= 0){printf("preset:%d,name:%s\n",enuminfo.preset, enuminfo.name);enuminfo.index++; }memset(&presetinfo, 0, sizeof(presetinfo)); presetinfo.preset = preset;//设置当前的preset值if((ret = ioctl(fd, VIDIOC_S_DV_PRESET, &presetinfo))<0){printf("VIDIOC_G_DV_PRESET error:%d\n",ret);return -1;}memset(&presetinfo, 0, sizeof(presetinfo)); //读取当前的preset值if((ret = ioctl(fd, VIDIOC_G_DV_PRESET, &presetinfo))<0){printf("VIDIOC_G_DV_PRESET error:%d\n",ret);return -1;}printf("preset:%d\n",presetinfo.preset);return 0;
}
在设置格式之前调用这个函数
open_hdmi_device();
setup_preset(hdmi_fd, 18);//这里的18代表1080P@60hz
hdmi_setfmt();
log:
preset:1,name:480p@59.94
preset:2,name:576p@50
preset:6,name:720p@50
preset:7,name:720p@59.94
preset:8,name:720p@60
preset:14,name:1080p@24
preset:16,name:1080p@30
preset:17,name:1080p@50
preset:12,name:1080i@50
preset:13,name:1080i@60
preset:18,name:1080p@60
preset:18
HDMI 设置 显示分辨率和频率相关推荐
- win10如何调整计算机时间同步,win10系统调整设置时间同步的频率的操作方法
win10系统调整设置时间同步的频率的操作方法? 很多win10用户在使用电脑的时候,会发现win10系统调整设置时间同步的频率的的现象,根据小编的调查并不是所有的朋友都知道win10系统调整设置时间 ...
- 戴尔服务器修改分辨率,戴尔Windows Vista 中设置显示分辨率的方法
Windows Vista设置显示分辨率的方法和XP有一点不一样的地方,这里也介绍一下. 1.桌面的空白处点击鼠标右键,在弹出菜单中点开『个性化』. 2.在『个性化』设置窗口的最下方点开『显示设置』. ...
- 为什么在数字开关电源中采样频率通常设置为开关频率?
为什么在数字开关电源中采样频率通常设置为开关频率? 一. 基本概念 二. 采样频率通常设置为开关频率的几点考虑 一. 基本概念 奈奎斯特采样定律:在对模拟信号进行离散化时,采样频率至少应2倍于被分析的 ...
- 桌面计算机的密码修改频率,屏幕刷新频率改不了怎么办 怎么设置屏幕刷新频率...
有时候在我们操作电脑时,会出现电脑 显示器 (屏幕)会有些颤抖模糊不清.闪烁的感受,这时懂一些电脑常识的朋友会通过设置电脑显示器(屏幕)的刷新率从而来解决问题.还有一种情况当我们重新安装系统时,一般情 ...
- 《树莓派入门 (九) HDMI设置特殊分辨率1920*1920/1024*310》
场景 在使用树莓派的时候,难免遇到使用的屏幕出现那种不规则的或者特殊的分辨率,这次以京东方的屏幕1920*1920的分辨率处理,树莓派的配置显示参数的接口存放在/boot/的config.txt,知道 ...
- STM32开发 -- 设置MCU运行频率
参看:STM32系列修改外部晶振以及代码的修改(f103.f105为例) 后续补上. 后续学习时钟的分频/倍频 更换晶振后怎么设置时钟 如何将MCU运行频率降至8MHz;
- linux cpu频率设置,linux cpu 频率设置
文章目录安装依赖安装内核通用包 安装具体工具包 设定cpu运行模式 查看cpu支持的频率设定 设置最大和最小频率 时时监控cpu频率 修改频率 安装依赖 安装内核通用包apt install linu ...
- ubuntu 设置显示分辨率
查看显示器支持的分辨率 $ xrandr 我的 Ubuntu 是虚拟机,所以显示器名称是 Virtual1 ,如果是物理机一般是以显示接口命名的,如 VGA1.DP1等,使用 xrandr 命令查看一 ...
- 树莓派2B利用HDMI驱动1440×2560屏设置
树莓派2b的HDMI设置在/boot/config的文件内,在此文件修改即可 配置如下: hdmi_force_hotplug=1 framebuffer_depth=32 gpu_mem=448 f ...
最新文章
- asp.net MD5 加密
- 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(二)转载自码农网
- 堡垒机的使用-及功能
- freeyellowe—book_剑桥少儿英语yellow book内容
- apt来安装mysql5.7,linux系统ubuntu18.04安装mysql 5.7
- because the principal dbo does not exist 问题解决方法
- 【数据结构】——归并排序
- c#爬虫-1688官网自动登录
- 《假如编程是魔法之零基础看得懂的Python入门教程 》——(七)我把魔法变成了积木
- Java学习笔记-正则表达式的模式匹配
- 15款精美的 WordPress 电子商务网站模板
- mssql 事务的一个例子
- 拿去吧你,软件测试的文件和目录测试都在这
- DEVC++下载与环境配置,手把手教程
- VB窗体控件设计登录注册页面
- 教程 - 【超详细】从零开始部署网站——阿里云主机CentOS系统
- 笔记本电脑蓝牙设置开关消失不见的处理方法
- DLNA使用设置教程
- 四足机器人足端轨迹规划--摆线
- one 主格 复数 宾格_主格和宾格的复数形式到底怎么写请说出答案