VIDIOC_QUERYCAP
. Applications should always call this ioctl after opening the device
VIDIOC_S_PRIORITY
和
VIDIOC_G_PRIORITY
的ioctl操作分别来设置和查询当前任务的优先级。据个例子,如果你要通过
VIDIOC_S_INPUT
修改driver的属性,你可能由于已经存在了另一个具有较高优先级的任务而导致,你这次修改失败,你总不能把高优先级的任务影响了吧。
中文解释:复合视频广播信号 或 复合视频消隐和同步
全称:Composite Video Broadcast Signal 或Composite Video Blanking and Sync
它是的一个模拟电视节目(图片)信号在与声音信号结合,并调制到射频载波之前的一种格式。
CVBS是"Color, Video, Blank and Sync", "Composite Video Baseband Signal", "Composite Video Burst Signal", or "Composite Video with Burst and Sync".的缩写
CVBS 是被广泛使用的标准,也叫做基带视频或RCA视频,是全国电视系统委员会(NTSC)电视信号的传统图像数据传输方法,它以模拟波形来传输数据。复合视频包含色差(色调和饱和度)和亮度(光亮)信息,并将它们同步在消隐脉冲中,用同一信号传输。
在 快速扫描的NTSC电视中,甚高频(VHF)或超高频(UHF)载波是复合视频所使用的调整振幅,这使产生的信号大约有6MHz宽。一些闭路电视系统使用 同轴电缆近距离传输复合视频,一些DVD播放器和视频磁带录像机(VCR)通过拾音插座提供复合视频输入和输出,这个插座也叫做RCA连接器。
复 合视频中,色差和亮度信息的干涉是不可避免的,特别是在信号微弱的时候。这就是为何远距离的使用VHF或UHF的NTFS电视台用老旧的鞭形天线,“兔子 耳朵”,或世外的“空中”经常包含假的或上下摇动的颜色。CVBS又叫RCA是一种比较低级的模拟信号的传输标准,用一条线传输视频,亮度和色度混合,失 真严重,我们常看到的三接头的电视中的黄色接头就是CVBS接头,其他两个对应2个声道的音频。注意,色度应该是可以分离出色差和饱和度信号的,具体有待 进一步研究。
言归正传,我们可以通过VIDIOC_ENUMINPUT
and VIDIOC_ENUMOUTPUT
分别列举一个input或者output的信息,我们使用一个v4l2_input结构体来乘放查询结果,这个结构体中有一个index域用来指定你索要查询的是第几个input/ouput,如果你所查询的这个input是当前正在使用的,那么在v4l2_input还会包含一些当前的状态信息,如果所查询的input/output不存在,那么回返回EINVAL错误,所以,我们通过循环查找,直到返回错误来遍历所有的input/output. VIDIOC_G_INPUT
and VIDIOC_G_OUTPUT
返回当前的video input和output的index.
- Example 1-1. Information about the current video input
- struct v4l2_input input;
- int index;
- if (-1 == ioctl (fd, VIDIOC_G_INPUT, &index)) {
- perror ("VIDIOC_G_INPUT");
- exit (EXIT_FAILURE);
- }
- memset (&input, 0, sizeof (input));
- input.index = index;
- if (-1 == ioctl (fd, VIDIOC_ENUMINPUT, &input)) {
- perror ("VIDIOC_ENUMINPUT");
- exit (EXIT_FAILURE);
- }
- printf ("Current input: %s/n", input.name);
- Example 1-2. Switching to the first video input
- int index;
- index = 0;
- if (-1 == ioctl (fd, VIDIOC_S_INPUT, &index)) {
- perror ("VIDIOC_S_INPUT");
- exit (EXIT_FAILURE);
- }