转了个圈,又回来了
分类: LINUX
2008-10-05 09:47:23
VIDIOC_QUERYCAP
. Applications should always call this ioctl after opening the device中文解释:复合视频广播信号 或 复合视频消隐和同步
全称: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个声道的音频。注意,色度应该是可以分离出色差和饱和度信号的,具体有待进一步研究。
言归正传,我们可以通过 and 分别列举一个input或者output的信息,我们使用一个结构体来乘放查询结果,这个结构体中有一个index域用来指定你索要查询的是第几个input/ouput,如果你所查询的这个input是当前正在使用的,那么在还会包含一些当前的状态信息,如果所查询的input/output不存在,那么回返回EINVAL错误,所以,我们通过循环查找,直到返回错误来遍历所有的input/output. and 返回当前的video input和output的index.
Example 1-1. Information about the current video input
struct input; int index; if (-1 == ioctl (fd, , &index)) { perror ("VIDIOC_G_INPUT"); exit (EXIT_FAILURE); } memset (&input, 0, sizeof (input)); input.index = index; if (-1 == ioctl (fd, , &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, , &index)) { perror ("VIDIOC_S_INPUT"); exit (EXIT_FAILURE); }