[media] vidioc-g-sliced-vbi-cap.rst: make tables fit on LaTeX output
[cascardo/linux.git] / Documentation / media / uapi / v4l / vidioc-g-sliced-vbi-cap.rst
1 .. -*- coding: utf-8; mode: rst -*-
2
3 .. _VIDIOC_G_SLICED_VBI_CAP:
4
5 *****************************
6 ioctl VIDIOC_G_SLICED_VBI_CAP
7 *****************************
8
9 Name
10 ====
11
12 VIDIOC_G_SLICED_VBI_CAP - Query sliced VBI capabilities
13
14
15 Synopsis
16 ========
17
18 .. cpp:function:: int ioctl( int fd, int request, struct v4l2_sliced_vbi_cap *argp )
19
20
21 Arguments
22 =========
23
24 ``fd``
25     File descriptor returned by :ref:`open() <func-open>`.
26
27 ``request``
28     VIDIOC_G_SLICED_VBI_CAP
29
30 ``argp``
31
32
33 Description
34 ===========
35
36 To find out which data services are supported by a sliced VBI capture or
37 output device, applications initialize the ``type`` field of a struct
38 :ref:`v4l2_sliced_vbi_cap <v4l2-sliced-vbi-cap>`, clear the
39 ``reserved`` array and call the :ref:`VIDIOC_G_SLICED_VBI_CAP <VIDIOC_G_SLICED_VBI_CAP>` ioctl. The
40 driver fills in the remaining fields or returns an ``EINVAL`` error code if
41 the sliced VBI API is unsupported or ``type`` is invalid.
42
43 .. note::
44
45    The ``type`` field was added, and the ioctl changed from read-only
46    to write-read, in Linux 2.6.19.
47
48
49 .. _v4l2-sliced-vbi-cap:
50
51 .. tabularcolumns:: |p{1.2cm}|p{4.2cm}|p{4.1cm}|p{4.0cm}|p{4.0cm}|
52
53 .. flat-table:: struct v4l2_sliced_vbi_cap
54     :header-rows:  0
55     :stub-columns: 0
56     :widths:       3 3 2 2 2
57
58
59     -  .. row 1
60
61        -  __u16
62
63        -  ``service_set``
64
65        -  :cspan:`2` A set of all data services supported by the driver.
66
67           Equal to the union of all elements of the ``service_lines`` array.
68
69     -  .. row 2
70
71        -  __u16
72
73        -  ``service_lines``\ [2][24]
74
75        -  :cspan:`2` Each element of this array contains a set of data
76           services the hardware can look for or insert into a particular
77           scan line. Data services are defined in :ref:`vbi-services`.
78           Array indices map to ITU-R line numbers\ [#f1]_ as follows:
79
80     -  .. row 3
81
82        -
83        -
84        -  Element
85
86        -  525 line systems
87
88        -  625 line systems
89
90     -  .. row 4
91
92        -
93        -
94        -  ``service_lines``\ [0][1]
95
96        -  1
97
98        -  1
99
100     -  .. row 5
101
102        -
103        -
104        -  ``service_lines``\ [0][23]
105
106        -  23
107
108        -  23
109
110     -  .. row 6
111
112        -
113        -
114        -  ``service_lines``\ [1][1]
115
116        -  264
117
118        -  314
119
120     -  .. row 7
121
122        -
123        -
124        -  ``service_lines``\ [1][23]
125
126        -  286
127
128        -  336
129
130     -  .. row 8
131
132        -
133
134     -  .. row 9
135
136        -
137        -
138        -  :cspan:`2` The number of VBI lines the hardware can capture or
139           output per frame, or the number of services it can identify on a
140           given line may be limited. For example on PAL line 16 the hardware
141           may be able to look for a VPS or Teletext signal, but not both at
142           the same time. Applications can learn about these limits using the
143           :ref:`VIDIOC_S_FMT <VIDIOC_G_FMT>` ioctl as described in
144           :ref:`sliced`.
145
146     -  .. row 10
147
148        -
149
150     -  .. row 11
151
152        -
153        -
154        -  :cspan:`2` Drivers must set ``service_lines`` [0][0] and
155           ``service_lines``\ [1][0] to zero.
156
157     -  .. row 12
158
159        -  __u32
160
161        -  ``type``
162
163        -  Type of the data stream, see :ref:`v4l2-buf-type`. Should be
164           ``V4L2_BUF_TYPE_SLICED_VBI_CAPTURE`` or
165           ``V4L2_BUF_TYPE_SLICED_VBI_OUTPUT``.
166
167     -  .. row 13
168
169        -  __u32
170
171        -  ``reserved``\ [3]
172
173        -  :cspan:`2` This array is reserved for future extensions.
174
175           Applications and drivers must set it to zero.
176
177 .. [#f1]
178
179    See also :ref:`vbi-525` and :ref:`vbi-625`.
180
181
182 .. raw:: latex
183
184     \newline\newline\begin{adjustbox}{width=\columnwidth}
185
186 .. tabularcolumns:: |p{5.0cm}|p{1.4cm}|p{3.0cm}|p{2.5cm}|p{9.0cm}|
187
188 .. _vbi-services:
189
190 .. flat-table:: Sliced VBI services
191     :header-rows:  1
192     :stub-columns: 0
193     :widths:       2 1 1 2 2
194
195
196     -  .. row 1
197
198        -  Symbol
199
200        -  Value
201
202        -  Reference
203
204        -  Lines, usually
205
206        -  Payload
207
208     -  .. row 2
209
210        -  ``V4L2_SLICED_TELETEXT_B`` (Teletext System B)
211
212        -  0x0001
213
214        -  :ref:`ets300706`,
215
216           :ref:`itu653`
217
218        -  PAL/SECAM line 7-22, 320-335 (second field 7-22)
219
220        -  Last 42 of the 45 byte Teletext packet, that is without clock
221           run-in and framing code, lsb first transmitted.
222
223     -  .. row 3
224
225        -  ``V4L2_SLICED_VPS``
226
227        -  0x0400
228
229        -  :ref:`ets300231`
230
231        -  PAL line 16
232
233        -  Byte number 3 to 15 according to Figure 9 of ETS 300 231, lsb
234           first transmitted.
235
236     -  .. row 4
237
238        -  ``V4L2_SLICED_CAPTION_525``
239
240        -  0x1000
241
242        -  :ref:`cea608`
243
244        -  NTSC line 21, 284 (second field 21)
245
246        -  Two bytes in transmission order, including parity bit, lsb first
247           transmitted.
248
249     -  .. row 5
250
251        -  ``V4L2_SLICED_WSS_625``
252
253        -  0x4000
254
255        -  :ref:`en300294`,
256
257           :ref:`itu1119`
258
259        -  PAL/SECAM line 23
260
261        -
262
263           ::
264
265               Byte        0                 1
266                    msb         lsb  msb           lsb
267               Bit  7 6 5 4 3 2 1 0  x x 13 12 11 10 9
268
269     -  .. row 6
270
271        -  ``V4L2_SLICED_VBI_525``
272
273        -  0x1000
274
275        -  :cspan:`2` Set of services applicable to 525 line systems.
276
277     -  .. row 7
278
279        -  ``V4L2_SLICED_VBI_625``
280
281        -  0x4401
282
283        -  :cspan:`2` Set of services applicable to 625 line systems.
284
285 .. raw:: latex
286
287     \end{adjustbox}\newline\newline
288
289
290 Return Value
291 ============
292
293 On success 0 is returned, on error -1 and the ``errno`` variable is set
294 appropriately. The generic error codes are described at the
295 :ref:`Generic Error Codes <gen-errors>` chapter.
296
297 EINVAL
298     The value in the ``type`` field is wrong.