blob: 5aa2db9076a038c711e0e46a5ac9a53eb5b3b74c [file] [log] [blame]
Markus Heiser5377d912016-06-30 15:18:56 +02001.. -*- coding: utf-8; mode: rst -*-
2
Mauro Carvalho Chehabaf4a4d02016-07-01 13:42:29 -03003.. _VIDIOC_ENUM_DV_TIMINGS:
Markus Heiser5377d912016-06-30 15:18:56 +02004
5***********************************************************
6ioctl VIDIOC_ENUM_DV_TIMINGS, VIDIOC_SUBDEV_ENUM_DV_TIMINGS
7***********************************************************
8
9*man VIDIOC_ENUM_DV_TIMINGS(2)*
10
11VIDIOC_SUBDEV_ENUM_DV_TIMINGS
12Enumerate supported Digital Video timings
13
14
15Synopsis
16========
17
Mauro Carvalho Chehabb7e67f62016-07-02 09:49:16 -030018.. cpp:function:: int ioctl( int fd, int request, struct v4l2_enum_dv_timings *argp )
Markus Heiser5377d912016-06-30 15:18:56 +020019
20Arguments
21=========
22
23``fd``
24 File descriptor returned by :ref:`open() <func-open>`.
25
26``request``
27 VIDIOC_ENUM_DV_TIMINGS, VIDIOC_SUBDEV_ENUM_DV_TIMINGS
28
29``argp``
30
31
32Description
33===========
34
35While some DV receivers or transmitters support a wide range of timings,
36others support only a limited number of timings. With this ioctl
37applications can enumerate a list of known supported timings. Call
Mauro Carvalho Chehab73470812016-07-01 13:58:44 -030038:ref:`VIDIOC_DV_TIMINGS_CAP` to check if it
Markus Heiser5377d912016-06-30 15:18:56 +020039also supports other standards or even custom timings that are not in
40this list.
41
42To query the available timings, applications initialize the ``index``
43field, set the ``pad`` field to 0, zero the reserved array of struct
44:ref:`v4l2_enum_dv_timings <v4l2-enum-dv-timings>` and call the
45``VIDIOC_ENUM_DV_TIMINGS`` ioctl on a video node with a pointer to this
Mauro Carvalho Chehabcdb4af02016-07-03 11:53:09 -030046structure. Drivers fill the rest of the structure or return an ``EINVAL``
Markus Heiser5377d912016-06-30 15:18:56 +020047error code when the index is out of bounds. To enumerate all supported
48DV timings, applications shall begin at index zero, incrementing by one
Mauro Carvalho Chehabcdb4af02016-07-03 11:53:09 -030049until the driver returns ``EINVAL``. Note that drivers may enumerate a
Markus Heiser5377d912016-06-30 15:18:56 +020050different set of DV timings after switching the video input or output.
51
52When implemented by the driver DV timings of subdevices can be queried
53by calling the ``VIDIOC_SUBDEV_ENUM_DV_TIMINGS`` ioctl directly on a
54subdevice node. The DV timings are specific to inputs (for DV receivers)
55or outputs (for DV transmitters), applications must specify the desired
56pad number in the struct
57:ref:`v4l2_enum_dv_timings <v4l2-enum-dv-timings>` ``pad`` field.
58Attempts to enumerate timings on a pad that doesn't support them will
Mauro Carvalho Chehabcdb4af02016-07-03 11:53:09 -030059return an ``EINVAL`` error code.
Markus Heiser5377d912016-06-30 15:18:56 +020060
61
62.. _v4l2-enum-dv-timings:
63
64.. flat-table:: struct v4l2_enum_dv_timings
65 :header-rows: 0
66 :stub-columns: 0
67 :widths: 1 1 2
68
69
70 - .. row 1
71
72 - __u32
73
74 - ``index``
75
76 - Number of the DV timings, set by the application.
77
78 - .. row 2
79
80 - __u32
81
82 - ``pad``
83
84 - Pad number as reported by the media controller API. This field is
Mauro Carvalho Chehab0579e6e2016-07-04 16:25:48 -030085 only used when operating on a subdevice node. When operating on a
86 video node applications must set this field to zero.
Markus Heiser5377d912016-06-30 15:18:56 +020087
88 - .. row 3
89
90 - __u32
91
92 - ``reserved``\ [2]
93
94 - Reserved for future extensions. Drivers and applications must set
Mauro Carvalho Chehab0579e6e2016-07-04 16:25:48 -030095 the array to zero.
Markus Heiser5377d912016-06-30 15:18:56 +020096
97 - .. row 4
98
99 - struct :ref:`v4l2_dv_timings <v4l2-dv-timings>`
100
101 - ``timings``
102
103 - The timings.
104
105
106
107Return Value
108============
109
110On success 0 is returned, on error -1 and the ``errno`` variable is set
111appropriately. The generic error codes are described at the
112:ref:`Generic Error Codes <gen-errors>` chapter.
113
114EINVAL
115 The struct :ref:`v4l2_enum_dv_timings <v4l2-enum-dv-timings>`
116 ``index`` is out of bounds or the ``pad`` number is invalid.
117
118ENODATA
119 Digital video presets are not supported for this input or output.