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.. _VIDIOC_QUERYSTD: 11 12********************************************* 13ioctl VIDIOC_QUERYSTD, VIDIOC_SUBDEV_QUERYSTD 14********************************************* 15 16Name 17==== 18 19VIDIOC_QUERYSTD - VIDIOC_SUBDEV_QUERYSTD - Sense the video standard received by the current input 20 21 22Synopsis 23======== 24 25.. c:function:: int ioctl( int fd, VIDIOC_QUERYSTD, v4l2_std_id *argp ) 26 :name: VIDIOC_QUERYSTD 27 28.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_QUERYSTD, v4l2_std_id *argp ) 29 :name: VIDIOC_SUBDEV_QUERYSTD 30 31 32Arguments 33========= 34 35``fd`` 36 File descriptor returned by :ref:`open() <func-open>`. 37 38``argp`` 39 Pointer to :c:type:`v4l2_std_id`. 40 41 42Description 43=========== 44 45The hardware may be able to detect the current video standard 46automatically. To do so, applications call :ref:`VIDIOC_QUERYSTD` with a 47pointer to a :ref:`v4l2_std_id <v4l2-std-id>` type. The driver 48stores here a set of candidates, this can be a single flag or a set of 49supported standards if for example the hardware can only distinguish 50between 50 and 60 Hz systems. If no signal was detected, then the driver 51will return V4L2_STD_UNKNOWN. When detection is not possible or fails, 52the set must contain all standards supported by the current video input 53or output. 54 55.. note:: 56 57 Drivers shall *not* switch the video standard 58 automatically if a new video standard is detected. Instead, drivers 59 should send the ``V4L2_EVENT_SOURCE_CHANGE`` event (if they support 60 this) and expect that userspace will take action by calling 61 :ref:`VIDIOC_QUERYSTD`. The reason is that a new video standard can mean 62 different buffer sizes as well, and you cannot change buffer sizes on 63 the fly. In general, applications that receive the Source Change event 64 will have to call :ref:`VIDIOC_QUERYSTD`, and if the detected video 65 standard is valid they will have to stop streaming, set the new 66 standard, allocate new buffers and start streaming again. 67 68 69Return Value 70============ 71 72On success 0 is returned, on error -1 and the ``errno`` variable is set 73appropriately. The generic error codes are described at the 74:ref:`Generic Error Codes <gen-errors>` chapter. 75 76ENODATA 77 Standard video timings are not supported for this input or output. 78