- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Linux视频驱动V4L2》.pdf
VideoforLinuxTwo(V4L2)——驱动编写指南
Video for Linux Two
(V4L2)
——驱动编写指南
原始翻译稿:Video4Linux2 (usr 技术社区 译文组)
原文地址:The Video4Linux2
整理:Tekkaman Ninja
2012-8-17
声明:本文是基于/网站上的经典系列文章 《Video4Linux2 》的翻译整理。
原始翻译来自usr 技术社区 译文组和雷宏亮的博文。
本文因个人学习需要顺手做整理、修正,发布此文档仅为方便广大Linux 爱好者。
第 1/30页 08/19/2012
VideoforLinuxTwo(V4L2)——驱动编写指南
目录
一、 API 介绍3
二、 注册和open() 4
1. 视频设备注册5
2. open() 和 release() 5
三、 基本ioctl()处理7
四、 输入和输出9
1. 视频标准 9
2. 输入10
3. 输出11
五、 颜色与格式12
1. 色域12
2. 密集存储和平面存储12
3. 四字符码13
4. RGB 格式 13
5. YUV 格式14
6. 其他格式 15
7. 格式描述 15
六、 格式协商 16
七、 基本的帧I/O 19
1. read() 和 write() 19
2. 流参数19
八、 流I/O 22
1. v4l2_buffer 结构体22
2. 缓冲区设定24
3. 将缓冲区映射到用户空间25
4. 流I/O 26
九、 控制28
第 2/30页 08/19/2012
VideoforLinuxTwo(V4L2)——驱动编写指南
一、 API 介绍
笔者最近有机会写了一个用于“One Laptop Per Child”项目中的摄像头驱动。这个驱动使用了为此目的而
设计的内核API :the Video4Linux2 API 。在写这个驱动的过程中,笔者发现了一个惊人的问题:这个API
的文档工作做得并不是很好,而实际上用户层的文档则写得相当不错。为了补救这一现状,LWN 将在未来
的内个月里写一系列文章,告诉大家如何写V4L2 接口的驱动。
V4L2 有一段历史了。大约在1998 的秋天,它的光芒第一次出现在Bill Dirks 的眼中。经过长足的发展,
它于2002 年 11 月,在发布2.5.46 时,融入了主线内核之中。然而直到今天,仍有一部分内核驱不支持新
的API ,这种新旧API 的转换工作仍在进行。同时,V4L2 API 也在发展,并在2.6.18 版本中进行了一些重
大的改变。支持V4L2 的应用依旧相对较少。
V4L2 旨在支持多种设备,它们之中只有一部分在本质上是真正的视频设备:
video capture interface (影像捕获接口)从调谐器或摄像头上获取视频数据。对很多人来讲,影
像捕获(video capture) 是V4L2 的基本应用。由于笔者在这方面的最有经验,这一系列文章也趋
文档评论(0)