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