162306a36Sopenharmony_ci.. SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci==============================
462306a36Sopenharmony_ciUsing the Digital TV Framework
562306a36Sopenharmony_ci==============================
662306a36Sopenharmony_ci
762306a36Sopenharmony_ciIntroduction
862306a36Sopenharmony_ci~~~~~~~~~~~~
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ciOne significant difference between Digital TV and Analogue TV that the
1162306a36Sopenharmony_ciunwary (like myself) should consider is that, although the component
1262306a36Sopenharmony_cistructure of DVB-T cards are substantially similar to Analogue TV cards,
1362306a36Sopenharmony_cithey function in substantially different ways.
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciThe purpose of an Analogue TV is to receive and display an Analogue
1662306a36Sopenharmony_ciTelevision signal. An Analogue TV signal (otherwise known as composite
1762306a36Sopenharmony_civideo) is an analogue encoding of a sequence of image frames (25 frames
1862306a36Sopenharmony_ciper second in Europe) rasterised using an interlacing technique.
1962306a36Sopenharmony_ciInterlacing takes two fields to represent one frame. Therefore, an
2062306a36Sopenharmony_ciAnalogue TV card for a PC has the following purpose:
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci* Tune the receiver to receive a broadcast signal
2362306a36Sopenharmony_ci* demodulate the broadcast signal
2462306a36Sopenharmony_ci* demultiplex the analogue video signal and analogue audio
2562306a36Sopenharmony_ci  signal.
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci  .. note::
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci     some countries employ a digital audio signal
3062306a36Sopenharmony_ci     embedded within the modulated composite analogue signal -
3162306a36Sopenharmony_ci     using NICAM signaling.)
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci* digitize the analogue video signal and make the resulting datastream
3462306a36Sopenharmony_ci  available to the data bus.
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ciThe digital datastream from an Analogue TV card is generated by
3762306a36Sopenharmony_cicircuitry on the card and is often presented uncompressed. For a PAL TV
3862306a36Sopenharmony_cisignal encoded at a resolution of 768x576 24-bit color pixels over 25
3962306a36Sopenharmony_ciframes per second - a fair amount of data is generated and must be
4062306a36Sopenharmony_ciprocessed by the PC before it can be displayed on the video monitor
4162306a36Sopenharmony_ciscreen. Some Analogue TV cards for PCs have onboard MPEG2 encoders which
4262306a36Sopenharmony_cipermit the raw digital data stream to be presented to the PC in an
4362306a36Sopenharmony_ciencoded and compressed form - similar to the form that is used in
4462306a36Sopenharmony_ciDigital TV.
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ciThe purpose of a simple budget digital TV card (DVB-T,C or S) is to
4762306a36Sopenharmony_cisimply:
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci* Tune the received to receive a broadcast signal. * Extract the encoded
5062306a36Sopenharmony_ci  digital datastream from the broadcast signal.
5162306a36Sopenharmony_ci* Make the encoded digital datastream (MPEG2) available to the data bus.
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ciThe significant difference between the two is that the tuner on the
5462306a36Sopenharmony_cianalogue TV card spits out an Analogue signal, whereas the tuner on the
5562306a36Sopenharmony_cidigital TV card spits out a compressed encoded digital datastream. As
5662306a36Sopenharmony_cithe signal is already digitised, it is trivial to pass this datastream
5762306a36Sopenharmony_cito the PC databus with minimal additional processing and then extract
5862306a36Sopenharmony_cithe digital video and audio datastreams passing them to the appropriate
5962306a36Sopenharmony_cisoftware or hardware for decoding and viewing.
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ciGetting the card going
6262306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ciThe Device Driver API for DVB under Linux will the following
6562306a36Sopenharmony_cidevice nodes via the devfs filesystem:
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci* /dev/dvb/adapter0/demux0
6862306a36Sopenharmony_ci* /dev/dvb/adapter0/dvr0
6962306a36Sopenharmony_ci* /dev/dvb/adapter0/frontend0
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ciThe ``/dev/dvb/adapter0/dvr0`` device node is used to read the MPEG2
7262306a36Sopenharmony_ciData Stream and the ``/dev/dvb/adapter0/frontend0`` device node is used
7362306a36Sopenharmony_cito tune the frontend tuner module. The ``/dev/dvb/adapter0/demux0`` is
7462306a36Sopenharmony_ciused to control what programs will be received.
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ciDepending on the card's feature set, the Device Driver API could also
7762306a36Sopenharmony_ciexpose other device nodes:
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci* /dev/dvb/adapter0/ca0
8062306a36Sopenharmony_ci* /dev/dvb/adapter0/audio0
8162306a36Sopenharmony_ci* /dev/dvb/adapter0/net0
8262306a36Sopenharmony_ci* /dev/dvb/adapter0/osd0
8362306a36Sopenharmony_ci* /dev/dvb/adapter0/video0
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ciThe ``/dev/dvb/adapter0/ca0`` is used to decode encrypted channels. The
8662306a36Sopenharmony_ciother device nodes are found only on devices that use the av7110
8762306a36Sopenharmony_cidriver, with is now obsoleted, together with the extra API whose such
8862306a36Sopenharmony_cidevices use.
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ciReceiving a digital TV channel
9162306a36Sopenharmony_ci~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ciThis section attempts to explain how it works and how this affects the
9462306a36Sopenharmony_ciconfiguration of a Digital TV card.
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ciOn this example, we're considering tuning into DVB-T channels in
9762306a36Sopenharmony_ciAustralia, at the Melbourne region.
9862306a36Sopenharmony_ci
9962306a36Sopenharmony_ciThe frequencies broadcast by Mount Dandenong transmitters are,
10062306a36Sopenharmony_cicurrently:
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ciTable 1. Transponder Frequencies Mount Dandenong, Vic, Aus.
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ci===========	===========
10562306a36Sopenharmony_ciBroadcaster	Frequency
10662306a36Sopenharmony_ci===========	===========
10762306a36Sopenharmony_ciSeven		177.500 Mhz
10862306a36Sopenharmony_ciSBS		184.500 Mhz
10962306a36Sopenharmony_ciNine		191.625 Mhz
11062306a36Sopenharmony_ciTen		219.500 Mhz
11162306a36Sopenharmony_ciABC		226.500 Mhz
11262306a36Sopenharmony_ciChannel 31	557.625 Mhz
11362306a36Sopenharmony_ci===========	===========
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ciThe digital TV Scan utilities (like dvbv5-scan) have use a set of
11662306a36Sopenharmony_cicompiled-in defaults for various countries and regions. Those are
11762306a36Sopenharmony_cicurrently provided as a separate package, called dtv-scan-tables. It's
11862306a36Sopenharmony_cigit tree is located at LinuxTV.org:
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci    https://git.linuxtv.org/dtv-scan-tables.git/
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ciIf none of the tables there suit, you can specify a data file on the
12362306a36Sopenharmony_cicommand line which contains the transponder frequencies. Here is a
12462306a36Sopenharmony_cisample file for the above channel transponders, in the old "channel"
12562306a36Sopenharmony_ciformat::
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ci	# Data file for DVB scan program
12862306a36Sopenharmony_ci	#
12962306a36Sopenharmony_ci	# C Frequency SymbolRate FEC QAM
13062306a36Sopenharmony_ci	# S Frequency Polarisation SymbolRate FEC
13162306a36Sopenharmony_ci	# T Frequency Bandwidth FEC FEC2 QAM Mode Guard Hier
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci	T 177500000 7MHz AUTO AUTO QAM64 8k 1/16 NONE
13462306a36Sopenharmony_ci	T 184500000 7MHz AUTO AUTO QAM64 8k 1/8 NONE
13562306a36Sopenharmony_ci	T 191625000 7MHz AUTO AUTO QAM64 8k 1/16 NONE
13662306a36Sopenharmony_ci	T 219500000 7MHz AUTO AUTO QAM64 8k 1/16 NONE
13762306a36Sopenharmony_ci	T 226500000 7MHz AUTO AUTO QAM64 8k 1/16 NONE
13862306a36Sopenharmony_ci	T 557625000 7MHz AUTO AUTO QPSK 8k 1/16 NONE
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ciNowadays, we prefer to use a newer format, with is more verbose and easier
14162306a36Sopenharmony_cito understand. With the new format, the "Seven" channel transponder's
14262306a36Sopenharmony_cidata is represented by::
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ci	[Seven]
14562306a36Sopenharmony_ci		DELIVERY_SYSTEM = DVBT
14662306a36Sopenharmony_ci		FREQUENCY = 177500000
14762306a36Sopenharmony_ci		BANDWIDTH_HZ = 7000000
14862306a36Sopenharmony_ci		CODE_RATE_HP = AUTO
14962306a36Sopenharmony_ci		CODE_RATE_LP = AUTO
15062306a36Sopenharmony_ci		MODULATION = QAM/64
15162306a36Sopenharmony_ci		TRANSMISSION_MODE = 8K
15262306a36Sopenharmony_ci		GUARD_INTERVAL = 1/16
15362306a36Sopenharmony_ci		HIERARCHY = NONE
15462306a36Sopenharmony_ci		INVERSION = AUTO
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ciFor an updated version of the complete table, please see:
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ci    https://git.linuxtv.org/dtv-scan-tables.git/tree/dvb-t/au-Melbourne
15962306a36Sopenharmony_ci
16062306a36Sopenharmony_ciWhen the Digital TV scanning utility runs, it will output a file
16162306a36Sopenharmony_cicontaining the information for all the audio and video programs that
16262306a36Sopenharmony_ciexists into each channel's transponders which the card's frontend can
16362306a36Sopenharmony_cilock onto. (i.e. any whose signal is strong enough at your antenna).
16462306a36Sopenharmony_ci
16562306a36Sopenharmony_ciHere's the output of the dvbv5 tools from a channel scan took from
16662306a36Sopenharmony_ciMelburne::
16762306a36Sopenharmony_ci
16862306a36Sopenharmony_ci    [ABC HDTV]
16962306a36Sopenharmony_ci	    SERVICE_ID = 560
17062306a36Sopenharmony_ci	    VIDEO_PID = 2307
17162306a36Sopenharmony_ci	    AUDIO_PID = 0
17262306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
17362306a36Sopenharmony_ci	    FREQUENCY = 226500000
17462306a36Sopenharmony_ci	    INVERSION = OFF
17562306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
17662306a36Sopenharmony_ci	    CODE_RATE_HP = 3/4
17762306a36Sopenharmony_ci	    CODE_RATE_LP = 3/4
17862306a36Sopenharmony_ci	    MODULATION = QAM/64
17962306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
18062306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/16
18162306a36Sopenharmony_ci	    HIERARCHY = NONE
18262306a36Sopenharmony_ci
18362306a36Sopenharmony_ci    [ABC TV Melbourne]
18462306a36Sopenharmony_ci	    SERVICE_ID = 561
18562306a36Sopenharmony_ci	    VIDEO_PID = 512
18662306a36Sopenharmony_ci	    AUDIO_PID = 650
18762306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
18862306a36Sopenharmony_ci	    FREQUENCY = 226500000
18962306a36Sopenharmony_ci	    INVERSION = OFF
19062306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
19162306a36Sopenharmony_ci	    CODE_RATE_HP = 3/4
19262306a36Sopenharmony_ci	    CODE_RATE_LP = 3/4
19362306a36Sopenharmony_ci	    MODULATION = QAM/64
19462306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
19562306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/16
19662306a36Sopenharmony_ci	    HIERARCHY = NONE
19762306a36Sopenharmony_ci
19862306a36Sopenharmony_ci    [ABC TV 2]
19962306a36Sopenharmony_ci	    SERVICE_ID = 562
20062306a36Sopenharmony_ci	    VIDEO_PID = 512
20162306a36Sopenharmony_ci	    AUDIO_PID = 650
20262306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
20362306a36Sopenharmony_ci	    FREQUENCY = 226500000
20462306a36Sopenharmony_ci	    INVERSION = OFF
20562306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
20662306a36Sopenharmony_ci	    CODE_RATE_HP = 3/4
20762306a36Sopenharmony_ci	    CODE_RATE_LP = 3/4
20862306a36Sopenharmony_ci	    MODULATION = QAM/64
20962306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
21062306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/16
21162306a36Sopenharmony_ci	    HIERARCHY = NONE
21262306a36Sopenharmony_ci
21362306a36Sopenharmony_ci    [ABC TV 3]
21462306a36Sopenharmony_ci	    SERVICE_ID = 563
21562306a36Sopenharmony_ci	    VIDEO_PID = 512
21662306a36Sopenharmony_ci	    AUDIO_PID = 650
21762306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
21862306a36Sopenharmony_ci	    FREQUENCY = 226500000
21962306a36Sopenharmony_ci	    INVERSION = OFF
22062306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
22162306a36Sopenharmony_ci	    CODE_RATE_HP = 3/4
22262306a36Sopenharmony_ci	    CODE_RATE_LP = 3/4
22362306a36Sopenharmony_ci	    MODULATION = QAM/64
22462306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
22562306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/16
22662306a36Sopenharmony_ci	    HIERARCHY = NONE
22762306a36Sopenharmony_ci
22862306a36Sopenharmony_ci    [ABC TV 4]
22962306a36Sopenharmony_ci	    SERVICE_ID = 564
23062306a36Sopenharmony_ci	    VIDEO_PID = 512
23162306a36Sopenharmony_ci	    AUDIO_PID = 650
23262306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
23362306a36Sopenharmony_ci	    FREQUENCY = 226500000
23462306a36Sopenharmony_ci	    INVERSION = OFF
23562306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
23662306a36Sopenharmony_ci	    CODE_RATE_HP = 3/4
23762306a36Sopenharmony_ci	    CODE_RATE_LP = 3/4
23862306a36Sopenharmony_ci	    MODULATION = QAM/64
23962306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
24062306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/16
24162306a36Sopenharmony_ci	    HIERARCHY = NONE
24262306a36Sopenharmony_ci
24362306a36Sopenharmony_ci    [ABC DiG Radio]
24462306a36Sopenharmony_ci	    SERVICE_ID = 566
24562306a36Sopenharmony_ci	    VIDEO_PID = 0
24662306a36Sopenharmony_ci	    AUDIO_PID = 2311
24762306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
24862306a36Sopenharmony_ci	    FREQUENCY = 226500000
24962306a36Sopenharmony_ci	    INVERSION = OFF
25062306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
25162306a36Sopenharmony_ci	    CODE_RATE_HP = 3/4
25262306a36Sopenharmony_ci	    CODE_RATE_LP = 3/4
25362306a36Sopenharmony_ci	    MODULATION = QAM/64
25462306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
25562306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/16
25662306a36Sopenharmony_ci	    HIERARCHY = NONE
25762306a36Sopenharmony_ci
25862306a36Sopenharmony_ci    [TEN Digital]
25962306a36Sopenharmony_ci	    SERVICE_ID = 1585
26062306a36Sopenharmony_ci	    VIDEO_PID = 512
26162306a36Sopenharmony_ci	    AUDIO_PID = 650
26262306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
26362306a36Sopenharmony_ci	    FREQUENCY = 219500000
26462306a36Sopenharmony_ci	    INVERSION = OFF
26562306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
26662306a36Sopenharmony_ci	    CODE_RATE_HP = 3/4
26762306a36Sopenharmony_ci	    CODE_RATE_LP = 1/2
26862306a36Sopenharmony_ci	    MODULATION = QAM/64
26962306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
27062306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/16
27162306a36Sopenharmony_ci	    HIERARCHY = NONE
27262306a36Sopenharmony_ci
27362306a36Sopenharmony_ci    [TEN Digital 1]
27462306a36Sopenharmony_ci	    SERVICE_ID = 1586
27562306a36Sopenharmony_ci	    VIDEO_PID = 512
27662306a36Sopenharmony_ci	    AUDIO_PID = 650
27762306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
27862306a36Sopenharmony_ci	    FREQUENCY = 219500000
27962306a36Sopenharmony_ci	    INVERSION = OFF
28062306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
28162306a36Sopenharmony_ci	    CODE_RATE_HP = 3/4
28262306a36Sopenharmony_ci	    CODE_RATE_LP = 1/2
28362306a36Sopenharmony_ci	    MODULATION = QAM/64
28462306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
28562306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/16
28662306a36Sopenharmony_ci	    HIERARCHY = NONE
28762306a36Sopenharmony_ci
28862306a36Sopenharmony_ci    [TEN Digital 2]
28962306a36Sopenharmony_ci	    SERVICE_ID = 1587
29062306a36Sopenharmony_ci	    VIDEO_PID = 512
29162306a36Sopenharmony_ci	    AUDIO_PID = 650
29262306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
29362306a36Sopenharmony_ci	    FREQUENCY = 219500000
29462306a36Sopenharmony_ci	    INVERSION = OFF
29562306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
29662306a36Sopenharmony_ci	    CODE_RATE_HP = 3/4
29762306a36Sopenharmony_ci	    CODE_RATE_LP = 1/2
29862306a36Sopenharmony_ci	    MODULATION = QAM/64
29962306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
30062306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/16
30162306a36Sopenharmony_ci	    HIERARCHY = NONE
30262306a36Sopenharmony_ci
30362306a36Sopenharmony_ci    [TEN Digital 3]
30462306a36Sopenharmony_ci	    SERVICE_ID = 1588
30562306a36Sopenharmony_ci	    VIDEO_PID = 512
30662306a36Sopenharmony_ci	    AUDIO_PID = 650
30762306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
30862306a36Sopenharmony_ci	    FREQUENCY = 219500000
30962306a36Sopenharmony_ci	    INVERSION = OFF
31062306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
31162306a36Sopenharmony_ci	    CODE_RATE_HP = 3/4
31262306a36Sopenharmony_ci	    CODE_RATE_LP = 1/2
31362306a36Sopenharmony_ci	    MODULATION = QAM/64
31462306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
31562306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/16
31662306a36Sopenharmony_ci	    HIERARCHY = NONE
31762306a36Sopenharmony_ci
31862306a36Sopenharmony_ci    [TEN Digital]
31962306a36Sopenharmony_ci	    SERVICE_ID = 1589
32062306a36Sopenharmony_ci	    VIDEO_PID = 512
32162306a36Sopenharmony_ci	    AUDIO_PID = 650
32262306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
32362306a36Sopenharmony_ci	    FREQUENCY = 219500000
32462306a36Sopenharmony_ci	    INVERSION = OFF
32562306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
32662306a36Sopenharmony_ci	    CODE_RATE_HP = 3/4
32762306a36Sopenharmony_ci	    CODE_RATE_LP = 1/2
32862306a36Sopenharmony_ci	    MODULATION = QAM/64
32962306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
33062306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/16
33162306a36Sopenharmony_ci	    HIERARCHY = NONE
33262306a36Sopenharmony_ci
33362306a36Sopenharmony_ci    [TEN Digital 4]
33462306a36Sopenharmony_ci	    SERVICE_ID = 1590
33562306a36Sopenharmony_ci	    VIDEO_PID = 512
33662306a36Sopenharmony_ci	    AUDIO_PID = 650
33762306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
33862306a36Sopenharmony_ci	    FREQUENCY = 219500000
33962306a36Sopenharmony_ci	    INVERSION = OFF
34062306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
34162306a36Sopenharmony_ci	    CODE_RATE_HP = 3/4
34262306a36Sopenharmony_ci	    CODE_RATE_LP = 1/2
34362306a36Sopenharmony_ci	    MODULATION = QAM/64
34462306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
34562306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/16
34662306a36Sopenharmony_ci	    HIERARCHY = NONE
34762306a36Sopenharmony_ci
34862306a36Sopenharmony_ci    [TEN Digital]
34962306a36Sopenharmony_ci	    SERVICE_ID = 1591
35062306a36Sopenharmony_ci	    VIDEO_PID = 512
35162306a36Sopenharmony_ci	    AUDIO_PID = 650
35262306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
35362306a36Sopenharmony_ci	    FREQUENCY = 219500000
35462306a36Sopenharmony_ci	    INVERSION = OFF
35562306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
35662306a36Sopenharmony_ci	    CODE_RATE_HP = 3/4
35762306a36Sopenharmony_ci	    CODE_RATE_LP = 1/2
35862306a36Sopenharmony_ci	    MODULATION = QAM/64
35962306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
36062306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/16
36162306a36Sopenharmony_ci	    HIERARCHY = NONE
36262306a36Sopenharmony_ci
36362306a36Sopenharmony_ci    [TEN HD]
36462306a36Sopenharmony_ci	    SERVICE_ID = 1592
36562306a36Sopenharmony_ci	    VIDEO_PID = 514
36662306a36Sopenharmony_ci	    AUDIO_PID = 0
36762306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
36862306a36Sopenharmony_ci	    FREQUENCY = 219500000
36962306a36Sopenharmony_ci	    INVERSION = OFF
37062306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
37162306a36Sopenharmony_ci	    CODE_RATE_HP = 3/4
37262306a36Sopenharmony_ci	    CODE_RATE_LP = 1/2
37362306a36Sopenharmony_ci	    MODULATION = QAM/64
37462306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
37562306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/16
37662306a36Sopenharmony_ci	    HIERARCHY = NONE
37762306a36Sopenharmony_ci
37862306a36Sopenharmony_ci    [TEN Digital]
37962306a36Sopenharmony_ci	    SERVICE_ID = 1593
38062306a36Sopenharmony_ci	    VIDEO_PID = 512
38162306a36Sopenharmony_ci	    AUDIO_PID = 650
38262306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
38362306a36Sopenharmony_ci	    FREQUENCY = 219500000
38462306a36Sopenharmony_ci	    INVERSION = OFF
38562306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
38662306a36Sopenharmony_ci	    CODE_RATE_HP = 3/4
38762306a36Sopenharmony_ci	    CODE_RATE_LP = 1/2
38862306a36Sopenharmony_ci	    MODULATION = QAM/64
38962306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
39062306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/16
39162306a36Sopenharmony_ci	    HIERARCHY = NONE
39262306a36Sopenharmony_ci
39362306a36Sopenharmony_ci    [Nine Digital]
39462306a36Sopenharmony_ci	    SERVICE_ID = 1072
39562306a36Sopenharmony_ci	    VIDEO_PID = 513
39662306a36Sopenharmony_ci	    AUDIO_PID = 660
39762306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
39862306a36Sopenharmony_ci	    FREQUENCY = 191625000
39962306a36Sopenharmony_ci	    INVERSION = OFF
40062306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
40162306a36Sopenharmony_ci	    CODE_RATE_HP = 3/4
40262306a36Sopenharmony_ci	    CODE_RATE_LP = 1/2
40362306a36Sopenharmony_ci	    MODULATION = QAM/64
40462306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
40562306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/16
40662306a36Sopenharmony_ci	    HIERARCHY = NONE
40762306a36Sopenharmony_ci
40862306a36Sopenharmony_ci    [Nine Digital HD]
40962306a36Sopenharmony_ci	    SERVICE_ID = 1073
41062306a36Sopenharmony_ci	    VIDEO_PID = 512
41162306a36Sopenharmony_ci	    AUDIO_PID = 0
41262306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
41362306a36Sopenharmony_ci	    FREQUENCY = 191625000
41462306a36Sopenharmony_ci	    INVERSION = OFF
41562306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
41662306a36Sopenharmony_ci	    CODE_RATE_HP = 3/4
41762306a36Sopenharmony_ci	    CODE_RATE_LP = 1/2
41862306a36Sopenharmony_ci	    MODULATION = QAM/64
41962306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
42062306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/16
42162306a36Sopenharmony_ci	    HIERARCHY = NONE
42262306a36Sopenharmony_ci
42362306a36Sopenharmony_ci    [Nine Guide]
42462306a36Sopenharmony_ci	    SERVICE_ID = 1074
42562306a36Sopenharmony_ci	    VIDEO_PID = 514
42662306a36Sopenharmony_ci	    AUDIO_PID = 670
42762306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
42862306a36Sopenharmony_ci	    FREQUENCY = 191625000
42962306a36Sopenharmony_ci	    INVERSION = OFF
43062306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
43162306a36Sopenharmony_ci	    CODE_RATE_HP = 3/4
43262306a36Sopenharmony_ci	    CODE_RATE_LP = 1/2
43362306a36Sopenharmony_ci	    MODULATION = QAM/64
43462306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
43562306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/16
43662306a36Sopenharmony_ci	    HIERARCHY = NONE
43762306a36Sopenharmony_ci
43862306a36Sopenharmony_ci    [7 Digital]
43962306a36Sopenharmony_ci	    SERVICE_ID = 1328
44062306a36Sopenharmony_ci	    VIDEO_PID = 769
44162306a36Sopenharmony_ci	    AUDIO_PID = 770
44262306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
44362306a36Sopenharmony_ci	    FREQUENCY = 177500000
44462306a36Sopenharmony_ci	    INVERSION = OFF
44562306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
44662306a36Sopenharmony_ci	    CODE_RATE_HP = 2/3
44762306a36Sopenharmony_ci	    CODE_RATE_LP = 2/3
44862306a36Sopenharmony_ci	    MODULATION = QAM/64
44962306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
45062306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/8
45162306a36Sopenharmony_ci	    HIERARCHY = NONE
45262306a36Sopenharmony_ci
45362306a36Sopenharmony_ci    [7 Digital 1]
45462306a36Sopenharmony_ci	    SERVICE_ID = 1329
45562306a36Sopenharmony_ci	    VIDEO_PID = 769
45662306a36Sopenharmony_ci	    AUDIO_PID = 770
45762306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
45862306a36Sopenharmony_ci	    FREQUENCY = 177500000
45962306a36Sopenharmony_ci	    INVERSION = OFF
46062306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
46162306a36Sopenharmony_ci	    CODE_RATE_HP = 2/3
46262306a36Sopenharmony_ci	    CODE_RATE_LP = 2/3
46362306a36Sopenharmony_ci	    MODULATION = QAM/64
46462306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
46562306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/8
46662306a36Sopenharmony_ci	    HIERARCHY = NONE
46762306a36Sopenharmony_ci
46862306a36Sopenharmony_ci    [7 Digital 2]
46962306a36Sopenharmony_ci	    SERVICE_ID = 1330
47062306a36Sopenharmony_ci	    VIDEO_PID = 769
47162306a36Sopenharmony_ci	    AUDIO_PID = 770
47262306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
47362306a36Sopenharmony_ci	    FREQUENCY = 177500000
47462306a36Sopenharmony_ci	    INVERSION = OFF
47562306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
47662306a36Sopenharmony_ci	    CODE_RATE_HP = 2/3
47762306a36Sopenharmony_ci	    CODE_RATE_LP = 2/3
47862306a36Sopenharmony_ci	    MODULATION = QAM/64
47962306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
48062306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/8
48162306a36Sopenharmony_ci	    HIERARCHY = NONE
48262306a36Sopenharmony_ci
48362306a36Sopenharmony_ci    [7 Digital 3]
48462306a36Sopenharmony_ci	    SERVICE_ID = 1331
48562306a36Sopenharmony_ci	    VIDEO_PID = 769
48662306a36Sopenharmony_ci	    AUDIO_PID = 770
48762306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
48862306a36Sopenharmony_ci	    FREQUENCY = 177500000
48962306a36Sopenharmony_ci	    INVERSION = OFF
49062306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
49162306a36Sopenharmony_ci	    CODE_RATE_HP = 2/3
49262306a36Sopenharmony_ci	    CODE_RATE_LP = 2/3
49362306a36Sopenharmony_ci	    MODULATION = QAM/64
49462306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
49562306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/8
49662306a36Sopenharmony_ci	    HIERARCHY = NONE
49762306a36Sopenharmony_ci
49862306a36Sopenharmony_ci    [7 HD Digital]
49962306a36Sopenharmony_ci	    SERVICE_ID = 1332
50062306a36Sopenharmony_ci	    VIDEO_PID = 833
50162306a36Sopenharmony_ci	    AUDIO_PID = 834
50262306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
50362306a36Sopenharmony_ci	    FREQUENCY = 177500000
50462306a36Sopenharmony_ci	    INVERSION = OFF
50562306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
50662306a36Sopenharmony_ci	    CODE_RATE_HP = 2/3
50762306a36Sopenharmony_ci	    CODE_RATE_LP = 2/3
50862306a36Sopenharmony_ci	    MODULATION = QAM/64
50962306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
51062306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/8
51162306a36Sopenharmony_ci	    HIERARCHY = NONE
51262306a36Sopenharmony_ci
51362306a36Sopenharmony_ci    [7 Program Guide]
51462306a36Sopenharmony_ci	    SERVICE_ID = 1334
51562306a36Sopenharmony_ci	    VIDEO_PID = 865
51662306a36Sopenharmony_ci	    AUDIO_PID = 866
51762306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
51862306a36Sopenharmony_ci	    FREQUENCY = 177500000
51962306a36Sopenharmony_ci	    INVERSION = OFF
52062306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
52162306a36Sopenharmony_ci	    CODE_RATE_HP = 2/3
52262306a36Sopenharmony_ci	    CODE_RATE_LP = 2/3
52362306a36Sopenharmony_ci	    MODULATION = QAM/64
52462306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
52562306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/8
52662306a36Sopenharmony_ci	    HIERARCHY = NONE
52762306a36Sopenharmony_ci
52862306a36Sopenharmony_ci    [SBS HD]
52962306a36Sopenharmony_ci	    SERVICE_ID = 784
53062306a36Sopenharmony_ci	    VIDEO_PID = 102
53162306a36Sopenharmony_ci	    AUDIO_PID = 103
53262306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
53362306a36Sopenharmony_ci	    FREQUENCY = 536500000
53462306a36Sopenharmony_ci	    INVERSION = OFF
53562306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
53662306a36Sopenharmony_ci	    CODE_RATE_HP = 2/3
53762306a36Sopenharmony_ci	    CODE_RATE_LP = 2/3
53862306a36Sopenharmony_ci	    MODULATION = QAM/64
53962306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
54062306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/8
54162306a36Sopenharmony_ci	    HIERARCHY = NONE
54262306a36Sopenharmony_ci
54362306a36Sopenharmony_ci    [SBS DIGITAL 1]
54462306a36Sopenharmony_ci	    SERVICE_ID = 785
54562306a36Sopenharmony_ci	    VIDEO_PID = 161
54662306a36Sopenharmony_ci	    AUDIO_PID = 81
54762306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
54862306a36Sopenharmony_ci	    FREQUENCY = 536500000
54962306a36Sopenharmony_ci	    INVERSION = OFF
55062306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
55162306a36Sopenharmony_ci	    CODE_RATE_HP = 2/3
55262306a36Sopenharmony_ci	    CODE_RATE_LP = 2/3
55362306a36Sopenharmony_ci	    MODULATION = QAM/64
55462306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
55562306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/8
55662306a36Sopenharmony_ci	    HIERARCHY = NONE
55762306a36Sopenharmony_ci
55862306a36Sopenharmony_ci    [SBS DIGITAL 2]
55962306a36Sopenharmony_ci	    SERVICE_ID = 786
56062306a36Sopenharmony_ci	    VIDEO_PID = 162
56162306a36Sopenharmony_ci	    AUDIO_PID = 83
56262306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
56362306a36Sopenharmony_ci	    FREQUENCY = 536500000
56462306a36Sopenharmony_ci	    INVERSION = OFF
56562306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
56662306a36Sopenharmony_ci	    CODE_RATE_HP = 2/3
56762306a36Sopenharmony_ci	    CODE_RATE_LP = 2/3
56862306a36Sopenharmony_ci	    MODULATION = QAM/64
56962306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
57062306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/8
57162306a36Sopenharmony_ci	    HIERARCHY = NONE
57262306a36Sopenharmony_ci
57362306a36Sopenharmony_ci    [SBS EPG]
57462306a36Sopenharmony_ci	    SERVICE_ID = 787
57562306a36Sopenharmony_ci	    VIDEO_PID = 163
57662306a36Sopenharmony_ci	    AUDIO_PID = 85
57762306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
57862306a36Sopenharmony_ci	    FREQUENCY = 536500000
57962306a36Sopenharmony_ci	    INVERSION = OFF
58062306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
58162306a36Sopenharmony_ci	    CODE_RATE_HP = 2/3
58262306a36Sopenharmony_ci	    CODE_RATE_LP = 2/3
58362306a36Sopenharmony_ci	    MODULATION = QAM/64
58462306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
58562306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/8
58662306a36Sopenharmony_ci	    HIERARCHY = NONE
58762306a36Sopenharmony_ci
58862306a36Sopenharmony_ci    [SBS RADIO 1]
58962306a36Sopenharmony_ci	    SERVICE_ID = 798
59062306a36Sopenharmony_ci	    VIDEO_PID = 0
59162306a36Sopenharmony_ci	    AUDIO_PID = 201
59262306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
59362306a36Sopenharmony_ci	    FREQUENCY = 536500000
59462306a36Sopenharmony_ci	    INVERSION = OFF
59562306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
59662306a36Sopenharmony_ci	    CODE_RATE_HP = 2/3
59762306a36Sopenharmony_ci	    CODE_RATE_LP = 2/3
59862306a36Sopenharmony_ci	    MODULATION = QAM/64
59962306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
60062306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/8
60162306a36Sopenharmony_ci	    HIERARCHY = NONE
60262306a36Sopenharmony_ci
60362306a36Sopenharmony_ci    [SBS RADIO 2]
60462306a36Sopenharmony_ci	    SERVICE_ID = 799
60562306a36Sopenharmony_ci	    VIDEO_PID = 0
60662306a36Sopenharmony_ci	    AUDIO_PID = 202
60762306a36Sopenharmony_ci	    DELIVERY_SYSTEM = DVBT
60862306a36Sopenharmony_ci	    FREQUENCY = 536500000
60962306a36Sopenharmony_ci	    INVERSION = OFF
61062306a36Sopenharmony_ci	    BANDWIDTH_HZ = 7000000
61162306a36Sopenharmony_ci	    CODE_RATE_HP = 2/3
61262306a36Sopenharmony_ci	    CODE_RATE_LP = 2/3
61362306a36Sopenharmony_ci	    MODULATION = QAM/64
61462306a36Sopenharmony_ci	    TRANSMISSION_MODE = 8K
61562306a36Sopenharmony_ci	    GUARD_INTERVAL = 1/8
61662306a36Sopenharmony_ci	    HIERARCHY = NONE
617