0001 .. SPDX-License-Identifier: GPL-2.0
0002
0003 ==============================
0004 Using the Digital TV Framework
0005 ==============================
0006
0007 Introduction
0008 ~~~~~~~~~~~~
0009
0010 One significant difference between Digital TV and Analogue TV that the
0011 unwary (like myself) should consider is that, although the component
0012 structure of DVB-T cards are substantially similar to Analogue TV cards,
0013 they function in substantially different ways.
0014
0015 The purpose of an Analogue TV is to receive and display an Analogue
0016 Television signal. An Analogue TV signal (otherwise known as composite
0017 video) is an analogue encoding of a sequence of image frames (25 frames
0018 per second in Europe) rasterised using an interlacing technique.
0019 Interlacing takes two fields to represent one frame. Therefore, an
0020 Analogue TV card for a PC has the following purpose:
0021
0022 * Tune the receiver to receive a broadcast signal
0023 * demodulate the broadcast signal
0024 * demultiplex the analogue video signal and analogue audio
0025 signal.
0026
0027 .. note::
0028
0029 some countries employ a digital audio signal
0030 embedded within the modulated composite analogue signal -
0031 using NICAM signaling.)
0032
0033 * digitize the analogue video signal and make the resulting datastream
0034 available to the data bus.
0035
0036 The digital datastream from an Analogue TV card is generated by
0037 circuitry on the card and is often presented uncompressed. For a PAL TV
0038 signal encoded at a resolution of 768x576 24-bit color pixels over 25
0039 frames per second - a fair amount of data is generated and must be
0040 processed by the PC before it can be displayed on the video monitor
0041 screen. Some Analogue TV cards for PCs have onboard MPEG2 encoders which
0042 permit the raw digital data stream to be presented to the PC in an
0043 encoded and compressed form - similar to the form that is used in
0044 Digital TV.
0045
0046 The purpose of a simple budget digital TV card (DVB-T,C or S) is to
0047 simply:
0048
0049 * Tune the received to receive a broadcast signal. * Extract the encoded
0050 digital datastream from the broadcast signal.
0051 * Make the encoded digital datastream (MPEG2) available to the data bus.
0052
0053 The significant difference between the two is that the tuner on the
0054 analogue TV card spits out an Analogue signal, whereas the tuner on the
0055 digital TV card spits out a compressed encoded digital datastream. As
0056 the signal is already digitised, it is trivial to pass this datastream
0057 to the PC databus with minimal additional processing and then extract
0058 the digital video and audio datastreams passing them to the appropriate
0059 software or hardware for decoding and viewing.
0060
0061 Getting the card going
0062 ~~~~~~~~~~~~~~~~~~~~~~
0063
0064 The Device Driver API for DVB under Linux will the following
0065 device nodes via the devfs filesystem:
0066
0067 * /dev/dvb/adapter0/demux0
0068 * /dev/dvb/adapter0/dvr0
0069 * /dev/dvb/adapter0/frontend0
0070
0071 The ``/dev/dvb/adapter0/dvr0`` device node is used to read the MPEG2
0072 Data Stream and the ``/dev/dvb/adapter0/frontend0`` device node is used
0073 to tune the frontend tuner module. The ``/dev/dvb/adapter0/demux0`` is
0074 used to control what programs will be received.
0075
0076 Depending on the card's feature set, the Device Driver API could also
0077 expose other device nodes:
0078
0079 * /dev/dvb/adapter0/ca0
0080 * /dev/dvb/adapter0/audio0
0081 * /dev/dvb/adapter0/net0
0082 * /dev/dvb/adapter0/osd0
0083 * /dev/dvb/adapter0/video0
0084
0085 The ``/dev/dvb/adapter0/ca0`` is used to decode encrypted channels. The
0086 other device nodes are found only on devices that use the av7110
0087 driver, with is now obsoleted, together with the extra API whose such
0088 devices use.
0089
0090 Receiving a digital TV channel
0091 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
0092
0093 This section attempts to explain how it works and how this affects the
0094 configuration of a Digital TV card.
0095
0096 On this example, we're considering tuning into DVB-T channels in
0097 Australia, at the Melbourne region.
0098
0099 The frequencies broadcast by Mount Dandenong transmitters are,
0100 currently:
0101
0102 Table 1. Transponder Frequencies Mount Dandenong, Vic, Aus.
0103
0104 =========== ===========
0105 Broadcaster Frequency
0106 =========== ===========
0107 Seven 177.500 Mhz
0108 SBS 184.500 Mhz
0109 Nine 191.625 Mhz
0110 Ten 219.500 Mhz
0111 ABC 226.500 Mhz
0112 Channel 31 557.625 Mhz
0113 =========== ===========
0114
0115 The digital TV Scan utilities (like dvbv5-scan) have use a set of
0116 compiled-in defaults for various countries and regions. Those are
0117 currently provided as a separate package, called dtv-scan-tables. It's
0118 git tree is located at LinuxTV.org:
0119
0120 https://git.linuxtv.org/dtv-scan-tables.git/
0121
0122 If none of the tables there suit, you can specify a data file on the
0123 command line which contains the transponder frequencies. Here is a
0124 sample file for the above channel transponders, in the old "channel"
0125 format::
0126
0127 # Data file for DVB scan program
0128 #
0129 # C Frequency SymbolRate FEC QAM
0130 # S Frequency Polarisation SymbolRate FEC
0131 # T Frequency Bandwidth FEC FEC2 QAM Mode Guard Hier
0132
0133 T 177500000 7MHz AUTO AUTO QAM64 8k 1/16 NONE
0134 T 184500000 7MHz AUTO AUTO QAM64 8k 1/8 NONE
0135 T 191625000 7MHz AUTO AUTO QAM64 8k 1/16 NONE
0136 T 219500000 7MHz AUTO AUTO QAM64 8k 1/16 NONE
0137 T 226500000 7MHz AUTO AUTO QAM64 8k 1/16 NONE
0138 T 557625000 7MHz AUTO AUTO QPSK 8k 1/16 NONE
0139
0140 Nowadays, we prefer to use a newer format, with is more verbose and easier
0141 to understand. With the new format, the "Seven" channel transponder's
0142 data is represented by::
0143
0144 [Seven]
0145 DELIVERY_SYSTEM = DVBT
0146 FREQUENCY = 177500000
0147 BANDWIDTH_HZ = 7000000
0148 CODE_RATE_HP = AUTO
0149 CODE_RATE_LP = AUTO
0150 MODULATION = QAM/64
0151 TRANSMISSION_MODE = 8K
0152 GUARD_INTERVAL = 1/16
0153 HIERARCHY = NONE
0154 INVERSION = AUTO
0155
0156 For an updated version of the complete table, please see:
0157
0158 https://git.linuxtv.org/dtv-scan-tables.git/tree/dvb-t/au-Melbourne
0159
0160 When the Digital TV scanning utility runs, it will output a file
0161 containing the information for all the audio and video programs that
0162 exists into each channel's transponders which the card's frontend can
0163 lock onto. (i.e. any whose signal is strong enough at your antenna).
0164
0165 Here's the output of the dvbv5 tools from a channel scan took from
0166 Melburne::
0167
0168 [ABC HDTV]
0169 SERVICE_ID = 560
0170 VIDEO_PID = 2307
0171 AUDIO_PID = 0
0172 DELIVERY_SYSTEM = DVBT
0173 FREQUENCY = 226500000
0174 INVERSION = OFF
0175 BANDWIDTH_HZ = 7000000
0176 CODE_RATE_HP = 3/4
0177 CODE_RATE_LP = 3/4
0178 MODULATION = QAM/64
0179 TRANSMISSION_MODE = 8K
0180 GUARD_INTERVAL = 1/16
0181 HIERARCHY = NONE
0182
0183 [ABC TV Melbourne]
0184 SERVICE_ID = 561
0185 VIDEO_PID = 512
0186 AUDIO_PID = 650
0187 DELIVERY_SYSTEM = DVBT
0188 FREQUENCY = 226500000
0189 INVERSION = OFF
0190 BANDWIDTH_HZ = 7000000
0191 CODE_RATE_HP = 3/4
0192 CODE_RATE_LP = 3/4
0193 MODULATION = QAM/64
0194 TRANSMISSION_MODE = 8K
0195 GUARD_INTERVAL = 1/16
0196 HIERARCHY = NONE
0197
0198 [ABC TV 2]
0199 SERVICE_ID = 562
0200 VIDEO_PID = 512
0201 AUDIO_PID = 650
0202 DELIVERY_SYSTEM = DVBT
0203 FREQUENCY = 226500000
0204 INVERSION = OFF
0205 BANDWIDTH_HZ = 7000000
0206 CODE_RATE_HP = 3/4
0207 CODE_RATE_LP = 3/4
0208 MODULATION = QAM/64
0209 TRANSMISSION_MODE = 8K
0210 GUARD_INTERVAL = 1/16
0211 HIERARCHY = NONE
0212
0213 [ABC TV 3]
0214 SERVICE_ID = 563
0215 VIDEO_PID = 512
0216 AUDIO_PID = 650
0217 DELIVERY_SYSTEM = DVBT
0218 FREQUENCY = 226500000
0219 INVERSION = OFF
0220 BANDWIDTH_HZ = 7000000
0221 CODE_RATE_HP = 3/4
0222 CODE_RATE_LP = 3/4
0223 MODULATION = QAM/64
0224 TRANSMISSION_MODE = 8K
0225 GUARD_INTERVAL = 1/16
0226 HIERARCHY = NONE
0227
0228 [ABC TV 4]
0229 SERVICE_ID = 564
0230 VIDEO_PID = 512
0231 AUDIO_PID = 650
0232 DELIVERY_SYSTEM = DVBT
0233 FREQUENCY = 226500000
0234 INVERSION = OFF
0235 BANDWIDTH_HZ = 7000000
0236 CODE_RATE_HP = 3/4
0237 CODE_RATE_LP = 3/4
0238 MODULATION = QAM/64
0239 TRANSMISSION_MODE = 8K
0240 GUARD_INTERVAL = 1/16
0241 HIERARCHY = NONE
0242
0243 [ABC DiG Radio]
0244 SERVICE_ID = 566
0245 VIDEO_PID = 0
0246 AUDIO_PID = 2311
0247 DELIVERY_SYSTEM = DVBT
0248 FREQUENCY = 226500000
0249 INVERSION = OFF
0250 BANDWIDTH_HZ = 7000000
0251 CODE_RATE_HP = 3/4
0252 CODE_RATE_LP = 3/4
0253 MODULATION = QAM/64
0254 TRANSMISSION_MODE = 8K
0255 GUARD_INTERVAL = 1/16
0256 HIERARCHY = NONE
0257
0258 [TEN Digital]
0259 SERVICE_ID = 1585
0260 VIDEO_PID = 512
0261 AUDIO_PID = 650
0262 DELIVERY_SYSTEM = DVBT
0263 FREQUENCY = 219500000
0264 INVERSION = OFF
0265 BANDWIDTH_HZ = 7000000
0266 CODE_RATE_HP = 3/4
0267 CODE_RATE_LP = 1/2
0268 MODULATION = QAM/64
0269 TRANSMISSION_MODE = 8K
0270 GUARD_INTERVAL = 1/16
0271 HIERARCHY = NONE
0272
0273 [TEN Digital 1]
0274 SERVICE_ID = 1586
0275 VIDEO_PID = 512
0276 AUDIO_PID = 650
0277 DELIVERY_SYSTEM = DVBT
0278 FREQUENCY = 219500000
0279 INVERSION = OFF
0280 BANDWIDTH_HZ = 7000000
0281 CODE_RATE_HP = 3/4
0282 CODE_RATE_LP = 1/2
0283 MODULATION = QAM/64
0284 TRANSMISSION_MODE = 8K
0285 GUARD_INTERVAL = 1/16
0286 HIERARCHY = NONE
0287
0288 [TEN Digital 2]
0289 SERVICE_ID = 1587
0290 VIDEO_PID = 512
0291 AUDIO_PID = 650
0292 DELIVERY_SYSTEM = DVBT
0293 FREQUENCY = 219500000
0294 INVERSION = OFF
0295 BANDWIDTH_HZ = 7000000
0296 CODE_RATE_HP = 3/4
0297 CODE_RATE_LP = 1/2
0298 MODULATION = QAM/64
0299 TRANSMISSION_MODE = 8K
0300 GUARD_INTERVAL = 1/16
0301 HIERARCHY = NONE
0302
0303 [TEN Digital 3]
0304 SERVICE_ID = 1588
0305 VIDEO_PID = 512
0306 AUDIO_PID = 650
0307 DELIVERY_SYSTEM = DVBT
0308 FREQUENCY = 219500000
0309 INVERSION = OFF
0310 BANDWIDTH_HZ = 7000000
0311 CODE_RATE_HP = 3/4
0312 CODE_RATE_LP = 1/2
0313 MODULATION = QAM/64
0314 TRANSMISSION_MODE = 8K
0315 GUARD_INTERVAL = 1/16
0316 HIERARCHY = NONE
0317
0318 [TEN Digital]
0319 SERVICE_ID = 1589
0320 VIDEO_PID = 512
0321 AUDIO_PID = 650
0322 DELIVERY_SYSTEM = DVBT
0323 FREQUENCY = 219500000
0324 INVERSION = OFF
0325 BANDWIDTH_HZ = 7000000
0326 CODE_RATE_HP = 3/4
0327 CODE_RATE_LP = 1/2
0328 MODULATION = QAM/64
0329 TRANSMISSION_MODE = 8K
0330 GUARD_INTERVAL = 1/16
0331 HIERARCHY = NONE
0332
0333 [TEN Digital 4]
0334 SERVICE_ID = 1590
0335 VIDEO_PID = 512
0336 AUDIO_PID = 650
0337 DELIVERY_SYSTEM = DVBT
0338 FREQUENCY = 219500000
0339 INVERSION = OFF
0340 BANDWIDTH_HZ = 7000000
0341 CODE_RATE_HP = 3/4
0342 CODE_RATE_LP = 1/2
0343 MODULATION = QAM/64
0344 TRANSMISSION_MODE = 8K
0345 GUARD_INTERVAL = 1/16
0346 HIERARCHY = NONE
0347
0348 [TEN Digital]
0349 SERVICE_ID = 1591
0350 VIDEO_PID = 512
0351 AUDIO_PID = 650
0352 DELIVERY_SYSTEM = DVBT
0353 FREQUENCY = 219500000
0354 INVERSION = OFF
0355 BANDWIDTH_HZ = 7000000
0356 CODE_RATE_HP = 3/4
0357 CODE_RATE_LP = 1/2
0358 MODULATION = QAM/64
0359 TRANSMISSION_MODE = 8K
0360 GUARD_INTERVAL = 1/16
0361 HIERARCHY = NONE
0362
0363 [TEN HD]
0364 SERVICE_ID = 1592
0365 VIDEO_PID = 514
0366 AUDIO_PID = 0
0367 DELIVERY_SYSTEM = DVBT
0368 FREQUENCY = 219500000
0369 INVERSION = OFF
0370 BANDWIDTH_HZ = 7000000
0371 CODE_RATE_HP = 3/4
0372 CODE_RATE_LP = 1/2
0373 MODULATION = QAM/64
0374 TRANSMISSION_MODE = 8K
0375 GUARD_INTERVAL = 1/16
0376 HIERARCHY = NONE
0377
0378 [TEN Digital]
0379 SERVICE_ID = 1593
0380 VIDEO_PID = 512
0381 AUDIO_PID = 650
0382 DELIVERY_SYSTEM = DVBT
0383 FREQUENCY = 219500000
0384 INVERSION = OFF
0385 BANDWIDTH_HZ = 7000000
0386 CODE_RATE_HP = 3/4
0387 CODE_RATE_LP = 1/2
0388 MODULATION = QAM/64
0389 TRANSMISSION_MODE = 8K
0390 GUARD_INTERVAL = 1/16
0391 HIERARCHY = NONE
0392
0393 [Nine Digital]
0394 SERVICE_ID = 1072
0395 VIDEO_PID = 513
0396 AUDIO_PID = 660
0397 DELIVERY_SYSTEM = DVBT
0398 FREQUENCY = 191625000
0399 INVERSION = OFF
0400 BANDWIDTH_HZ = 7000000
0401 CODE_RATE_HP = 3/4
0402 CODE_RATE_LP = 1/2
0403 MODULATION = QAM/64
0404 TRANSMISSION_MODE = 8K
0405 GUARD_INTERVAL = 1/16
0406 HIERARCHY = NONE
0407
0408 [Nine Digital HD]
0409 SERVICE_ID = 1073
0410 VIDEO_PID = 512
0411 AUDIO_PID = 0
0412 DELIVERY_SYSTEM = DVBT
0413 FREQUENCY = 191625000
0414 INVERSION = OFF
0415 BANDWIDTH_HZ = 7000000
0416 CODE_RATE_HP = 3/4
0417 CODE_RATE_LP = 1/2
0418 MODULATION = QAM/64
0419 TRANSMISSION_MODE = 8K
0420 GUARD_INTERVAL = 1/16
0421 HIERARCHY = NONE
0422
0423 [Nine Guide]
0424 SERVICE_ID = 1074
0425 VIDEO_PID = 514
0426 AUDIO_PID = 670
0427 DELIVERY_SYSTEM = DVBT
0428 FREQUENCY = 191625000
0429 INVERSION = OFF
0430 BANDWIDTH_HZ = 7000000
0431 CODE_RATE_HP = 3/4
0432 CODE_RATE_LP = 1/2
0433 MODULATION = QAM/64
0434 TRANSMISSION_MODE = 8K
0435 GUARD_INTERVAL = 1/16
0436 HIERARCHY = NONE
0437
0438 [7 Digital]
0439 SERVICE_ID = 1328
0440 VIDEO_PID = 769
0441 AUDIO_PID = 770
0442 DELIVERY_SYSTEM = DVBT
0443 FREQUENCY = 177500000
0444 INVERSION = OFF
0445 BANDWIDTH_HZ = 7000000
0446 CODE_RATE_HP = 2/3
0447 CODE_RATE_LP = 2/3
0448 MODULATION = QAM/64
0449 TRANSMISSION_MODE = 8K
0450 GUARD_INTERVAL = 1/8
0451 HIERARCHY = NONE
0452
0453 [7 Digital 1]
0454 SERVICE_ID = 1329
0455 VIDEO_PID = 769
0456 AUDIO_PID = 770
0457 DELIVERY_SYSTEM = DVBT
0458 FREQUENCY = 177500000
0459 INVERSION = OFF
0460 BANDWIDTH_HZ = 7000000
0461 CODE_RATE_HP = 2/3
0462 CODE_RATE_LP = 2/3
0463 MODULATION = QAM/64
0464 TRANSMISSION_MODE = 8K
0465 GUARD_INTERVAL = 1/8
0466 HIERARCHY = NONE
0467
0468 [7 Digital 2]
0469 SERVICE_ID = 1330
0470 VIDEO_PID = 769
0471 AUDIO_PID = 770
0472 DELIVERY_SYSTEM = DVBT
0473 FREQUENCY = 177500000
0474 INVERSION = OFF
0475 BANDWIDTH_HZ = 7000000
0476 CODE_RATE_HP = 2/3
0477 CODE_RATE_LP = 2/3
0478 MODULATION = QAM/64
0479 TRANSMISSION_MODE = 8K
0480 GUARD_INTERVAL = 1/8
0481 HIERARCHY = NONE
0482
0483 [7 Digital 3]
0484 SERVICE_ID = 1331
0485 VIDEO_PID = 769
0486 AUDIO_PID = 770
0487 DELIVERY_SYSTEM = DVBT
0488 FREQUENCY = 177500000
0489 INVERSION = OFF
0490 BANDWIDTH_HZ = 7000000
0491 CODE_RATE_HP = 2/3
0492 CODE_RATE_LP = 2/3
0493 MODULATION = QAM/64
0494 TRANSMISSION_MODE = 8K
0495 GUARD_INTERVAL = 1/8
0496 HIERARCHY = NONE
0497
0498 [7 HD Digital]
0499 SERVICE_ID = 1332
0500 VIDEO_PID = 833
0501 AUDIO_PID = 834
0502 DELIVERY_SYSTEM = DVBT
0503 FREQUENCY = 177500000
0504 INVERSION = OFF
0505 BANDWIDTH_HZ = 7000000
0506 CODE_RATE_HP = 2/3
0507 CODE_RATE_LP = 2/3
0508 MODULATION = QAM/64
0509 TRANSMISSION_MODE = 8K
0510 GUARD_INTERVAL = 1/8
0511 HIERARCHY = NONE
0512
0513 [7 Program Guide]
0514 SERVICE_ID = 1334
0515 VIDEO_PID = 865
0516 AUDIO_PID = 866
0517 DELIVERY_SYSTEM = DVBT
0518 FREQUENCY = 177500000
0519 INVERSION = OFF
0520 BANDWIDTH_HZ = 7000000
0521 CODE_RATE_HP = 2/3
0522 CODE_RATE_LP = 2/3
0523 MODULATION = QAM/64
0524 TRANSMISSION_MODE = 8K
0525 GUARD_INTERVAL = 1/8
0526 HIERARCHY = NONE
0527
0528 [SBS HD]
0529 SERVICE_ID = 784
0530 VIDEO_PID = 102
0531 AUDIO_PID = 103
0532 DELIVERY_SYSTEM = DVBT
0533 FREQUENCY = 536500000
0534 INVERSION = OFF
0535 BANDWIDTH_HZ = 7000000
0536 CODE_RATE_HP = 2/3
0537 CODE_RATE_LP = 2/3
0538 MODULATION = QAM/64
0539 TRANSMISSION_MODE = 8K
0540 GUARD_INTERVAL = 1/8
0541 HIERARCHY = NONE
0542
0543 [SBS DIGITAL 1]
0544 SERVICE_ID = 785
0545 VIDEO_PID = 161
0546 AUDIO_PID = 81
0547 DELIVERY_SYSTEM = DVBT
0548 FREQUENCY = 536500000
0549 INVERSION = OFF
0550 BANDWIDTH_HZ = 7000000
0551 CODE_RATE_HP = 2/3
0552 CODE_RATE_LP = 2/3
0553 MODULATION = QAM/64
0554 TRANSMISSION_MODE = 8K
0555 GUARD_INTERVAL = 1/8
0556 HIERARCHY = NONE
0557
0558 [SBS DIGITAL 2]
0559 SERVICE_ID = 786
0560 VIDEO_PID = 162
0561 AUDIO_PID = 83
0562 DELIVERY_SYSTEM = DVBT
0563 FREQUENCY = 536500000
0564 INVERSION = OFF
0565 BANDWIDTH_HZ = 7000000
0566 CODE_RATE_HP = 2/3
0567 CODE_RATE_LP = 2/3
0568 MODULATION = QAM/64
0569 TRANSMISSION_MODE = 8K
0570 GUARD_INTERVAL = 1/8
0571 HIERARCHY = NONE
0572
0573 [SBS EPG]
0574 SERVICE_ID = 787
0575 VIDEO_PID = 163
0576 AUDIO_PID = 85
0577 DELIVERY_SYSTEM = DVBT
0578 FREQUENCY = 536500000
0579 INVERSION = OFF
0580 BANDWIDTH_HZ = 7000000
0581 CODE_RATE_HP = 2/3
0582 CODE_RATE_LP = 2/3
0583 MODULATION = QAM/64
0584 TRANSMISSION_MODE = 8K
0585 GUARD_INTERVAL = 1/8
0586 HIERARCHY = NONE
0587
0588 [SBS RADIO 1]
0589 SERVICE_ID = 798
0590 VIDEO_PID = 0
0591 AUDIO_PID = 201
0592 DELIVERY_SYSTEM = DVBT
0593 FREQUENCY = 536500000
0594 INVERSION = OFF
0595 BANDWIDTH_HZ = 7000000
0596 CODE_RATE_HP = 2/3
0597 CODE_RATE_LP = 2/3
0598 MODULATION = QAM/64
0599 TRANSMISSION_MODE = 8K
0600 GUARD_INTERVAL = 1/8
0601 HIERARCHY = NONE
0602
0603 [SBS RADIO 2]
0604 SERVICE_ID = 799
0605 VIDEO_PID = 0
0606 AUDIO_PID = 202
0607 DELIVERY_SYSTEM = DVBT
0608 FREQUENCY = 536500000
0609 INVERSION = OFF
0610 BANDWIDTH_HZ = 7000000
0611 CODE_RATE_HP = 2/3
0612 CODE_RATE_LP = 2/3
0613 MODULATION = QAM/64
0614 TRANSMISSION_MODE = 8K
0615 GUARD_INTERVAL = 1/8
0616 HIERARCHY = NONE