最近在做基于ARM的视频采集,要用到video4linux。百度了一下说“video4linux是针对视频设备的应用程序编 程提供一系列接口函数,这些视频设备包括现今市场上流行的TV卡、视频捕捉卡和USB摄像头等”也就是说想上层提供一些接口,但是它如何跟底层驱动打交道的呢?是不是驱动程序要按它的规范来写?它到底担任一个什么样的角色?顺便问下有没有什么好得资料推荐一下
------解决方案--------------------
现在已经有了V4L2(Video For Linux Two)是Video For Linux API 的第2版,它定义了视频设备驱动的一系列内核接口。
从LINUX2.6内核开始,这些接口函数已经添加到Linux内核。V4l2设备驱动的主要任务是向内核注册视频设备,为这些设备申请帧缓冲并且管理这些缓冲队列,为CAMIF和Camera或视频编解码芯片申请硬件资源包括IO,DMA,IRQ并初始化硬件设备。
例如,市售的各种三星的6410开发板,一般都支持V4L2。可以通过学习开发板的驱动或资料来学习V4L。
------解决方案--------------------
很简单
就是驱动按照V4L标准编写,提供一些固定名称和功能的API
然后应用程序也按V4L标准编写,使用的API都是规定好的
好处是不会有一大堆各种厂商定义的API
程序的可移植性强
仅此而已!