Merge tag 'drivers-5.10-2020-10-12' of git://git.kernel.dk/linux-block
[linux-2.6-block.git] / Documentation / userspace-api / media / v4l / vidioc-querystd.rst
CommitLineData
059b1c5b 1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
82559ac0 2
af4a4d0d 3.. _VIDIOC_QUERYSTD:
5377d91f 4
56ab8cdb
NS
5*********************************************
6ioctl VIDIOC_QUERYSTD, VIDIOC_SUBDEV_QUERYSTD
7*********************************************
5377d91f 8
15e7d615 9Name
586027ce 10====
5377d91f 11
56ab8cdb 12VIDIOC_QUERYSTD - VIDIOC_SUBDEV_QUERYSTD - Sense the video standard received by the current input
5377d91f 13
15e7d615
MCC
14
15Synopsis
5377d91f
MH
16========
17
41d80465
MCC
18.. c:function:: int ioctl( int fd, VIDIOC_QUERYSTD, v4l2_std_id *argp )
19 :name: VIDIOC_QUERYSTD
5377d91f 20
56ab8cdb
NS
21.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_QUERYSTD, v4l2_std_id *argp )
22 :name: VIDIOC_SUBDEV_QUERYSTD
23
586027ce 24
15e7d615 25Arguments
5377d91f
MH
26=========
27
28``fd``
29 File descriptor returned by :ref:`open() <func-open>`.
30
5377d91f 31``argp``
1473c75e 32 Pointer to :c:type:`v4l2_std_id`.
5377d91f
MH
33
34
15e7d615 35Description
5377d91f
MH
36===========
37
38The hardware may be able to detect the current video standard
2212ff25 39automatically. To do so, applications call :ref:`VIDIOC_QUERYSTD` with a
5377d91f
MH
40pointer to a :ref:`v4l2_std_id <v4l2-std-id>` type. The driver
41stores here a set of candidates, this can be a single flag or a set of
42supported standards if for example the hardware can only distinguish
43between 50 and 60 Hz systems. If no signal was detected, then the driver
44will return V4L2_STD_UNKNOWN. When detection is not possible or fails,
45the set must contain all standards supported by the current video input
46or output.
47
b6b6e678
MCC
48.. note::
49
50 Drivers shall *not* switch the video standard
706f8a99
MCC
51 automatically if a new video standard is detected. Instead, drivers
52 should send the ``V4L2_EVENT_SOURCE_CHANGE`` event (if they support
53 this) and expect that userspace will take action by calling
54 :ref:`VIDIOC_QUERYSTD`. The reason is that a new video standard can mean
55 different buffer sizes as well, and you cannot change buffer sizes on
56 the fly. In general, applications that receive the Source Change event
57 will have to call :ref:`VIDIOC_QUERYSTD`, and if the detected video
58 standard is valid they will have to stop streaming, set the new
59 standard, allocate new buffers and start streaming again.
5377d91f
MH
60
61
15e7d615 62Return Value
5377d91f
MH
63============
64
65On success 0 is returned, on error -1 and the ``errno`` variable is set
66appropriately. The generic error codes are described at the
67:ref:`Generic Error Codes <gen-errors>` chapter.
68
69ENODATA
70 Standard video timings are not supported for this input or output.