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