Commit | Line | Data |
---|---|---|
0ed08b49 | 1 | <section id="FE_GET_SET_PROPERTY"> |
994e262e MCC |
2 | <title><constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant></title> |
3 | <para>This section describes the DVB version 5 extention of the DVB-API, also | |
4 | called "S2API", as this API were added to provide support for DVB-S2. It was | |
5 | designed to be able to replace the old frontend API. Yet, the DISEQC and | |
6 | the capability ioctls weren't implemented yet via the new way.</para> | |
7 | <para>The typical usage for the <constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant> | |
8 | API is to replace the ioctl's were the <link linkend="dvb-frontend-parameters"> | |
9 | struct <constant>dvb_frontend_parameters</constant></link> were used.</para> | |
3272c3ec MCC |
10 | <section id="dtv-property"> |
11 | <title>DTV property type</title> | |
0ed08b49 MCC |
12 | <programlisting> |
13 | /* Reserved fields should be set to 0 */ | |
14 | struct dtv_property { | |
15 | __u32 cmd; | |
16 | union { | |
17 | __u32 data; | |
18 | struct { | |
19 | __u8 data[32]; | |
20 | __u32 len; | |
21 | __u32 reserved1[3]; | |
22 | void *reserved2; | |
23 | } buffer; | |
24 | } u; | |
25 | int result; | |
26 | } __attribute__ ((packed)); | |
27 | ||
28 | /* num of properties cannot exceed DTV_IOCTL_MAX_MSGS per ioctl */ | |
29 | #define DTV_IOCTL_MAX_MSGS 64 | |
3272c3ec MCC |
30 | </programlisting> |
31 | </section> | |
32 | <section id="dtv-properties"> | |
33 | <title>DTV properties type</title> | |
34 | <programlisting> | |
0ed08b49 MCC |
35 | struct dtv_properties { |
36 | __u32 num; | |
37 | struct dtv_property *props; | |
38 | }; | |
39 | </programlisting> | |
3272c3ec | 40 | </section> |
0ed08b49 MCC |
41 | |
42 | <section id="FE_GET_PROPERTY"> | |
43 | <title>FE_GET_PROPERTY</title> | |
44 | <para>DESCRIPTION | |
45 | </para> | |
46 | <informaltable><tgroup cols="1"><tbody><row><entry | |
47 | align="char"> | |
48 | <para>This ioctl call returns one or more frontend properties. This call only | |
49 | requires read-only access to the device.</para> | |
50 | </entry> | |
51 | </row></tbody></tgroup></informaltable> | |
52 | <para>SYNOPSIS | |
53 | </para> | |
54 | <informaltable><tgroup cols="1"><tbody><row><entry | |
55 | align="char"> | |
56 | <para>int ioctl(int fd, int request = <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY</link>, | |
57 | dtv_properties ⋆props);</para> | |
58 | </entry> | |
59 | </row></tbody></tgroup></informaltable> | |
60 | <para>PARAMETERS | |
61 | </para> | |
62 | <informaltable><tgroup cols="2"><tbody><row><entry align="char"> | |
63 | <para>int fd</para> | |
64 | </entry><entry | |
65 | align="char"> | |
66 | <para>File descriptor returned by a previous call to open().</para> | |
67 | </entry> | |
68 | </row><row><entry | |
69 | align="char"> | |
70 | <para>int num</para> | |
71 | </entry><entry | |
72 | align="char"> | |
73 | <para>Equals <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY</link> for this command.</para> | |
74 | </entry> | |
75 | </row><row><entry | |
76 | align="char"> | |
77 | <para>struct dtv_property *props</para> | |
78 | </entry><entry | |
79 | align="char"> | |
80 | <para>Points to the location where the front-end property commands are stored.</para> | |
81 | </entry> | |
82 | </row></tbody></tgroup></informaltable> | |
3de530f8 | 83 | &return-value-dvb; |
0ed08b49 | 84 | <informaltable><tgroup cols="2"><tbody><row> |
0ed08b49 MCC |
85 | <entry align="char"><para>EOPNOTSUPP</para></entry> |
86 | <entry align="char"><para>Property type not supported.</para></entry> | |
87 | </row></tbody></tgroup></informaltable> | |
88 | </section> | |
89 | ||
90 | <section id="FE_SET_PROPERTY"> | |
91 | <title>FE_SET_PROPERTY</title> | |
92 | <para>DESCRIPTION | |
93 | </para> | |
94 | <informaltable><tgroup cols="1"><tbody><row><entry | |
95 | align="char"> | |
96 | <para>This ioctl call sets one or more frontend properties. This call only | |
97 | requires read-only access to the device.</para> | |
98 | </entry> | |
99 | </row></tbody></tgroup></informaltable> | |
100 | <para>SYNOPSIS | |
101 | </para> | |
102 | <informaltable><tgroup cols="1"><tbody><row><entry | |
103 | align="char"> | |
104 | <para>int ioctl(int fd, int request = <link linkend="FE_SET_PROPERTY">FE_SET_PROPERTY</link>, | |
105 | dtv_properties ⋆props);</para> | |
106 | </entry> | |
107 | </row></tbody></tgroup></informaltable> | |
108 | <para>PARAMETERS | |
109 | </para> | |
110 | <informaltable><tgroup cols="2"><tbody><row><entry align="char"> | |
111 | <para>int fd</para> | |
112 | </entry><entry | |
113 | align="char"> | |
114 | <para>File descriptor returned by a previous call to open().</para> | |
115 | </entry> | |
116 | </row><row><entry | |
117 | align="char"> | |
118 | <para>int num</para> | |
119 | </entry><entry | |
120 | align="char"> | |
121 | <para>Equals <link linkend="FE_SET_PROPERTY">FE_SET_PROPERTY</link> for this command.</para> | |
122 | </entry> | |
123 | </row><row><entry | |
124 | align="char"> | |
125 | <para>struct dtv_property *props</para> | |
126 | </entry><entry | |
127 | align="char"> | |
128 | <para>Points to the location where the front-end property commands are stored.</para> | |
129 | </entry> | |
130 | </row></tbody></tgroup></informaltable> | |
3de530f8 | 131 | &return-value-dvb; |
0ed08b49 | 132 | <informaltable><tgroup cols="2"><tbody><row> |
0ed08b49 MCC |
133 | <entry align="char"><para>EOPNOTSUPP</para></entry> |
134 | <entry align="char"><para>Property type not supported.</para></entry> | |
135 | </row></tbody></tgroup></informaltable> | |
136 | </section> | |
137 | ||
5f1e1586 HV |
138 | <section> |
139 | <title>Property types</title> | |
0ed08b49 MCC |
140 | <para> |
141 | On <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY</link>/<link linkend="FE_SET_PROPERTY">FE_SET_PROPERTY</link>, | |
142 | the actual action is determined by the dtv_property cmd/data pairs. With one single ioctl, is possible to | |
143 | get/set up to 64 properties. The actual meaning of each property is described on the next sections. | |
144 | </para> | |
145 | ||
994e262e | 146 | <para>The available frontend property types are shown on the next section.</para> |
5f1e1586 | 147 | </section> |
0ed08b49 | 148 | |
17d8bb06 MCC |
149 | <section id="fe_property_parameters"> |
150 | <title>Digital TV property parameters</title> | |
04a92077 MCC |
151 | <section id="DTV-UNDEFINED"> |
152 | <title><constant>DTV_UNDEFINED</constant></title> | |
153 | <para>Used internally. A GET/SET operation for it won't change or return anything.</para> | |
154 | </section> | |
155 | <section id="DTV-TUNE"> | |
156 | <title><constant>DTV_TUNE</constant></title> | |
157 | <para>Interpret the cache of data, build either a traditional frontend tunerequest so we can pass validation in the <constant>FE_SET_FRONTEND</constant> ioctl.</para> | |
158 | </section> | |
159 | <section id="DTV-CLEAR"> | |
160 | <title><constant>DTV_CLEAR</constant></title> | |
161 | <para>Reset a cache of data specific to the frontend here. This does not effect hardware.</para> | |
162 | </section> | |
17d8bb06 MCC |
163 | <section id="DTV-FREQUENCY"> |
164 | <title><constant>DTV_FREQUENCY</constant></title> | |
165 | ||
a34e2a78 | 166 | <para>Central frequency of the channel.</para> |
17d8bb06 MCC |
167 | |
168 | <para>Notes:</para> | |
a34e2a78 MCC |
169 | <para>1)For satellital delivery systems, it is measured in kHz. |
170 | For the other ones, it is measured in Hz.</para> | |
171 | <para>2)For ISDB-T, the channels are usually transmitted with an offset of 143kHz. | |
17d8bb06 MCC |
172 | E.g. a valid frequncy could be 474143 kHz. The stepping is bound to the bandwidth of |
173 | the channel which is 6MHz.</para> | |
174 | ||
a34e2a78 | 175 | <para>3)As in ISDB-Tsb the channel consists of only one or three segments the |
17d8bb06 MCC |
176 | frequency step is 429kHz, 3*429 respectively. As for ISDB-T the |
177 | central frequency of the channel is expected.</para> | |
178 | </section> | |
04a92077 MCC |
179 | <section id="DTV-MODULATION"> |
180 | <title><constant>DTV_MODULATION</constant></title> | |
181 | <para>Specifies the frontend modulation type for cable and satellite types. The modulation can be one of the types bellow:</para> | |
182 | <programlisting> | |
183 | typedef enum fe_modulation { | |
184 | QPSK, | |
185 | QAM_16, | |
186 | QAM_32, | |
187 | QAM_64, | |
188 | QAM_128, | |
189 | QAM_256, | |
190 | QAM_AUTO, | |
191 | VSB_8, | |
192 | VSB_16, | |
193 | PSK_8, | |
194 | APSK_16, | |
195 | APSK_32, | |
196 | DQPSK, | |
224b6642 | 197 | QAM_4_NR, |
04a92077 MCC |
198 | } fe_modulation_t; |
199 | </programlisting> | |
200 | </section> | |
17d8bb06 MCC |
201 | <section id="DTV-BANDWIDTH-HZ"> |
202 | <title><constant>DTV_BANDWIDTH_HZ</constant></title> | |
203 | ||
204 | <para>Bandwidth for the channel, in HZ.</para> | |
205 | ||
206 | <para>Possible values: | |
207 | <constant>1712000</constant>, | |
208 | <constant>5000000</constant>, | |
209 | <constant>6000000</constant>, | |
210 | <constant>7000000</constant>, | |
211 | <constant>8000000</constant>, | |
212 | <constant>10000000</constant>. | |
213 | </para> | |
214 | ||
215 | <para>Notes:</para> | |
216 | ||
217 | <para>1) For ISDB-T it should be always 6000000Hz (6MHz)</para> | |
218 | <para>2) For ISDB-Tsb it can vary depending on the number of connected segments</para> | |
219 | <para>3) Bandwidth doesn't apply for DVB-C transmissions, as the bandwidth | |
220 | for DVB-C depends on the symbol rate</para> | |
221 | <para>4) Bandwidth in ISDB-T is fixed (6MHz) or can be easily derived from | |
222 | other parameters (DTV_ISDBT_SB_SEGMENT_IDX, | |
223 | DTV_ISDBT_SB_SEGMENT_COUNT).</para> | |
224 | <para>5) DVB-T supports 6, 7 and 8MHz.</para> | |
225 | <para>6) In addition, DVB-T2 supports 1.172, 5 and 10MHz.</para> | |
226 | </section> | |
04a92077 MCC |
227 | <section id="DTV-INVERSION"> |
228 | <title><constant>DTV_INVERSION</constant></title> | |
229 | <para>The Inversion field can take one of these values: | |
230 | </para> | |
231 | <programlisting> | |
232 | typedef enum fe_spectral_inversion { | |
233 | INVERSION_OFF, | |
234 | INVERSION_ON, | |
235 | INVERSION_AUTO | |
236 | } fe_spectral_inversion_t; | |
237 | </programlisting> | |
238 | <para>It indicates if spectral inversion should be presumed or not. In the automatic setting | |
239 | (<constant>INVERSION_AUTO</constant>) the hardware will try to figure out the correct setting by | |
240 | itself. | |
241 | </para> | |
242 | </section> | |
243 | <section id="DTV-DISEQC-MASTER"> | |
244 | <title><constant>DTV_DISEQC_MASTER</constant></title> | |
245 | <para>Currently not implemented.</para> | |
246 | </section> | |
247 | <section id="DTV-SYMBOL-RATE"> | |
248 | <title><constant>DTV_SYMBOL_RATE</constant></title> | |
249 | <para>Digital TV symbol rate, in bauds (symbols/second). Used on cable standards.</para> | |
250 | </section> | |
251 | <section id="DTV-INNER-FEC"> | |
252 | <title><constant>DTV_INNER_FEC</constant></title> | |
253 | <para>Used cable/satellite transmissions. The acceptable values are: | |
254 | </para> | |
255 | <programlisting> | |
256 | typedef enum fe_code_rate { | |
257 | FEC_NONE = 0, | |
258 | FEC_1_2, | |
259 | FEC_2_3, | |
260 | FEC_3_4, | |
261 | FEC_4_5, | |
262 | FEC_5_6, | |
263 | FEC_6_7, | |
264 | FEC_7_8, | |
265 | FEC_8_9, | |
266 | FEC_AUTO, | |
267 | FEC_3_5, | |
268 | FEC_9_10, | |
224b6642 | 269 | FEC_2_5, |
04a92077 MCC |
270 | } fe_code_rate_t; |
271 | </programlisting> | |
272 | <para>which correspond to error correction rates of 1/2, 2/3, etc., | |
273 | no error correction or auto detection.</para> | |
274 | </section> | |
275 | <section id="DTV-VOLTAGE"> | |
276 | <title><constant>DTV_VOLTAGE</constant></title> | |
277 | <para>The voltage is usually used with non-DiSEqC capable LNBs to switch | |
278 | the polarzation (horizontal/vertical). When using DiSEqC epuipment this | |
279 | voltage has to be switched consistently to the DiSEqC commands as | |
280 | described in the DiSEqC spec.</para> | |
281 | <programlisting> | |
282 | typedef enum fe_sec_voltage { | |
283 | SEC_VOLTAGE_13, | |
284 | SEC_VOLTAGE_18 | |
285 | } fe_sec_voltage_t; | |
286 | </programlisting> | |
287 | </section> | |
288 | <section id="DTV-TONE"> | |
289 | <title><constant>DTV_TONE</constant></title> | |
290 | <para>Currently not used.</para> | |
291 | </section> | |
292 | <section id="DTV-PILOT"> | |
293 | <title><constant>DTV_PILOT</constant></title> | |
294 | <para>Sets DVB-S2 pilot</para> | |
295 | <section id="fe-pilot-t"> | |
296 | <title>fe_pilot type</title> | |
297 | <programlisting> | |
298 | typedef enum fe_pilot { | |
299 | PILOT_ON, | |
300 | PILOT_OFF, | |
301 | PILOT_AUTO, | |
302 | } fe_pilot_t; | |
303 | </programlisting> | |
304 | </section> | |
305 | </section> | |
306 | <section id="DTV-ROLLOFF"> | |
307 | <title><constant>DTV_ROLLOFF</constant></title> | |
308 | <para>Sets DVB-S2 rolloff</para> | |
309 | ||
310 | <section id="fe-rolloff-t"> | |
311 | <title>fe_rolloff type</title> | |
312 | <programlisting> | |
313 | typedef enum fe_rolloff { | |
314 | ROLLOFF_35, /* Implied value in DVB-S, default for DVB-S2 */ | |
315 | ROLLOFF_20, | |
316 | ROLLOFF_25, | |
317 | ROLLOFF_AUTO, | |
318 | } fe_rolloff_t; | |
319 | </programlisting> | |
320 | </section> | |
321 | </section> | |
322 | <section id="DTV-DISEQC-SLAVE-REPLY"> | |
323 | <title><constant>DTV_DISEQC_SLAVE_REPLY</constant></title> | |
324 | <para>Currently not implemented.</para> | |
325 | </section> | |
326 | <section id="DTV-FE-CAPABILITY-COUNT"> | |
327 | <title><constant>DTV_FE_CAPABILITY_COUNT</constant></title> | |
328 | <para>Currently not implemented.</para> | |
329 | </section> | |
330 | <section id="DTV-FE-CAPABILITY"> | |
331 | <title><constant>DTV_FE_CAPABILITY</constant></title> | |
332 | <para>Currently not implemented.</para> | |
333 | </section> | |
17d8bb06 MCC |
334 | <section id="DTV-DELIVERY-SYSTEM"> |
335 | <title><constant>DTV_DELIVERY_SYSTEM</constant></title> | |
336 | <para>Specifies the type of Delivery system</para> | |
337 | <section id="fe-delivery-system-t"> | |
338 | <title>fe_delivery_system type</title> | |
339 | <para>Possible values: </para> | |
340 | <programlisting> | |
669a4ba4 | 341 | |
17d8bb06 MCC |
342 | typedef enum fe_delivery_system { |
343 | SYS_UNDEFINED, | |
669a4ba4 | 344 | SYS_DVBC_ANNEX_A, |
17d8bb06 MCC |
345 | SYS_DVBC_ANNEX_B, |
346 | SYS_DVBT, | |
347 | SYS_DSS, | |
348 | SYS_DVBS, | |
349 | SYS_DVBS2, | |
350 | SYS_DVBH, | |
351 | SYS_ISDBT, | |
352 | SYS_ISDBS, | |
353 | SYS_ISDBC, | |
354 | SYS_ATSC, | |
355 | SYS_ATSCMH, | |
224b6642 | 356 | SYS_DTMB, |
17d8bb06 MCC |
357 | SYS_CMMB, |
358 | SYS_DAB, | |
359 | SYS_DVBT2, | |
83dc314b | 360 | SYS_TURBO, |
669a4ba4 | 361 | SYS_DVBC_ANNEX_C, |
17d8bb06 MCC |
362 | } fe_delivery_system_t; |
363 | </programlisting> | |
364 | </section> | |
365 | </section> | |
366 | <section id="DTV-ISDBT-PARTIAL-RECEPTION"> | |
367 | <title><constant>DTV_ISDBT_PARTIAL_RECEPTION</constant></title> | |
368 | ||
369 | <para>If <constant>DTV_ISDBT_SOUND_BROADCASTING</constant> is '0' this bit-field represents whether | |
370 | the channel is in partial reception mode or not.</para> | |
371 | ||
372 | <para>If '1' <constant>DTV_ISDBT_LAYERA_*</constant> values are assigned to the center segment and | |
373 | <constant>DTV_ISDBT_LAYERA_SEGMENT_COUNT</constant> has to be '1'.</para> | |
374 | ||
375 | <para>If in addition <constant>DTV_ISDBT_SOUND_BROADCASTING</constant> is '1' | |
376 | <constant>DTV_ISDBT_PARTIAL_RECEPTION</constant> represents whether this ISDB-Tsb channel | |
377 | is consisting of one segment and layer or three segments and two layers.</para> | |
378 | ||
379 | <para>Possible values: 0, 1, -1 (AUTO)</para> | |
380 | </section> | |
381 | <section id="DTV-ISDBT-SOUND-BROADCASTING"> | |
382 | <title><constant>DTV_ISDBT_SOUND_BROADCASTING</constant></title> | |
383 | ||
384 | <para>This field represents whether the other DTV_ISDBT_*-parameters are | |
385 | referring to an ISDB-T and an ISDB-Tsb channel. (See also | |
386 | <constant>DTV_ISDBT_PARTIAL_RECEPTION</constant>).</para> | |
387 | ||
388 | <para>Possible values: 0, 1, -1 (AUTO)</para> | |
389 | </section> | |
390 | <section id="DTV-ISDBT-SB-SUBCHANNEL-ID"> | |
391 | <title><constant>DTV_ISDBT_SB_SUBCHANNEL_ID</constant></title> | |
392 | ||
393 | <para>This field only applies if <constant>DTV_ISDBT_SOUND_BROADCASTING</constant> is '1'.</para> | |
394 | ||
395 | <para>(Note of the author: This might not be the correct description of the | |
396 | <constant>SUBCHANNEL-ID</constant> in all details, but it is my understanding of the technical | |
397 | background needed to program a device)</para> | |
398 | ||
399 | <para>An ISDB-Tsb channel (1 or 3 segments) can be broadcasted alone or in a | |
400 | set of connected ISDB-Tsb channels. In this set of channels every | |
401 | channel can be received independently. The number of connected | |
402 | ISDB-Tsb segment can vary, e.g. depending on the frequency spectrum | |
403 | bandwidth available.</para> | |
404 | ||
405 | <para>Example: Assume 8 ISDB-Tsb connected segments are broadcasted. The | |
406 | broadcaster has several possibilities to put those channels in the | |
407 | air: Assuming a normal 13-segment ISDB-T spectrum he can align the 8 | |
408 | segments from position 1-8 to 5-13 or anything in between.</para> | |
409 | ||
410 | <para>The underlying layer of segments are subchannels: each segment is | |
411 | consisting of several subchannels with a predefined IDs. A sub-channel | |
412 | is used to help the demodulator to synchronize on the channel.</para> | |
413 | ||
414 | <para>An ISDB-T channel is always centered over all sub-channels. As for | |
415 | the example above, in ISDB-Tsb it is no longer as simple as that.</para> | |
416 | ||
417 | <para><constant>The DTV_ISDBT_SB_SUBCHANNEL_ID</constant> parameter is used to give the | |
418 | sub-channel ID of the segment to be demodulated.</para> | |
419 | ||
420 | <para>Possible values: 0 .. 41, -1 (AUTO)</para> | |
421 | </section> | |
422 | <section id="DTV-ISDBT-SB-SEGMENT-IDX"> | |
423 | <title><constant>DTV_ISDBT_SB_SEGMENT_IDX</constant></title> | |
424 | <para>This field only applies if <constant>DTV_ISDBT_SOUND_BROADCASTING</constant> is '1'.</para> | |
425 | <para><constant>DTV_ISDBT_SB_SEGMENT_IDX</constant> gives the index of the segment to be | |
426 | demodulated for an ISDB-Tsb channel where several of them are | |
427 | transmitted in the connected manner.</para> | |
428 | <para>Possible values: 0 .. <constant>DTV_ISDBT_SB_SEGMENT_COUNT</constant> - 1</para> | |
429 | <para>Note: This value cannot be determined by an automatic channel search.</para> | |
430 | </section> | |
431 | <section id="DTV-ISDBT-SB-SEGMENT-COUNT"> | |
432 | <title><constant>DTV_ISDBT_SB_SEGMENT_COUNT</constant></title> | |
433 | <para>This field only applies if <constant>DTV_ISDBT_SOUND_BROADCASTING</constant> is '1'.</para> | |
434 | <para><constant>DTV_ISDBT_SB_SEGMENT_COUNT</constant> gives the total count of connected ISDB-Tsb | |
435 | channels.</para> | |
436 | <para>Possible values: 1 .. 13</para> | |
437 | <para>Note: This value cannot be determined by an automatic channel search.</para> | |
438 | </section> | |
439 | <section id="isdb-hierq-layers"> | |
446c18fc | 440 | <title><constant>DTV-ISDBT-LAYER*</constant> parameters</title> |
17d8bb06 MCC |
441 | <para>ISDB-T channels can be coded hierarchically. As opposed to DVB-T in |
442 | ISDB-T hierarchical layers can be decoded simultaneously. For that | |
443 | reason a ISDB-T demodulator has 3 viterbi and 3 reed-solomon-decoders.</para> | |
444 | <para>ISDB-T has 3 hierarchical layers which each can use a part of the | |
445 | available segments. The total number of segments over all layers has | |
446 | to 13 in ISDB-T.</para> | |
446c18fc | 447 | <para>There are 3 parameter sets, for Layers A, B and C.</para> |
17d8bb06 MCC |
448 | <section id="DTV-ISDBT-LAYER-ENABLED"> |
449 | <title><constant>DTV_ISDBT_LAYER_ENABLED</constant></title> | |
450 | <para>Hierarchical reception in ISDB-T is achieved by enabling or disabling | |
451 | layers in the decoding process. Setting all bits of | |
452 | <constant>DTV_ISDBT_LAYER_ENABLED</constant> to '1' forces all layers (if applicable) to be | |
453 | demodulated. This is the default.</para> | |
454 | <para>If the channel is in the partial reception mode | |
455 | (<constant>DTV_ISDBT_PARTIAL_RECEPTION</constant> = 1) the central segment can be decoded | |
456 | independently of the other 12 segments. In that mode layer A has to | |
457 | have a <constant>SEGMENT_COUNT</constant> of 1.</para> | |
458 | <para>In ISDB-Tsb only layer A is used, it can be 1 or 3 in ISDB-Tsb | |
459 | according to <constant>DTV_ISDBT_PARTIAL_RECEPTION</constant>. <constant>SEGMENT_COUNT</constant> must be filled | |
460 | accordingly.</para> | |
461 | <para>Possible values: 0x1, 0x2, 0x4 (|-able)</para> | |
462 | <para><constant>DTV_ISDBT_LAYER_ENABLED[0:0]</constant> - layer A</para> | |
463 | <para><constant>DTV_ISDBT_LAYER_ENABLED[1:1]</constant> - layer B</para> | |
464 | <para><constant>DTV_ISDBT_LAYER_ENABLED[2:2]</constant> - layer C</para> | |
465 | <para><constant>DTV_ISDBT_LAYER_ENABLED[31:3]</constant> unused</para> | |
466 | </section> | |
467 | <section id="DTV-ISDBT-LAYER-FEC"> | |
468 | <title><constant>DTV_ISDBT_LAYER*_FEC</constant></title> | |
469 | <para>Possible values: <constant>FEC_AUTO</constant>, <constant>FEC_1_2</constant>, <constant>FEC_2_3</constant>, <constant>FEC_3_4</constant>, <constant>FEC_5_6</constant>, <constant>FEC_7_8</constant></para> | |
470 | </section> | |
471 | <section id="DTV-ISDBT-LAYER-MODULATION"> | |
472 | <title><constant>DTV_ISDBT_LAYER*_MODULATION</constant></title> | |
473 | <para>Possible values: <constant>QAM_AUTO</constant>, QP<constant>SK, QAM_16</constant>, <constant>QAM_64</constant>, <constant>DQPSK</constant></para> | |
474 | <para>Note: If layer C is <constant>DQPSK</constant> layer B has to be <constant>DQPSK</constant>. If layer B is <constant>DQPSK</constant> | |
475 | and <constant>DTV_ISDBT_PARTIAL_RECEPTION</constant>=0 layer has to be <constant>DQPSK</constant>.</para> | |
476 | </section> | |
477 | <section id="DTV-ISDBT-LAYER-SEGMENT-COUNT"> | |
478 | <title><constant>DTV_ISDBT_LAYER*_SEGMENT_COUNT</constant></title> | |
479 | <para>Possible values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1 (AUTO)</para> | |
480 | <para>Note: Truth table for <constant>DTV_ISDBT_SOUND_BROADCASTING</constant> and | |
481 | <constant>DTV_ISDBT_PARTIAL_RECEPTION</constant> and <constant>LAYER</constant>*_SEGMENT_COUNT</para> | |
482 | <informaltable id="isdbt-layer_seg-cnt-table"> | |
483 | <tgroup cols="6"> | |
484 | <tbody> | |
485 | <row> | |
486 | <entry>PR</entry> | |
487 | <entry>SB</entry> | |
488 | <entry>Layer A width</entry> | |
489 | <entry>Layer B width</entry> | |
490 | <entry>Layer C width</entry> | |
491 | <entry>total width</entry> | |
492 | </row> | |
493 | <row> | |
494 | <entry>0</entry> | |
495 | <entry>0</entry> | |
496 | <entry>1 .. 13</entry> | |
497 | <entry>1 .. 13</entry> | |
498 | <entry>1 .. 13</entry> | |
499 | <entry>13</entry> | |
500 | </row> | |
501 | <row> | |
502 | <entry>1</entry> | |
503 | <entry>0</entry> | |
504 | <entry>1</entry> | |
505 | <entry>1 .. 13</entry> | |
506 | <entry>1 .. 13</entry> | |
507 | <entry>13</entry> | |
508 | </row> | |
509 | <row> | |
510 | <entry>0</entry> | |
511 | <entry>1</entry> | |
512 | <entry>1</entry> | |
513 | <entry>0</entry> | |
514 | <entry>0</entry> | |
515 | <entry>1</entry> | |
516 | </row> | |
517 | <row> | |
518 | <entry>1</entry> | |
519 | <entry>1</entry> | |
520 | <entry>1</entry> | |
521 | <entry>2</entry> | |
522 | <entry>0</entry> | |
523 | <entry>13</entry> | |
524 | </row> | |
525 | </tbody> | |
526 | </tgroup> | |
527 | </informaltable> | |
528 | </section> | |
529 | <section id="DTV-ISDBT-LAYER-TIME-INTERLEAVING"> | |
530 | <title><constant>DTV_ISDBT_LAYER*_TIME_INTERLEAVING</constant></title> | |
531 | <para>Possible values: 0, 1, 2, 3, -1 (AUTO)</para> | |
532 | <para>Note: The real inter-leaver depth-names depend on the mode (fft-size); the values | |
533 | here are referring to what can be found in the TMCC-structure - | |
534 | independent of the mode.</para> | |
535 | </section> | |
edaa136d MK |
536 | <section id="DTV-ATSCMH-FIC-VER"> |
537 | <title><constant>DTV_ATSCMH_FIC_VER</constant></title> | |
538 | <para>Version number of the FIC (Fast Information Channel) signaling data.</para> | |
539 | <para>FIC is used for relaying information to allow rapid service acquisition by the receiver.</para> | |
540 | <para>Possible values: 0, 1, 2, 3, ..., 30, 31</para> | |
541 | </section> | |
542 | <section id="DTV-ATSCMH-PARADE-ID"> | |
543 | <title><constant>DTV_ATSCMH_PARADE_ID</constant></title> | |
544 | <para>Parade identification number</para> | |
545 | <para>A parade is a collection of up to eight MH groups, conveying one or two ensembles.</para> | |
546 | <para>Possible values: 0, 1, 2, 3, ..., 126, 127</para> | |
547 | </section> | |
548 | <section id="DTV-ATSCMH-NOG"> | |
549 | <title><constant>DTV_ATSCMH_NOG</constant></title> | |
550 | <para>Number of MH groups per MH subframe for a designated parade.</para> | |
551 | <para>Possible values: 1, 2, 3, 4, 5, 6, 7, 8</para> | |
552 | </section> | |
553 | <section id="DTV-ATSCMH-TNOG"> | |
554 | <title><constant>DTV_ATSCMH_TNOG</constant></title> | |
555 | <para>Total number of MH groups including all MH groups belonging to all MH parades in one MH subframe.</para> | |
556 | <para>Possible values: 0, 1, 2, 3, ..., 30, 31</para> | |
557 | </section> | |
558 | <section id="DTV-ATSCMH-SGN"> | |
559 | <title><constant>DTV_ATSCMH_SGN</constant></title> | |
560 | <para>Start group number.</para> | |
561 | <para>Possible values: 0, 1, 2, 3, ..., 14, 15</para> | |
562 | </section> | |
563 | <section id="DTV-ATSCMH-PRC"> | |
564 | <title><constant>DTV_ATSCMH_PRC</constant></title> | |
565 | <para>Parade repetition cycle.</para> | |
566 | <para>Possible values: 1, 2, 3, 4, 5, 6, 7, 8</para> | |
567 | </section> | |
568 | <section id="DTV-ATSCMH-RS-FRAME-MODE"> | |
569 | <title><constant>DTV_ATSCMH_RS_FRAME_MODE</constant></title> | |
570 | <para>RS frame mode.</para> | |
571 | <para>Possible values are:</para> | |
510f0a0f | 572 | <section id="atscmh-rs-frame-mode"> |
edaa136d MK |
573 | <programlisting> |
574 | typedef enum atscmh_rs_frame_mode { | |
575 | ATSCMH_RSFRAME_PRI_ONLY = 0, | |
576 | ATSCMH_RSFRAME_PRI_SEC = 1, | |
577 | } atscmh_rs_frame_mode_t; | |
578 | </programlisting> | |
510f0a0f | 579 | </section> |
edaa136d MK |
580 | </section> |
581 | <section id="DTV-ATSCMH-RS-FRAME-ENSEMBLE"> | |
582 | <title><constant>DTV_ATSCMH_RS_FRAME_ENSEMBLE</constant></title> | |
583 | <para>RS frame ensemble.</para> | |
584 | <para>Possible values are:</para> | |
510f0a0f | 585 | <section id="atscmh-rs-frame-ensemble"> |
edaa136d MK |
586 | <programlisting> |
587 | typedef enum atscmh_rs_frame_ensemble { | |
588 | ATSCMH_RSFRAME_ENS_PRI = 0, | |
589 | ATSCMH_RSFRAME_ENS_SEC = 1, | |
590 | } atscmh_rs_frame_ensemble_t; | |
591 | </programlisting> | |
510f0a0f | 592 | </section> |
edaa136d MK |
593 | </section> |
594 | <section id="DTV-ATSCMH-RS-CODE-MODE-PRI"> | |
595 | <title><constant>DTV_ATSCMH_RS_CODE_MODE_PRI</constant></title> | |
596 | <para>RS code mode (primary).</para> | |
597 | <para>Possible values are:</para> | |
510f0a0f | 598 | <section id="atscmh-rs-code-mode"> |
edaa136d MK |
599 | <programlisting> |
600 | typedef enum atscmh_rs_code_mode { | |
601 | ATSCMH_RSCODE_211_187 = 0, | |
602 | ATSCMH_RSCODE_223_187 = 1, | |
603 | ATSCMH_RSCODE_235_187 = 2, | |
604 | } atscmh_rs_code_mode_t; | |
605 | </programlisting> | |
510f0a0f | 606 | </section> |
edaa136d MK |
607 | </section> |
608 | <section id="DTV-ATSCMH-RS-CODE-MODE-SEC"> | |
609 | <title><constant>DTV_ATSCMH_RS_CODE_MODE_SEC</constant></title> | |
610 | <para>RS code mode (secondary).</para> | |
611 | <para>Possible values are:</para> | |
612 | <programlisting> | |
613 | typedef enum atscmh_rs_code_mode { | |
614 | ATSCMH_RSCODE_211_187 = 0, | |
615 | ATSCMH_RSCODE_223_187 = 1, | |
616 | ATSCMH_RSCODE_235_187 = 2, | |
617 | } atscmh_rs_code_mode_t; | |
618 | </programlisting> | |
619 | </section> | |
620 | <section id="DTV-ATSCMH-SCCC-BLOCK-MODE"> | |
621 | <title><constant>DTV_ATSCMH_SCCC_BLOCK_MODE</constant></title> | |
622 | <para>Series Concatenated Convolutional Code Block Mode.</para> | |
623 | <para>Possible values are:</para> | |
510f0a0f | 624 | <section id="atscmh-sccc-block-mode"> |
edaa136d MK |
625 | <programlisting> |
626 | typedef enum atscmh_sccc_block_mode { | |
627 | ATSCMH_SCCC_BLK_SEP = 0, | |
628 | ATSCMH_SCCC_BLK_COMB = 1, | |
629 | } atscmh_sccc_block_mode_t; | |
630 | </programlisting> | |
510f0a0f | 631 | </section> |
edaa136d MK |
632 | </section> |
633 | <section id="DTV-ATSCMH-SCCC-CODE-MODE-A"> | |
634 | <title><constant>DTV_ATSCMH_SCCC_CODE_MODE_A</constant></title> | |
635 | <para>Series Concatenated Convolutional Code Rate.</para> | |
636 | <para>Possible values are:</para> | |
510f0a0f | 637 | <section id="atscmh-sccc-code-mode"> |
edaa136d MK |
638 | <programlisting> |
639 | typedef enum atscmh_sccc_code_mode { | |
640 | ATSCMH_SCCC_CODE_HLF = 0, | |
641 | ATSCMH_SCCC_CODE_QTR = 1, | |
642 | } atscmh_sccc_code_mode_t; | |
643 | </programlisting> | |
510f0a0f | 644 | </section> |
edaa136d MK |
645 | </section> |
646 | <section id="DTV-ATSCMH-SCCC-CODE-MODE-B"> | |
647 | <title><constant>DTV_ATSCMH_SCCC_CODE_MODE_B</constant></title> | |
648 | <para>Series Concatenated Convolutional Code Rate.</para> | |
649 | <para>Possible values are:</para> | |
650 | <programlisting> | |
651 | typedef enum atscmh_sccc_code_mode { | |
652 | ATSCMH_SCCC_CODE_HLF = 0, | |
653 | ATSCMH_SCCC_CODE_QTR = 1, | |
654 | } atscmh_sccc_code_mode_t; | |
655 | </programlisting> | |
656 | </section> | |
657 | <section id="DTV-ATSCMH-SCCC-CODE-MODE-C"> | |
658 | <title><constant>DTV_ATSCMH_SCCC_CODE_MODE_C</constant></title> | |
659 | <para>Series Concatenated Convolutional Code Rate.</para> | |
660 | <para>Possible values are:</para> | |
661 | <programlisting> | |
662 | typedef enum atscmh_sccc_code_mode { | |
663 | ATSCMH_SCCC_CODE_HLF = 0, | |
664 | ATSCMH_SCCC_CODE_QTR = 1, | |
665 | } atscmh_sccc_code_mode_t; | |
666 | </programlisting> | |
667 | </section> | |
668 | <section id="DTV-ATSCMH-SCCC-CODE-MODE-D"> | |
669 | <title><constant>DTV_ATSCMH_SCCC_CODE_MODE_D</constant></title> | |
670 | <para>Series Concatenated Convolutional Code Rate.</para> | |
671 | <para>Possible values are:</para> | |
672 | <programlisting> | |
673 | typedef enum atscmh_sccc_code_mode { | |
674 | ATSCMH_SCCC_CODE_HLF = 0, | |
675 | ATSCMH_SCCC_CODE_QTR = 1, | |
676 | } atscmh_sccc_code_mode_t; | |
677 | </programlisting> | |
678 | </section> | |
17d8bb06 | 679 | </section> |
04a92077 MCC |
680 | <section id="DTV-API-VERSION"> |
681 | <title><constant>DTV_API_VERSION</constant></title> | |
682 | <para>Returns the major/minor version of the DVB API</para> | |
683 | </section> | |
684 | <section id="DTV-CODE-RATE-HP"> | |
685 | <title><constant>DTV_CODE_RATE_HP</constant></title> | |
686 | <para>Used on terrestrial transmissions. The acceptable values are: | |
687 | </para> | |
688 | <programlisting> | |
689 | typedef enum fe_code_rate { | |
690 | FEC_NONE = 0, | |
691 | FEC_1_2, | |
692 | FEC_2_3, | |
693 | FEC_3_4, | |
694 | FEC_4_5, | |
695 | FEC_5_6, | |
696 | FEC_6_7, | |
697 | FEC_7_8, | |
698 | FEC_8_9, | |
699 | FEC_AUTO, | |
700 | FEC_3_5, | |
701 | FEC_9_10, | |
702 | } fe_code_rate_t; | |
703 | </programlisting> | |
704 | </section> | |
705 | <section id="DTV-CODE-RATE-LP"> | |
706 | <title><constant>DTV_CODE_RATE_LP</constant></title> | |
707 | <para>Used on terrestrial transmissions. The acceptable values are: | |
708 | </para> | |
709 | <programlisting> | |
710 | typedef enum fe_code_rate { | |
711 | FEC_NONE = 0, | |
712 | FEC_1_2, | |
713 | FEC_2_3, | |
714 | FEC_3_4, | |
715 | FEC_4_5, | |
716 | FEC_5_6, | |
717 | FEC_6_7, | |
718 | FEC_7_8, | |
719 | FEC_8_9, | |
720 | FEC_AUTO, | |
721 | FEC_3_5, | |
722 | FEC_9_10, | |
723 | } fe_code_rate_t; | |
724 | </programlisting> | |
725 | </section> | |
17d8bb06 MCC |
726 | <section id="DTV-GUARD-INTERVAL"> |
727 | <title><constant>DTV_GUARD_INTERVAL</constant></title> | |
0ed08b49 | 728 | |
17d8bb06 | 729 | <para>Possible values are:</para> |
0ed08b49 | 730 | <programlisting> |
17d8bb06 MCC |
731 | typedef enum fe_guard_interval { |
732 | GUARD_INTERVAL_1_32, | |
733 | GUARD_INTERVAL_1_16, | |
734 | GUARD_INTERVAL_1_8, | |
735 | GUARD_INTERVAL_1_4, | |
736 | GUARD_INTERVAL_AUTO, | |
737 | GUARD_INTERVAL_1_128, | |
738 | GUARD_INTERVAL_19_128, | |
739 | GUARD_INTERVAL_19_256, | |
224b6642 AP |
740 | GUARD_INTERVAL_PN420, |
741 | GUARD_INTERVAL_PN595, | |
742 | GUARD_INTERVAL_PN945, | |
17d8bb06 | 743 | } fe_guard_interval_t; |
0ed08b49 MCC |
744 | </programlisting> |
745 | ||
17d8bb06 MCC |
746 | <para>Notes:</para> |
747 | <para>1) If <constant>DTV_GUARD_INTERVAL</constant> is set the <constant>GUARD_INTERVAL_AUTO</constant> the hardware will | |
748 | try to find the correct guard interval (if capable) and will use TMCC to fill | |
749 | in the missing parameters.</para> | |
750 | <para>2) Intervals 1/128, 19/128 and 19/256 are used only for DVB-T2 at present</para> | |
224b6642 | 751 | <para>3) DTMB specifies PN420, PN595 and PN945.</para> |
0ed08b49 | 752 | </section> |
95e61e01 | 753 | <section id="DTV-TRANSMISSION-MODE"> |
0ed08b49 MCC |
754 | <title><constant>DTV_TRANSMISSION_MODE</constant></title> |
755 | ||
756 | <para>Specifies the number of carriers used by the standard</para> | |
757 | ||
758 | <para>Possible values are:</para> | |
759 | <programlisting> | |
760 | typedef enum fe_transmit_mode { | |
761 | TRANSMISSION_MODE_2K, | |
762 | TRANSMISSION_MODE_8K, | |
763 | TRANSMISSION_MODE_AUTO, | |
cf75f9ba SK |
764 | TRANSMISSION_MODE_4K, |
765 | TRANSMISSION_MODE_1K, | |
766 | TRANSMISSION_MODE_16K, | |
767 | TRANSMISSION_MODE_32K, | |
224b6642 AP |
768 | TRANSMISSION_MODE_C1, |
769 | TRANSMISSION_MODE_C3780, | |
0ed08b49 MCC |
770 | } fe_transmit_mode_t; |
771 | </programlisting> | |
0ed08b49 MCC |
772 | <para>Notes:</para> |
773 | <para>1) ISDB-T supports three carrier/symbol-size: 8K, 4K, 2K. It is called | |
774 | 'mode' in the standard: Mode 1 is 2K, mode 2 is 4K, mode 3 is 8K</para> | |
775 | ||
776 | <para>2) If <constant>DTV_TRANSMISSION_MODE</constant> is set the <constant>TRANSMISSION_MODE_AUTO</constant> the | |
777 | hardware will try to find the correct FFT-size (if capable) and will | |
778 | use TMCC to fill in the missing parameters.</para> | |
cf75f9ba SK |
779 | <para>3) DVB-T specifies 2K and 8K as valid sizes.</para> |
780 | <para>4) DVB-T2 specifies 1K, 2K, 4K, 8K, 16K and 32K.</para> | |
224b6642 | 781 | <para>5) DTMB specifies C1 and C3780.</para> |
0ed08b49 | 782 | </section> |
17d8bb06 MCC |
783 | <section id="DTV-HIERARCHY"> |
784 | <title><constant>DTV_HIERARCHY</constant></title> | |
785 | <para>Frontend hierarchy</para> | |
786 | <programlisting> | |
787 | typedef enum fe_hierarchy { | |
788 | HIERARCHY_NONE, | |
789 | HIERARCHY_1, | |
790 | HIERARCHY_2, | |
791 | HIERARCHY_4, | |
792 | HIERARCHY_AUTO | |
793 | } fe_hierarchy_t; | |
794 | </programlisting> | |
0ed08b49 | 795 | </section> |
17d8bb06 MCC |
796 | <section id="DTV-ISDBS-TS-ID"> |
797 | <title><constant>DTV_ISDBS_TS_ID</constant></title> | |
798 | <para>Currently unused.</para> | |
453d63c6 | 799 | </section> |
17d8bb06 MCC |
800 | <section id="DTV-DVBT2-PLP-ID"> |
801 | <title><constant>DTV_DVBT2_PLP_ID</constant></title> | |
802 | <para>DVB-T2 supports Physical Layer Pipes (PLP) to allow transmission of | |
803 | many data types via a single multiplex. The API will soon support this | |
804 | at which point this section will be expanded.</para> | |
805 | </section> | |
510f0a0f | 806 | <section id="DTV-ENUM-DELSYS"> |
6c7ef547 MA |
807 | <title><constant>DTV_ENUM_DELSYS</constant></title> |
808 | <para>A Multi standard frontend needs to advertise the delivery systems provided. | |
809 | Applications need to enumerate the provided delivery systems, before using | |
810 | any other operation with the frontend. Prior to it's introduction, | |
811 | FE_GET_INFO was used to determine a frontend type. A frontend which | |
812 | provides more than a single delivery system, FE_GET_INFO doesn't help much. | |
813 | Applications which intends to use a multistandard frontend must enumerate | |
814 | the delivery systems associated with it, rather than trying to use | |
815 | FE_GET_INFO. In the case of a legacy frontend, the result is just the same | |
816 | as with FE_GET_INFO, but in a more structured format </para> | |
817 | </section> | |
224b6642 AP |
818 | <section id="DTV-INTERLEAVING"> |
819 | <title><constant>DTV_INTERLEAVING</constant></title> | |
820 | <para>Interleaving mode</para> | |
821 | <programlisting> | |
822 | enum fe_interleaving { | |
823 | INTERLEAVING_NONE, | |
824 | INTERLEAVING_240, | |
825 | INTERLEAVING_720, | |
826 | }; | |
827 | </programlisting> | |
828 | </section> | |
994e262e MCC |
829 | </section> |
830 | <section id="frontend-property-terrestrial-systems"> | |
831 | <title>Properties used on terrestrial delivery systems</title> | |
832 | <section id="dvbt-params"> | |
833 | <title>DVB-T delivery system</title> | |
834 | <para>The following parameters are valid for DVB-T:</para> | |
835 | <itemizedlist mark='opencircle'> | |
836 | <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem> | |
e7da0ae3 | 837 | <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem> |
994e262e MCC |
838 | <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem> |
839 | <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem> | |
840 | <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem> | |
841 | <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem> | |
842 | <listitem><para><link linkend="DTV-BANDWIDTH-HZ"><constant>DTV_BANDWIDTH_HZ</constant></link></para></listitem> | |
843 | <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem> | |
844 | <listitem><para><link linkend="DTV-CODE-RATE-HP"><constant>DTV_CODE_RATE_HP</constant></link></para></listitem> | |
845 | <listitem><para><link linkend="DTV-CODE-RATE-LP"><constant>DTV_CODE_RATE_LP</constant></link></para></listitem> | |
846 | <listitem><para><link linkend="DTV-GUARD-INTERVAL"><constant>DTV_GUARD_INTERVAL</constant></link></para></listitem> | |
847 | <listitem><para><link linkend="DTV-TRANSMISSION-MODE"><constant>DTV_TRANSMISSION_MODE</constant></link></para></listitem> | |
848 | <listitem><para><link linkend="DTV-HIERARCHY"><constant>DTV_HIERARCHY</constant></link></para></listitem> | |
994e262e MCC |
849 | </itemizedlist> |
850 | </section> | |
851 | <section id="dvbt2-params"> | |
852 | <title>DVB-T2 delivery system</title> | |
ff74b8ee MCC |
853 | <para>DVB-T2 support is currently in the early stages |
854 | of development, so expect that this section maygrow and become | |
994e262e MCC |
855 | more detailed with time.</para> |
856 | <para>The following parameters are valid for DVB-T2:</para> | |
857 | <itemizedlist mark='opencircle'> | |
858 | <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem> | |
e7da0ae3 | 859 | <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem> |
994e262e MCC |
860 | <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem> |
861 | <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem> | |
862 | <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem> | |
863 | <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem> | |
864 | <listitem><para><link linkend="DTV-BANDWIDTH-HZ"><constant>DTV_BANDWIDTH_HZ</constant></link></para></listitem> | |
865 | <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem> | |
866 | <listitem><para><link linkend="DTV-CODE-RATE-HP"><constant>DTV_CODE_RATE_HP</constant></link></para></listitem> | |
867 | <listitem><para><link linkend="DTV-CODE-RATE-LP"><constant>DTV_CODE_RATE_LP</constant></link></para></listitem> | |
868 | <listitem><para><link linkend="DTV-GUARD-INTERVAL"><constant>DTV_GUARD_INTERVAL</constant></link></para></listitem> | |
869 | <listitem><para><link linkend="DTV-TRANSMISSION-MODE"><constant>DTV_TRANSMISSION_MODE</constant></link></para></listitem> | |
870 | <listitem><para><link linkend="DTV-HIERARCHY"><constant>DTV_HIERARCHY</constant></link></para></listitem> | |
994e262e MCC |
871 | <listitem><para><link linkend="DTV-DVBT2-PLP-ID"><constant>DTV_DVBT2_PLP_ID</constant></link></para></listitem> |
872 | </itemizedlist> | |
873 | </section> | |
17d8bb06 | 874 | <section id="isdbt"> |
994e262e | 875 | <title>ISDB-T delivery system</title> |
17d8bb06 MCC |
876 | <para>This ISDB-T/ISDB-Tsb API extension should reflect all information |
877 | needed to tune any ISDB-T/ISDB-Tsb hardware. Of course it is possible | |
878 | that some very sophisticated devices won't need certain parameters to | |
879 | tune.</para> | |
880 | <para>The information given here should help application writers to know how | |
881 | to handle ISDB-T and ISDB-Tsb hardware using the Linux DVB-API.</para> | |
882 | <para>The details given here about ISDB-T and ISDB-Tsb are just enough to | |
883 | basically show the dependencies between the needed parameter values, | |
884 | but surely some information is left out. For more detailed information | |
885 | see the following documents:</para> | |
886 | <para>ARIB STD-B31 - "Transmission System for Digital Terrestrial | |
887 | Television Broadcasting" and</para> | |
888 | <para>ARIB TR-B14 - "Operational Guidelines for Digital Terrestrial | |
889 | Television Broadcasting".</para> | |
994e262e MCC |
890 | <para>In order to understand the ISDB specific parameters, |
891 | one has to have some knowledge the channel structure in | |
892 | ISDB-T and ISDB-Tsb. I.e. it has to be known to | |
893 | the reader that an ISDB-T channel consists of 13 segments, | |
894 | that it can have up to 3 layer sharing those segments, | |
895 | and things like that.</para> | |
896 | <para>The following parameters are valid for ISDB-T:</para> | |
897 | <itemizedlist mark='opencircle'> | |
898 | <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem> | |
e7da0ae3 | 899 | <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem> |
994e262e MCC |
900 | <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem> |
901 | <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem> | |
902 | <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem> | |
994e262e MCC |
903 | <listitem><para><link linkend="DTV-BANDWIDTH-HZ"><constant>DTV_BANDWIDTH_HZ</constant></link></para></listitem> |
904 | <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem> | |
994e262e MCC |
905 | <listitem><para><link linkend="DTV-GUARD-INTERVAL"><constant>DTV_GUARD_INTERVAL</constant></link></para></listitem> |
906 | <listitem><para><link linkend="DTV-TRANSMISSION-MODE"><constant>DTV_TRANSMISSION_MODE</constant></link></para></listitem> | |
994e262e MCC |
907 | <listitem><para><link linkend="DTV-ISDBT-LAYER-ENABLED"><constant>DTV_ISDBT_LAYER_ENABLED</constant></link></para></listitem> |
908 | <listitem><para><link linkend="DTV-ISDBT-PARTIAL-RECEPTION"><constant>DTV_ISDBT_PARTIAL_RECEPTION</constant></link></para></listitem> | |
909 | <listitem><para><link linkend="DTV-ISDBT-SOUND-BROADCASTING"><constant>DTV_ISDBT_SOUND_BROADCASTING</constant></link></para></listitem> | |
910 | <listitem><para><link linkend="DTV-ISDBT-SB-SUBCHANNEL-ID"><constant>DTV_ISDBT_SB_SUBCHANNEL_ID</constant></link></para></listitem> | |
911 | <listitem><para><link linkend="DTV-ISDBT-SB-SEGMENT-IDX"><constant>DTV_ISDBT_SB_SEGMENT_IDX</constant></link></para></listitem> | |
912 | <listitem><para><link linkend="DTV-ISDBT-SB-SEGMENT-COUNT"><constant>DTV_ISDBT_SB_SEGMENT_COUNT</constant></link></para></listitem> | |
913 | <listitem><para><link linkend="DTV-ISDBT-LAYER-FEC"><constant>DTV_ISDBT_LAYERA_FEC</constant></link></para></listitem> | |
914 | <listitem><para><link linkend="DTV-ISDBT-LAYER-MODULATION"><constant>DTV_ISDBT_LAYERA_MODULATION</constant></link></para></listitem> | |
915 | <listitem><para><link linkend="DTV-ISDBT-LAYER-SEGMENT-COUNT"><constant>DTV_ISDBT_LAYERA_SEGMENT_COUNT</constant></link></para></listitem> | |
916 | <listitem><para><link linkend="DTV-ISDBT-LAYER-TIME-INTERLEAVING"><constant>DTV_ISDBT_LAYERA_TIME_INTERLEAVING</constant></link></para></listitem> | |
917 | <listitem><para><link linkend="DTV-ISDBT-LAYER-FEC"><constant>DTV_ISDBT_LAYERB_FEC</constant></link></para></listitem> | |
918 | <listitem><para><link linkend="DTV-ISDBT-LAYER-MODULATION"><constant>DTV_ISDBT_LAYERB_MODULATION</constant></link></para></listitem> | |
919 | <listitem><para><link linkend="DTV-ISDBT-LAYER-SEGMENT-COUNT"><constant>DTV_ISDBT_LAYERB_SEGMENT_COUNT</constant></link></para></listitem> | |
920 | <listitem><para><link linkend="DTV-ISDBT-LAYER-TIME-INTERLEAVING"><constant>DTV_ISDBT_LAYERB_TIME_INTERLEAVING</constant></link></para></listitem> | |
921 | <listitem><para><link linkend="DTV-ISDBT-LAYER-FEC"><constant>DTV_ISDBT_LAYERC_FEC</constant></link></para></listitem> | |
922 | <listitem><para><link linkend="DTV-ISDBT-LAYER-MODULATION"><constant>DTV_ISDBT_LAYERC_MODULATION</constant></link></para></listitem> | |
923 | <listitem><para><link linkend="DTV-ISDBT-LAYER-SEGMENT-COUNT"><constant>DTV_ISDBT_LAYERC_SEGMENT_COUNT</constant></link></para></listitem> | |
924 | <listitem><para><link linkend="DTV-ISDBT-LAYER-TIME-INTERLEAVING"><constant>DTV_ISDBT_LAYERC_TIME_INTERLEAVING</constant></link></para></listitem> | |
925 | </itemizedlist> | |
cf75f9ba | 926 | </section> |
76f9a69a MCC |
927 | <section id="atsc-params"> |
928 | <title>ATSC delivery system</title> | |
929 | <para>The following parameters are valid for ATSC:</para> | |
930 | <itemizedlist mark='opencircle'> | |
931 | <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem> | |
932 | <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem> | |
933 | <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem> | |
934 | <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem> | |
935 | <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem> | |
936 | <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem> | |
937 | <listitem><para><link linkend="DTV-BANDWIDTH-HZ"><constant>DTV_BANDWIDTH_HZ</constant></link></para></listitem> | |
938 | </itemizedlist> | |
939 | </section> | |
edaa136d MK |
940 | <section id="atscmh-params"> |
941 | <title>ATSC-MH delivery system</title> | |
942 | <para>The following parameters are valid for ATSC-MH:</para> | |
943 | <itemizedlist mark='opencircle'> | |
944 | <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem> | |
945 | <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem> | |
946 | <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem> | |
947 | <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem> | |
948 | <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem> | |
949 | <listitem><para><link linkend="DTV-BANDWIDTH-HZ"><constant>DTV_BANDWIDTH_HZ</constant></link></para></listitem> | |
950 | <listitem><para><link linkend="DTV-ATSCMH-FIC-VER"><constant>DTV_ATSCMH_FIC_VER</constant></link></para></listitem> | |
951 | <listitem><para><link linkend="DTV-ATSCMH-PARADE-ID"><constant>DTV_ATSCMH_PARADE_ID</constant></link></para></listitem> | |
952 | <listitem><para><link linkend="DTV-ATSCMH-NOG"><constant>DTV_ATSCMH_NOG</constant></link></para></listitem> | |
953 | <listitem><para><link linkend="DTV-ATSCMH-TNOG"><constant>DTV_ATSCMH_TNOG</constant></link></para></listitem> | |
954 | <listitem><para><link linkend="DTV-ATSCMH-SGN"><constant>DTV_ATSCMH_SGN</constant></link></para></listitem> | |
955 | <listitem><para><link linkend="DTV-ATSCMH-PRC"><constant>DTV_ATSCMH_PRC</constant></link></para></listitem> | |
956 | <listitem><para><link linkend="DTV-ATSCMH-RS-FRAME-MODE"><constant>DTV_ATSCMH_RS_FRAME_MODE</constant></link></para></listitem> | |
957 | <listitem><para><link linkend="DTV-ATSCMH-RS-FRAME-ENSEMBLE"><constant>DTV_ATSCMH_RS_FRAME_ENSEMBLE</constant></link></para></listitem> | |
510f0a0f HV |
958 | <listitem><para><link linkend="DTV-ATSCMH-RS-CODE-MODE-PRI"><constant>DTV_ATSCMH_RS_CODE_MODE_PRI</constant></link></para></listitem> |
959 | <listitem><para><link linkend="DTV-ATSCMH-RS-CODE-MODE-SEC"><constant>DTV_ATSCMH_RS_CODE_MODE_SEC</constant></link></para></listitem> | |
edaa136d | 960 | <listitem><para><link linkend="DTV-ATSCMH-SCCC-BLOCK-MODE"><constant>DTV_ATSCMH_SCCC_BLOCK_MODE</constant></link></para></listitem> |
510f0a0f HV |
961 | <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE-MODE-A"><constant>DTV_ATSCMH_SCCC_CODE_MODE_A</constant></link></para></listitem> |
962 | <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE-MODE-B"><constant>DTV_ATSCMH_SCCC_CODE_MODE_B</constant></link></para></listitem> | |
963 | <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE-MODE-C"><constant>DTV_ATSCMH_SCCC_CODE_MODE_C</constant></link></para></listitem> | |
964 | <listitem><para><link linkend="DTV-ATSCMH-SCCC-CODE-MODE-D"><constant>DTV_ATSCMH_SCCC_CODE_MODE_D</constant></link></para></listitem> | |
edaa136d MK |
965 | </itemizedlist> |
966 | </section> | |
224b6642 AP |
967 | <section id="dtmb-params"> |
968 | <title>DTMB delivery system</title> | |
969 | <para>The following parameters are valid for DTMB:</para> | |
970 | <itemizedlist mark='opencircle'> | |
971 | <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem> | |
972 | <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem> | |
973 | <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem> | |
974 | <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem> | |
975 | <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem> | |
976 | <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem> | |
977 | <listitem><para><link linkend="DTV-BANDWIDTH-HZ"><constant>DTV_BANDWIDTH_HZ</constant></link></para></listitem> | |
978 | <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem> | |
979 | <listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem> | |
980 | <listitem><para><link linkend="DTV-GUARD-INTERVAL"><constant>DTV_GUARD_INTERVAL</constant></link></para></listitem> | |
981 | <listitem><para><link linkend="DTV-TRANSMISSION-MODE"><constant>DTV_TRANSMISSION_MODE</constant></link></para></listitem> | |
982 | <listitem><para><link linkend="DTV-INTERLEAVING"><constant>DTV_INTERLEAVING</constant></link></para></listitem> | |
983 | </itemizedlist> | |
984 | </section> | |
cf75f9ba | 985 | </section> |
994e262e | 986 | <section id="frontend-property-cable-systems"> |
ff74b8ee | 987 | <title>Properties used on cable delivery systems</title> |
e7da0ae3 MCC |
988 | <section id="dvbc-params"> |
989 | <title>DVB-C delivery system</title> | |
669a4ba4 MCC |
990 | <para>The DVB-C Annex-A is the widely used cable standard. Transmission uses QAM modulation.</para> |
991 | <para>The DVB-C Annex-C is optimized for 6MHz, and is used in Japan. It supports a subset of the Annex A modulation types, and a roll-off of 0.13, instead of 0.15</para> | |
e7da0ae3 MCC |
992 | <para>The following parameters are valid for DVB-C Annex A/C:</para> |
993 | <itemizedlist mark='opencircle'> | |
994 | <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem> | |
995 | <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem> | |
996 | <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem> | |
997 | <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem> | |
998 | <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem> | |
999 | <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem> | |
1000 | <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem> | |
1001 | <listitem><para><link linkend="DTV-SYMBOL-RATE"><constant>DTV_SYMBOL_RATE</constant></link></para></listitem> | |
1002 | <listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem> | |
1003 | </itemizedlist> | |
1004 | </section> | |
1005 | <section id="dvbc-annex-b-params"> | |
1006 | <title>DVB-C Annex B delivery system</title> | |
1007 | <para>The DVB-C Annex-B is only used on a few Countries like the United States.</para> | |
1008 | <para>The following parameters are valid for DVB-C Annex B:</para> | |
1009 | <itemizedlist mark='opencircle'> | |
1010 | <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem> | |
1011 | <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem> | |
1012 | <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem> | |
1013 | <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem> | |
1014 | <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem> | |
1015 | <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem> | |
1016 | <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem> | |
e7da0ae3 MCC |
1017 | </itemizedlist> |
1018 | </section> | |
994e262e MCC |
1019 | </section> |
1020 | <section id="frontend-property-satellital-systems"> | |
1021 | <title>Properties used on satellital delivery systems</title> | |
ff74b8ee MCC |
1022 | <section id="dvbs-params"> |
1023 | <title>DVB-S delivery system</title> | |
1024 | <para>The following parameters are valid for DVB-S:</para> | |
1025 | <itemizedlist mark='opencircle'> | |
1026 | <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem> | |
1027 | <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem> | |
1028 | <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem> | |
1029 | <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem> | |
1030 | <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem> | |
1031 | <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem> | |
1032 | <listitem><para><link linkend="DTV-SYMBOL-RATE"><constant>DTV_SYMBOL_RATE</constant></link></para></listitem> | |
1033 | <listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem> | |
7fc9da2a AO |
1034 | <listitem><para><link linkend="DTV-VOLTAGE"><constant>DTV_VOLTAGE</constant></link></para></listitem> |
1035 | <listitem><para><link linkend="DTV-TONE"><constant>DTV_TONE</constant></link></para></listitem> | |
ff74b8ee MCC |
1036 | </itemizedlist> |
1037 | <para>Future implementations might add those two missing parameters:</para> | |
1038 | <itemizedlist mark='opencircle'> | |
1039 | <listitem><para><link linkend="DTV-DISEQC-MASTER"><constant>DTV_DISEQC_MASTER</constant></link></para></listitem> | |
1040 | <listitem><para><link linkend="DTV-DISEQC-SLAVE-REPLY"><constant>DTV_DISEQC_SLAVE_REPLY</constant></link></para></listitem> | |
1041 | </itemizedlist> | |
1042 | </section> | |
1043 | <section id="dvbs2-params"> | |
1044 | <title>DVB-S2 delivery system</title> | |
7fc9da2a | 1045 | <para>In addition to all parameters valid for DVB-S, DVB-S2 supports the following parameters:</para> |
ff74b8ee | 1046 | <itemizedlist mark='opencircle'> |
7fc9da2a | 1047 | <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem> |
ff74b8ee MCC |
1048 | <listitem><para><link linkend="DTV-PILOT"><constant>DTV_PILOT</constant></link></para></listitem> |
1049 | <listitem><para><link linkend="DTV-ROLLOFF"><constant>DTV_ROLLOFF</constant></link></para></listitem> | |
1050 | </itemizedlist> | |
7fc9da2a AO |
1051 | </section> |
1052 | <section id="turbo-params"> | |
1053 | <title>Turbo code delivery system</title> | |
1054 | <para>In addition to all parameters valid for DVB-S, turbo code supports the following parameters:</para> | |
ff74b8ee | 1055 | <itemizedlist mark='opencircle'> |
7fc9da2a | 1056 | <listitem><para><link linkend="DTV-MODULATION"><constant>DTV_MODULATION</constant></link></para></listitem> |
ff74b8ee MCC |
1057 | </itemizedlist> |
1058 | </section> | |
1059 | <section id="isdbs-params"> | |
1060 | <title>ISDB-S delivery system</title> | |
1061 | <para>The following parameters are valid for ISDB-S:</para> | |
1062 | <itemizedlist mark='opencircle'> | |
1063 | <listitem><para><link linkend="DTV-API-VERSION"><constant>DTV_API_VERSION</constant></link></para></listitem> | |
1064 | <listitem><para><link linkend="DTV-DELIVERY-SYSTEM"><constant>DTV_DELIVERY_SYSTEM</constant></link></para></listitem> | |
1065 | <listitem><para><link linkend="DTV-TUNE"><constant>DTV_TUNE</constant></link></para></listitem> | |
1066 | <listitem><para><link linkend="DTV-CLEAR"><constant>DTV_CLEAR</constant></link></para></listitem> | |
1067 | <listitem><para><link linkend="DTV-FREQUENCY"><constant>DTV_FREQUENCY</constant></link></para></listitem> | |
1068 | <listitem><para><link linkend="DTV-INVERSION"><constant>DTV_INVERSION</constant></link></para></listitem> | |
1069 | <listitem><para><link linkend="DTV-SYMBOL-RATE"><constant>DTV_SYMBOL_RATE</constant></link></para></listitem> | |
1070 | <listitem><para><link linkend="DTV-INNER-FEC"><constant>DTV_INNER_FEC</constant></link></para></listitem> | |
1071 | <listitem><para><link linkend="DTV-VOLTAGE"><constant>DTV_VOLTAGE</constant></link></para></listitem> | |
1072 | <listitem><para><link linkend="DTV-ISDBS-TS-ID"><constant>DTV_ISDBS_TS_ID</constant></link></para></listitem> | |
1073 | </itemizedlist> | |
1074 | </section> | |
994e262e | 1075 | </section> |
131db3a1 | 1076 | </section> |