xref: /linux/Documentation/userspace-api/media/v4l/vidioc-querycap.rst (revision c771600c6af14749609b49565ffb4cac2959710d)
1059b1c5bSMauro Carvalho Chehab.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2407e84cdSMauro Carvalho Chehab.. c:namespace:: V4L
354f38fcaSMauro Carvalho Chehab
454f38fcaSMauro Carvalho Chehab.. _VIDIOC_QUERYCAP:
554f38fcaSMauro Carvalho Chehab
654f38fcaSMauro Carvalho Chehab*********************
754f38fcaSMauro Carvalho Chehabioctl VIDIOC_QUERYCAP
854f38fcaSMauro Carvalho Chehab*********************
954f38fcaSMauro Carvalho Chehab
1054f38fcaSMauro Carvalho ChehabName
1154f38fcaSMauro Carvalho Chehab====
1254f38fcaSMauro Carvalho Chehab
1354f38fcaSMauro Carvalho ChehabVIDIOC_QUERYCAP - Query device capabilities
1454f38fcaSMauro Carvalho Chehab
1554f38fcaSMauro Carvalho ChehabSynopsis
1654f38fcaSMauro Carvalho Chehab========
1754f38fcaSMauro Carvalho Chehab
18407e84cdSMauro Carvalho Chehab.. c:macro:: VIDIOC_QUERYCAP
1954f38fcaSMauro Carvalho Chehab
20407e84cdSMauro Carvalho Chehab``int ioctl(int fd, VIDIOC_QUERYCAP, struct v4l2_capability *argp)``
2154f38fcaSMauro Carvalho Chehab
2254f38fcaSMauro Carvalho ChehabArguments
2354f38fcaSMauro Carvalho Chehab=========
2454f38fcaSMauro Carvalho Chehab
2554f38fcaSMauro Carvalho Chehab``fd``
26407e84cdSMauro Carvalho Chehab    File descriptor returned by :c:func:`open()`.
2754f38fcaSMauro Carvalho Chehab
2854f38fcaSMauro Carvalho Chehab``argp``
2954f38fcaSMauro Carvalho Chehab    Pointer to struct :c:type:`v4l2_capability`.
3054f38fcaSMauro Carvalho Chehab
3154f38fcaSMauro Carvalho ChehabDescription
3254f38fcaSMauro Carvalho Chehab===========
3354f38fcaSMauro Carvalho Chehab
3454f38fcaSMauro Carvalho ChehabAll V4L2 devices support the ``VIDIOC_QUERYCAP`` ioctl. It is used to
3554f38fcaSMauro Carvalho Chehabidentify kernel devices compatible with this specification and to obtain
3654f38fcaSMauro Carvalho Chehabinformation about driver and hardware capabilities. The ioctl takes a
3754f38fcaSMauro Carvalho Chehabpointer to a struct :c:type:`v4l2_capability` which is
3854f38fcaSMauro Carvalho Chehabfilled by the driver. When the driver is not compatible with this
3954f38fcaSMauro Carvalho Chehabspecification the ioctl returns an ``EINVAL`` error code.
4054f38fcaSMauro Carvalho Chehab
4154f38fcaSMauro Carvalho Chehab.. c:type:: v4l2_capability
4254f38fcaSMauro Carvalho Chehab
43fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{1.4cm}|p{2.8cm}|p{13.1cm}|
44fea13a69SMauro Carvalho Chehab
45fea13a69SMauro Carvalho Chehab.. cssclass:: longtable
46fea13a69SMauro Carvalho Chehab
4754f38fcaSMauro Carvalho Chehab.. flat-table:: struct v4l2_capability
4854f38fcaSMauro Carvalho Chehab    :header-rows:  0
4954f38fcaSMauro Carvalho Chehab    :stub-columns: 0
5054f38fcaSMauro Carvalho Chehab    :widths:       3 4 20
5154f38fcaSMauro Carvalho Chehab
5254f38fcaSMauro Carvalho Chehab    * - __u8
5354f38fcaSMauro Carvalho Chehab      - ``driver``\ [16]
5454f38fcaSMauro Carvalho Chehab      - Name of the driver, a unique NUL-terminated ASCII string. For
5554f38fcaSMauro Carvalho Chehab	example: "bttv". Driver specific applications can use this
5654f38fcaSMauro Carvalho Chehab	information to verify the driver identity. It is also useful to
5754f38fcaSMauro Carvalho Chehab	work around known bugs, or to identify drivers in error reports.
5854f38fcaSMauro Carvalho Chehab
5954f38fcaSMauro Carvalho Chehab	Storing strings in fixed sized arrays is bad practice but
6054f38fcaSMauro Carvalho Chehab	unavoidable here. Drivers and applications should take precautions
6154f38fcaSMauro Carvalho Chehab	to never read or write beyond the end of the array and to make
6254f38fcaSMauro Carvalho Chehab	sure the strings are properly NUL-terminated.
6354f38fcaSMauro Carvalho Chehab    * - __u8
6454f38fcaSMauro Carvalho Chehab      - ``card``\ [32]
6554f38fcaSMauro Carvalho Chehab      - Name of the device, a NUL-terminated UTF-8 string. For example:
6654f38fcaSMauro Carvalho Chehab	"Yoyodyne TV/FM". One driver may support different brands or
6754f38fcaSMauro Carvalho Chehab	models of video hardware. This information is intended for users,
6854f38fcaSMauro Carvalho Chehab	for example in a menu of available devices. Since multiple TV
6954f38fcaSMauro Carvalho Chehab	cards of the same brand may be installed which are supported by
7054f38fcaSMauro Carvalho Chehab	the same driver, this name should be combined with the character
7154f38fcaSMauro Carvalho Chehab	device file name (e. g. ``/dev/video2``) or the ``bus_info``
7254f38fcaSMauro Carvalho Chehab	string to avoid ambiguities.
7354f38fcaSMauro Carvalho Chehab    * - __u8
7454f38fcaSMauro Carvalho Chehab      - ``bus_info``\ [32]
7554f38fcaSMauro Carvalho Chehab      - Location of the device in the system, a NUL-terminated ASCII
7654f38fcaSMauro Carvalho Chehab	string. For example: "PCI:0000:05:06.0". This information is
7754f38fcaSMauro Carvalho Chehab	intended for users, to distinguish multiple identical devices. If
7854f38fcaSMauro Carvalho Chehab	no such information is available the field must simply count the
79143f8adfSHans Verkuil	devices controlled by the driver ("platform:vivid-000"). The
8054f38fcaSMauro Carvalho Chehab	bus_info must start with "PCI:" for PCI boards, "PCIe:" for PCI
8154f38fcaSMauro Carvalho Chehab	Express boards, "usb-" for USB devices, "I2C:" for i2c devices,
8254f38fcaSMauro Carvalho Chehab	"ISA:" for ISA devices, "parport" for parallel port devices and
8354f38fcaSMauro Carvalho Chehab	"platform:" for platform devices.
8454f38fcaSMauro Carvalho Chehab    * - __u32
8554f38fcaSMauro Carvalho Chehab      - ``version``
8654f38fcaSMauro Carvalho Chehab      - Version number of the driver.
8754f38fcaSMauro Carvalho Chehab
8854f38fcaSMauro Carvalho Chehab	Starting with kernel 3.1, the version reported is provided by the
8954f38fcaSMauro Carvalho Chehab	V4L2 subsystem following the kernel numbering scheme. However, it
9054f38fcaSMauro Carvalho Chehab	may not always return the same version as the kernel if, for
9154f38fcaSMauro Carvalho Chehab	example, a stable or distribution-modified kernel uses the V4L2
9254f38fcaSMauro Carvalho Chehab	stack from a newer kernel.
9354f38fcaSMauro Carvalho Chehab
9454f38fcaSMauro Carvalho Chehab	The version number is formatted using the ``KERNEL_VERSION()``
9554f38fcaSMauro Carvalho Chehab	macro. For example if the media stack corresponds to the V4L2
9654f38fcaSMauro Carvalho Chehab	version shipped with Kernel 4.14, it would be equivalent to:
9754f38fcaSMauro Carvalho Chehab    * - :cspan:`2`
9854f38fcaSMauro Carvalho Chehab
9954f38fcaSMauro Carvalho Chehab	``#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))``
10054f38fcaSMauro Carvalho Chehab
10154f38fcaSMauro Carvalho Chehab	``__u32 version = KERNEL_VERSION(4, 14, 0);``
10254f38fcaSMauro Carvalho Chehab
10354f38fcaSMauro Carvalho Chehab	``printf ("Version: %u.%u.%u\\n",``
10454f38fcaSMauro Carvalho Chehab
10554f38fcaSMauro Carvalho Chehab	``(version >> 16) & 0xFF, (version >> 8) & 0xFF, version & 0xFF);``
10654f38fcaSMauro Carvalho Chehab    * - __u32
10754f38fcaSMauro Carvalho Chehab      - ``capabilities``
10854f38fcaSMauro Carvalho Chehab      - Available capabilities of the physical device as a whole, see
10954f38fcaSMauro Carvalho Chehab	:ref:`device-capabilities`. The same physical device can export
11054f38fcaSMauro Carvalho Chehab	multiple devices in /dev (e.g. /dev/videoX, /dev/vbiY and
11154f38fcaSMauro Carvalho Chehab	/dev/radioZ). The ``capabilities`` field should contain a union of
11254f38fcaSMauro Carvalho Chehab	all capabilities available around the several V4L2 devices
11354f38fcaSMauro Carvalho Chehab	exported to userspace. For all those devices the ``capabilities``
11454f38fcaSMauro Carvalho Chehab	field returns the same set of capabilities. This allows
11554f38fcaSMauro Carvalho Chehab	applications to open just one of the devices (typically the video
11654f38fcaSMauro Carvalho Chehab	device) and discover whether video, vbi and/or radio are also
11754f38fcaSMauro Carvalho Chehab	supported.
11854f38fcaSMauro Carvalho Chehab    * - __u32
11954f38fcaSMauro Carvalho Chehab      - ``device_caps``
12054f38fcaSMauro Carvalho Chehab      - Device capabilities of the opened device, see
12154f38fcaSMauro Carvalho Chehab	:ref:`device-capabilities`. Should contain the available
12254f38fcaSMauro Carvalho Chehab	capabilities of that specific device node. So, for example,
12354f38fcaSMauro Carvalho Chehab	``device_caps`` of a radio device will only contain radio related
12454f38fcaSMauro Carvalho Chehab	capabilities and no video or vbi capabilities. This field is only
12554f38fcaSMauro Carvalho Chehab	set if the ``capabilities`` field contains the
12654f38fcaSMauro Carvalho Chehab	``V4L2_CAP_DEVICE_CAPS`` capability. Only the ``capabilities``
12754f38fcaSMauro Carvalho Chehab	field can have the ``V4L2_CAP_DEVICE_CAPS`` capability,
12854f38fcaSMauro Carvalho Chehab	``device_caps`` will never set ``V4L2_CAP_DEVICE_CAPS``.
12954f38fcaSMauro Carvalho Chehab    * - __u32
13054f38fcaSMauro Carvalho Chehab      - ``reserved``\ [3]
13154f38fcaSMauro Carvalho Chehab      - Reserved for future extensions. Drivers must set this array to
13254f38fcaSMauro Carvalho Chehab	zero.
13354f38fcaSMauro Carvalho Chehab
13454f38fcaSMauro Carvalho Chehab
135fea13a69SMauro Carvalho Chehab.. tabularcolumns:: |p{7.0cm}|p{2.6cm}|p{7.7cm}|
13654f38fcaSMauro Carvalho Chehab
13754f38fcaSMauro Carvalho Chehab.. _device-capabilities:
13854f38fcaSMauro Carvalho Chehab
13954f38fcaSMauro Carvalho Chehab.. cssclass:: longtable
14054f38fcaSMauro Carvalho Chehab
14154f38fcaSMauro Carvalho Chehab.. flat-table:: Device Capabilities Flags
14254f38fcaSMauro Carvalho Chehab    :header-rows:  0
14354f38fcaSMauro Carvalho Chehab    :stub-columns: 0
14454f38fcaSMauro Carvalho Chehab    :widths:       3 1 4
14554f38fcaSMauro Carvalho Chehab
14654f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_VIDEO_CAPTURE``
14754f38fcaSMauro Carvalho Chehab      - 0x00000001
14854f38fcaSMauro Carvalho Chehab      - The device supports the single-planar API through the
14954f38fcaSMauro Carvalho Chehab	:ref:`Video Capture <capture>` interface.
15054f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_VIDEO_CAPTURE_MPLANE``
15154f38fcaSMauro Carvalho Chehab      - 0x00001000
15254f38fcaSMauro Carvalho Chehab      - The device supports the :ref:`multi-planar API <planar-apis>`
15354f38fcaSMauro Carvalho Chehab	through the :ref:`Video Capture <capture>` interface.
15454f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_VIDEO_OUTPUT``
15554f38fcaSMauro Carvalho Chehab      - 0x00000002
15654f38fcaSMauro Carvalho Chehab      - The device supports the single-planar API through the
15754f38fcaSMauro Carvalho Chehab	:ref:`Video Output <output>` interface.
15854f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_VIDEO_OUTPUT_MPLANE``
15954f38fcaSMauro Carvalho Chehab      - 0x00002000
16054f38fcaSMauro Carvalho Chehab      - The device supports the :ref:`multi-planar API <planar-apis>`
16154f38fcaSMauro Carvalho Chehab	through the :ref:`Video Output <output>` interface.
16254f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_VIDEO_M2M``
163d20dcbb2SJian-Jia Su      - 0x00008000
16454f38fcaSMauro Carvalho Chehab      - The device supports the single-planar API through the Video
16554f38fcaSMauro Carvalho Chehab	Memory-To-Memory interface.
16654f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_VIDEO_M2M_MPLANE``
167d20dcbb2SJian-Jia Su      - 0x00004000
16854f38fcaSMauro Carvalho Chehab      - The device supports the :ref:`multi-planar API <planar-apis>`
16954f38fcaSMauro Carvalho Chehab	through the Video Memory-To-Memory interface.
17054f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_VIDEO_OVERLAY``
17154f38fcaSMauro Carvalho Chehab      - 0x00000004
17254f38fcaSMauro Carvalho Chehab      - The device supports the :ref:`Video Overlay <overlay>`
17354f38fcaSMauro Carvalho Chehab	interface. A video overlay device typically stores captured images
17454f38fcaSMauro Carvalho Chehab	directly in the video memory of a graphics card, with hardware
17554f38fcaSMauro Carvalho Chehab	clipping and scaling.
17654f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_VBI_CAPTURE``
17754f38fcaSMauro Carvalho Chehab      - 0x00000010
17854f38fcaSMauro Carvalho Chehab      - The device supports the :ref:`Raw VBI Capture <raw-vbi>`
17954f38fcaSMauro Carvalho Chehab	interface, providing Teletext and Closed Caption data.
18054f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_VBI_OUTPUT``
18154f38fcaSMauro Carvalho Chehab      - 0x00000020
18254f38fcaSMauro Carvalho Chehab      - The device supports the :ref:`Raw VBI Output <raw-vbi>`
18354f38fcaSMauro Carvalho Chehab	interface.
18454f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_SLICED_VBI_CAPTURE``
18554f38fcaSMauro Carvalho Chehab      - 0x00000040
18654f38fcaSMauro Carvalho Chehab      - The device supports the :ref:`Sliced VBI Capture <sliced>`
18754f38fcaSMauro Carvalho Chehab	interface.
18854f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_SLICED_VBI_OUTPUT``
18954f38fcaSMauro Carvalho Chehab      - 0x00000080
19054f38fcaSMauro Carvalho Chehab      - The device supports the :ref:`Sliced VBI Output <sliced>`
19154f38fcaSMauro Carvalho Chehab	interface.
19254f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_RDS_CAPTURE``
19354f38fcaSMauro Carvalho Chehab      - 0x00000100
19454f38fcaSMauro Carvalho Chehab      - The device supports the :ref:`RDS <rds>` capture interface.
19554f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_VIDEO_OUTPUT_OVERLAY``
19654f38fcaSMauro Carvalho Chehab      - 0x00000200
19754f38fcaSMauro Carvalho Chehab      - The device supports the :ref:`Video Output Overlay <osd>` (OSD)
19854f38fcaSMauro Carvalho Chehab	interface. Unlike the *Video Overlay* interface, this is a
19954f38fcaSMauro Carvalho Chehab	secondary function of video output devices and overlays an image
20054f38fcaSMauro Carvalho Chehab	onto an outgoing video signal. When the driver sets this flag, it
20154f38fcaSMauro Carvalho Chehab	must clear the ``V4L2_CAP_VIDEO_OVERLAY`` flag and vice
20254f38fcaSMauro Carvalho Chehab	versa. [#f1]_
20354f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_HW_FREQ_SEEK``
20454f38fcaSMauro Carvalho Chehab      - 0x00000400
20554f38fcaSMauro Carvalho Chehab      - The device supports the
20654f38fcaSMauro Carvalho Chehab	:ref:`VIDIOC_S_HW_FREQ_SEEK` ioctl
20754f38fcaSMauro Carvalho Chehab	for hardware frequency seeking.
20854f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_RDS_OUTPUT``
20954f38fcaSMauro Carvalho Chehab      - 0x00000800
21054f38fcaSMauro Carvalho Chehab      - The device supports the :ref:`RDS <rds>` output interface.
21154f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_TUNER``
21254f38fcaSMauro Carvalho Chehab      - 0x00010000
21354f38fcaSMauro Carvalho Chehab      - The device has some sort of tuner to receive RF-modulated video
21454f38fcaSMauro Carvalho Chehab	signals. For more information about tuner programming see
21554f38fcaSMauro Carvalho Chehab	:ref:`tuner`.
21654f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_AUDIO``
21754f38fcaSMauro Carvalho Chehab      - 0x00020000
21854f38fcaSMauro Carvalho Chehab      - The device has audio inputs or outputs. It may or may not support
21954f38fcaSMauro Carvalho Chehab	audio recording or playback, in PCM or compressed formats. PCM
22054f38fcaSMauro Carvalho Chehab	audio support must be implemented as ALSA or OSS interface. For
22154f38fcaSMauro Carvalho Chehab	more information on audio inputs and outputs see :ref:`audio`.
22254f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_RADIO``
22354f38fcaSMauro Carvalho Chehab      - 0x00040000
22454f38fcaSMauro Carvalho Chehab      - This is a radio receiver.
22554f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_MODULATOR``
22654f38fcaSMauro Carvalho Chehab      - 0x00080000
22754f38fcaSMauro Carvalho Chehab      - The device has some sort of modulator to emit RF-modulated
22854f38fcaSMauro Carvalho Chehab	video/audio signals. For more information about modulator
22954f38fcaSMauro Carvalho Chehab	programming see :ref:`tuner`.
23054f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_SDR_CAPTURE``
23154f38fcaSMauro Carvalho Chehab      - 0x00100000
23254f38fcaSMauro Carvalho Chehab      - The device supports the :ref:`SDR Capture <sdr>` interface.
23354f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_EXT_PIX_FORMAT``
23454f38fcaSMauro Carvalho Chehab      - 0x00200000
23554f38fcaSMauro Carvalho Chehab      - The device supports the struct
23654f38fcaSMauro Carvalho Chehab	:c:type:`v4l2_pix_format` extended fields.
23754f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_SDR_OUTPUT``
23854f38fcaSMauro Carvalho Chehab      - 0x00400000
23954f38fcaSMauro Carvalho Chehab      - The device supports the :ref:`SDR Output <sdr>` interface.
24054f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_META_CAPTURE``
24154f38fcaSMauro Carvalho Chehab      - 0x00800000
24254f38fcaSMauro Carvalho Chehab      - The device supports the :ref:`metadata` capture interface.
24354f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_READWRITE``
24454f38fcaSMauro Carvalho Chehab      - 0x01000000
245407e84cdSMauro Carvalho Chehab      - The device supports the :c:func:`read()` and/or
246407e84cdSMauro Carvalho Chehab	:c:func:`write()` I/O methods.
247*d2f2ce00SErling Ljunggren    * - ``V4L2_CAP_EDID``
248*d2f2ce00SErling Ljunggren      - 0x02000000
249*d2f2ce00SErling Ljunggren      - The device stores the EDID for a video input, or retrieves the EDID for a video
250*d2f2ce00SErling Ljunggren        output. It is a standalone EDID device, so no video streaming etc. will take place.
251*d2f2ce00SErling Ljunggren
252*d2f2ce00SErling Ljunggren        For a video input this is typically an eeprom that supports the
253*d2f2ce00SErling Ljunggren        :ref:`VESA Enhanced Display Data Channel Standard <vesaeddc>`. It can be something
254*d2f2ce00SErling Ljunggren        else as well, for example a micro controller.
255*d2f2ce00SErling Ljunggren
256*d2f2ce00SErling Ljunggren        For a video output this is typically read from an external device such as an
257*d2f2ce00SErling Ljunggren        HDMI splitter accessed by a serial port.
25854f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_STREAMING``
25954f38fcaSMauro Carvalho Chehab      - 0x04000000
26054f38fcaSMauro Carvalho Chehab      - The device supports the :ref:`streaming <mmap>` I/O method.
26154f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_META_OUTPUT``
26254f38fcaSMauro Carvalho Chehab      - 0x08000000
26354f38fcaSMauro Carvalho Chehab      - The device supports the :ref:`metadata` output interface.
26454f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_TOUCH``
26554f38fcaSMauro Carvalho Chehab      - 0x10000000
26654f38fcaSMauro Carvalho Chehab      - This is a touch device.
267f645e625SNiklas Söderlund    * - ``V4L2_CAP_IO_MC``
268f645e625SNiklas Söderlund      - 0x20000000
269f645e625SNiklas Söderlund      - There is only one input and/or output seen from userspace. The whole
270f645e625SNiklas Söderlund        video topology configuration, including which I/O entity is routed to
271f645e625SNiklas Söderlund        the input/output, is configured by userspace via the Media Controller.
272f645e625SNiklas Söderlund        See :ref:`media_controller`.
27354f38fcaSMauro Carvalho Chehab    * - ``V4L2_CAP_DEVICE_CAPS``
27454f38fcaSMauro Carvalho Chehab      - 0x80000000
27554f38fcaSMauro Carvalho Chehab      - The driver fills the ``device_caps`` field. This capability can
27654f38fcaSMauro Carvalho Chehab	only appear in the ``capabilities`` field and never in the
27754f38fcaSMauro Carvalho Chehab	``device_caps`` field.
27854f38fcaSMauro Carvalho Chehab
27954f38fcaSMauro Carvalho ChehabReturn Value
28054f38fcaSMauro Carvalho Chehab============
28154f38fcaSMauro Carvalho Chehab
28254f38fcaSMauro Carvalho ChehabOn success 0 is returned, on error -1 and the ``errno`` variable is set
28354f38fcaSMauro Carvalho Chehabappropriately. The generic error codes are described at the
28454f38fcaSMauro Carvalho Chehab:ref:`Generic Error Codes <gen-errors>` chapter.
28554f38fcaSMauro Carvalho Chehab
28654f38fcaSMauro Carvalho Chehab.. [#f1]
28754f38fcaSMauro Carvalho Chehab   The struct :c:type:`v4l2_framebuffer` lacks an
28854f38fcaSMauro Carvalho Chehab   enum :c:type:`v4l2_buf_type` field, therefore the
28954f38fcaSMauro Carvalho Chehab   type of overlay is implied by the driver capabilities.
290