VIDIOC_QUERYCAP
. Applications should always call this ioctl after opening the deviceVIDIOC_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);
- }