1 .. SPDX-License-Identifier: GPL-2.0
3 ==============================
4 Using the Digital TV Framework
5 ==============================
10 One significant difference between Digital TV and Analogue TV that the
11 unwary (like myself) should consider is that, although the component
12 structure of DVB-T cards are substantially similar to Analogue TV cards,
13 they function in substantially different ways.
15 The purpose of an Analogue TV is to receive and display an Analogue
16 Television signal. An Analogue TV signal (otherwise known as composite
17 video) is an analogue encoding of a sequence of image frames (25 frames
18 per second in Europe) rasterised using an interlacing technique.
19 Interlacing takes two fields to represent one frame. Therefore, an
20 Analogue TV card for a PC has the following purpose:
22 * Tune the receiver to receive a broadcast signal
23 * demodulate the broadcast signal
24 * demultiplex the analogue video signal and analogue audio
29 some countries employ a digital audio signal
30 embedded within the modulated composite analogue signal -
31 using NICAM signaling.)
33 * digitize the analogue video signal and make the resulting datastream
34 available to the data bus.
36 The digital datastream from an Analogue TV card is generated by
37 circuitry on the card and is often presented uncompressed. For a PAL TV
38 signal encoded at a resolution of 768x576 24-bit color pixels over 25
39 frames per second - a fair amount of data is generated and must be
40 processed by the PC before it can be displayed on the video monitor
41 screen. Some Analogue TV cards for PCs have onboard MPEG2 encoders which
42 permit the raw digital data stream to be presented to the PC in an
43 encoded and compressed form - similar to the form that is used in
46 The purpose of a simple budget digital TV card (DVB-T,C or S) is to
49 * Tune the received to receive a broadcast signal. * Extract the encoded
50 digital datastream from the broadcast signal.
51 * Make the encoded digital datastream (MPEG2) available to the data bus.
53 The significant difference between the two is that the tuner on the
54 analogue TV card spits out an Analogue signal, whereas the tuner on the
55 digital TV card spits out a compressed encoded digital datastream. As
56 the signal is already digitised, it is trivial to pass this datastream
57 to the PC databus with minimal additional processing and then extract
58 the digital video and audio datastreams passing them to the appropriate
59 software or hardware for decoding and viewing.
61 Getting the card going
62 ~~~~~~~~~~~~~~~~~~~~~~
64 The Device Driver API for DVB under Linux will the following
65 device nodes via the devfs filesystem:
67 * /dev/dvb/adapter0/demux0
68 * /dev/dvb/adapter0/dvr0
69 * /dev/dvb/adapter0/frontend0
71 The ``/dev/dvb/adapter0/dvr0`` device node is used to read the MPEG2
72 Data Stream and the ``/dev/dvb/adapter0/frontend0`` device node is used
73 to tune the frontend tuner module. The ``/dev/dvb/adapter0/demux0`` is
74 used to control what programs will be received.
76 Depending on the card's feature set, the Device Driver API could also
77 expose other device nodes:
79 * /dev/dvb/adapter0/ca0
80 * /dev/dvb/adapter0/audio0
81 * /dev/dvb/adapter0/net0
82 * /dev/dvb/adapter0/osd0
83 * /dev/dvb/adapter0/video0
85 The ``/dev/dvb/adapter0/ca0`` is used to decode encrypted channels. The
86 other device nodes are found only on devices that use the av7110
87 driver, with is now obsoleted, together with the extra API whose such
90 Receiving a digital TV channel
91 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
93 This section attempts to explain how it works and how this affects the
94 configuration of a Digital TV card.
96 On this example, we're considering tuning into DVB-T channels in
97 Australia, at the Melbourne region.
99 The frequencies broadcast by Mount Dandenong transmitters are,
102 Table 1. Transponder Frequencies Mount Dandenong, Vic, Aus.
104 =========== ===========
105 Broadcaster Frequency
106 =========== ===========
112 Channel 31 557.625 Mhz
113 =========== ===========
115 The digital TV Scan utilities (like dvbv5-scan) have use a set of
116 compiled-in defaults for various countries and regions. Those are
117 currently provided as a separate package, called dtv-scan-tables. It's
118 git tree is located at LinuxTV.org:
120 https://git.linuxtv.org/dtv-scan-tables.git/
122 If none of the tables there suit, you can specify a data file on the
123 command line which contains the transponder frequencies. Here is a
124 sample file for the above channel transponders, in the old "channel"
127 # Data file for DVB scan program
129 # C Frequency SymbolRate FEC QAM
130 # S Frequency Polarisation SymbolRate FEC
131 # T Frequency Bandwidth FEC FEC2 QAM Mode Guard Hier
133 T 177500000 7MHz AUTO AUTO QAM64 8k 1/16 NONE
134 T 184500000 7MHz AUTO AUTO QAM64 8k 1/8 NONE
135 T 191625000 7MHz AUTO AUTO QAM64 8k 1/16 NONE
136 T 219500000 7MHz AUTO AUTO QAM64 8k 1/16 NONE
137 T 226500000 7MHz AUTO AUTO QAM64 8k 1/16 NONE
138 T 557625000 7MHz AUTO AUTO QPSK 8k 1/16 NONE
140 Nowadays, we prefer to use a newer format, with is more verbose and easier
141 to understand. With the new format, the "Seven" channel transponder's
142 data is represented by::
145 DELIVERY_SYSTEM = DVBT
146 FREQUENCY = 177500000
147 BANDWIDTH_HZ = 7000000
151 TRANSMISSION_MODE = 8K
152 GUARD_INTERVAL = 1/16
156 For an updated version of the complete table, please see:
158 https://git.linuxtv.org/dtv-scan-tables.git/tree/dvb-t/au-Melbourne
160 When the Digital TV scanning utility runs, it will output a file
161 containing the information for all the audio and video programs that
162 exists into each channel's transponders which the card's frontend can
163 lock onto. (i.e. any whose signal is strong enough at your antenna).
165 Here's the output of the dvbv5 tools from a channel scan took from
172 DELIVERY_SYSTEM = DVBT
173 FREQUENCY = 226500000
175 BANDWIDTH_HZ = 7000000
179 TRANSMISSION_MODE = 8K
180 GUARD_INTERVAL = 1/16
187 DELIVERY_SYSTEM = DVBT
188 FREQUENCY = 226500000
190 BANDWIDTH_HZ = 7000000
194 TRANSMISSION_MODE = 8K
195 GUARD_INTERVAL = 1/16
202 DELIVERY_SYSTEM = DVBT
203 FREQUENCY = 226500000
205 BANDWIDTH_HZ = 7000000
209 TRANSMISSION_MODE = 8K
210 GUARD_INTERVAL = 1/16
217 DELIVERY_SYSTEM = DVBT
218 FREQUENCY = 226500000
220 BANDWIDTH_HZ = 7000000
224 TRANSMISSION_MODE = 8K
225 GUARD_INTERVAL = 1/16
232 DELIVERY_SYSTEM = DVBT
233 FREQUENCY = 226500000
235 BANDWIDTH_HZ = 7000000
239 TRANSMISSION_MODE = 8K
240 GUARD_INTERVAL = 1/16
247 DELIVERY_SYSTEM = DVBT
248 FREQUENCY = 226500000
250 BANDWIDTH_HZ = 7000000
254 TRANSMISSION_MODE = 8K
255 GUARD_INTERVAL = 1/16
262 DELIVERY_SYSTEM = DVBT
263 FREQUENCY = 219500000
265 BANDWIDTH_HZ = 7000000
269 TRANSMISSION_MODE = 8K
270 GUARD_INTERVAL = 1/16
277 DELIVERY_SYSTEM = DVBT
278 FREQUENCY = 219500000
280 BANDWIDTH_HZ = 7000000
284 TRANSMISSION_MODE = 8K
285 GUARD_INTERVAL = 1/16
292 DELIVERY_SYSTEM = DVBT
293 FREQUENCY = 219500000
295 BANDWIDTH_HZ = 7000000
299 TRANSMISSION_MODE = 8K
300 GUARD_INTERVAL = 1/16
307 DELIVERY_SYSTEM = DVBT
308 FREQUENCY = 219500000
310 BANDWIDTH_HZ = 7000000
314 TRANSMISSION_MODE = 8K
315 GUARD_INTERVAL = 1/16
322 DELIVERY_SYSTEM = DVBT
323 FREQUENCY = 219500000
325 BANDWIDTH_HZ = 7000000
329 TRANSMISSION_MODE = 8K
330 GUARD_INTERVAL = 1/16
337 DELIVERY_SYSTEM = DVBT
338 FREQUENCY = 219500000
340 BANDWIDTH_HZ = 7000000
344 TRANSMISSION_MODE = 8K
345 GUARD_INTERVAL = 1/16
352 DELIVERY_SYSTEM = DVBT
353 FREQUENCY = 219500000
355 BANDWIDTH_HZ = 7000000
359 TRANSMISSION_MODE = 8K
360 GUARD_INTERVAL = 1/16
367 DELIVERY_SYSTEM = DVBT
368 FREQUENCY = 219500000
370 BANDWIDTH_HZ = 7000000
374 TRANSMISSION_MODE = 8K
375 GUARD_INTERVAL = 1/16
382 DELIVERY_SYSTEM = DVBT
383 FREQUENCY = 219500000
385 BANDWIDTH_HZ = 7000000
389 TRANSMISSION_MODE = 8K
390 GUARD_INTERVAL = 1/16
397 DELIVERY_SYSTEM = DVBT
398 FREQUENCY = 191625000
400 BANDWIDTH_HZ = 7000000
404 TRANSMISSION_MODE = 8K
405 GUARD_INTERVAL = 1/16
412 DELIVERY_SYSTEM = DVBT
413 FREQUENCY = 191625000
415 BANDWIDTH_HZ = 7000000
419 TRANSMISSION_MODE = 8K
420 GUARD_INTERVAL = 1/16
427 DELIVERY_SYSTEM = DVBT
428 FREQUENCY = 191625000
430 BANDWIDTH_HZ = 7000000
434 TRANSMISSION_MODE = 8K
435 GUARD_INTERVAL = 1/16
442 DELIVERY_SYSTEM = DVBT
443 FREQUENCY = 177500000
445 BANDWIDTH_HZ = 7000000
449 TRANSMISSION_MODE = 8K
457 DELIVERY_SYSTEM = DVBT
458 FREQUENCY = 177500000
460 BANDWIDTH_HZ = 7000000
464 TRANSMISSION_MODE = 8K
472 DELIVERY_SYSTEM = DVBT
473 FREQUENCY = 177500000
475 BANDWIDTH_HZ = 7000000
479 TRANSMISSION_MODE = 8K
487 DELIVERY_SYSTEM = DVBT
488 FREQUENCY = 177500000
490 BANDWIDTH_HZ = 7000000
494 TRANSMISSION_MODE = 8K
502 DELIVERY_SYSTEM = DVBT
503 FREQUENCY = 177500000
505 BANDWIDTH_HZ = 7000000
509 TRANSMISSION_MODE = 8K
517 DELIVERY_SYSTEM = DVBT
518 FREQUENCY = 177500000
520 BANDWIDTH_HZ = 7000000
524 TRANSMISSION_MODE = 8K
532 DELIVERY_SYSTEM = DVBT
533 FREQUENCY = 536500000
535 BANDWIDTH_HZ = 7000000
539 TRANSMISSION_MODE = 8K
547 DELIVERY_SYSTEM = DVBT
548 FREQUENCY = 536500000
550 BANDWIDTH_HZ = 7000000
554 TRANSMISSION_MODE = 8K
562 DELIVERY_SYSTEM = DVBT
563 FREQUENCY = 536500000
565 BANDWIDTH_HZ = 7000000
569 TRANSMISSION_MODE = 8K
577 DELIVERY_SYSTEM = DVBT
578 FREQUENCY = 536500000
580 BANDWIDTH_HZ = 7000000
584 TRANSMISSION_MODE = 8K
592 DELIVERY_SYSTEM = DVBT
593 FREQUENCY = 536500000
595 BANDWIDTH_HZ = 7000000
599 TRANSMISSION_MODE = 8K
607 DELIVERY_SYSTEM = DVBT
608 FREQUENCY = 536500000
610 BANDWIDTH_HZ = 7000000
614 TRANSMISSION_MODE = 8K