v4l2视频驱动中关于vivi.c的个人分析(菜鸟入门,请轻拍!)

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

今天是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:

       &

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值