doc-rst: standard: read the example captions
[deliverable/linux.git] / Documentation / linux_tv / media / v4l / vidioc-query-dv-timings.rst
CommitLineData
5377d91f
MH
1.. -*- coding: utf-8; mode: rst -*-
2
af4a4d0d 3.. _VIDIOC_QUERY_DV_TIMINGS:
5377d91f
MH
4
5*****************************
6ioctl VIDIOC_QUERY_DV_TIMINGS
7*****************************
8
9*man VIDIOC_QUERY_DV_TIMINGS(2)*
10
11VIDIOC_SUBDEV_QUERY_DV_TIMINGS
12Sense the DV preset received by the current input
13
14
15Synopsis
16========
17
18.. c:function:: int ioctl( int fd, int request, struct v4l2_dv_timings *argp )
19
20Arguments
21=========
22
23``fd``
24 File descriptor returned by :ref:`open() <func-open>`.
25
26``request``
27 VIDIOC_QUERY_DV_TIMINGS, VIDIOC_SUBDEV_QUERY_DV_TIMINGS
28
29``argp``
30
31
32Description
33===========
34
35The hardware may be able to detect the current DV timings automatically,
36similar to sensing the video standard. To do so, applications call
2212ff25 37:ref:`VIDIOC_QUERY_DV_TIMINGS` with a pointer to a struct
5377d91f
MH
38:ref:`v4l2_dv_timings <v4l2-dv-timings>`. Once the hardware detects
39the timings, it will fill in the timings structure.
40
41Please note that drivers shall *not* switch timings automatically if new
42timings are detected. Instead, drivers should send the
43``V4L2_EVENT_SOURCE_CHANGE`` event (if they support this) and expect
2212ff25 44that userspace will take action by calling :ref:`VIDIOC_QUERY_DV_TIMINGS`.
5377d91f
MH
45The reason is that new timings usually mean different buffer sizes as
46well, and you cannot change buffer sizes on the fly. In general,
47applications that receive the Source Change event will have to call
2212ff25 48:ref:`VIDIOC_QUERY_DV_TIMINGS`, and if the detected timings are valid they
5377d91f
MH
49will have to stop streaming, set the new timings, allocate new buffers
50and start streaming again.
51
52If the timings could not be detected because there was no signal, then
53ENOLINK is returned. If a signal was detected, but it was unstable and
54the receiver could not lock to the signal, then ENOLCK is returned. If
55the receiver could lock to the signal, but the format is unsupported
56(e.g. because the pixelclock is out of range of the hardware
57capabilities), then the driver fills in whatever timings it could find
58and returns ERANGE. In that case the application can call
7347081e 59:ref:`VIDIOC_DV_TIMINGS_CAP` to compare the
5377d91f
MH
60found timings with the hardware's capabilities in order to give more
61precise feedback to the user.
62
63
64Return Value
65============
66
67On success 0 is returned, on error -1 and the ``errno`` variable is set
68appropriately. The generic error codes are described at the
69:ref:`Generic Error Codes <gen-errors>` chapter.
70
71ENODATA
72 Digital video timings are not supported for this input or output.
73
74ENOLINK
75 No timings could be detected because no signal was found.
76
77ENOLCK
78 The signal was unstable and the hardware could not lock on to it.
79
80ERANGE
81 Timings were found, but they are out of range of the hardware
82 capabilities.
83
84
85.. ------------------------------------------------------------------------------
86.. This file was automatically converted from DocBook-XML with the dbxml
87.. library (https://github.com/return42/sphkerneldoc). The origin XML comes
88.. from the linux kernel, refer to:
89..
90.. * https://github.com/torvalds/linux/tree/master/Documentation/DocBook
91.. ------------------------------------------------------------------------------
This page took 0.030296 seconds and 5 git commands to generate.