MX51 V4L2 output 驅動

來源:互聯網
上載者:User

之前調試MXC V4L2驅動一直沒有注意到output/mxc_v4l2_output.c這個檔案,因為capture/*.c已經提供了still capture, stream capture, 以及overlay,所以沒仔細的去看mxc_v4l2_output.c提供的功能,直到前幾天負責維護overlay hal的同事提出開啟了overlay hal /dev/video16這個裝置節點,才讓我跟到這個檔案中

先從/dev/video0 和video16說起:

MXC V4L2產生了三個裝置節點, /dev/radio0 /dev/video0以及/dev/video16, /dev/radio0就不討論了,項目中沒接觸到。

/dev/video0是mxc_v4l2_capture驅動建立的裝置節點, 而/dev/video16是mxc_v4l2_output驅動建立的裝置節點。

/dev/video0節點既可用於capture又可用來overlay,

而/dev/video16完全是為push mode overlay模式服務的,所謂push mode模式(以下幾行純屬臆測):應用通過stream capture從/dev/video0 dequeue到映像buffer資料,然後把這個指標再傳給/dev/video16(當然是通過VIDIOC_Q_BUF),output 模組會直接將queue進來的buffer直接輸出到framebuffer,這就完成了Overlay功能

push mode overlay和 /dev/video0支援的直接overlay的區別是,  push mode overlay需要應用空間參與資料的處理,使用者空間參與的代價就是cpu佔用率,好處是用空間有機會接觸到每一幀傳送到 framebuffer的資料。而直接overlay是你啟動overlay後,所有資料直接從camera流動到framebuffer, 中間沒有任何機會接觸資料,只能在frame buffer這裡截獲資料,速度是真快。(先到這裡吧,有任務)

push mode模式的另外一個好處是,就是你可以使用USB camera, 對camera進行處理顯示

output裝置支援多個輸出,分別為DISP3 FG, DISP3 BG, DISP3 BG - DI1

DISP3 FG: 是FG overlay,用來顯示video

DISP3 BG: 主顯示,用來顯示UI介面

DISP3 BG - DI1: TVOUT,用來顯示CVBS輸出資料


程式碼分析

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.