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/userspace-api/media/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