1 .. -*- coding: utf-8; mode: rst -*-
12 VIDIOC_QUERYSTD - Sense the video standard received by the current input
18 .. c:function:: int ioctl( int fd, VIDIOC_QUERYSTD, v4l2_std_id *argp )
19 :name: VIDIOC_QUERYSTD
26 File descriptor returned by :ref:`open() <func-open>`.
34 The hardware may be able to detect the current video standard
35 automatically. To do so, applications call :ref:`VIDIOC_QUERYSTD` with a
36 pointer to a :ref:`v4l2_std_id <v4l2-std-id>` type. The driver
37 stores here a set of candidates, this can be a single flag or a set of
38 supported standards if for example the hardware can only distinguish
39 between 50 and 60 Hz systems. If no signal was detected, then the driver
40 will return V4L2_STD_UNKNOWN. When detection is not possible or fails,
41 the set must contain all standards supported by the current video input
46 Drivers shall *not* switch the video standard
47 automatically if a new video standard is detected. Instead, drivers
48 should send the ``V4L2_EVENT_SOURCE_CHANGE`` event (if they support
49 this) and expect that userspace will take action by calling
50 :ref:`VIDIOC_QUERYSTD`. The reason is that a new video standard can mean
51 different buffer sizes as well, and you cannot change buffer sizes on
52 the fly. In general, applications that receive the Source Change event
53 will have to call :ref:`VIDIOC_QUERYSTD`, and if the detected video
54 standard is valid they will have to stop streaming, set the new
55 standard, allocate new buffers and start streaming again.
61 On success 0 is returned, on error -1 and the ``errno`` variable is set
62 appropriately. The generic error codes are described at the
63 :ref:`Generic Error Codes <gen-errors>` chapter.
66 Standard video timings are not supported for this input or output.