1059b1c5bSMauro Carvalho Chehab.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
254f38fcaSMauro Carvalho Chehab
354f38fcaSMauro Carvalho Chehab.. _VIDIOC_QUERYSTD:
454f38fcaSMauro Carvalho Chehab
554f38fcaSMauro Carvalho Chehab*********************************************
654f38fcaSMauro Carvalho Chehabioctl VIDIOC_QUERYSTD, VIDIOC_SUBDEV_QUERYSTD
754f38fcaSMauro Carvalho Chehab*********************************************
854f38fcaSMauro Carvalho Chehab
954f38fcaSMauro Carvalho ChehabName
1054f38fcaSMauro Carvalho Chehab====
1154f38fcaSMauro Carvalho Chehab
1254f38fcaSMauro Carvalho ChehabVIDIOC_QUERYSTD - VIDIOC_SUBDEV_QUERYSTD - Sense the video standard received by the current input
1354f38fcaSMauro Carvalho Chehab
1454f38fcaSMauro Carvalho Chehab
1554f38fcaSMauro Carvalho ChehabSynopsis
1654f38fcaSMauro Carvalho Chehab========
1754f38fcaSMauro Carvalho Chehab
1854f38fcaSMauro Carvalho Chehab.. c:function:: int ioctl( int fd, VIDIOC_QUERYSTD, v4l2_std_id *argp )
1954f38fcaSMauro Carvalho Chehab    :name: VIDIOC_QUERYSTD
2054f38fcaSMauro Carvalho Chehab
2154f38fcaSMauro Carvalho Chehab.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_QUERYSTD, v4l2_std_id *argp )
2254f38fcaSMauro Carvalho Chehab    :name: VIDIOC_SUBDEV_QUERYSTD
2354f38fcaSMauro Carvalho Chehab
2454f38fcaSMauro Carvalho Chehab
2554f38fcaSMauro Carvalho ChehabArguments
2654f38fcaSMauro Carvalho Chehab=========
2754f38fcaSMauro Carvalho Chehab
2854f38fcaSMauro Carvalho Chehab``fd``
2954f38fcaSMauro Carvalho Chehab    File descriptor returned by :ref:`open() <func-open>`.
3054f38fcaSMauro Carvalho Chehab
3154f38fcaSMauro Carvalho Chehab``argp``
3254f38fcaSMauro Carvalho Chehab    Pointer to :c:type:`v4l2_std_id`.
3354f38fcaSMauro Carvalho Chehab
3454f38fcaSMauro Carvalho Chehab
3554f38fcaSMauro Carvalho ChehabDescription
3654f38fcaSMauro Carvalho Chehab===========
3754f38fcaSMauro Carvalho Chehab
3854f38fcaSMauro Carvalho ChehabThe hardware may be able to detect the current video standard
3954f38fcaSMauro Carvalho Chehabautomatically. To do so, applications call :ref:`VIDIOC_QUERYSTD` with a
4054f38fcaSMauro Carvalho Chehabpointer to a :ref:`v4l2_std_id <v4l2-std-id>` type. The driver
4154f38fcaSMauro Carvalho Chehabstores here a set of candidates, this can be a single flag or a set of
4254f38fcaSMauro Carvalho Chehabsupported standards if for example the hardware can only distinguish
4354f38fcaSMauro Carvalho Chehabbetween 50 and 60 Hz systems. If no signal was detected, then the driver
4454f38fcaSMauro Carvalho Chehabwill return V4L2_STD_UNKNOWN. When detection is not possible or fails,
4554f38fcaSMauro Carvalho Chehabthe set must contain all standards supported by the current video input
4654f38fcaSMauro Carvalho Chehabor output.
4754f38fcaSMauro Carvalho Chehab
4854f38fcaSMauro Carvalho Chehab.. note::
4954f38fcaSMauro Carvalho Chehab
5054f38fcaSMauro Carvalho Chehab   Drivers shall *not* switch the video standard
5154f38fcaSMauro Carvalho Chehab   automatically if a new video standard is detected. Instead, drivers
5254f38fcaSMauro Carvalho Chehab   should send the ``V4L2_EVENT_SOURCE_CHANGE`` event (if they support
5354f38fcaSMauro Carvalho Chehab   this) and expect that userspace will take action by calling
5454f38fcaSMauro Carvalho Chehab   :ref:`VIDIOC_QUERYSTD`. The reason is that a new video standard can mean
5554f38fcaSMauro Carvalho Chehab   different buffer sizes as well, and you cannot change buffer sizes on
5654f38fcaSMauro Carvalho Chehab   the fly. In general, applications that receive the Source Change event
5754f38fcaSMauro Carvalho Chehab   will have to call :ref:`VIDIOC_QUERYSTD`, and if the detected video
5854f38fcaSMauro Carvalho Chehab   standard is valid they will have to stop streaming, set the new
5954f38fcaSMauro Carvalho Chehab   standard, allocate new buffers and start streaming again.
6054f38fcaSMauro Carvalho Chehab
6154f38fcaSMauro Carvalho Chehab
6254f38fcaSMauro Carvalho ChehabReturn Value
6354f38fcaSMauro Carvalho Chehab============
6454f38fcaSMauro Carvalho Chehab
6554f38fcaSMauro Carvalho ChehabOn success 0 is returned, on error -1 and the ``errno`` variable is set
6654f38fcaSMauro Carvalho Chehabappropriately. The generic error codes are described at the
6754f38fcaSMauro Carvalho Chehab:ref:`Generic Error Codes <gen-errors>` chapter.
6854f38fcaSMauro Carvalho Chehab
6954f38fcaSMauro Carvalho ChehabENODATA
7054f38fcaSMauro Carvalho Chehab    Standard video timings are not supported for this input or output.
71