1.2. 查詢功能¶
由於 V4L2 涵蓋了各種各樣的裝置,因此並非 API 的所有方面都同樣適用於所有型別的裝置。此外,相同型別的裝置具有不同的功能,本規範允許省略 API 中一些複雜且不那麼重要的部分。
可以使用 ioctl VIDIOC_QUERYCAP ioctl 來檢查核心裝置是否與本規範相容,並查詢裝置支援的功能和I/O 方法。
從核心版本 3.1 開始,ioctl VIDIOC_QUERYCAP 將返回驅動程式使用的 V4L2 API 版本,通常與核心版本匹配。不再需要使用 ioctl VIDIOC_QUERYCAP 來檢查是否支援特定的 ioctl,如果驅動程式不支援某個 ioctl,V4L2 核心現在會返回 ENOTTY。
其他功能可以透過呼叫相應的 ioctl 來查詢,例如 ioctl VIDIOC_ENUMINPUT 以瞭解裝置上影片聯結器的數量、型別和名稱。儘管抽象是此 API 的主要目標,但 ioctl VIDIOC_QUERYCAP ioctl 也允許驅動程式特定的應用程式可靠地識別驅動程式。
所有 V4L2 驅動程式都必須支援 ioctl VIDIOC_QUERYCAP。應用程式在開啟裝置後應始終呼叫此 ioctl。