Linux的V4L2架構分析

2021-09-28 11:27:53 字數 844 閱讀 6702

一、 linux的v4l2架構介紹

v4l2

的初衷是想為

linux

video

v4l2

的整體架構如下圖所示:

ø  video裝置

ø  video裝置介面

l  攝像頭介面一般有:

mipi csi:移動行業處理器介面聯盟定義的攝像頭數字序列介面,是當今主流的手機攝像頭介面。

usb:usb攝像頭一般常見在台式電腦上,usb協議中有專門針對video裝置的介面類(inte***ceclass=0x0e)。

ø  video裝置介面驅動

ø  video裝置驅動

ø  v4l2核心

ø  v4l2應用介面

二、 v4l2裝置驅動編寫

三、 v4l2_subdev與v4l2_device的出現

v4l2 驅動隨著硬體的變化也越來越複雜,現在大部分裝置裡面包含了多個子裝置ic,比較常見的子裝置如編譯碼的裝置、感測器、攝像頭控制器等。通常這些ic通過 i2c 匯流排連線到主機板,這些裝置都統稱為sub-devices。

裝置例項

(v4l2_device)

|______

子裝置例項

(v4l2_subdev)

|______

(video_device)

|______

檔案訪問控制

(v4l2_fh)

|______

(videobuf/videobuf2)

linux 驅動 camera 架構 V4L2

2012 11 14 v4l2應用程式框架 v4l2應用程式框架 用非阻塞模式開啟攝像頭裝置int camerafd camerafd open dev video0 o rdwr o nonblock,0 如果用阻塞模式開啟攝像頭裝置,上述 變為 camerafd open dev video0 ...

V4L2框架分析

uvc probe uvc driver.c硬體相關層,定會分配設定向核心層註冊一結構體 v4l2 device register uvc register chains uvc register terms uvc register video struct video device vdev v...

V4L2程式設計

include include include include include include include include include include typedef struct buftype buftype user buf int n buffer 0 開啟攝像頭裝置 int ope...