分类: LINUX
2009-04-17 13:26:38
1.1.3 多重打开
大体上来说,V4L2可以被不止一次的打开。当驱动程序支持这一功能时,用户可以在其他的应用程序捕获视频和音频的同时,启动一个“panel”应用程序改变像亮度、音量等的控制。换句话说,panel应用程序类似于一个OSS或ALSA音频混合器应用程序。当一个设备同时支持像capturing和overlay这样的多重功能时,多重打开可以通过fork进程或使应用程序专门化的方法来使多个功能同时使用设备。
尽管应用程序应该允许至少像panel应用程序那样在不用数据交换的前提下并发存取,但是多重打开也是可选择的。这就表明当设备已经在使用中时,open()可能会返回一个EBUSY错误代码,同样的情况也会发生在ioctl()函数初始化数据交换时(即VIDIOC_S_FMT
ioctl)以及read()和write()函数身上。