今天是2013-3-22,在前一段时间看了很多I2C以后(虽然没有经过什么实际检验,但是感觉还是对I2C有了一点点的了解),今天开始来学习学习有关视频方面的东西。
首先我看的参考入门文档:
http://zjbintsystem.blog.51cto.com/964211/464729
还有几个datasheet,如:VPFE、VPBE以及TMS320DigitSubsystem
应用层是怎么做的,先参看这个文档,可以参看这个文档:
http://www.rosoo.net/a/201001/8382.html
我觉得说清楚一个东西,把他的来龙去脉讲清楚是比较困难的,但是按照以下几个方面来讲,效果一定不错:是什么,为什么,怎么样。记得这是初中政治老师对我说的,但是我觉得在任何地方都是通的。
V4L2是什么:video for linux 2的简称吧。所以就变成V4L2了。有2,当然之前有1了,至于未来怎么样,有没有3,这个我就不管了。
为什么要用V4L2:或者说有啥用呢。看这个:
参考文档:http://dongyulong.blog.51cto.com/1451604/344987
V4L2主要用来搞视频的。视频并不是说我加个摄像头,然后往我画的板子上一接,就可以在我的板子的LCD上显示数据了。那我们要做什么呢?要让板子认识外设芯片(比如tvp5146),要对我采集到的视频数据进行处理(这个是不是属于应用层?)等等工作。V4L2就提供了许多这样的接口。因为我们摄像头不同,板子芯片更不同,所以要有一套可移植的东东。我感觉大概是这样。(才看两天,以后有了更深刻的理解,再来补充更改吧。)
V4L2有一个重要的头文件,大部分文章都会说到:videodev2.h
注释中都写了:/**Video for Linux Two header file**/
这个头文件看的真蛋疼!
文档:http://blog.youkuaiyun.com/hongtao_liu/article/details/5894089
这篇文档写的不错,初步入门值得细看。
好几天没看了,都不知道该怎么看了,真蛋疼。
给个链接:http://blog.youkuaiyun.com/shui1025701856/article/details/7459868
这个文章里面说:V4L2驱动对用户空间提供字符设备,主设备号为81,对于视频设备,其次设备号为0-63.初次之外,次设备号为64-127的radio设备,次设备号为192-223的teletext设备,次设备号为224-255的VBI设备。
这个跟我刚才在v4l2-dev.c中看到的是相关的。
minor_offset是偏移,minor_cnt表示的是设备号的count。
即这段:switch (type) {
case VFL_TYPE_GRABBER:
minor_offset = 0;
minor_cnt = 64;
break;
case VFL_TYPE_RADIO:
minor_offset = 64;
minor_cnt = 64;
break;
case VFL_TYPE_VBI:
minor_offset = 224;
minor_cnt = 32;
break;
default:
&

本文介绍了V4L2(Video for Linux 2)的基本概念,包括其用途、历史和发展。通过分析vivi.c驱动,作者详细解释了V4L2驱动如何为用户空间提供视频设备接口,涉及的关键文件如videodev2.h、v4l2-dev.h以及v4l2-dev.c。文章深入讨论了设备注册、ioctl命令处理流程,展示了V4L2驱动如何处理open、read、write等系统调用,并解释了video_ioctl2函数在处理ioctl请求中的作用。
最低0.47元/天 解锁文章
1536

被折叠的 条评论
为什么被折叠?



