Commit | Line | Data |
---|---|---|
5377d91f MH |
1 | .. -*- coding: utf-8; mode: rst -*- |
2 | ||
3 | .. _querycap: | |
4 | ||
5 | ********************* | |
6 | Querying Capabilities | |
7 | ********************* | |
8 | ||
9 | Because V4L2 covers a wide variety of devices not all aspects of the API | |
10 | are equally applicable to all types of devices. Furthermore devices of | |
11 | the same type have different capabilities and this specification permits | |
12 | the omission of a few complicated and less important parts of the API. | |
13 | ||
7347081e | 14 | The :ref:`VIDIOC_QUERYCAP` ioctl is available to |
5377d91f MH |
15 | check if the kernel device is compatible with this specification, and to |
16 | query the :ref:`functions <devices>` and :ref:`I/O methods <io>` | |
17 | supported by the device. | |
18 | ||
7347081e | 19 | Starting with kernel version 3.1, :ref:`VIDIOC_QUERYCAP` |
9e00ffca MCC |
20 | will return the V4L2 API version used by the driver, with generally |
21 | matches the Kernel version. There's no need of using | |
7347081e | 22 | :ref:`VIDIOC_QUERYCAP` to check if a specific ioctl |
cdb4af0f | 23 | is supported, the V4L2 core now returns ``ENOTTY`` if a driver doesn't |
5377d91f MH |
24 | provide support for an ioctl. |
25 | ||
26 | Other features can be queried by calling the respective ioctl, for | |
7347081e | 27 | example :ref:`VIDIOC_ENUMINPUT` to learn about the |
5377d91f MH |
28 | number, types and names of video connectors on the device. Although |
29 | abstraction is a major objective of this API, the | |
7347081e | 30 | :ref:`VIDIOC_QUERYCAP` ioctl also allows driver |
5377d91f MH |
31 | specific applications to reliably identify the driver. |
32 | ||
7347081e | 33 | All V4L2 drivers must support :ref:`VIDIOC_QUERYCAP`. |
9e00ffca | 34 | Applications should always call this ioctl after opening the device. |