Merge remote-tracking branch 'docs-next/docs-next' into devel/docs-next
[cascardo/linux.git] / Documentation / media / uapi / v4l / vidioc-dv-timings-cap.rst
1 .. -*- coding: utf-8; mode: rst -*-
2
3 .. _VIDIOC_DV_TIMINGS_CAP:
4
5 *********************************************************
6 ioctl VIDIOC_DV_TIMINGS_CAP, VIDIOC_SUBDEV_DV_TIMINGS_CAP
7 *********************************************************
8
9 Name
10 ====
11
12 VIDIOC_DV_TIMINGS_CAP - VIDIOC_SUBDEV_DV_TIMINGS_CAP - The capabilities of the Digital Video receiver/transmitter
13
14
15 Synopsis
16 ========
17
18 .. cpp:function:: int ioctl( int fd, int request, struct v4l2_dv_timings_cap *argp )
19
20
21 Arguments
22 =========
23
24 ``fd``
25     File descriptor returned by :ref:`open() <func-open>`.
26
27 ``request``
28     VIDIOC_DV_TIMINGS_CAP, VIDIOC_SUBDEV_DV_TIMINGS_CAP
29
30 ``argp``
31
32
33 Description
34 ===========
35
36 To query the capabilities of the DV receiver/transmitter applications
37 initialize the ``pad`` field to 0, zero the reserved array of struct
38 :ref:`v4l2_dv_timings_cap <v4l2-dv-timings-cap>` and call the
39 ``VIDIOC_DV_TIMINGS_CAP`` ioctl on a video node and the driver will fill
40 in the structure.
41
42 .. note::
43
44    Drivers may return different values after
45    switching the video input or output.
46
47 When implemented by the driver DV capabilities of subdevices can be
48 queried by calling the ``VIDIOC_SUBDEV_DV_TIMINGS_CAP`` ioctl directly
49 on a subdevice node. The capabilities are specific to inputs (for DV
50 receivers) or outputs (for DV transmitters), applications must specify
51 the desired pad number in the struct
52 :ref:`v4l2_dv_timings_cap <v4l2-dv-timings-cap>` ``pad`` field and
53 zero the ``reserved`` array. Attempts to query capabilities on a pad
54 that doesn't support them will return an ``EINVAL`` error code.
55
56
57 .. tabularcolumns:: |p{1.2cm}|p{3.0cm}|p{13.3cm}|
58
59 .. _v4l2-bt-timings-cap:
60
61 .. flat-table:: struct v4l2_bt_timings_cap
62     :header-rows:  0
63     :stub-columns: 0
64     :widths:       1 1 2
65
66
67     -  .. row 1
68
69        -  __u32
70
71        -  ``min_width``
72
73        -  Minimum width of the active video in pixels.
74
75     -  .. row 2
76
77        -  __u32
78
79        -  ``max_width``
80
81        -  Maximum width of the active video in pixels.
82
83     -  .. row 3
84
85        -  __u32
86
87        -  ``min_height``
88
89        -  Minimum height of the active video in lines.
90
91     -  .. row 4
92
93        -  __u32
94
95        -  ``max_height``
96
97        -  Maximum height of the active video in lines.
98
99     -  .. row 5
100
101        -  __u64
102
103        -  ``min_pixelclock``
104
105        -  Minimum pixelclock frequency in Hz.
106
107     -  .. row 6
108
109        -  __u64
110
111        -  ``max_pixelclock``
112
113        -  Maximum pixelclock frequency in Hz.
114
115     -  .. row 7
116
117        -  __u32
118
119        -  ``standards``
120
121        -  The video standard(s) supported by the hardware. See
122           :ref:`dv-bt-standards` for a list of standards.
123
124     -  .. row 8
125
126        -  __u32
127
128        -  ``capabilities``
129
130        -  Several flags giving more information about the capabilities. See
131           :ref:`dv-bt-cap-capabilities` for a description of the flags.
132
133     -  .. row 9
134
135        -  __u32
136
137        -  ``reserved``\ [16]
138
139        -  Reserved for future extensions.
140           Drivers must set the array to zero.
141
142
143
144 .. tabularcolumns:: |p{1.0cm}|p{3.5cm}|p{3.5cm}|p{9.5cm}|
145
146 .. _v4l2-dv-timings-cap:
147
148 .. flat-table:: struct v4l2_dv_timings_cap
149     :header-rows:  0
150     :stub-columns: 0
151     :widths:       1 1 2 1
152
153
154     -  .. row 1
155
156        -  __u32
157
158        -  ``type``
159
160        -  Type of DV timings as listed in :ref:`dv-timing-types`.
161
162     -  .. row 2
163
164        -  __u32
165
166        -  ``pad``
167
168        -  Pad number as reported by the media controller API. This field is
169           only used when operating on a subdevice node. When operating on a
170           video node applications must set this field to zero.
171
172     -  .. row 3
173
174        -  __u32
175
176        -  ``reserved``\ [2]
177
178        -  Reserved for future extensions.
179
180           Drivers and applications must set the array to zero.
181
182     -  .. row 4
183
184        -  union
185
186        -
187        -
188
189     -  .. row 5
190
191        -
192        -  struct :ref:`v4l2_bt_timings_cap <v4l2-bt-timings-cap>`
193
194        -  ``bt``
195
196        -  BT.656/1120 timings capabilities of the hardware.
197
198     -  .. row 6
199
200        -
201        -  __u32
202
203        -  ``raw_data``\ [32]
204
205        -
206
207 .. tabularcolumns:: |p{7.0cm}|p{10.5cm}|
208
209 .. _dv-bt-cap-capabilities:
210
211 .. flat-table:: DV BT Timing capabilities
212     :header-rows:  0
213     :stub-columns: 0
214
215
216     -  .. row 1
217
218        -  Flag
219
220        -  Description
221
222     -  .. row 2
223
224        -
225        -
226
227     -  .. row 3
228
229        -  ``V4L2_DV_BT_CAP_INTERLACED``
230
231        -  Interlaced formats are supported.
232
233     -  .. row 4
234
235        -  ``V4L2_DV_BT_CAP_PROGRESSIVE``
236
237        -  Progressive formats are supported.
238
239     -  .. row 5
240
241        -  ``V4L2_DV_BT_CAP_REDUCED_BLANKING``
242
243        -  CVT/GTF specific: the timings can make use of reduced blanking
244           (CVT) or the 'Secondary GTF' curve (GTF).
245
246     -  .. row 6
247
248        -  ``V4L2_DV_BT_CAP_CUSTOM``
249
250        -  Can support non-standard timings, i.e. timings not belonging to
251           the standards set in the ``standards`` field.
252
253
254 Return Value
255 ============
256
257 On success 0 is returned, on error -1 and the ``errno`` variable is set
258 appropriately. The generic error codes are described at the
259 :ref:`Generic Error Codes <gen-errors>` chapter.