David Brazdil | 0f672f6 | 2019-12-10 10:32:29 +0000 | [diff] [blame^] | 1 | .. Permission is granted to copy, distribute and/or modify this |
| 2 | .. document under the terms of the GNU Free Documentation License, |
| 3 | .. Version 1.1 or any later version published by the Free Software |
| 4 | .. Foundation, with no Invariant Sections, no Front-Cover Texts |
| 5 | .. and no Back-Cover Texts. A copy of the license is included at |
| 6 | .. Documentation/media/uapi/fdl-appendix.rst. |
| 7 | .. |
| 8 | .. TODO: replace it to GFDL-1.1-or-later WITH no-invariant-sections |
Andrew Scull | b4b6d4a | 2019-01-02 15:54:55 +0000 | [diff] [blame] | 9 | |
| 10 | .. _querycap: |
| 11 | |
| 12 | ********************* |
| 13 | Querying Capabilities |
| 14 | ********************* |
| 15 | |
| 16 | Because V4L2 covers a wide variety of devices not all aspects of the API |
| 17 | are equally applicable to all types of devices. Furthermore devices of |
| 18 | the same type have different capabilities and this specification permits |
| 19 | the omission of a few complicated and less important parts of the API. |
| 20 | |
| 21 | The :ref:`VIDIOC_QUERYCAP` ioctl is available to |
| 22 | check if the kernel device is compatible with this specification, and to |
| 23 | query the :ref:`functions <devices>` and :ref:`I/O methods <io>` |
| 24 | supported by the device. |
| 25 | |
| 26 | Starting with kernel version 3.1, :ref:`VIDIOC_QUERYCAP` |
| 27 | will return the V4L2 API version used by the driver, with generally |
| 28 | matches the Kernel version. There's no need of using |
| 29 | :ref:`VIDIOC_QUERYCAP` to check if a specific ioctl |
| 30 | is supported, the V4L2 core now returns ``ENOTTY`` if a driver doesn't |
| 31 | provide support for an ioctl. |
| 32 | |
| 33 | Other features can be queried by calling the respective ioctl, for |
| 34 | example :ref:`VIDIOC_ENUMINPUT` to learn about the |
| 35 | number, types and names of video connectors on the device. Although |
| 36 | abstraction is a major objective of this API, the |
| 37 | :ref:`VIDIOC_QUERYCAP` ioctl also allows driver |
| 38 | specific applications to reliably identify the driver. |
| 39 | |
| 40 | All V4L2 drivers must support :ref:`VIDIOC_QUERYCAP`. |
| 41 | Applications should always call this ioctl after opening the device. |