Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame^] | 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 | |
| 14 | The :ref:`VIDIOC_QUERYCAP` ioctl is available to |
| 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 | |
| 19 | Starting with kernel version 3.1, :ref:`VIDIOC_QUERYCAP` |
| 20 | will return the V4L2 API version used by the driver, with generally |
| 21 | matches the Kernel version. There's no need of using |
| 22 | :ref:`VIDIOC_QUERYCAP` to check if a specific ioctl |
| 23 | is supported, the V4L2 core now returns ``ENOTTY`` if a driver doesn't |
| 24 | provide support for an ioctl. |
| 25 | |
| 26 | Other features can be queried by calling the respective ioctl, for |
| 27 | example :ref:`VIDIOC_ENUMINPUT` to learn about the |
| 28 | number, types and names of video connectors on the device. Although |
| 29 | abstraction is a major objective of this API, the |
| 30 | :ref:`VIDIOC_QUERYCAP` ioctl also allows driver |
| 31 | specific applications to reliably identify the driver. |
| 32 | |
| 33 | All V4L2 drivers must support :ref:`VIDIOC_QUERYCAP`. |
| 34 | Applications should always call this ioctl after opening the device. |