vidioc-querystd.rst 2.2 KB
Newer Older
1 2
.. -*- coding: utf-8; mode: rst -*-

3
.. _VIDIOC_QUERYSTD:
4

5 6 7
*********************************************
ioctl VIDIOC_QUERYSTD, VIDIOC_SUBDEV_QUERYSTD
*********************************************
8

9
Name
10
====
11

12
VIDIOC_QUERYSTD - VIDIOC_SUBDEV_QUERYSTD - Sense the video standard received by the current input
13

14 15

Synopsis
16 17
========

18 19
.. c:function:: int ioctl( int fd, VIDIOC_QUERYSTD, v4l2_std_id *argp )
    :name: VIDIOC_QUERYSTD
20

21 22 23
.. c:function:: int ioctl( int fd, VIDIOC_SUBDEV_QUERYSTD, v4l2_std_id *argp )
    :name: VIDIOC_SUBDEV_QUERYSTD

24

25
Arguments
26 27 28 29 30 31
=========

``fd``
    File descriptor returned by :ref:`open() <func-open>`.

``argp``
32
    Pointer to :c:type:`v4l2_std_id`.
33 34


35
Description
36 37 38
===========

The hardware may be able to detect the current video standard
39
automatically. To do so, applications call :ref:`VIDIOC_QUERYSTD` with a
40 41 42 43 44 45 46 47
pointer to a :ref:`v4l2_std_id <v4l2-std-id>` type. The driver
stores here a set of candidates, this can be a single flag or a set of
supported standards if for example the hardware can only distinguish
between 50 and 60 Hz systems. If no signal was detected, then the driver
will return V4L2_STD_UNKNOWN. When detection is not possible or fails,
the set must contain all standards supported by the current video input
or output.

48 49 50
.. note::

   Drivers shall *not* switch the video standard
51 52 53 54 55 56 57 58 59
   automatically if a new video standard is detected. Instead, drivers
   should send the ``V4L2_EVENT_SOURCE_CHANGE`` event (if they support
   this) and expect that userspace will take action by calling
   :ref:`VIDIOC_QUERYSTD`. The reason is that a new video standard can mean
   different buffer sizes as well, and you cannot change buffer sizes on
   the fly. In general, applications that receive the Source Change event
   will have to call :ref:`VIDIOC_QUERYSTD`, and if the detected video
   standard is valid they will have to stop streaming, set the new
   standard, allocate new buffers and start streaming again.
60 61


62
Return Value
63 64 65 66 67 68 69 70
============

On success 0 is returned, on error -1 and the ``errno`` variable is set
appropriately. The generic error codes are described at the
:ref:`Generic Error Codes <gen-errors>` chapter.

ENODATA
    Standard video timings are not supported for this input or output.