| Mauro Carvalho Chehab | 0ed08b4 | 2011-05-06 12:32:03 -0300 | [diff] [blame] | 1 | <section id="FE_GET_SET_PROPERTY"> |
| Mauro Carvalho Chehab | 131db3a | 2009-10-24 21:18:46 -0300 | [diff] [blame] | 2 | <title>FE_GET_PROPERTY/FE_SET_PROPERTY</title> |
| 3 | |
| Mauro Carvalho Chehab | 0ed08b4 | 2011-05-06 12:32:03 -0300 | [diff] [blame] | 4 | <programlisting> |
| 5 | /* Reserved fields should be set to 0 */ |
| 6 | struct dtv_property { |
| 7 | __u32 cmd; |
| 8 | union { |
| 9 | __u32 data; |
| 10 | struct { |
| 11 | __u8 data[32]; |
| 12 | __u32 len; |
| 13 | __u32 reserved1[3]; |
| 14 | void *reserved2; |
| 15 | } buffer; |
| 16 | } u; |
| 17 | int result; |
| 18 | } __attribute__ ((packed)); |
| 19 | |
| 20 | /* num of properties cannot exceed DTV_IOCTL_MAX_MSGS per ioctl */ |
| 21 | #define DTV_IOCTL_MAX_MSGS 64 |
| 22 | |
| 23 | struct dtv_properties { |
| 24 | __u32 num; |
| 25 | struct dtv_property *props; |
| 26 | }; |
| 27 | </programlisting> |
| 28 | |
| 29 | <section id="FE_GET_PROPERTY"> |
| 30 | <title>FE_GET_PROPERTY</title> |
| 31 | <para>DESCRIPTION |
| 32 | </para> |
| 33 | <informaltable><tgroup cols="1"><tbody><row><entry |
| 34 | align="char"> |
| 35 | <para>This ioctl call returns one or more frontend properties. This call only |
| 36 | requires read-only access to the device.</para> |
| 37 | </entry> |
| 38 | </row></tbody></tgroup></informaltable> |
| 39 | <para>SYNOPSIS |
| 40 | </para> |
| 41 | <informaltable><tgroup cols="1"><tbody><row><entry |
| 42 | align="char"> |
| 43 | <para>int ioctl(int fd, int request = <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY</link>, |
| 44 | dtv_properties ⋆props);</para> |
| 45 | </entry> |
| 46 | </row></tbody></tgroup></informaltable> |
| 47 | <para>PARAMETERS |
| 48 | </para> |
| 49 | <informaltable><tgroup cols="2"><tbody><row><entry align="char"> |
| 50 | <para>int fd</para> |
| 51 | </entry><entry |
| 52 | align="char"> |
| 53 | <para>File descriptor returned by a previous call to open().</para> |
| 54 | </entry> |
| 55 | </row><row><entry |
| 56 | align="char"> |
| 57 | <para>int num</para> |
| 58 | </entry><entry |
| 59 | align="char"> |
| 60 | <para>Equals <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY</link> for this command.</para> |
| 61 | </entry> |
| 62 | </row><row><entry |
| 63 | align="char"> |
| 64 | <para>struct dtv_property *props</para> |
| 65 | </entry><entry |
| 66 | align="char"> |
| 67 | <para>Points to the location where the front-end property commands are stored.</para> |
| 68 | </entry> |
| 69 | </row></tbody></tgroup></informaltable> |
| 70 | <para>ERRORS</para> |
| 71 | <informaltable><tgroup cols="2"><tbody><row> |
| 72 | <entry align="char"><para>EINVAL</para></entry> |
| 73 | <entry align="char"><para>Invalid parameter(s) received or number of parameters out of the range.</para></entry> |
| 74 | </row><row> |
| 75 | <entry align="char"><para>ENOMEM</para></entry> |
| 76 | <entry align="char"><para>Out of memory.</para></entry> |
| 77 | </row><row> |
| 78 | <entry align="char"><para>EFAULT</para></entry> |
| 79 | <entry align="char"><para>Failure while copying data from/to userspace.</para></entry> |
| 80 | </row><row> |
| 81 | <entry align="char"><para>EOPNOTSUPP</para></entry> |
| 82 | <entry align="char"><para>Property type not supported.</para></entry> |
| 83 | </row></tbody></tgroup></informaltable> |
| 84 | </section> |
| 85 | |
| 86 | <section id="FE_SET_PROPERTY"> |
| 87 | <title>FE_SET_PROPERTY</title> |
| 88 | <para>DESCRIPTION |
| 89 | </para> |
| 90 | <informaltable><tgroup cols="1"><tbody><row><entry |
| 91 | align="char"> |
| 92 | <para>This ioctl call sets one or more frontend properties. This call only |
| 93 | requires read-only access to the device.</para> |
| 94 | </entry> |
| 95 | </row></tbody></tgroup></informaltable> |
| 96 | <para>SYNOPSIS |
| 97 | </para> |
| 98 | <informaltable><tgroup cols="1"><tbody><row><entry |
| 99 | align="char"> |
| 100 | <para>int ioctl(int fd, int request = <link linkend="FE_SET_PROPERTY">FE_SET_PROPERTY</link>, |
| 101 | dtv_properties ⋆props);</para> |
| 102 | </entry> |
| 103 | </row></tbody></tgroup></informaltable> |
| 104 | <para>PARAMETERS |
| 105 | </para> |
| 106 | <informaltable><tgroup cols="2"><tbody><row><entry align="char"> |
| 107 | <para>int fd</para> |
| 108 | </entry><entry |
| 109 | align="char"> |
| 110 | <para>File descriptor returned by a previous call to open().</para> |
| 111 | </entry> |
| 112 | </row><row><entry |
| 113 | align="char"> |
| 114 | <para>int num</para> |
| 115 | </entry><entry |
| 116 | align="char"> |
| 117 | <para>Equals <link linkend="FE_SET_PROPERTY">FE_SET_PROPERTY</link> for this command.</para> |
| 118 | </entry> |
| 119 | </row><row><entry |
| 120 | align="char"> |
| 121 | <para>struct dtv_property *props</para> |
| 122 | </entry><entry |
| 123 | align="char"> |
| 124 | <para>Points to the location where the front-end property commands are stored.</para> |
| 125 | </entry> |
| 126 | </row></tbody></tgroup></informaltable> |
| 127 | <para>ERRORS |
| 128 | </para> |
| 129 | <informaltable><tgroup cols="2"><tbody><row> |
| 130 | <entry align="char"><para>EINVAL</para></entry> |
| 131 | <entry align="char"><para>Invalid parameter(s) received or number of parameters out of the range.</para></entry> |
| 132 | </row><row> |
| 133 | <entry align="char"><para>ENOMEM</para></entry> |
| 134 | <entry align="char"><para>Out of memory.</para></entry> |
| 135 | </row><row> |
| 136 | <entry align="char"><para>EFAULT</para></entry> |
| 137 | <entry align="char"><para>Failure while copying data from/to userspace.</para></entry> |
| 138 | </row><row> |
| 139 | <entry align="char"><para>EOPNOTSUPP</para></entry> |
| 140 | <entry align="char"><para>Property type not supported.</para></entry> |
| 141 | </row></tbody></tgroup></informaltable> |
| 142 | </section> |
| 143 | |
| Hans Verkuil | 5f1e158 | 2011-05-23 07:12:27 -0300 | [diff] [blame] | 144 | <section> |
| 145 | <title>Property types</title> |
| Mauro Carvalho Chehab | 0ed08b4 | 2011-05-06 12:32:03 -0300 | [diff] [blame] | 146 | <para> |
| 147 | On <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY</link>/<link linkend="FE_SET_PROPERTY">FE_SET_PROPERTY</link>, |
| 148 | the actual action is determined by the dtv_property cmd/data pairs. With one single ioctl, is possible to |
| 149 | get/set up to 64 properties. The actual meaning of each property is described on the next sections. |
| 150 | </para> |
| 151 | |
| Hans Verkuil | 5f1e158 | 2011-05-23 07:12:27 -0300 | [diff] [blame] | 152 | <para>The available frontend property types are:</para> |
| Mauro Carvalho Chehab | 0ed08b4 | 2011-05-06 12:32:03 -0300 | [diff] [blame] | 153 | <programlisting> |
| 154 | #define DTV_UNDEFINED 0 |
| 155 | #define DTV_TUNE 1 |
| 156 | #define DTV_CLEAR 2 |
| 157 | #define DTV_FREQUENCY 3 |
| 158 | #define DTV_MODULATION 4 |
| 159 | #define DTV_BANDWIDTH_HZ 5 |
| 160 | #define DTV_INVERSION 6 |
| 161 | #define DTV_DISEQC_MASTER 7 |
| 162 | #define DTV_SYMBOL_RATE 8 |
| 163 | #define DTV_INNER_FEC 9 |
| 164 | #define DTV_VOLTAGE 10 |
| 165 | #define DTV_TONE 11 |
| 166 | #define DTV_PILOT 12 |
| 167 | #define DTV_ROLLOFF 13 |
| 168 | #define DTV_DISEQC_SLAVE_REPLY 14 |
| 169 | #define DTV_FE_CAPABILITY_COUNT 15 |
| 170 | #define DTV_FE_CAPABILITY 16 |
| 171 | #define DTV_DELIVERY_SYSTEM 17 |
| 172 | #define DTV_ISDBT_PARTIAL_RECEPTION 18 |
| 173 | #define DTV_ISDBT_SOUND_BROADCASTING 19 |
| 174 | #define DTV_ISDBT_SB_SUBCHANNEL_ID 20 |
| 175 | #define DTV_ISDBT_SB_SEGMENT_IDX 21 |
| 176 | #define DTV_ISDBT_SB_SEGMENT_COUNT 22 |
| 177 | #define DTV_ISDBT_LAYERA_FEC 23 |
| 178 | #define DTV_ISDBT_LAYERA_MODULATION 24 |
| 179 | #define DTV_ISDBT_LAYERA_SEGMENT_COUNT 25 |
| 180 | #define DTV_ISDBT_LAYERA_TIME_INTERLEAVING 26 |
| 181 | #define DTV_ISDBT_LAYERB_FEC 27 |
| 182 | #define DTV_ISDBT_LAYERB_MODULATION 28 |
| 183 | #define DTV_ISDBT_LAYERB_SEGMENT_COUNT 29 |
| 184 | #define DTV_ISDBT_LAYERB_TIME_INTERLEAVING 30 |
| 185 | #define DTV_ISDBT_LAYERC_FEC 31 |
| 186 | #define DTV_ISDBT_LAYERC_MODULATION 32 |
| 187 | #define DTV_ISDBT_LAYERC_SEGMENT_COUNT 33 |
| 188 | #define DTV_ISDBT_LAYERC_TIME_INTERLEAVING 34 |
| 189 | #define DTV_API_VERSION 35 |
| 190 | #define DTV_CODE_RATE_HP 36 |
| 191 | #define DTV_CODE_RATE_LP 37 |
| 192 | #define DTV_GUARD_INTERVAL 38 |
| 193 | #define DTV_TRANSMISSION_MODE 39 |
| 194 | #define DTV_HIERARCHY 40 |
| 195 | #define DTV_ISDBT_LAYER_ENABLED 41 |
| 196 | #define DTV_ISDBS_TS_ID 42 |
| 197 | </programlisting> |
| Hans Verkuil | 5f1e158 | 2011-05-23 07:12:27 -0300 | [diff] [blame] | 198 | </section> |
| Mauro Carvalho Chehab | 0ed08b4 | 2011-05-06 12:32:03 -0300 | [diff] [blame] | 199 | |
| 200 | <section id="fe_property_common"> |
| 201 | <title>Parameters that are common to all Digital TV standards</title> |
| 202 | <section id="DTV_FREQUENCY"> |
| 203 | <title><constant>DTV_FREQUENCY</constant></title> |
| 204 | |
| 205 | <para>Central frequency of the channel, in HZ.</para> |
| 206 | |
| 207 | <para>Notes:</para> |
| 208 | <para>1)For ISDB-T, the channels are usually transmitted with an offset of 143kHz. |
| 209 | E.g. a valid frequncy could be 474143 kHz. The stepping is bound to the bandwidth of |
| 210 | the channel which is 6MHz.</para> |
| 211 | |
| 212 | <para>2)As in ISDB-Tsb the channel consists of only one or three segments the |
| 213 | frequency step is 429kHz, 3*429 respectively. As for ISDB-T the |
| 214 | central frequency of the channel is expected.</para> |
| 215 | </section> |
| 216 | |
| 217 | <section id="DTV_BANDWIDTH_HZ"> |
| 218 | <title><constant>DTV_BANDWIDTH_HZ</constant></title> |
| 219 | |
| 220 | <para>Bandwidth for the channel, in HZ.</para> |
| 221 | |
| 222 | <para>Possible values: |
| Steve Kerrison | cf75f9b | 2011-05-08 16:17:20 -0300 | [diff] [blame] | 223 | <constant>1712000</constant>, |
| 224 | <constant>5000000</constant>, |
| Mauro Carvalho Chehab | 0ed08b4 | 2011-05-06 12:32:03 -0300 | [diff] [blame] | 225 | <constant>6000000</constant>, |
| 226 | <constant>7000000</constant>, |
| Steve Kerrison | cf75f9b | 2011-05-08 16:17:20 -0300 | [diff] [blame] | 227 | <constant>8000000</constant>, |
| 228 | <constant>10000000</constant>. |
| Mauro Carvalho Chehab | 0ed08b4 | 2011-05-06 12:32:03 -0300 | [diff] [blame] | 229 | </para> |
| 230 | |
| 231 | <para>Notes:</para> |
| 232 | |
| 233 | <para>1) For ISDB-T it should be always 6000000Hz (6MHz)</para> |
| 234 | <para>2) For ISDB-Tsb it can vary depending on the number of connected segments</para> |
| 235 | <para>3) Bandwidth doesn't apply for DVB-C transmissions, as the bandwidth |
| 236 | for DVB-C depends on the symbol rate</para> |
| 237 | <para>4) Bandwidth in ISDB-T is fixed (6MHz) or can be easily derived from |
| 238 | other parameters (DTV_ISDBT_SB_SEGMENT_IDX, |
| 239 | DTV_ISDBT_SB_SEGMENT_COUNT).</para> |
| Steve Kerrison | cf75f9b | 2011-05-08 16:17:20 -0300 | [diff] [blame] | 240 | <para>5) DVB-T supports 6, 7 and 8MHz.</para> |
| 241 | <para>6) In addition, DVB-T2 supports 1.172, 5 and 10MHz.</para> |
| Mauro Carvalho Chehab | 0ed08b4 | 2011-05-06 12:32:03 -0300 | [diff] [blame] | 242 | </section> |
| 243 | |
| 244 | <section id="DTV_DELIVERY_SYSTEM"> |
| 245 | <title><constant>DTV_DELIVERY_SYSTEM</constant></title> |
| 246 | |
| 247 | <para>Specifies the type of Delivery system</para> |
| 248 | |
| 249 | <para>Possible values: </para> |
| 250 | <programlisting> |
| 251 | typedef enum fe_delivery_system { |
| 252 | SYS_UNDEFINED, |
| 253 | SYS_DVBC_ANNEX_AC, |
| 254 | SYS_DVBC_ANNEX_B, |
| 255 | SYS_DVBT, |
| 256 | SYS_DSS, |
| 257 | SYS_DVBS, |
| 258 | SYS_DVBS2, |
| 259 | SYS_DVBH, |
| 260 | SYS_ISDBT, |
| 261 | SYS_ISDBS, |
| 262 | SYS_ISDBC, |
| 263 | SYS_ATSC, |
| 264 | SYS_ATSCMH, |
| 265 | SYS_DMBTH, |
| 266 | SYS_CMMB, |
| 267 | SYS_DAB, |
| Steve Kerrison | cf75f9b | 2011-05-08 16:17:20 -0300 | [diff] [blame] | 268 | SYS_DVBT2, |
| Mauro Carvalho Chehab | 0ed08b4 | 2011-05-06 12:32:03 -0300 | [diff] [blame] | 269 | } fe_delivery_system_t; |
| 270 | </programlisting> |
| 271 | |
| 272 | </section> |
| 273 | |
| 274 | <section id="DTV_TRANSMISSION_MODE"> |
| 275 | <title><constant>DTV_TRANSMISSION_MODE</constant></title> |
| 276 | |
| 277 | <para>Specifies the number of carriers used by the standard</para> |
| 278 | |
| 279 | <para>Possible values are:</para> |
| 280 | <programlisting> |
| 281 | typedef enum fe_transmit_mode { |
| 282 | TRANSMISSION_MODE_2K, |
| 283 | TRANSMISSION_MODE_8K, |
| 284 | TRANSMISSION_MODE_AUTO, |
| Steve Kerrison | cf75f9b | 2011-05-08 16:17:20 -0300 | [diff] [blame] | 285 | TRANSMISSION_MODE_4K, |
| 286 | TRANSMISSION_MODE_1K, |
| 287 | TRANSMISSION_MODE_16K, |
| 288 | TRANSMISSION_MODE_32K, |
| Mauro Carvalho Chehab | 0ed08b4 | 2011-05-06 12:32:03 -0300 | [diff] [blame] | 289 | } fe_transmit_mode_t; |
| 290 | </programlisting> |
| 291 | |
| 292 | <para>Notes:</para> |
| 293 | <para>1) ISDB-T supports three carrier/symbol-size: 8K, 4K, 2K. It is called |
| 294 | 'mode' in the standard: Mode 1 is 2K, mode 2 is 4K, mode 3 is 8K</para> |
| 295 | |
| 296 | <para>2) If <constant>DTV_TRANSMISSION_MODE</constant> is set the <constant>TRANSMISSION_MODE_AUTO</constant> the |
| 297 | hardware will try to find the correct FFT-size (if capable) and will |
| 298 | use TMCC to fill in the missing parameters.</para> |
| Steve Kerrison | cf75f9b | 2011-05-08 16:17:20 -0300 | [diff] [blame] | 299 | <para>3) DVB-T specifies 2K and 8K as valid sizes.</para> |
| 300 | <para>4) DVB-T2 specifies 1K, 2K, 4K, 8K, 16K and 32K.</para> |
| Mauro Carvalho Chehab | 0ed08b4 | 2011-05-06 12:32:03 -0300 | [diff] [blame] | 301 | </section> |
| 302 | |
| 303 | <section id="DTV_GUARD_INTERVAL"> |
| 304 | <title><constant>DTV_GUARD_INTERVAL</constant></title> |
| 305 | |
| 306 | <para>Possible values are:</para> |
| 307 | <programlisting> |
| 308 | typedef enum fe_guard_interval { |
| 309 | GUARD_INTERVAL_1_32, |
| 310 | GUARD_INTERVAL_1_16, |
| 311 | GUARD_INTERVAL_1_8, |
| 312 | GUARD_INTERVAL_1_4, |
| Steve Kerrison | cf75f9b | 2011-05-08 16:17:20 -0300 | [diff] [blame] | 313 | GUARD_INTERVAL_AUTO, |
| 314 | GUARD_INTERVAL_1_128, |
| 315 | GUARD_INTERVAL_19_128, |
| 316 | GUARD_INTERVAL_19_256, |
| Mauro Carvalho Chehab | 0ed08b4 | 2011-05-06 12:32:03 -0300 | [diff] [blame] | 317 | } fe_guard_interval_t; |
| 318 | </programlisting> |
| 319 | |
| 320 | <para>Notes:</para> |
| 321 | <para>1) If <constant>DTV_GUARD_INTERVAL</constant> is set the <constant>GUARD_INTERVAL_AUTO</constant> the hardware will |
| 322 | try to find the correct guard interval (if capable) and will use TMCC to fill |
| 323 | in the missing parameters.</para> |
| Steve Kerrison | cf75f9b | 2011-05-08 16:17:20 -0300 | [diff] [blame] | 324 | <para>2) Intervals 1/128, 19/128 and 19/256 are used only for DVB-T2 at present</para> |
| Mauro Carvalho Chehab | 0ed08b4 | 2011-05-06 12:32:03 -0300 | [diff] [blame] | 325 | </section> |
| 326 | </section> |
| 327 | |
| Mauro Carvalho Chehab | 453d63c | 2009-09-16 23:22:05 -0300 | [diff] [blame] | 328 | <section id="isdbt"> |
| 329 | <title>ISDB-T frontend</title> |
| 330 | <para>This section describes shortly what are the possible parameters in the Linux |
| 331 | DVB-API called "S2API" and now DVB API 5 in order to tune an ISDB-T/ISDB-Tsb |
| 332 | demodulator:</para> |
| 333 | |
| 334 | <para>This ISDB-T/ISDB-Tsb API extension should reflect all information |
| 335 | needed to tune any ISDB-T/ISDB-Tsb hardware. Of course it is possible |
| 336 | that some very sophisticated devices won't need certain parameters to |
| 337 | tune.</para> |
| 338 | |
| 339 | <para>The information given here should help application writers to know how |
| 340 | to handle ISDB-T and ISDB-Tsb hardware using the Linux DVB-API.</para> |
| 341 | |
| 342 | <para>The details given here about ISDB-T and ISDB-Tsb are just enough to |
| 343 | basically show the dependencies between the needed parameter values, |
| 344 | but surely some information is left out. For more detailed information |
| 345 | see the following documents:</para> |
| 346 | |
| 347 | <para>ARIB STD-B31 - "Transmission System for Digital Terrestrial |
| 348 | Television Broadcasting" and</para> |
| 349 | <para>ARIB TR-B14 - "Operational Guidelines for Digital Terrestrial |
| 350 | Television Broadcasting".</para> |
| 351 | |
| 352 | <para>In order to read this document one has to have some knowledge the |
| 353 | channel structure in ISDB-T and ISDB-Tsb. I.e. it has to be known to |
| 354 | the reader that an ISDB-T channel consists of 13 segments, that it can |
| 355 | have up to 3 layer sharing those segments, and things like that.</para> |
| 356 | |
| 357 | <para>Parameters used by ISDB-T and ISDB-Tsb.</para> |
| 358 | |
| Mauro Carvalho Chehab | c18038d | 2009-09-17 01:25:41 -0300 | [diff] [blame] | 359 | <section id="isdbt-new-parms"> |
| 360 | <title>ISDB-T only parameters</title> |
| Mauro Carvalho Chehab | 453d63c | 2009-09-16 23:22:05 -0300 | [diff] [blame] | 361 | |
| 362 | <section id="isdbt-part-rec"> |
| 363 | <title><constant>DTV_ISDBT_PARTIAL_RECEPTION</constant></title> |
| 364 | |
| 365 | <para><constant>If DTV_ISDBT_SOUND_BROADCASTING</constant> is '0' this bit-field represents whether |
| 366 | the channel is in partial reception mode or not.</para> |
| 367 | |
| 368 | <para>If '1' <constant>DTV_ISDBT_LAYERA_*</constant> values are assigned to the center segment and |
| 369 | <constant>DTV_ISDBT_LAYERA_SEGMENT_COUNT</constant> has to be '1'.</para> |
| 370 | |
| 371 | <para>If in addition <constant>DTV_ISDBT_SOUND_BROADCASTING</constant> is '1' |
| 372 | <constant>DTV_ISDBT_PARTIAL_RECEPTION</constant> represents whether this ISDB-Tsb channel |
| 373 | is consisting of one segment and layer or three segments and two layers.</para> |
| 374 | |
| 375 | <para>Possible values: 0, 1, -1 (AUTO)</para> |
| 376 | </section> |
| 377 | |
| 378 | <section id="isdbt-sound-bcast"> |
| 379 | <title><constant>DTV_ISDBT_SOUND_BROADCASTING</constant></title> |
| 380 | |
| 381 | <para>This field represents whether the other DTV_ISDBT_*-parameters are |
| 382 | referring to an ISDB-T and an ISDB-Tsb channel. (See also |
| 383 | <constant>DTV_ISDBT_PARTIAL_RECEPTION</constant>).</para> |
| 384 | |
| Mauro Carvalho Chehab | c18038d | 2009-09-17 01:25:41 -0300 | [diff] [blame] | 385 | <para>Possible values: 0, 1, -1 (AUTO)</para> |
| Mauro Carvalho Chehab | 453d63c | 2009-09-16 23:22:05 -0300 | [diff] [blame] | 386 | </section> |
| 387 | |
| 388 | <section id="isdbt-sb-ch-id"> |
| 389 | <title><constant>DTV_ISDBT_SB_SUBCHANNEL_ID</constant></title> |
| 390 | |
| 391 | <para>This field only applies if <constant>DTV_ISDBT_SOUND_BROADCASTING</constant> is '1'.</para> |
| 392 | |
| 393 | <para>(Note of the author: This might not be the correct description of the |
| 394 | <constant>SUBCHANNEL-ID</constant> in all details, but it is my understanding of the technical |
| 395 | background needed to program a device)</para> |
| 396 | |
| 397 | <para>An ISDB-Tsb channel (1 or 3 segments) can be broadcasted alone or in a |
| 398 | set of connected ISDB-Tsb channels. In this set of channels every |
| 399 | channel can be received independently. The number of connected |
| 400 | ISDB-Tsb segment can vary, e.g. depending on the frequency spectrum |
| 401 | bandwidth available.</para> |
| 402 | |
| 403 | <para>Example: Assume 8 ISDB-Tsb connected segments are broadcasted. The |
| 404 | broadcaster has several possibilities to put those channels in the |
| 405 | air: Assuming a normal 13-segment ISDB-T spectrum he can align the 8 |
| 406 | segments from position 1-8 to 5-13 or anything in between.</para> |
| 407 | |
| 408 | <para>The underlying layer of segments are subchannels: each segment is |
| 409 | consisting of several subchannels with a predefined IDs. A sub-channel |
| 410 | is used to help the demodulator to synchronize on the channel.</para> |
| 411 | |
| 412 | <para>An ISDB-T channel is always centered over all sub-channels. As for |
| 413 | the example above, in ISDB-Tsb it is no longer as simple as that.</para> |
| 414 | |
| 415 | <para><constant>The DTV_ISDBT_SB_SUBCHANNEL_ID</constant> parameter is used to give the |
| 416 | sub-channel ID of the segment to be demodulated.</para> |
| 417 | |
| 418 | <para>Possible values: 0 .. 41, -1 (AUTO)</para> |
| 419 | </section> |
| 420 | |
| 421 | <section id="isdbt-sb-seg-idx"> |
| 422 | |
| 423 | <title><constant>DTV_ISDBT_SB_SEGMENT_IDX</constant></title> |
| 424 | |
| 425 | <para>This field only applies if <constant>DTV_ISDBT_SOUND_BROADCASTING</constant> is '1'.</para> |
| 426 | |
| 427 | <para><constant>DTV_ISDBT_SB_SEGMENT_IDX</constant> gives the index of the segment to be |
| 428 | demodulated for an ISDB-Tsb channel where several of them are |
| 429 | transmitted in the connected manner.</para> |
| 430 | |
| 431 | <para>Possible values: 0 .. <constant>DTV_ISDBT_SB_SEGMENT_COUNT</constant> - 1</para> |
| 432 | |
| 433 | <para>Note: This value cannot be determined by an automatic channel search.</para> |
| 434 | </section> |
| 435 | |
| 436 | <section id="isdbt-sb-seg-cnt"> |
| 437 | <title><constant>DTV_ISDBT_SB_SEGMENT_COUNT</constant></title> |
| 438 | |
| 439 | <para>This field only applies if <constant>DTV_ISDBT_SOUND_BROADCASTING</constant> is '1'.</para> |
| 440 | |
| 441 | <para><constant>DTV_ISDBT_SB_SEGMENT_COUNT</constant> gives the total count of connected ISDB-Tsb |
| 442 | channels.</para> |
| 443 | |
| 444 | <para>Possible values: 1 .. 13</para> |
| 445 | |
| 446 | <para>Note: This value cannot be determined by an automatic channel search.</para> |
| 447 | </section> |
| 448 | |
| 449 | <section id="isdb-hierq-layers"> |
| 450 | <title>Hierarchical layers</title> |
| 451 | |
| 452 | <para>ISDB-T channels can be coded hierarchically. As opposed to DVB-T in |
| 453 | ISDB-T hierarchical layers can be decoded simultaneously. For that |
| 454 | reason a ISDB-T demodulator has 3 viterbi and 3 reed-solomon-decoders.</para> |
| 455 | |
| 456 | <para>ISDB-T has 3 hierarchical layers which each can use a part of the |
| 457 | available segments. The total number of segments over all layers has |
| 458 | to 13 in ISDB-T.</para> |
| 459 | |
| 460 | <section id="isdbt-layer-ena"> |
| 461 | <title><constant>DTV_ISDBT_LAYER_ENABLED</constant></title> |
| 462 | |
| 463 | <para>Hierarchical reception in ISDB-T is achieved by enabling or disabling |
| 464 | layers in the decoding process. Setting all bits of |
| 465 | <constant>DTV_ISDBT_LAYER_ENABLED</constant> to '1' forces all layers (if applicable) to be |
| 466 | demodulated. This is the default.</para> |
| 467 | |
| 468 | <para>If the channel is in the partial reception mode |
| 469 | (<constant>DTV_ISDBT_PARTIAL_RECEPTION</constant> = 1) the central segment can be decoded |
| 470 | independently of the other 12 segments. In that mode layer A has to |
| 471 | have a <constant>SEGMENT_COUNT</constant> of 1.</para> |
| 472 | |
| 473 | <para>In ISDB-Tsb only layer A is used, it can be 1 or 3 in ISDB-Tsb |
| 474 | according to <constant>DTV_ISDBT_PARTIAL_RECEPTION</constant>. <constant>SEGMENT_COUNT</constant> must be filled |
| 475 | accordingly.</para> |
| 476 | |
| 477 | <para>Possible values: 0x1, 0x2, 0x4 (|-able)</para> |
| 478 | |
| 479 | <para><constant>DTV_ISDBT_LAYER_ENABLED[0:0]</constant> - layer A</para> |
| 480 | <para><constant>DTV_ISDBT_LAYER_ENABLED[1:1]</constant> - layer B</para> |
| 481 | <para><constant>DTV_ISDBT_LAYER_ENABLED[2:2]</constant> - layer C</para> |
| 482 | <para><constant>DTV_ISDBT_LAYER_ENABLED[31:3]</constant> unused</para> |
| 483 | </section> |
| 484 | |
| 485 | <section id="isdbt-layer-fec"> |
| 486 | <title><constant>DTV_ISDBT_LAYER*_FEC</constant></title> |
| 487 | |
| 488 | <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> |
| 489 | </section> |
| 490 | |
| 491 | <section id="isdbt-layer-mod"> |
| 492 | <title><constant>DTV_ISDBT_LAYER*_MODULATION</constant></title> |
| 493 | |
| 494 | <para>Possible values: <constant>QAM_AUTO</constant>, QP<constant>SK, QAM_16</constant>, <constant>QAM_64</constant>, <constant>DQPSK</constant></para> |
| 495 | |
| 496 | <para>Note: If layer C is <constant>DQPSK</constant> layer B has to be <constant>DQPSK</constant>. If layer B is <constant>DQPSK</constant> |
| 497 | and <constant>DTV_ISDBT_PARTIAL_RECEPTION</constant>=0 layer has to be <constant>DQPSK</constant>.</para> |
| 498 | </section> |
| 499 | |
| 500 | <section id="isdbt-layer-seg-cnt"> |
| 501 | <title><constant>DTV_ISDBT_LAYER*_SEGMENT_COUNT</constant></title> |
| 502 | |
| 503 | <para>Possible values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1 (AUTO)</para> |
| 504 | |
| 505 | <para>Note: Truth table for <constant>DTV_ISDBT_SOUND_BROADCASTING</constant> and |
| 506 | <constant>DTV_ISDBT_PARTIAL_RECEPTION</constant> and <constant>LAYER</constant>*_SEGMENT_COUNT</para> |
| 507 | |
| 508 | <informaltable id="isdbt-layer_seg-cnt-table"> |
| 509 | <tgroup cols="6"> |
| 510 | |
| 511 | <tbody> |
| 512 | <row> |
| 513 | <entry>PR</entry> |
| 514 | <entry>SB</entry> |
| 515 | <entry>Layer A width</entry> |
| 516 | <entry>Layer B width</entry> |
| 517 | <entry>Layer C width</entry> |
| 518 | <entry>total width</entry> |
| 519 | </row> |
| 520 | |
| 521 | <row> |
| 522 | <entry>0</entry> |
| 523 | <entry>0</entry> |
| 524 | <entry>1 .. 13</entry> |
| 525 | <entry>1 .. 13</entry> |
| 526 | <entry>1 .. 13</entry> |
| 527 | <entry>13</entry> |
| 528 | </row> |
| 529 | |
| 530 | <row> |
| 531 | <entry>1</entry> |
| 532 | <entry>0</entry> |
| 533 | <entry>1</entry> |
| 534 | <entry>1 .. 13</entry> |
| 535 | <entry>1 .. 13</entry> |
| 536 | <entry>13</entry> |
| 537 | </row> |
| 538 | |
| 539 | <row> |
| 540 | <entry>0</entry> |
| 541 | <entry>1</entry> |
| 542 | <entry>1</entry> |
| 543 | <entry>0</entry> |
| 544 | <entry>0</entry> |
| 545 | <entry>1</entry> |
| 546 | </row> |
| 547 | |
| 548 | <row> |
| 549 | <entry>1</entry> |
| 550 | <entry>1</entry> |
| 551 | <entry>1</entry> |
| 552 | <entry>2</entry> |
| 553 | <entry>0</entry> |
| 554 | <entry>13</entry> |
| 555 | </row> |
| 556 | </tbody> |
| 557 | |
| 558 | </tgroup> |
| 559 | </informaltable> |
| 560 | |
| 561 | </section> |
| 562 | |
| 563 | <section id="isdbt_layer_t_interl"> |
| 564 | <title><constant>DTV_ISDBT_LAYER*_TIME_INTERLEAVING</constant></title> |
| 565 | |
| 566 | <para>Possible values: 0, 1, 2, 3, -1 (AUTO)</para> |
| 567 | |
| 568 | <para>Note: The real inter-leaver depth-names depend on the mode (fft-size); the values |
| 569 | here are referring to what can be found in the TMCC-structure - |
| 570 | independent of the mode.</para> |
| 571 | </section> |
| 572 | </section> |
| 573 | </section> |
| Steve Kerrison | cf75f9b | 2011-05-08 16:17:20 -0300 | [diff] [blame] | 574 | <section id="dvbt2-params"> |
| 575 | <title>DVB-T2 parameters</title> |
| 576 | |
| 577 | <para>This section covers parameters that apply only to the DVB-T2 delivery method. DVB-T2 |
| 578 | support is currently in the early stages development so expect this section to grow |
| 579 | and become more detailed with time.</para> |
| 580 | |
| 581 | <section id="dvbt2-plp-id"> |
| 582 | <title><constant>DTV_DVBT2_PLP_ID</constant></title> |
| 583 | |
| 584 | <para>DVB-T2 supports Physical Layer Pipes (PLP) to allow transmission of |
| 585 | many data types via a single multiplex. The API will soon support this |
| 586 | at which point this section will be expanded.</para> |
| 587 | </section> |
| 588 | </section> |
| Mauro Carvalho Chehab | 453d63c | 2009-09-16 23:22:05 -0300 | [diff] [blame] | 589 | </section> |
| Mauro Carvalho Chehab | 131db3a | 2009-10-24 21:18:46 -0300 | [diff] [blame] | 590 | </section> |