Chinaunix首页 | 论坛 | 博客
  • 博客访问: 538018
  • 博文数量: 119
  • 博客积分: 3391
  • 博客等级: 中校
  • 技术积分: 981
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-12 11:49
文章分类

全部博文(119)

文章存档

2014年(3)

2013年(1)

2011年(18)

2010年(27)

2009年(70)

我的朋友

分类: LINUX

2009-04-17 13:26:38

1.1.3 多重打开

大体上来说,V4L2可以被不止一次的打开。当驱动程序支持这一功能时,用户可以在其他的应用程序捕获视频和音频的同时,启动一个“panel”应用程序改变像亮度、音量等的控制。换句话说,panel应用程序类似于一个OSSALSA音频混合器应用程序。当一个设备同时支持像capturingoverlay这样的多重功能时,多重打开可以通过fork进程或使应用程序专门化的方法来使多个功能同时使用设备。

尽管应用程序应该允许至少像panel应用程序那样在不用数据交换的前提下并发存取,但是多重打开也是可选择的。这就表明当设备已经在使用中时,open()可能会返回一个EBUSY错误代码,同样的情况也会发生在ioctl()函数初始化数据交换时(即VIDIOC_S_FMT ioctl)以及read()write()函数身上。

    仅仅打开一个V4L2设备也不允许专用一条通道。尽管赋予了读、写指定数据,改变文件描述符的相关属性的权利,仍然要初始化数据交换。应用程序可以运用节1.3中描述的优先机制来请求额外的存取特权。
阅读(1507) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~