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 设置 显示分辨率和频率相关推荐

  1. win10如何调整计算机时间同步,win10系统调整设置时间同步的频率的操作方法

    win10系统调整设置时间同步的频率的操作方法? 很多win10用户在使用电脑的时候,会发现win10系统调整设置时间同步的频率的的现象,根据小编的调查并不是所有的朋友都知道win10系统调整设置时间 ...

  2. 戴尔服务器修改分辨率,戴尔Windows Vista 中设置显示分辨率的方法

    Windows Vista设置显示分辨率的方法和XP有一点不一样的地方,这里也介绍一下. 1.桌面的空白处点击鼠标右键,在弹出菜单中点开『个性化』. 2.在『个性化』设置窗口的最下方点开『显示设置』. ...

  3. 为什么在数字开关电源中采样频率通常设置为开关频率?

    为什么在数字开关电源中采样频率通常设置为开关频率? 一. 基本概念 二. 采样频率通常设置为开关频率的几点考虑 一. 基本概念 奈奎斯特采样定律:在对模拟信号进行离散化时,采样频率至少应2倍于被分析的 ...

  4. 桌面计算机的密码修改频率,屏幕刷新频率改不了怎么办 怎么设置屏幕刷新频率...

    有时候在我们操作电脑时,会出现电脑 显示器 (屏幕)会有些颤抖模糊不清.闪烁的感受,这时懂一些电脑常识的朋友会通过设置电脑显示器(屏幕)的刷新率从而来解决问题.还有一种情况当我们重新安装系统时,一般情 ...

  5. 《树莓派入门 (九) HDMI设置特殊分辨率1920*1920/1024*310》

    场景 在使用树莓派的时候,难免遇到使用的屏幕出现那种不规则的或者特殊的分辨率,这次以京东方的屏幕1920*1920的分辨率处理,树莓派的配置显示参数的接口存放在/boot/的config.txt,知道 ...

  6. STM32开发 -- 设置MCU运行频率

    参看:STM32系列修改外部晶振以及代码的修改(f103.f105为例) 后续补上. 后续学习时钟的分频/倍频 更换晶振后怎么设置时钟 如何将MCU运行频率降至8MHz;

  7. linux cpu频率设置,linux cpu 频率设置

    文章目录安装依赖安装内核通用包 安装具体工具包 设定cpu运行模式 查看cpu支持的频率设定 设置最大和最小频率 时时监控cpu频率 修改频率 安装依赖 安装内核通用包apt install linu ...

  8. ubuntu 设置显示分辨率

    查看显示器支持的分辨率 $ xrandr 我的 Ubuntu 是虚拟机,所以显示器名称是 Virtual1 ,如果是物理机一般是以显示接口命名的,如 VGA1.DP1等,使用 xrandr 命令查看一 ...

  9. 树莓派2B利用HDMI驱动1440×2560屏设置

    树莓派2b的HDMI设置在/boot/config的文件内,在此文件修改即可 配置如下: hdmi_force_hotplug=1 framebuffer_depth=32 gpu_mem=448 f ...

最新文章

  1. asp.net MD5 加密
  2. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(二)转载自码农网
  3. 堡垒机的使用-及功能
  4. freeyellowe—book_剑桥少儿英语yellow book内容
  5. apt来安装mysql5.7,linux系统ubuntu18.04安装mysql 5.7
  6. because the principal dbo does not exist 问题解决方法
  7. 【数据结构】——归并排序
  8. c#爬虫-1688官网自动登录
  9. 《假如编程是魔法之零基础看得懂的Python入门教程 》——(七)我把魔法变成了积木
  10. Java学习笔记-正则表达式的模式匹配
  11. 15款精美的 WordPress 电子商务网站模板
  12. mssql 事务的一个例子
  13. 拿去吧你,软件测试的文件和目录测试都在这
  14. DEVC++下载与环境配置,手把手教程
  15. VB窗体控件设计登录注册页面
  16. 教程 - 【超详细】从零开始部署网站——阿里云主机CentOS系统
  17. 笔记本电脑蓝牙设置开关消失不见的处理方法
  18. DLNA使用设置教程
  19. 四足机器人足端轨迹规划--摆线
  20. one 主格 复数 宾格_主格和宾格的复数形式到底怎么写请说出答案

热门文章

  1. 全国一共有多少所大学?2688所!
  2. qt 设置中英文切换
  3. 点云配准之icp的简单实现
  4. 三菱FX3U——ST编程中的进制
  5. js更改对象中属性名的方法
  6. 【前端】浅谈浏览器内核:渲染引擎、JS引擎
  7. python笔记-简介
  8. emscripten cmake 环境配置
  9. 【C语言】取整函数ceil()用法
  10. java 直播媒体流服务(ffmpeg、javacv)支持本地视频、网路视频