7.48. ioctl VIDIOC_QUERYCAP¶
7.48.1. 名稱¶
VIDIOC_QUERYCAP - 查詢裝置功能
7.48.2. 概要¶
-
VIDIOC_QUERYCAP¶
int ioctl(int fd, VIDIOC_QUERYCAP, struct v4l2_capability *argp)
7.48.3. 引數¶
fd由
open()返回的檔案描述符。argp指向 struct
v4l2_capability的指標。
7.48.4. 描述¶
所有 V4L2 裝置都支援 VIDIOC_QUERYCAP ioctl。它用於識別與此規範相容的核心裝置,並獲取有關驅動程式和硬體功能的資訊。ioctl 接收一個指向 struct v4l2_capability 的指標,該結構由驅動程式填充。當驅動程式與此規範不相容時,ioctl 返回 EINVAL 錯誤程式碼。
-
type v4l2_capability¶
__u8 |
|
驅動程式的名稱,一個唯一的 NUL 終止的 ASCII 字串。例如:“bttv”。驅動程式特定的應用程式可以使用此資訊來驗證驅動程式身份。它也有助於解決已知錯誤或在錯誤報告中識別驅動程式。 在固定大小的陣列中儲存字串是不好的做法,但在這裡是不可避免的。驅動程式和應用程式應採取預防措施,永遠不要讀取或寫入超出陣列末尾的內容,並確保字串已正確 NUL 終止。 |
__u8 |
|
裝置的名稱,一個 NUL 終止的 UTF-8 字串。例如:“Yoyodyne TV/FM”。一個驅動程式可能支援不同品牌或型號的影片硬體。此資訊供使用者使用,例如在可用裝置的選單中。由於可以安裝由同一驅動程式支援的同一品牌的多個電視卡,因此應將此名稱與字元裝置檔名(例如 |
__u8 |
|
裝置在系統中的位置,一個 NUL 終止的 ASCII 字串。例如:“PCI:0000:05:06.0”。此資訊供使用者使用,以區分多個相同裝置。如果沒有此類資訊可用,則該欄位必須簡單地計算驅動程式控制的裝置數量(“platform:vivid-000”)。bus_info 必須以 “PCI:” 開頭表示 PCI 板,“PCIe:” 表示 PCI Express 板,“usb-” 表示 USB 裝置,“I2C:” 表示 i2c 裝置,“ISA:” 表示 ISA 裝置,“parport” 表示並行埠裝置,“platform:” 表示平臺裝置。 |
__u32 |
|
驅動程式的版本號。 從核心 3.1 開始,報告的版本由 V4L2 子系統按照核心編號方案提供。但是,如果穩定版或發行版修改的核心使用了來自較新核心的 V4L2 堆疊,則它可能並不總是返回與核心相同的版本。 版本號使用 |
|
|
||
__u32 |
|
物理裝置的整體可用功能,請參閱 裝置功能標誌。同一物理裝置可以在 /dev 中匯出多個裝置(例如 /dev/videoX、/dev/vbiY 和 /dev/radioZ)。 |
__u32 |
|
已開啟裝置的裝置功能,請參閱 裝置功能標誌。應包含該特定裝置節點的可用功能。因此,例如,無線電裝置的 |
__u32 |
|
保留供將來擴充套件使用。驅動程式必須將此陣列設定為零。 |
|
0x00000001 |
該裝置透過 影片捕獲 介面支援單平面 API。 |
|
0x00001000 |
|
|
0x00000002 |
該裝置透過 影片輸出 介面支援單平面 API。 |
|
0x00002000 |
|
|
0x00008000 |
該裝置透過影片記憶體到記憶體介面支援單平面 API。 |
|
0x00004000 |
該裝置透過影片記憶體到記憶體介面支援 多平面 API。 |
|
0x00000004 |
該裝置支援 影片覆蓋 介面。影片覆蓋裝置通常將捕獲的影像直接儲存在圖形卡的影片記憶體中,並進行硬體剪裁和縮放。 |
|
0x00000010 |
該裝置支援 原始 VBI 捕獲 介面,提供圖文電視和隱藏字幕資料。 |
|
0x00000020 |
該裝置支援 原始 VBI 輸出 介面。 |
|
0x00000040 |
該裝置支援 切片 VBI 捕獲 介面。 |
|
0x00000080 |
該裝置支援 切片 VBI 輸出 介面。 |
|
0x00000100 |
該裝置支援 RDS 捕獲介面。 |
|
0x00000200 |
該裝置支援 影片輸出覆蓋 (OSD) 介面。與 *影片覆蓋* 介面不同,這是影片輸出裝置的輔助功能,並將影像覆蓋到傳出的影片訊號上。當驅動程式設定此標誌時,它必須清除 |
|
0x00000400 |
該裝置支援 ioctl VIDIOC_S_HW_FREQ_SEEK ioctl 用於硬體頻率搜尋。 |
|
0x00000800 |
該裝置支援 RDS 輸出介面。 |
|
0x00010000 |
該裝置具有某種調諧器來接收 RF 調製影片訊號。有關調諧器程式設計的更多資訊,請參見 調諧器和調製器。 |
|
0x00020000 |
該裝置具有音訊輸入或輸出。它可以或可能不支援以 PCM 或壓縮格式進行音訊錄製或播放。PCM 音訊支援必須作為 ALSA 或 OSS 介面實現。有關音訊輸入和輸出的更多資訊,請參見 音訊輸入和輸出。 |
|
0x00040000 |
這是一個無線電接收器。 |
|
0x00080000 |
該裝置具有某種調製器來發射 RF 調製影片/音訊訊號。有關調製器程式設計的更多資訊,請參見 調諧器和調製器。 |
|
0x00100000 |
該裝置支援 SDR 捕獲 介面。 |
|
0x00200000 |
該裝置支援 struct |
|
0x00400000 |
該裝置支援 SDR 輸出 介面。 |
|
0x00800000 |
該裝置支援 元資料介面 捕獲介面。 |
|
0x01000000 |
|
|
0x02000000 |
該裝置儲存影片輸入的 EDID,或檢索影片輸出的 EDID。它是一個獨立的 EDID 裝置,因此不會進行影片流傳輸等。 對於影片輸入,這通常是一個 eeprom,它支援 VESA 增強型顯示資料通道標準。它也可以是其他東西,例如微控制器。 對於影片輸出,這通常是從外部裝置讀取的,例如透過序列埠訪問的 HDMI 分配器。 |
|
0x04000000 |
該裝置支援 流式傳輸 I/O 方法。 |
|
0x08000000 |
該裝置支援 元資料介面 輸出介面。 |
|
0x10000000 |
這是一個觸控裝置。 |
|
0x20000000 |
從使用者空間只能看到一個輸入和/或輸出。包括哪個 I/O 實體路由到輸入/輸出在內的整個影片拓撲配置由使用者空間透過媒體控制器配置。請參見 第四部分 - 媒體控制器 API。 |
|
0x80000000 |
驅動程式填充 |
7.48.5. 返回值¶
成功時返回 0,錯誤時返回 -1,並適當設定 errno 變數。通用錯誤程式碼在 通用錯誤程式碼 章節中進行了描述。