码迷,mamicode.com
首页 > 其他好文 > 详细

v4l2中的多流机制

时间:2014-05-18 18:59:28      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:des   c   a   使用   工作   linux   

一直在搞camera,对v4l2也比较熟悉了,今天写文章说点自己的看法

对于v4l2,对多流的支持是比较弱的,只是一个流。但现在的camera 硬件,能支持多个流同事工作,所以又必要对v4l2的api进行扩展,加入多流的支持。

v4l2的团队们考虑了一种做法,可参考linuxtv的网页。

这里谈一下我自己的考虑。

1 先来考虑一个camera设备的构成

  1  一个camera 用一个v4l2 设备来代表,然后导出一个vidoe节点来访问这个设备。

  2  一个camera 有很多相关的模块组成,把这些模块组织成subdev,并导出video节点访问这些subdev

  3  一个camera 应有若干流供用户空间访问,于是抽象出流,然后导出video 节点访问流,这些流是动态创建的,节点也是动态生成的

扩展几个v4l2 api, V4L2_CREAT_STREAM, V4L2_DESTRY_STREAM.

于是用户可以如下访问一个camera设备。

1 open camera v4L2 设备,得到fd。

2 用这个fd, 调用V4L2_CREAT_STREAM,得到stream 的设备节点,这时我们可以传递一个流的描述符来创建流,比如流的类型,预览,video snapshot等

3 打开这个节点 得到stream fd

4 配置这个fd,以使用这个stream。

5 用完后关闭fd

6 然后销毁流

 

这样的做法有连个好处,

1 保留了原来的操作方式,向下兼容

2 添加了多流操作,而且流的操作就是以前的操作方式。

 

v4l2中的多流机制,布布扣,bubuko.com

v4l2中的多流机制

标签:des   c   a   使用   工作   linux   

原文地址:http://www.cnblogs.com/soc-linux-driver/p/3733796.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!