分类: LINUX
2009-04-17 13:25:13
1.1.2 相关的设备
设备可以提供许多相关的功能。例如像video capturing、video overlay 和VBI capturing是相关的,因为这些功能,和其他的相比,运用了共同的视频输入和调谐器频率。V4L和V4L2的早期版本对于video capturing和overlay采用了相同的设备名和次要数字,但在VBI上却用了不同的。经验证明这种方式存在很多问题,同时把事情搞得更糟的是,V4L videodev经常禁止对一个设备的多重打开。
作为一种补救措施,V4L2 API的当前版本放宽了用特殊名称和次要数字作为区分的设备类型的概念。为了与旧版本应用程序相兼容,驱动程序必须继续为设备注册不同的次要数字以便于指出默认的功能。但如果驱动程序支持相关的功能,那么在所有注册的次要数字下,这些驱动程序都必须是可用的。在第四章中描述了打开某个设备后如何选择预期的功能。
假设一个驱动程序支持video capturing、video overlay、raw VBI capturing和 FM radio reception。他分别用3个次要数字0、64和224(这样的编码制是从v4l2 API继承而来)注册了3个设备。不管怎样,如果/dev/video(81,0)或/dev/vbi(81,224)被打开,那么应用程序就可以选择video capturing、overlay或VBI capturing功能中的任何一个。在/dev/vbi捕获原始VBI数据的同时,/dev/video也在没有编程的情况下捕获到视频画面。/dev/radio始终是一个无线电设备,与视频功能无关。尽管如此,相互之间无关并不是暗指这些设备可以同时使用。open()函数可以可能非常正常的返回EBUSY的错误码。
除了视频的输入和输出之外,硬件同样支持音频的采样和回放。如果这样,这些函数被当做OSS或ALSA PCM设备以及最终的OSS或ALSA音频混合器来使用。V4L2 API仍没有制定相应的条款来识别这些相关的设备。