分类: LINUX
2009-04-21 16:06:01
1.3 应用优先权
当多个应用共享一个设备时,给他们分配不同的优先权或许是一种理想的方法。与传统的"rm -rf
/"流派相反,一个视频录制应用程序可以实现例如防止其他程序更改视频控制或更改当前的TV频道。另一个目的是允许低优先级的应用程序在后台运行,这样在后面的时间里就可以由用户程序优先占用并且自动赢回设备的控制权。
因为这些特征不能够全部在用户空间里实现,V4L2定义了VIDIOC_G_PRIORITY和VIDIOC_S_PRIORITY
ioctls来请求和查询与一个文件描述符有关联的访问优先权。打开一个设备将会给他分配一个中等优先级,为了与V4L2的早期版本相兼容,驱动程序不支持这些ioctl。应用程序通常在用VIDIOC_QUERYCAP
ioctl证实设备特征之后调用VIDIOC_S_PRIORITY来获取一个不同的优先级。
我们用如VIDIOC_S_INPUT的ioctl来改变驱动属性时,如果另一个应用函数拥有更高的优先级,将会返回一个“EBUSY”错误代码。一种通知应用函数有关异步属性改变的事件机制已经被提上日程,但还没有写入标准中。