aboutsummaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authorMark Purcell <msp@debian.org>2008-06-22 11:00:40 +1000
committeretobi <git@e-tobi.net>2013-09-03 09:48:42 +0200
commit891c51ff368ed700dec6025eeb47ce4d96f76418 (patch)
tree3729664829e4faa691d403274f38eb10890b533c /util
parent1c6e1f28f54ec2606c23936c1d8689f2be55a86c (diff)
parentab959d7b4194715870128e616b8e29d4a101e488 (diff)
downloadlinux-dvb-apps-891c51ff368ed700dec6025eeb47ce4d96f76418.tar.gz
Imported Debian patch 1.1.1+rev1207-1debian/1.1.1+rev1207-1
Diffstat (limited to 'util')
-rw-r--r--util/Makefile24
-rw-r--r--util/av7110_loadkeys/Makefile69
-rw-r--r--util/av7110_loadkeys/README15
-rw-r--r--util/av7110_loadkeys/activy.rcmm1
-rw-r--r--util/av7110_loadkeys/av7110_loadkeys.c48
-rw-r--r--util/av7110_loadkeys/evtest.c177
-rw-r--r--util/av7110_loadkeys/galaxis.rcmm3
-rw-r--r--util/av7110_loadkeys/generate-keynames.sh37
-rw-r--r--util/av7110_loadkeys/hauppauge.rc51
-rw-r--r--util/av7110_loadkeys/hauppauge2.rc540
-rw-r--r--util/av7110_loadkeys/hauppauge_grey.rc51
-rw-r--r--util/av7110_loadkeys/input_fake.h15
-rw-r--r--util/av7110_loadkeys/philips1358.rc56
-rw-r--r--util/dib3000-watch/Makefile13
-rw-r--r--util/dib3000-watch/README.dib3000-watch29
-rw-r--r--util/dib3000-watch/dib-i2c.h43
-rw-r--r--util/dib3000-watch/dib3000-watch.c296
-rw-r--r--util/dib3000-watch/dib3000-watch.h46
-rw-r--r--util/dib3000-watch/dib3000.h56
-rw-r--r--util/dib3000-watch/make-i2c-dev6
-rw-r--r--util/dst-utils/Makefile13
-rw-r--r--util/dst-utils/dst_test.c258
-rw-r--r--util/dvbdate/Makefile28
-rw-r--r--util/dvbdate/dvbdate.c288
-rw-r--r--util/dvbnet/Makefile32
-rw-r--r--util/dvbnet/dvbnet.c106
-rw-r--r--[-rwxr-xr-x]util/dvbnet/net_start.pl1
-rw-r--r--[-rwxr-xr-x]util/dvbnet/net_start.sh0
-rw-r--r--util/dvbnet/version.h.in1
-rw-r--r--util/dvbscan/Makefile22
-rw-r--r--util/dvbscan/dvbscan.c370
-rw-r--r--util/dvbscan/dvbscan.h136
-rw-r--r--util/dvbscan/dvbscan_atsc.c30
-rw-r--r--util/dvbscan/dvbscan_dvb.c30
-rw-r--r--util/dvbscan/dvbscan_structutils.c99
-rw-r--r--util/dvbtraffic/Makefile17
-rw-r--r--util/dvbtraffic/dvbtraffic.c110
-rw-r--r--util/femon/Makefile15
-rw-r--r--util/femon/femon.c175
-rw-r--r--util/gnutv/Makefile21
-rw-r--r--util/gnutv/gnutv.c365
-rw-r--r--util/gnutv/gnutv.h37
-rw-r--r--util/gnutv/gnutv_ca.c404
-rw-r--r--util/gnutv/gnutv_ca.h40
-rw-r--r--util/gnutv/gnutv_data.c459
-rw-r--r--util/gnutv/gnutv_data.h39
-rw-r--r--util/gnutv/gnutv_dvb.c376
-rw-r--r--util/gnutv/gnutv_dvb.h44
-rw-r--r--util/lib/Makefile20
-rw-r--r--util/scan/Makefile46
-rw-r--r--util/scan/README26
-rw-r--r--util/scan/atsc/us-ATSC-center-frequencies-8VSB1
-rw-r--r--util/scan/atsc/us-NTSC-center-frequencies-8VSB1
-rw-r--r--util/scan/atsc/us-NY-TWC-NYC106
-rw-r--r--util/scan/atsc_psip_section.c62
-rw-r--r--util/scan/atsc_psip_section.h60
-rw-r--r--util/scan/atsc_psip_section.pl76
-rw-r--r--util/scan/diseqc.c5
-rw-r--r--util/scan/diseqc.h1
-rw-r--r--util/scan/dump-vdr.c13
-rw-r--r--util/scan/dump-vdr.h1
-rw-r--r--util/scan/dump-zap.c1
-rw-r--r--util/scan/dump-zap.h1
-rw-r--r--util/scan/dvb-c/at-Innsbruck8
-rw-r--r--util/scan/dvb-c/at-Liwest31
-rw-r--r--util/scan/dvb-c/at-SalzburgAG9
-rw-r--r--util/scan/dvb-c/be-IN.DI-Integan16
-rw-r--r--util/scan/dvb-c/ch-Video20005
-rw-r--r--util/scan/dvb-c/ch-Zuerich-cablecom3
-rw-r--r--util/scan/dvb-c/de-Berlin1
-rw-r--r--util/scan/dvb-c/de-Kabel_BW16
-rw-r--r--util/scan/dvb-c/de-Muenchen24
-rw-r--r--util/scan/dvb-c/de-Primacom29
-rw-r--r--util/scan/dvb-c/de-Unitymedia35
-rw-r--r--util/scan/dvb-c/de-iesy19
-rw-r--r--util/scan/dvb-c/de-neftv23
-rw-r--r--util/scan/dvb-c/dk-Odense10
-rw-r--r--util/scan/dvb-c/es-Euskaltel19
-rw-r--r--util/scan/dvb-c/fi-3ktv23
-rw-r--r--util/scan/dvb-c/fi-HTV4
-rw-r--r--util/scan/dvb-c/fi-Joensuu-Tikka13
-rw-r--r--util/scan/dvb-c/fi-TTV4
-rw-r--r--util/scan/dvb-c/fi-Turku17
-rw-r--r--util/scan/dvb-c/fi-jkl10
-rw-r--r--util/scan/dvb-c/fi-sonera12
-rw-r--r--util/scan/dvb-c/fr-noos-numericable41
-rw-r--r--util/scan/dvb-c/lu-Ettelbruck-ACE20
-rw-r--r--util/scan/dvb-c/nl-Casema3
-rw-r--r--util/scan/dvb-c/no-Oslo-CanalDigital13
-rw-r--r--util/scan/dvb-c/se-comhem3
-rw-r--r--util/scan/dvb-h/README3
-rw-r--r--util/scan/dvb-h/fi-Helsinki2
-rw-r--r--util/scan/dvb-h/fi-Oulu2
-rw-r--r--util/scan/dvb-h/fi-Oulu-Nokia-devel4
-rw-r--r--util/scan/dvb-h/fi-Turku2
-rw-r--r--util/scan/dvb-s/ABS1-75.0E10
-rw-r--r--util/scan/dvb-s/AMC1-103w5
-rw-r--r--util/scan/dvb-s/AMC2-85w6
-rw-r--r--util/scan/dvb-s/AMC3-87w10
-rw-r--r--util/scan/dvb-s/AMC4-101w10
-rw-r--r--util/scan/dvb-s/AMC5-79w5
-rw-r--r--util/scan/dvb-s/AMC6-72w44
-rw-r--r--util/scan/dvb-s/AMC9-83w18
-rw-r--r--util/scan/dvb-s/Amazonas-61.0W54
-rw-r--r--util/scan/dvb-s/Amos-4w70
-rw-r--r--util/scan/dvb-s/Anik-F1-107.3W7
-rw-r--r--util/scan/dvb-s/AsiaSat3S_C-105.5E122
-rw-r--r--util/scan/dvb-s/Astra-28.2E186
-rw-r--r--util/scan/dvb-s/Atlantic-Bird-1-12.5W20
-rw-r--r--util/scan/dvb-s/BrasilSat-B1-75.0W11
-rw-r--r--util/scan/dvb-s/BrasilSat-B2-65.0W34
-rw-r--r--util/scan/dvb-s/BrasilSat-B3-84.0W85
-rw-r--r--util/scan/dvb-s/BrasilSat-B4-70.0W39
-rw-r--r--util/scan/dvb-s/Estrela-do-Sul-63.0W27
-rw-r--r--util/scan/dvb-s/Eurobird1-28.5E5
-rw-r--r--util/scan/dvb-s/EutelsatW2-16E59
-rw-r--r--util/scan/dvb-s/Express-3A-11.0W4
-rw-r--r--util/scan/dvb-s/ExpressAM1-40.0E5
-rw-r--r--util/scan/dvb-s/ExpressAM2-80.0E35
-rw-r--r--util/scan/dvb-s/ExpressAM22-53.0E9
-rw-r--r--util/scan/dvb-s/Galaxy10R-123w10
-rw-r--r--util/scan/dvb-s/Galaxy11-91w49
-rw-r--r--util/scan/dvb-s/Galaxy25-97w19
-rw-r--r--util/scan/dvb-s/Galaxy26-93w58
-rw-r--r--util/scan/dvb-s/Galaxy27-129w4
-rw-r--r--util/scan/dvb-s/Galaxy28-89w41
-rw-r--r--util/scan/dvb-s/Galaxy3C-95w4
-rw-r--r--util/scan/dvb-s/Hispasat-30.0W37
-rw-r--r--util/scan/dvb-s/Hotbird-13.0E93
-rw-r--r--util/scan/dvb-s/IA5-97w18
-rw-r--r--util/scan/dvb-s/IA6-93w61
-rw-r--r--util/scan/dvb-s/IA7-129w4
-rw-r--r--util/scan/dvb-s/IA8-89w34
-rw-r--r--util/scan/dvb-s/Intel4-72.0E6
-rw-r--r--util/scan/dvb-s/Intel904-60.0E13
-rw-r--r--util/scan/dvb-s/Intelsat-1002-1.0W5
-rw-r--r--util/scan/dvb-s/Intelsat-11-43.0W4
-rw-r--r--util/scan/dvb-s/Intelsat-1R-45.0W44
-rw-r--r--util/scan/dvb-s/Intelsat-3R-43.0W35
-rw-r--r--util/scan/dvb-s/Intelsat-6B-43.0W17
-rw-r--r--util/scan/dvb-s/Intelsat-705-50.0W7
-rw-r--r--util/scan/dvb-s/Intelsat-707-53.0W5
-rw-r--r--util/scan/dvb-s/Intelsat-805-55.5W67
-rw-r--r--util/scan/dvb-s/Intelsat-9-58.0W58
-rw-r--r--util/scan/dvb-s/Intelsat-903-34.5W7
-rw-r--r--util/scan/dvb-s/Intelsat-905-24.5W9
-rw-r--r--util/scan/dvb-s/Intelsat-907-27.5W9
-rw-r--r--util/scan/dvb-s/NSS-10-37.5W12
-rw-r--r--util/scan/dvb-s/NSS-7-22.0W25
-rw-r--r--util/scan/dvb-s/NSS-806-40.5W108
-rw-r--r--util/scan/dvb-s/Nahuel-1-71.8W11
-rw-r--r--util/scan/dvb-s/Nilesat101+102-7.0W36
-rw-r--r--util/scan/dvb-s/OptusC1-156E20
-rw-r--r--util/scan/dvb-s/SBS6-74w4
-rw-r--r--util/scan/dvb-s/Satmex-5-116.8W72
-rw-r--r--util/scan/dvb-s/Satmex-6-113.0W19
-rw-r--r--util/scan/dvb-s/Telstar-12-15.0W32
-rw-r--r--util/scan/dvb-s/Turksat-42.0E1
-rw-r--r--util/scan/dvb-s/Yamal201-90.0E48
-rw-r--r--util/scan/dvb-t/at-Offical25
-rw-r--r--util/scan/dvb-t/au-Adelaide (renamed from util/scan/dvb-t/au-sydney_north_shore)6
-rw-r--r--util/scan/dvb-t/au-Brisbane12
-rw-r--r--util/scan/dvb-t/au-Cairns12
-rw-r--r--util/scan/dvb-t/au-Canberra-Black-Mt12
-rw-r--r--util/scan/dvb-t/au-Darwin8
-rw-r--r--util/scan/dvb-t/au-GoldCoast21
-rw-r--r--util/scan/dvb-t/au-Hobart12
-rw-r--r--util/scan/dvb-t/au-Mackay14
-rw-r--r--util/scan/dvb-t/au-Melbourne12
-rw-r--r--util/scan/dvb-t/au-Melbourne-Upwey12
-rw-r--r--util/scan/dvb-t/au-MidNorthCoast22
-rw-r--r--util/scan/dvb-t/au-Newcastle12
-rw-r--r--util/scan/dvb-t/au-Perth12
-rw-r--r--util/scan/dvb-t/au-Perth_Roleystone12
-rw-r--r--util/scan/dvb-t/au-SpencerGulf8
-rwxr-xr-xutil/scan/dvb-t/au-SunshineCoast12
-rw-r--r--util/scan/dvb-t/au-Sydney_Kings_Cross14
-rw-r--r--util/scan/dvb-t/au-Sydney_North_Shore16
-rw-r--r--util/scan/dvb-t/au-Tamworth38
-rw-r--r--util/scan/dvb-t/au-Townsville12
-rw-r--r--util/scan/dvb-t/au-WaggaWagga12
-rw-r--r--util/scan/dvb-t/au-Wollongong40
-rw-r--r--util/scan/dvb-t/au-canberra2
-rw-r--r--util/scan/dvb-t/be-Libramont10
-rw-r--r--util/scan/dvb-t/be-Schoten3
-rw-r--r--util/scan/dvb-t/be-St_Pieters_Leeuw3
-rw-r--r--util/scan/dvb-t/be-Tournai3
-rw-r--r--util/scan/dvb-t/ch-All29
-rw-r--r--util/scan/dvb-t/ch-Citycable14
-rw-r--r--util/scan/dvb-t/cz-Brno4
-rw-r--r--util/scan/dvb-t/cz-Domazlice3
-rw-r--r--util/scan/dvb-t/cz-Ostrava3
-rw-r--r--util/scan/dvb-t/cz-Praha5
-rw-r--r--util/scan/dvb-t/de-Aachen_Stadt6
-rw-r--r--util/scan/dvb-t/de-Berlin12
-rw-r--r--util/scan/dvb-t/de-Bielefeld7
-rw-r--r--util/scan/dvb-t/de-Braunschweig7
-rw-r--r--util/scan/dvb-t/de-Bremen9
-rw-r--r--util/scan/dvb-t/de-Brocken_Magdeburg7
-rw-r--r--util/scan/dvb-t/de-Chemnitz5
-rw-r--r--util/scan/dvb-t/de-Dresden5
-rw-r--r--util/scan/dvb-t/de-Erfurt-Weimar5
-rw-r--r--util/scan/dvb-t/de-Frankfurt41
-rw-r--r--util/scan/dvb-t/de-Freiburg5
-rw-r--r--util/scan/dvb-t/de-HalleSaale6
-rw-r--r--util/scan/dvb-t/de-Hamburg15
-rw-r--r--util/scan/dvb-t/de-Hannover7
-rw-r--r--util/scan/dvb-t/de-Kassel31
-rw-r--r--util/scan/dvb-t/de-Kiel8
-rw-r--r--util/scan/dvb-t/de-Koeln-Bonn9
-rw-r--r--util/scan/dvb-t/de-Leipzig5
-rw-r--r--util/scan/dvb-t/de-Loerrach19
-rw-r--r--util/scan/dvb-t/de-Luebeck7
-rw-r--r--util/scan/dvb-t/de-Muenchen10
-rw-r--r--util/scan/dvb-t/de-Nuernberg8
-rw-r--r--util/scan/dvb-t/de-Osnabrueck5
-rw-r--r--util/scan/dvb-t/de-Ostbayern11
-rw-r--r--util/scan/dvb-t/de-Ravensburg8
-rw-r--r--util/scan/dvb-t/de-Rostock4
-rw-r--r--util/scan/dvb-t/de-Ruhrgebiet19
-rw-r--r--util/scan/dvb-t/de-Schwerin4
-rw-r--r--util/scan/dvb-t/de-Stuttgart6
-rw-r--r--util/scan/dvb-t/de-Wuerzburg7
-rw-r--r--util/scan/dvb-t/dk-All16
-rw-r--r--util/scan/dvb-t/es-Albacete8
-rw-r--r--util/scan/dvb-t/es-Alfabia8
-rw-r--r--util/scan/dvb-t/es-Alicante9
-rw-r--r--util/scan/dvb-t/es-Alpicat8
-rw-r--r--util/scan/dvb-t/es-Asturias8
-rw-r--r--util/scan/dvb-t/es-Bilbao6
-rw-r--r--util/scan/dvb-t/es-Carceres10
-rw-r--r--util/scan/dvb-t/es-Collserola12
-rw-r--r--util/scan/dvb-t/es-Donostia14
-rw-r--r--util/scan/dvb-t/es-Las_Palmas8
-rw-r--r--util/scan/dvb-t/es-Lugo9
-rw-r--r--util/scan/dvb-t/es-Madrid8
-rw-r--r--util/scan/dvb-t/es-Malaga9
-rw-r--r--util/scan/dvb-t/es-Mussara8
-rw-r--r--util/scan/dvb-t/es-Rocacorba6
-rw-r--r--util/scan/dvb-t/es-Santander7
-rw-r--r--util/scan/dvb-t/es-Sevilla8
-rw-r--r--util/scan/dvb-t/es-Valladolid7
-rw-r--r--util/scan/dvb-t/es-Vilamarxant4
-rw-r--r--util/scan/dvb-t/es-Zaragoza7
-rw-r--r--util/scan/dvb-t/fi-Aanekoski6
-rw-r--r--util/scan/dvb-t/fi-Aanekoski_Konginkangas5
-rw-r--r--util/scan/dvb-t/fi-Ahtari4
-rw-r--r--util/scan/dvb-t/fi-Ala-Vuokki4
-rw-r--r--util/scan/dvb-t/fi-Alajarvi5
-rw-r--r--util/scan/dvb-t/fi-Ammansaari4
-rw-r--r--util/scan/dvb-t/fi-Anjalankoski6
-rw-r--r--util/scan/dvb-t/fi-Enontekio_Ahovaara_Raattama4
-rw-r--r--util/scan/dvb-t/fi-Espoo5
-rw-r--r--util/scan/dvb-t/fi-Eurajoki6
-rw-r--r--util/scan/dvb-t/fi-Fiskars6
-rw-r--r--util/scan/dvb-t/fi-Haapavesi6
-rw-r--r--util/scan/dvb-t/fi-Hameenkyro_Kyroskoski5
-rw-r--r--util/scan/dvb-t/fi-Hameenlinna_Painokangas5
-rw-r--r--util/scan/dvb-t/fi-Hanko5
-rw-r--r--util/scan/dvb-t/fi-Hartola4
-rw-r--r--util/scan/dvb-t/fi-Heinavesi4
-rw-r--r--util/scan/dvb-t/fi-Heinola6
-rw-r--r--util/scan/dvb-t/fi-Hetta4
-rw-r--r--util/scan/dvb-t/fi-Houtskari5
-rw-r--r--util/scan/dvb-t/fi-Hyrynsalmi4
-rw-r--r--util/scan/dvb-t/fi-Hyrynsalmi_Kyparavaara4
-rw-r--r--util/scan/dvb-t/fi-Hyrynsalmi_Paljakka4
-rw-r--r--util/scan/dvb-t/fi-Hyvinkaa_Musta-Mannisto5
-rw-r--r--util/scan/dvb-t/fi-Ii_Raiskio4
-rw-r--r--util/scan/dvb-t/fi-Iisalmi4
-rw-r--r--util/scan/dvb-t/fi-Ikaalinen5
-rw-r--r--util/scan/dvb-t/fi-Ikaalinen_Riitiala5
-rw-r--r--util/scan/dvb-t/fi-Inari4
-rw-r--r--util/scan/dvb-t/fi-Ivalo_Saarineitamovaara4
-rw-r--r--util/scan/dvb-t/fi-Jalasjarvi5
-rw-r--r--util/scan/dvb-t/fi-Jamsa_Kaipola5
-rw-r--r--util/scan/dvb-t/fi-Jamsa_Kuorevesi_Halli5
-rw-r--r--util/scan/dvb-t/fi-Jamsa_Matkosvuori6
-rw-r--r--util/scan/dvb-t/fi-Jamsa_Ouninpohja4
-rw-r--r--util/scan/dvb-t/fi-Jamsankoski5
-rw-r--r--util/scan/dvb-t/fi-Joensuu_Vestinkallio4
-rw-r--r--util/scan/dvb-t/fi-Joroinen_Puukkola4
-rw-r--r--util/scan/dvb-t/fi-Joutsa_Lankia5
-rw-r--r--util/scan/dvb-t/fi-Joutseno6
-rw-r--r--util/scan/dvb-t/fi-Juntusranta4
-rw-r--r--util/scan/dvb-t/fi-Juupajoki_Kopsamo4
-rw-r--r--util/scan/dvb-t/fi-Jyvaskyla6
-rw-r--r--util/scan/dvb-t/fi-Jyvaskylan_mlk_Vaajakoski4
-rw-r--r--util/scan/dvb-t/fi-Kaavi_Sivakkavaara_Luikonlahti4
-rw-r--r--util/scan/dvb-t/fi-Kajaani_Pollyvaara4
-rw-r--r--util/scan/dvb-t/fi-Kalajoki4
-rw-r--r--util/scan/dvb-t/fi-Kangaslampi5
-rw-r--r--util/scan/dvb-t/fi-Kangasniemi_Turkinmaki5
-rw-r--r--util/scan/dvb-t/fi-Kankaanpaa5
-rw-r--r--util/scan/dvb-t/fi-Karigasniemi4
-rw-r--r--util/scan/dvb-t/fi-Karkkila6
-rw-r--r--util/scan/dvb-t/fi-Karstula4
-rw-r--r--util/scan/dvb-t/fi-Karvia5
-rw-r--r--util/scan/dvb-t/fi-Kaunispaa4
-rw-r--r--util/scan/dvb-t/fi-Kemijarvi_Suomutunturi4
-rw-r--r--util/scan/dvb-t/fi-Kerimaki6
-rw-r--r--util/scan/dvb-t/fi-Keuruu6
-rw-r--r--util/scan/dvb-t/fi-Keuruu_Haapamaki5
-rw-r--r--util/scan/dvb-t/fi-Kihnio5
-rw-r--r--util/scan/dvb-t/fi-Kiihtelysvaara4
-rw-r--r--util/scan/dvb-t/fi-Kilpisjarvi4
-rw-r--r--util/scan/dvb-t/fi-Kittila_Sirkka_Levitunturi4
-rw-r--r--util/scan/dvb-t/fi-Kolari_Vuolittaja4
-rw-r--r--util/scan/dvb-t/fi-Koli6
-rw-r--r--util/scan/dvb-t/fi-Korpilahti_Vaarunvuori5
-rw-r--r--util/scan/dvb-t/fi-Korppoo5
-rw-r--r--util/scan/dvb-t/fi-Kruunupyy6
-rw-r--r--util/scan/dvb-t/fi-Kuhmo_Iivantiira4
-rw-r--r--util/scan/dvb-t/fi-Kuhmo_Lentiira (renamed from util/scan/dvb-t/se-Gavle)4
-rw-r--r--util/scan/dvb-t/fi-Kuhmoinen5
-rw-r--r--util/scan/dvb-t/fi-Kuhmoinen_Harjunsalmi5
-rw-r--r--util/scan/dvb-t/fi-Kuhmoinen_Puukkoinen4
-rw-r--r--util/scan/dvb-t/fi-Kuopio6
-rw-r--r--util/scan/dvb-t/fi-Kustavi_Viherlahti5
-rw-r--r--util/scan/dvb-t/fi-Kuttanen4
-rw-r--r--util/scan/dvb-t/fi-Kyyjarvi_Noposenaho4
-rw-r--r--util/scan/dvb-t/fi-Lahti6
-rw-r--r--util/scan/dvb-t/fi-Lapua6
-rw-r--r--util/scan/dvb-t/fi-Laukaa5
-rw-r--r--util/scan/dvb-t/fi-Laukaa_Vihtavuori5
-rw-r--r--util/scan/dvb-t/fi-Lavia_Lavianjarvi4
-rw-r--r--util/scan/dvb-t/fi-Lieksa_Vieki5
-rw-r--r--util/scan/dvb-t/fi-Lohja6
-rw-r--r--util/scan/dvb-t/fi-Loimaa5
-rw-r--r--util/scan/dvb-t/fi-Luhanka5
-rw-r--r--util/scan/dvb-t/fi-Luopioinen5
-rw-r--r--util/scan/dvb-t/fi-Mantta5
-rw-r--r--util/scan/dvb-t/fi-Mantyharju4
-rw-r--r--util/scan/dvb-t/fi-Mikkeli6
-rw-r--r--util/scan/dvb-t/fi-Muonio_Olostunturi4
-rw-r--r--util/scan/dvb-t/fi-Nilsia5
-rw-r--r--util/scan/dvb-t/fi-Nilsia_Keski-Siikajarvi4
-rw-r--r--util/scan/dvb-t/fi-Nilsia_Pisa4
-rw-r--r--util/scan/dvb-t/fi-Nokia6
-rw-r--r--util/scan/dvb-t/fi-Nokia_Siuro_Linnavuori5
-rw-r--r--util/scan/dvb-t/fi-Nummi-Pusula_Hyonola5
-rw-r--r--util/scan/dvb-t/fi-Nurmes_Porokyla4
-rw-r--r--util/scan/dvb-t/fi-Orivesi_Langelmaki_Talviainen4
-rw-r--r--util/scan/dvb-t/fi-Oulu6
-rw-r--r--util/scan/dvb-t/fi-Padasjoki5
-rw-r--r--util/scan/dvb-t/fi-Padasjoki_Arrakoski5
-rw-r--r--util/scan/dvb-t/fi-Paltamo_Kivesvaara4
-rw-r--r--util/scan/dvb-t/fi-Parikkala4
-rw-r--r--util/scan/dvb-t/fi-Parkano5
-rw-r--r--util/scan/dvb-t/fi-Pello4
-rw-r--r--util/scan/dvb-t/fi-Pello_Ratasvaara4
-rw-r--r--util/scan/dvb-t/fi-Perho5
-rw-r--r--util/scan/dvb-t/fi-Pernaja5
-rw-r--r--util/scan/dvb-t/fi-Pieksamaki_Halkokumpu4
-rw-r--r--util/scan/dvb-t/fi-Pihtipudas5
-rw-r--r--util/scan/dvb-t/fi-Porvoo_Suomenkyla5
-rw-r--r--util/scan/dvb-t/fi-Posio4
-rw-r--r--util/scan/dvb-t/fi-Pudasjarvi4
-rw-r--r--util/scan/dvb-t/fi-Pudasjarvi_Iso-Syote4
-rw-r--r--util/scan/dvb-t/fi-Pudasjarvi_Kangasvaara4
-rw-r--r--util/scan/dvb-t/fi-Puolanka5
-rw-r--r--util/scan/dvb-t/fi-Pyhatunturi4
-rw-r--r--util/scan/dvb-t/fi-Pyhavuori5
-rw-r--r--util/scan/dvb-t/fi-Pylkonmaki_Karankajarvi4
-rw-r--r--util/scan/dvb-t/fi-Raahe_Mestauskallio5
-rw-r--r--util/scan/dvb-t/fi-Raahe_Piehinki4
-rw-r--r--util/scan/dvb-t/fi-Ranua_Haasionmaa4
-rw-r--r--util/scan/dvb-t/fi-Ranua_Leppiaho4
-rw-r--r--util/scan/dvb-t/fi-Rautavaara_Angervikko5
-rw-r--r--util/scan/dvb-t/fi-Rautjarvi_Simpele4
-rw-r--r--util/scan/dvb-t/fi-Ristijarvi4
-rw-r--r--util/scan/dvb-t/fi-Rovaniemi5
-rw-r--r--util/scan/dvb-t/fi-Rovaniemi_Ala-Nampa_Yli-Nampa_Rantalaki4
-rw-r--r--util/scan/dvb-t/fi-Rovaniemi_Kaihuanvaara4
-rw-r--r--util/scan/dvb-t/fi-Rovaniemi_Karhuvaara_Marrasjarvi4
-rw-r--r--util/scan/dvb-t/fi-Rovaniemi_Marasenkallio4
-rw-r--r--util/scan/dvb-t/fi-Rovaniemi_Meltaus_Sorviselka4
-rw-r--r--util/scan/dvb-t/fi-Rovaniemi_Sonka4
-rw-r--r--util/scan/dvb-t/fi-Ruka5
-rw-r--r--util/scan/dvb-t/fi-Ruovesi_Storminiemi5
-rw-r--r--util/scan/dvb-t/fi-Saarijarvi5
-rw-r--r--util/scan/dvb-t/fi-Saarijarvi_Kalmari4
-rw-r--r--util/scan/dvb-t/fi-Saarijarvi_Mahlu4
-rw-r--r--util/scan/dvb-t/fi-Salla_Hirvasvaara4
-rw-r--r--util/scan/dvb-t/fi-Salla_Ihistysjanka4
-rw-r--r--util/scan/dvb-t/fi-Salla_Naruska4
-rw-r--r--util/scan/dvb-t/fi-Salla_Saija4
-rw-r--r--util/scan/dvb-t/fi-Salla_Sallatunturi4
-rw-r--r--util/scan/dvb-t/fi-Salo_Isokyla6
-rw-r--r--util/scan/dvb-t/fi-Savukoski_Martti_Haarahonganmaa4
-rw-r--r--util/scan/dvb-t/fi-Savukoski_Tanhua4
-rw-r--r--util/scan/dvb-t/fi-Siilinjarvi5
-rw-r--r--util/scan/dvb-t/fi-Sipoo_Galthagen5
-rw-r--r--util/scan/dvb-t/fi-Sodankyla_Pittiovaara4
-rw-r--r--util/scan/dvb-t/fi-Sulkava_Vaatalanmaki4
-rw-r--r--util/scan/dvb-t/fi-Sysma_Liikola5
-rw-r--r--util/scan/dvb-t/fi-Taivalkoski4
-rw-r--r--util/scan/dvb-t/fi-Taivalkoski_Taivalvaara4
-rw-r--r--util/scan/dvb-t/fi-Tammela6
-rw-r--r--util/scan/dvb-t/fi-Tammisaari5
-rw-r--r--util/scan/dvb-t/fi-Tampere4
-rw-r--r--util/scan/dvb-t/fi-Tampere_Pyynikki6
-rw-r--r--util/scan/dvb-t/fi-Tervola5
-rw-r--r--util/scan/dvb-t/fi-Turku5
-rw-r--r--util/scan/dvb-t/fi-Utsjoki4
-rw-r--r--util/scan/dvb-t/fi-Utsjoki_Nuorgam_Njallavaara4
-rw-r--r--util/scan/dvb-t/fi-Utsjoki_Nuorgam_raja4
-rw-r--r--util/scan/dvb-t/fi-Utsjoki_Outakoski4
-rw-r--r--util/scan/dvb-t/fi-Utsjoki_Polvarniemi4
-rw-r--r--util/scan/dvb-t/fi-Utsjoki_Rovisuvanto4
-rw-r--r--util/scan/dvb-t/fi-Utsjoki_Tenola4
-rw-r--r--util/scan/dvb-t/fi-Uusikaupunki_Orivo5
-rw-r--r--util/scan/dvb-t/fi-Vaala4
-rw-r--r--util/scan/dvb-t/fi-Vaasa5
-rw-r--r--util/scan/dvb-t/fi-Valtimo4
-rw-r--r--util/scan/dvb-t/fi-Vammala_Jyranvuori5
-rw-r--r--util/scan/dvb-t/fi-Vammala_Roismala4
-rw-r--r--util/scan/dvb-t/fi-Vammala_Savi4
-rw-r--r--util/scan/dvb-t/fi-Vantaa_Hakunila6
-rw-r--r--util/scan/dvb-t/fi-Varpaisjarvi_Honkamaki5
-rw-r--r--util/scan/dvb-t/fi-Virrat_Lappavuori5
-rw-r--r--util/scan/dvb-t/fi-Vuokatti6
-rw-r--r--util/scan/dvb-t/fi-Vuotso4
-rw-r--r--util/scan/dvb-t/fi-Ylitornio_Ainiovaara5
-rw-r--r--util/scan/dvb-t/fi-Ylitornio_Raanujarvi4
-rw-r--r--util/scan/dvb-t/fi-Yllas4
-rw-r--r--util/scan/dvb-t/fr-Abbeville25
-rw-r--r--util/scan/dvb-t/fr-Agen25
-rw-r--r--util/scan/dvb-t/fr-Ajaccio25
-rw-r--r--util/scan/dvb-t/fr-Albi25
-rw-r--r--util/scan/dvb-t/fr-Alençon25
-rw-r--r--util/scan/dvb-t/fr-Ales25
-rw-r--r--util/scan/dvb-t/fr-Ales-Bouquet25
-rw-r--r--util/scan/dvb-t/fr-Amiens25
-rw-r--r--util/scan/dvb-t/fr-Angers25
-rw-r--r--util/scan/dvb-t/fr-Annecy25
-rw-r--r--util/scan/dvb-t/fr-Arcachon25
-rw-r--r--util/scan/dvb-t/fr-Argenton25
-rw-r--r--util/scan/dvb-t/fr-Aubenas25
-rw-r--r--util/scan/dvb-t/fr-Aurillac25
-rw-r--r--util/scan/dvb-t/fr-Autun25
-rw-r--r--util/scan/dvb-t/fr-Auxerre25
-rw-r--r--util/scan/dvb-t/fr-Avignon25
-rw-r--r--util/scan/dvb-t/fr-BarleDuc25
-rw-r--r--util/scan/dvb-t/fr-Bastia25
-rw-r--r--util/scan/dvb-t/fr-Bayonne25
-rw-r--r--util/scan/dvb-t/fr-Bergerac25
-rw-r--r--util/scan/dvb-t/fr-Besançon25
-rw-r--r--util/scan/dvb-t/fr-Bordeaux9
-rw-r--r--util/scan/dvb-t/fr-Bordeaux-Bouliac25
-rw-r--r--util/scan/dvb-t/fr-Bordeaux-Cauderan25
-rw-r--r--util/scan/dvb-t/fr-Boulogne25
-rw-r--r--util/scan/dvb-t/fr-Bourges25
-rw-r--r--util/scan/dvb-t/fr-Brest9
-rw-r--r--util/scan/dvb-t/fr-Brive25
-rw-r--r--util/scan/dvb-t/fr-Caen25
-rw-r--r--util/scan/dvb-t/fr-Caen-Pincon25
-rw-r--r--util/scan/dvb-t/fr-Cannes25
-rw-r--r--util/scan/dvb-t/fr-Carcassonne25
-rw-r--r--util/scan/dvb-t/fr-Chambery30
-rw-r--r--util/scan/dvb-t/fr-Chartres25
-rw-r--r--util/scan/dvb-t/fr-Chennevieres25
-rw-r--r--util/scan/dvb-t/fr-Cherbourg25
-rw-r--r--util/scan/dvb-t/fr-ClermontFerrand25
-rw-r--r--util/scan/dvb-t/fr-Cluses30
-rw-r--r--util/scan/dvb-t/fr-Dieppe25
-rw-r--r--util/scan/dvb-t/fr-Dijon30
-rw-r--r--util/scan/dvb-t/fr-Dunkerque30
-rw-r--r--util/scan/dvb-t/fr-Epinal25
-rw-r--r--util/scan/dvb-t/fr-Evreux25
-rw-r--r--util/scan/dvb-t/fr-Forbach30
-rw-r--r--util/scan/dvb-t/fr-Gex30
-rw-r--r--util/scan/dvb-t/fr-Grenoble25
-rw-r--r--util/scan/dvb-t/fr-Gueret25
-rw-r--r--util/scan/dvb-t/fr-Hirson30
-rw-r--r--util/scan/dvb-t/fr-Hyeres25
-rw-r--r--util/scan/dvb-t/fr-LaRochelle25
-rw-r--r--util/scan/dvb-t/fr-Laval25
-rw-r--r--util/scan/dvb-t/fr-LeCreusot25
-rw-r--r--util/scan/dvb-t/fr-LeHavre25
-rw-r--r--util/scan/dvb-t/fr-LeMans21
-rw-r--r--util/scan/dvb-t/fr-LePuyEnVelay25
-rw-r--r--util/scan/dvb-t/fr-Lille30
-rw-r--r--util/scan/dvb-t/fr-Lille-Lambersart25
-rw-r--r--util/scan/dvb-t/fr-LilleT213
-rw-r--r--util/scan/dvb-t/fr-Limoges25
-rw-r--r--util/scan/dvb-t/fr-Longwy30
-rw-r--r--util/scan/dvb-t/fr-Lorient25
-rw-r--r--util/scan/dvb-t/fr-Lyon-Fourviere19
-rw-r--r--util/scan/dvb-t/fr-Lyon-Pilat17
-rw-r--r--util/scan/dvb-t/fr-Macon30
-rw-r--r--util/scan/dvb-t/fr-Mantes25
-rw-r--r--util/scan/dvb-t/fr-Marseille6
-rw-r--r--util/scan/dvb-t/fr-Maubeuge30
-rw-r--r--util/scan/dvb-t/fr-Meaux25
-rw-r--r--util/scan/dvb-t/fr-Mende25
-rw-r--r--util/scan/dvb-t/fr-Menton25
-rw-r--r--util/scan/dvb-t/fr-Metz30
-rw-r--r--util/scan/dvb-t/fr-Mezieres30
-rw-r--r--util/scan/dvb-t/fr-Montlucon25
-rw-r--r--util/scan/dvb-t/fr-Montpellier25
-rw-r--r--util/scan/dvb-t/fr-Mulhouse26
-rw-r--r--util/scan/dvb-t/fr-Nancy25
-rw-r--r--util/scan/dvb-t/fr-Nantes8
-rw-r--r--util/scan/dvb-t/fr-NeufchatelEnBray25
-rw-r--r--util/scan/dvb-t/fr-Nice25
-rw-r--r--util/scan/dvb-t/fr-Niort7
-rw-r--r--util/scan/dvb-t/fr-Orleans17
-rw-r--r--util/scan/dvb-t/fr-Paris19
-rw-r--r--util/scan/dvb-t/fr-Parthenay25
-rw-r--r--util/scan/dvb-t/fr-Perpignan25
-rw-r--r--util/scan/dvb-t/fr-Poitiers25
-rw-r--r--util/scan/dvb-t/fr-Privas25
-rw-r--r--util/scan/dvb-t/fr-Reims25
-rw-r--r--util/scan/dvb-t/fr-Rennes7
-rw-r--r--util/scan/dvb-t/fr-Roanne25
-rw-r--r--util/scan/dvb-t/fr-Rouen8
-rw-r--r--util/scan/dvb-t/fr-SaintEtienne25
-rw-r--r--util/scan/dvb-t/fr-SaintRaphael25
-rw-r--r--util/scan/dvb-t/fr-Sannois25
-rw-r--r--util/scan/dvb-t/fr-Sarrebourg30
-rw-r--r--util/scan/dvb-t/fr-Sens25
-rw-r--r--util/scan/dvb-t/fr-Strasbourg30
-rw-r--r--util/scan/dvb-t/fr-Toulon25
-rw-r--r--util/scan/dvb-t/fr-Toulouse8
-rw-r--r--util/scan/dvb-t/fr-Toulouse-Midi25
-rw-r--r--util/scan/dvb-t/fr-Tours25
-rw-r--r--util/scan/dvb-t/fr-Troyes25
-rw-r--r--util/scan/dvb-t/fr-Ussel25
-rw-r--r--util/scan/dvb-t/fr-Valence25
-rw-r--r--util/scan/dvb-t/fr-Valenciennes30
-rw-r--r--util/scan/dvb-t/fr-Vannes7
-rw-r--r--util/scan/dvb-t/fr-Villebon22
-rw-r--r--util/scan/dvb-t/fr-Vittel30
-rw-r--r--util/scan/dvb-t/fr-Voiron30
-rw-r--r--util/scan/dvb-t/gr-Athens3
-rw-r--r--util/scan/dvb-t/hr-Zagreb3
-rw-r--r--util/scan/dvb-t/is-Reykjavik13
-rw-r--r--util/scan/dvb-t/it-Aosta21
-rw-r--r--util/scan/dvb-t/it-Bari18
-rw-r--r--util/scan/dvb-t/it-Bologna28
-rw-r--r--util/scan/dvb-t/it-Bolzano5
-rw-r--r--util/scan/dvb-t/it-Cagliari31
-rw-r--r--util/scan/dvb-t/it-Caivano14
-rw-r--r--util/scan/dvb-t/it-Catania27
-rw-r--r--util/scan/dvb-t/it-Conero8
-rw-r--r--util/scan/dvb-t/it-Firenze20
-rw-r--r--util/scan/dvb-t/it-Genova12
-rw-r--r--util/scan/dvb-t/it-Livorno15
-rw-r--r--util/scan/dvb-t/it-Milano15
-rw-r--r--util/scan/dvb-t/it-Pagnacco27
-rw-r--r--util/scan/dvb-t/it-Palermo23
-rw-r--r--util/scan/dvb-t/it-Pisa18
-rw-r--r--util/scan/dvb-t/it-Roma16
-rw-r--r--util/scan/dvb-t/it-Sassari33
-rw-r--r--util/scan/dvb-t/it-Torino13
-rw-r--r--util/scan/dvb-t/it-Trieste23
-rw-r--r--util/scan/dvb-t/it-Varese16
-rw-r--r--util/scan/dvb-t/it-Venezia19
-rw-r--r--util/scan/dvb-t/lu-All5
-rw-r--r--util/scan/dvb-t/lv-Riga25
-rw-r--r--util/scan/dvb-t/nl-All38
-rw-r--r--util/scan/dvb-t/nl-AlphenaandenRijn7
-rw-r--r--util/scan/dvb-t/nl-Randstad7
-rw-r--r--util/scan/dvb-t/nz-Waiatarua13
-rw-r--r--util/scan/dvb-t/pl-Wroclaw3
-rw-r--r--util/scan/dvb-t/se-Alvdalen_Brunnsberg3
-rw-r--r--util/scan/dvb-t/se-Alvdalsasen3
-rw-r--r--util/scan/dvb-t/se-Alvsbyn7
-rw-r--r--util/scan/dvb-t/se-Amot3
-rw-r--r--util/scan/dvb-t/se-Ange_Snoberg6
-rw-r--r--util/scan/dvb-t/se-Angebo3
-rw-r--r--util/scan/dvb-t/se-Angelholm_Vegeholm7
-rw-r--r--util/scan/dvb-t/se-Arvidsjaur_Jultrask6
-rw-r--r--util/scan/dvb-t/se-Aspeboda3
-rw-r--r--util/scan/dvb-t/se-Atvidaberg4
-rw-r--r--util/scan/dvb-t/se-Avesta_Krylbo4
-rw-r--r--util/scan/dvb-t/se-Backefors7
-rw-r--r--util/scan/dvb-t/se-Bankeryd4
-rw-r--r--util/scan/dvb-t/se-Bergsjo_Balleberget3
-rw-r--r--util/scan/dvb-t/se-Bergvik3
-rw-r--r--util/scan/dvb-t/se-Bollebygd4
-rw-r--r--util/scan/dvb-t/se-Bollnas6
-rw-r--r--util/scan/dvb-t/se-Boras_Dalsjofors7
-rw-r--r--util/scan/dvb-t/se-Boras_Sjobo4
-rw-r--r--util/scan/dvb-t/se-Borlange_Idkerberget6
-rw-r--r--util/scan/dvb-t/se-Borlange_Nygardarna4
-rw-r--r--util/scan/dvb-t/se-Bottnaryd_Ryd3
-rw-r--r--util/scan/dvb-t/se-Bromsebro4
-rw-r--r--util/scan/dvb-t/se-Bruzaholm3
-rw-r--r--util/scan/dvb-t/se-Byxelkrok4
-rw-r--r--util/scan/dvb-t/se-Dadran3
-rw-r--r--util/scan/dvb-t/se-Dalfors3
-rw-r--r--util/scan/dvb-t/se-Dalstuga3
-rw-r--r--util/scan/dvb-t/se-Degerfors6
-rw-r--r--util/scan/dvb-t/se-Delary3
-rw-r--r--util/scan/dvb-t/se-Djura3
-rw-r--r--util/scan/dvb-t/se-Drevdagen3
-rw-r--r--util/scan/dvb-t/se-Duvnas3
-rw-r--r--util/scan/dvb-t/se-Duvnas_Basna3
-rw-r--r--util/scan/dvb-t/se-Edsbyn3
-rw-r--r--util/scan/dvb-t/se-Emmaboda_Balshult6
-rw-r--r--util/scan/dvb-t/se-Enviken4
-rw-r--r--util/scan/dvb-t/se-Fagersta4
-rw-r--r--util/scan/dvb-t/se-Falerum_Centrum3
-rw-r--r--util/scan/dvb-t/se-Falun_Lovberget6
-rw-r--r--util/scan/dvb-t/se-Farila3
-rw-r--r--util/scan/dvb-t/se-Faro_Ajkerstrask4
-rw-r--r--util/scan/dvb-t/se-Farosund_Bunge7
-rw-r--r--util/scan/dvb-t/se-Filipstad_Klockarhojden6
-rw-r--r--util/scan/dvb-t/se-Finnveden6
-rw-r--r--util/scan/dvb-t/se-Fredriksberg3
-rw-r--r--util/scan/dvb-t/se-Fritsla3
-rw-r--r--util/scan/dvb-t/se-Furudal3
-rw-r--r--util/scan/dvb-t/se-Gallivare6
-rw-r--r--util/scan/dvb-t/se-Garpenberg_Kuppgarden3
-rw-r--r--util/scan/dvb-t/se-Gavle_Skogmur6
-rw-r--r--util/scan/dvb-t/se-Gnarp3
-rw-r--r--util/scan/dvb-t/se-Gnesta4
-rw-r--r--util/scan/dvb-t/se-Gnosjo_Marieholm3
-rw-r--r--util/scan/dvb-t/se-Goteborg_Brudaremossen7
-rw-r--r--util/scan/dvb-t/se-Goteborg_Slattadamm7
-rw-r--r--util/scan/dvb-t/se-Gullbrandstorp3
-rw-r--r--util/scan/dvb-t/se-Gunnarsbo3
-rw-r--r--util/scan/dvb-t/se-Gusum3
-rw-r--r--util/scan/dvb-t/se-Hagfors_Varmullsasen6
-rw-r--r--util/scan/dvb-t/se-Hallaryd3
-rw-r--r--util/scan/dvb-t/se-Hallbo3
-rw-r--r--util/scan/dvb-t/se-Halmstad_Hamnen4
-rw-r--r--util/scan/dvb-t/se-Halmstad_Oskarstrom6
-rw-r--r--util/scan/dvb-t/se-Harnosand_Harnon6
-rw-r--r--util/scan/dvb-t/se-Hassela3
-rw-r--r--util/scan/dvb-t/se-Havdhem7
-rw-r--r--util/scan/dvb-t/se-Hedemora3
-rw-r--r--util/scan/dvb-t/se-Helsingborg_Olympia7
-rw-r--r--util/scan/dvb-t/se-Hennan3
-rw-r--r--util/scan/dvb-t/se-Hestra_Aspas3
-rw-r--r--util/scan/dvb-t/se-Hjo_Grevback3
-rw-r--r--util/scan/dvb-t/se-Hofors6
-rw-r--r--util/scan/dvb-t/se-Hogfors3
-rw-r--r--util/scan/dvb-t/se-Hogsby_Virstad4
-rw-r--r--util/scan/dvb-t/se-Holsbybrunn_Holsbyholm3
-rw-r--r--util/scan/dvb-t/se-Horby_Sallerup7
-rw-r--r--util/scan/dvb-t/se-Horken3
-rw-r--r--util/scan/dvb-t/se-Hudiksvall_Forsa6
-rw-r--r--util/scan/dvb-t/se-Hudiksvall_Galgberget4
-rw-r--r--util/scan/dvb-t/se-Huskvarna3
-rw-r--r--util/scan/dvb-t/se-Idre3
-rw-r--r--util/scan/dvb-t/se-Ingatorp3
-rw-r--r--util/scan/dvb-t/se-Ingvallsbenning3
-rw-r--r--util/scan/dvb-t/se-Irevik4
-rw-r--r--util/scan/dvb-t/se-Jamjo4
-rw-r--r--util/scan/dvb-t/se-Jarnforsen3
-rw-r--r--util/scan/dvb-t/se-Jarvso3
-rw-r--r--util/scan/dvb-t/se-Jokkmokk_Tjalmejaure6
-rw-r--r--util/scan/dvb-t/se-Jonkoping_Bondberget6
-rw-r--r--util/scan/dvb-t/se-Kalix6
-rw-r--r--util/scan/dvb-t/se-Karbole3
-rw-r--r--util/scan/dvb-t/se-Karlsborg_Vaberget3
-rw-r--r--util/scan/dvb-t/se-Karlshamn6
-rw-r--r--util/scan/dvb-t/se-Karlskrona_Vamo6
-rw-r--r--util/scan/dvb-t/se-Karlstad_Sormon9
-rw-r--r--util/scan/dvb-t/se-Kaxholmen_Vistakulle3
-rw-r--r--util/scan/dvb-t/se-Kinnastrom3
-rw-r--r--util/scan/dvb-t/se-Kiruna_Kirunavaara6
-rw-r--r--util/scan/dvb-t/se-Kisa7
-rw-r--r--util/scan/dvb-t/se-Knared3
-rw-r--r--util/scan/dvb-t/se-Kopmanholmen6
-rw-r--r--util/scan/dvb-t/se-Kopparberg4
-rw-r--r--util/scan/dvb-t/se-Kramfors_Lugnvik6
-rw-r--r--util/scan/dvb-t/se-Kristinehamn_Utsiktsberget6
-rw-r--r--util/scan/dvb-t/se-Kungsater3
-rw-r--r--util/scan/dvb-t/se-Kungsberget_GI3
-rw-r--r--util/scan/dvb-t/se-Langshyttan3
-rw-r--r--util/scan/dvb-t/se-Langshyttan_Engelsfors3
-rw-r--r--util/scan/dvb-t/se-Leksand_Karingberget3
-rw-r--r--util/scan/dvb-t/se-Lerdala3
-rw-r--r--util/scan/dvb-t/se-Lilltjara_Digerberget3
-rw-r--r--util/scan/dvb-t/se-Limedsforsen3
-rw-r--r--util/scan/dvb-t/se-Lindshammar_Ramkvilla3
-rw-r--r--util/scan/dvb-t/se-Linkoping_Vattentornet7
-rw-r--r--util/scan/dvb-t/se-Ljugarn4
-rw-r--r--util/scan/dvb-t/se-Loffstrand6
-rw-r--r--util/scan/dvb-t/se-Lonneberga4
-rw-r--r--util/scan/dvb-t/se-Lorstrand3
-rw-r--r--util/scan/dvb-t/se-Ludvika_Bjorkasen4
-rw-r--r--util/scan/dvb-t/se-Lumsheden_Trekanten3
-rw-r--r--util/scan/dvb-t/se-Lycksele_Knaften6
-rw-r--r--util/scan/dvb-t/se-Mahult3
-rw-r--r--util/scan/dvb-t/se-Malmo_Jagersro7
-rw-r--r--util/scan/dvb-t/se-Malung4
-rw-r--r--util/scan/dvb-t/se-Mariannelund3
-rw-r--r--util/scan/dvb-t/se-Markaryd_Hualtet4
-rw-r--r--util/scan/dvb-t/se-Matfors6
-rw-r--r--util/scan/dvb-t/se-Molnbo_Tallstugan2
-rw-r--r--util/scan/dvb-t/se-Molndal_Vasterberget7
-rw-r--r--util/scan/dvb-t/se-Mora_Eldris6
-rw-r--r--util/scan/dvb-t/se-Motala_Ervasteby7
-rw-r--r--util/scan/dvb-t/se-Mullsjo_Torestorp4
-rw-r--r--util/scan/dvb-t/se-Nassjo6
-rw-r--r--util/scan/dvb-t/se-Navekvarn3
-rw-r--r--util/scan/dvb-t/se-Norrahammar3
-rw-r--r--util/scan/dvb-t/se-Norrkoping_Krokek7
-rw-r--r--util/scan/dvb-t/se-Norrtalje_Sodra_Bergen7
-rw-r--r--util/scan/dvb-t/se-Nykoping3
-rw-r--r--util/scan/dvb-t/se-Orebro_Lockhyttan7
-rw-r--r--util/scan/dvb-t/se-Ornskoldsvik_As6
-rw-r--r--util/scan/dvb-t/se-Oskarshamn6
-rw-r--r--util/scan/dvb-t/se-Ostersund_Brattasen7
-rw-r--r--util/scan/dvb-t/se-Osthammar_Valo7
-rw-r--r--util/scan/dvb-t/se-Overkalix6
-rw-r--r--util/scan/dvb-t/se-Oxberg3
-rw-r--r--util/scan/dvb-t/se-Pajala6
-rw-r--r--util/scan/dvb-t/se-Paulistom3
-rw-r--r--util/scan/dvb-t/se-Rattvik3
-rw-r--r--util/scan/dvb-t/se-Rengsjo3
-rw-r--r--util/scan/dvb-t/se-Rorbacksnas3
-rw-r--r--util/scan/dvb-t/se-Sagmyra3
-rw-r--r--util/scan/dvb-t/se-Salen3
-rw-r--r--util/scan/dvb-t/se-Salfjallet3
-rw-r--r--util/scan/dvb-t/se-Sarna_Mickeltemplet3
-rw-r--r--util/scan/dvb-t/se-Satila3
-rw-r--r--util/scan/dvb-t/se-Saxdalen3
-rw-r--r--util/scan/dvb-t/se-Siljansnas_Uvberget3
-rw-r--r--util/scan/dvb-t/se-Skarstad3
-rw-r--r--util/scan/dvb-t/se-Skattungbyn3
-rw-r--r--util/scan/dvb-t/se-Skelleftea6
-rw-r--r--util/scan/dvb-t/se-Skene_Nycklarberget3
-rw-r--r--util/scan/dvb-t/se-Skovde7
-rw-r--r--util/scan/dvb-t/se-Smedjebacken_Uvberget6
-rw-r--r--util/scan/dvb-t/se-Soderhamn4
-rw-r--r--util/scan/dvb-t/se-Soderkoping4
-rw-r--r--util/scan/dvb-t/se-Sodertalje_Ragnhildsborg7
-rw-r--r--util/scan/dvb-t/se-Solleftea_Hallsta6
-rw-r--r--util/scan/dvb-t/se-Solleftea_Multra6
-rw-r--r--util/scan/dvb-t/se-Sorsjon3
-rw-r--r--util/scan/dvb-t/se-Stockholm_Marieberg7
-rw-r--r--util/scan/dvb-t/se-Stockholm_Nacka8
-rw-r--r--util/scan/dvb-t/se-Stora_Skedvi3
-rw-r--r--util/scan/dvb-t/se-Storfjaten3
-rw-r--r--util/scan/dvb-t/se-Storuman6
-rw-r--r--util/scan/dvb-t/se-Stromstad7
-rw-r--r--util/scan/dvb-t/se-Styrsjobo3
-rw-r--r--util/scan/dvb-t/se-Sundborn3
-rw-r--r--util/scan/dvb-t/se-Sundsbruk6
-rw-r--r--util/scan/dvb-t/se-Sundsvall_S_Stadsberget7
-rw-r--r--util/scan/dvb-t/se-Sunne_Blabarskullen6
-rw-r--r--util/scan/dvb-t/se-Svartnas3
-rw-r--r--util/scan/dvb-t/se-Sveg_Brickan6
-rw-r--r--util/scan/dvb-t/se-Taberg3
-rw-r--r--util/scan/dvb-t/se-Tandadalen3
-rw-r--r--util/scan/dvb-t/se-Tasjo6
-rw-r--r--util/scan/dvb-t/se-Tollsjo3
-rw-r--r--util/scan/dvb-t/se-Torsby_Bada6
-rw-r--r--util/scan/dvb-t/se-Tranas_Bredkarr4
-rw-r--r--util/scan/dvb-t/se-Tranemo3
-rw-r--r--util/scan/dvb-t/se-Transtrand_Bolheden4
-rw-r--r--util/scan/dvb-t/se-Traryd_Betas4
-rw-r--r--util/scan/dvb-t/se-Trollhattan7
-rw-r--r--util/scan/dvb-t/se-Trosa4
-rw-r--r--util/scan/dvb-t/se-Tystberga3
-rw-r--r--util/scan/dvb-t/se-Uddevalla_Herrestad7
-rw-r--r--util/scan/dvb-t/se-Ullared3
-rw-r--r--util/scan/dvb-t/se-Ulricehamn4
-rw-r--r--util/scan/dvb-t/se-Ulvshyttan_Porjus3
-rw-r--r--util/scan/dvb-t/se-Uppsala_Rickomberga3
-rw-r--r--util/scan/dvb-t/se-Uppsala_Vedyxa7
-rw-r--r--util/scan/dvb-t/se-Vaddo_Elmsta4
-rw-r--r--util/scan/dvb-t/se-Valdemarsvik4
-rw-r--r--util/scan/dvb-t/se-Vannas_Granlundsberget6
-rw-r--r--util/scan/dvb-t/se-Vansbro_Hummelberget3
-rw-r--r--util/scan/dvb-t/se-Varberg_Grimeton6
-rw-r--r--util/scan/dvb-t/se-Vasteras_Lillharad7
-rw-r--r--util/scan/dvb-t/se-Vastervik_Farhult6
-rw-r--r--util/scan/dvb-t/se-Vaxbo3
-rw-r--r--util/scan/dvb-t/se-Vessigebro3
-rw-r--r--util/scan/dvb-t/se-Vetlanda_Nye3
-rw-r--r--util/scan/dvb-t/se-Vikmanshyttan3
-rw-r--r--util/scan/dvb-t/se-Virserum6
-rw-r--r--util/scan/dvb-t/se-Visby_Follingbo7
-rw-r--r--util/scan/dvb-t/se-Visby_Hamnen7
-rw-r--r--util/scan/dvb-t/se-Visingso3
-rw-r--r--util/scan/dvb-t/se-Vislanda_Nydala6
-rw-r--r--util/scan/dvb-t/se-Voxna3
-rw-r--r--util/scan/dvb-t/se-Ystad_Metallgatan7
-rw-r--r--util/scan/dvb-t/se-Yttermalung3
-rw-r--r--util/scan/dvb-t/sk-BanskaBystrica4
-rw-r--r--util/scan/dvb-t/sk-Bratislava4
-rw-r--r--util/scan/dvb-t/sk-Kosice4
-rw-r--r--util/scan/dvb-t/tw-Kaohsiung6
-rw-r--r--util/scan/dvb-t/tw-Taipei7
-rw-r--r--util/scan/dvb-t/uk-Aberdare10
-rw-r--r--util/scan/dvb-t/uk-Angus10
-rw-r--r--util/scan/dvb-t/uk-BeaconHill10
-rw-r--r--util/scan/dvb-t/uk-Belmont10
-rw-r--r--util/scan/dvb-t/uk-Bilsdale10
-rw-r--r--util/scan/dvb-t/uk-BlackHill11
-rw-r--r--util/scan/dvb-t/uk-Blaenplwyf10
-rw-r--r--util/scan/dvb-t/uk-BluebellHill10
-rw-r--r--util/scan/dvb-t/uk-Bressay10
-rw-r--r--util/scan/dvb-t/uk-BrierleyHill10
-rw-r--r--util/scan/dvb-t/uk-BristolIlchesterCres10
-rw-r--r--util/scan/dvb-t/uk-BristolKingsWeston10
-rw-r--r--util/scan/dvb-t/uk-Bromsgrove10
-rw-r--r--util/scan/dvb-t/uk-BrougherMountain10
-rw-r--r--util/scan/dvb-t/uk-Caldbeck10
-rw-r--r--util/scan/dvb-t/uk-CaradonHill10
-rw-r--r--util/scan/dvb-t/uk-Carmel10
-rw-r--r--util/scan/dvb-t/uk-Chatton10
-rw-r--r--util/scan/dvb-t/uk-Chesterfield10
-rw-r--r--util/scan/dvb-t/uk-Craigkelly10
-rw-r--r--util/scan/dvb-t/uk-CrystalPalace11
-rw-r--r--util/scan/dvb-t/uk-Darvel10
-rw-r--r--util/scan/dvb-t/uk-Divis10
-rw-r--r--util/scan/dvb-t/uk-Dover14
-rw-r--r--util/scan/dvb-t/uk-Durris10
-rw-r--r--util/scan/dvb-t/uk-Eitshal10
-rw-r--r--util/scan/dvb-t/uk-EmleyMoor10
-rw-r--r--util/scan/dvb-t/uk-Fenham10
-rw-r--r--util/scan/dvb-t/uk-Fenton10
-rw-r--r--util/scan/dvb-t/uk-Ferryside8
-rw-r--r--util/scan/dvb-t/uk-Guildford10
-rw-r--r--util/scan/dvb-t/uk-Hannington9
-rw-r--r--util/scan/dvb-t/uk-Hastings10
-rw-r--r--util/scan/dvb-t/uk-Heathfield10
-rw-r--r--util/scan/dvb-t/uk-HemelHempstead10
-rw-r--r--util/scan/dvb-t/uk-HuntshawCross13
-rw-r--r--util/scan/dvb-t/uk-Idle10
-rw-r--r--util/scan/dvb-t/uk-KeelylangHill10
-rw-r--r--util/scan/dvb-t/uk-Keighley10
-rw-r--r--util/scan/dvb-t/uk-KilveyHill10
-rw-r--r--util/scan/dvb-t/uk-KnockMore10
-rw-r--r--util/scan/dvb-t/uk-Lancaster10
-rw-r--r--util/scan/dvb-t/uk-LarkStoke10
-rw-r--r--util/scan/dvb-t/uk-Limavady10
-rw-r--r--util/scan/dvb-t/uk-Llanddona10
-rw-r--r--util/scan/dvb-t/uk-Malvern10
-rw-r--r--util/scan/dvb-t/uk-Mendip10
-rw-r--r--util/scan/dvb-t/uk-Midhurst10
-rw-r--r--util/scan/dvb-t/uk-Moel-y-Parc10
-rw-r--r--util/scan/dvb-t/uk-Nottingham10
-rw-r--r--util/scan/dvb-t/uk-OliversMount10
-rw-r--r--util/scan/dvb-t/uk-Oxford11
-rw-r--r--util/scan/dvb-t/uk-PendleForest10
-rw-r--r--util/scan/dvb-t/uk-Plympton10
-rw-r--r--util/scan/dvb-t/uk-PontopPike11
-rw-r--r--util/scan/dvb-t/uk-Pontypool10
-rw-r--r--util/scan/dvb-t/uk-Presely10
-rw-r--r--util/scan/dvb-t/uk-Redruth9
-rw-r--r--util/scan/dvb-t/uk-Reigate11
-rw-r--r--util/scan/dvb-t/uk-RidgeHill10
-rw-r--r--util/scan/dvb-t/uk-Rosemarkie10
-rw-r--r--util/scan/dvb-t/uk-Rosneath10
-rw-r--r--util/scan/dvb-t/uk-Rowridge11
-rw-r--r--util/scan/dvb-t/uk-RumsterForest10
-rw-r--r--util/scan/dvb-t/uk-Saddleworth10
-rw-r--r--util/scan/dvb-t/uk-Salisbury10
-rw-r--r--util/scan/dvb-t/uk-SandyHeath11
-rw-r--r--util/scan/dvb-t/uk-Selkirk10
-rw-r--r--util/scan/dvb-t/uk-Sheffield10
-rw-r--r--util/scan/dvb-t/uk-StocklandHill10
-rw-r--r--util/scan/dvb-t/uk-Storeton9
-rw-r--r--util/scan/dvb-t/uk-Sudbury12
-rw-r--r--util/scan/dvb-t/uk-SuttonColdfield10
-rw-r--r--util/scan/dvb-t/uk-Tacolneston10
-rw-r--r--util/scan/dvb-t/uk-TheWrekin15
-rw-r--r--util/scan/dvb-t/uk-Torosay10
-rw-r--r--util/scan/dvb-t/uk-TunbridgeWells10
-rw-r--r--util/scan/dvb-t/uk-Waltham10
-rw-r--r--util/scan/dvb-t/uk-Wenvoe10
-rw-r--r--util/scan/dvb-t/uk-WhitehawkHill10
-rw-r--r--util/scan/dvb-t/uk-WinterHill14
-rw-r--r--util/scan/list.h6
-rw-r--r--util/scan/lnb.c1
-rw-r--r--util/scan/lnb.h2
-rw-r--r--util/scan/scan.c66
-rw-r--r--util/scan/scan.h1
-rw-r--r--util/scan/section_generate.pl92
-rw-r--r--util/szap/Makefile39
-rw-r--r--util/szap/README23
-rw-r--r--util/szap/azap.c8
-rwxr-xr-xutil/szap/channels-conf/atsc/make_atsc_chanconf.pl110
-rw-r--r--util/szap/channels-conf/atsc/us-Raleigh-Durham8
-rw-r--r--util/szap/channels-conf/dvb-c/de-Berlin (renamed from util/szap/channels.conf-dvbc-berlin)10
-rw-r--r--util/szap/channels-conf/dvb-s/Astra-19.2E226
-rw-r--r--util/szap/channels-conf/dvb-s/Astra-28.2E522
-rw-r--r--util/szap/channels-conf/dvb-s/BrasilSat-B3-84.0W39
-rw-r--r--util/szap/channels-conf/dvb-t/au-Adelaide28
-rw-r--r--util/szap/channels-conf/dvb-t/au-Brisbane29
-rw-r--r--util/szap/channels-conf/dvb-t/au-Hobart18
-rw-r--r--util/szap/channels-conf/dvb-t/au-Melbourne17
-rw-r--r--util/szap/channels-conf/dvb-t/au-Sydney-NorthShore (renamed from util/szap/channels.conf-dvbt-australia)62
-rw-r--r--util/szap/channels-conf/dvb-t/cz-Praha16
-rw-r--r--util/szap/channels-conf/dvb-t/de-Berlin47
-rw-r--r--util/szap/channels-conf/dvb-t/de-Braunschweig25
-rw-r--r--util/szap/channels-conf/dvb-t/de-Bremen25
-rw-r--r--util/szap/channels-conf/dvb-t/de-Koeln-Bonn23
-rw-r--r--util/szap/channels-conf/dvb-t/de-Leipzig7
-rw-r--r--util/szap/channels-conf/dvb-t/de-Luebeck22
-rw-r--r--util/szap/channels-conf/dvb-t/de-Rhein-Main6
-rw-r--r--util/szap/channels-conf/dvb-t/de-Ruhrgebiet46
-rw-r--r--util/szap/channels-conf/dvb-t/es-Alpicat19
-rw-r--r--util/szap/channels-conf/dvb-t/es-Collserola (renamed from util/szap/channels.conf-dvbt-collserola)16
-rw-r--r--util/szap/channels-conf/dvb-t/es-Madrid26
-rw-r--r--util/szap/channels-conf/dvb-t/es-Mussara19
-rw-r--r--util/szap/channels-conf/dvb-t/uk-Crystal-Palace (renamed from util/szap/channels.conf-dvbt-crystal-palace)3
-rw-r--r--util/szap/channels-conf/dvb-t/uk-Hannington (renamed from util/szap/channels.conf-dvbt-hannington)0
-rw-r--r--util/szap/channels-conf/dvb-t/uk-Oxford (renamed from util/szap/channels.conf-dvbt-oxford)0
-rw-r--r--util/szap/channels-conf/dvb-t/uk-Reigate (renamed from util/szap/channels.conf-dvbt-reigate)0
-rw-r--r--util/szap/channels-conf/dvb-t/uk-Sandy-Heath (renamed from util/szap/channels.conf-dvbt-sandy_heath)1
-rw-r--r--util/szap/channels.conf-dvbs-astra226
-rw-r--r--util/szap/channels.conf-dvbt-berlin51
-rw-r--r--util/szap/channels.conf-dvbt-madrid16
-rw-r--r--util/szap/czap.c147
-rw-r--r--util/szap/femon.c149
-rw-r--r--util/szap/lnb.c (renamed from util/lib/lnb.c)6
-rw-r--r--util/szap/lnb.h (renamed from util/lib/lnb.h)2
-rw-r--r--util/szap/szap.c222
-rw-r--r--util/szap/tzap.c344
-rw-r--r--util/ttusb_dec_reset/Makefile28
-rw-r--r--util/ttusb_dec_reset/ttusb_dec_reset.c4
-rw-r--r--util/zap/Makefile20
-rw-r--r--util/zap/zap.c226
-rw-r--r--util/zap/zap_ca.c198
-rw-r--r--util/zap/zap_ca.h37
-rw-r--r--util/zap/zap_dvb.c353
-rw-r--r--util/zap/zap_dvb.h41
927 files changed, 16106 insertions, 1565 deletions
diff --git a/util/Makefile b/util/Makefile
index 6e6daa3..c7a83db 100644
--- a/util/Makefile
+++ b/util/Makefile
@@ -1,12 +1,18 @@
# Makefile for linuxtv.org dvb-apps/util
-%:: FORCE
- $(MAKE) -C lib $(MAKECMDGOALS)
- $(MAKE) -C szap $(MAKECMDGOALS)
- $(MAKE) -C scan $(MAKECMDGOALS)
- $(MAKE) -C dvbnet $(MAKECMDGOALS)
- $(MAKE) -C dvbdate $(MAKECMDGOALS)
- $(MAKE) -C dvbtraffic $(MAKECMDGOALS)
- $(MAKE) -C av7110_loadkeys $(MAKECMDGOALS)
+.PHONY: all clean install
-FORCE:
+all clean install:
+ $(MAKE) -C av7110_loadkeys $@
+ $(MAKE) -C dib3000-watch $@
+ $(MAKE) -C dst-utils $@
+ $(MAKE) -C dvbdate $@
+ $(MAKE) -C dvbnet $@
+ $(MAKE) -C dvbtraffic $@
+ $(MAKE) -C dvbscan $@
+ $(MAKE) -C femon $@
+ $(MAKE) -C scan $@
+ $(MAKE) -C szap $@
+ $(MAKE) -C ttusb_dec_reset $@
+ $(MAKE) -C gnutv $@
+ $(MAKE) -C zap $@
diff --git a/util/av7110_loadkeys/Makefile b/util/av7110_loadkeys/Makefile
index e83e069..f83b529 100644
--- a/util/av7110_loadkeys/Makefile
+++ b/util/av7110_loadkeys/Makefile
@@ -1,48 +1,23 @@
-CC = gcc
-CFLAGS = -g -Wall -O2
-
-all: av7110_loadkeys evtest
-
-av7110_loadkeys: av7110_loadkeys.o
-
-evtest: evtest.o
-
-av7110_loadkeys.o: av7110_loadkeys.c input_keynames.h
-
-evtest.o: evtest.c input_keynames.h
-
-
-input_keynames.h: /usr/include/linux/input.h input_fake.h
- @echo 'generate $@...'
- @echo '#ifndef __INPUT_KEYNAMES_H__' > $@
- @echo '#define __INPUT_KEYNAMES_H__' >> $@
- @echo '' >> $@
- @echo '#include <linux/input.h>' >> $@
- @echo '' >> $@
- @echo '#if !defined(KEY_OK)' >> $@
- @echo '#include "input_fake.h"' >> $@
- @echo '#endif' >> $@
- @echo '' >> $@
- @echo '' >> $@
- @echo 'struct input_key_name {' >> $@
- @echo ' const char *name;' >> $@
- @echo ' int key;' >> $@
- @echo '};' >> $@
- @echo '' >> $@
- @echo '' >> $@
- @echo 'static struct input_key_name key_name [] = {' >> $@
- @for x in `cat /usr/include/linux/input.h input_fake.h | \
- grep KEY_ | grep "#define" | grep -v KEY_MAX | \
- cut -f 1 | cut -f 2 -d ' ' | sort | uniq` ; do \
- echo " { \"`echo $$x | cut -b 5-`\", $$x }," >> $@ \
- ; \
- done
- @echo '};' >> $@
- @echo '' >> $@
- @echo '#endif /* __INPUT_KEYNAMES_H */' >> $@
- @echo '' >> $@
-
-
-clean:
- $(RM) core* *.o input_keynames.h av7110_loadkeys evtest
+# Makefile for linuxtv.org dvb-apps/util/av7110_loadkeys
+binaries = av7110_loadkeys
+
+inst_bin = $(binaries)
+
+removing = input_keynames.h
+
+.PHONY: all
+
+all: $(binaries)
+
+$(binaries): input_keynames.h
+
+input_keynames.h:
+ $(SHELL) generate-keynames.sh $@
+
+include ../../Make.rules
+
+install::
+ @echo installing av7110 keymaps
+ @mkdir -p $(DESTDIR)$(sharedir)/dvb/av7110_loadkeys
+ @install -m 644 *.rc5 *.rcmm $(DESTDIR)$(sharedir)/dvb/av7110_loadkeys/
diff --git a/util/av7110_loadkeys/README b/util/av7110_loadkeys/README
index b778e9a..e0505dc 100644
--- a/util/av7110_loadkeys/README
+++ b/util/av7110_loadkeys/README
@@ -1,13 +1,13 @@
Hi,
-this is a utility to setup IR control keymaps using the /proc/av7110_ir
+this is a utility to setup IR control keymaps using the /proc/av7110_ir
interface.
-just call
+just call
# ./av7110_loadkeys [-i|--invert] [-a|--address <num>] keymapname.(rc5|rcmm) > /proc/av7110_ir
-If your IR receiver hardware inverts the signal, you should use the -i
+If your IR receiver hardware inverts the signal, you should use the -i
or --invert command line option.
If you have two or more devices which use the same IR protocol, you should
@@ -42,7 +42,7 @@ Keymaps are in format:
------------------------------------------------------------------------
-In order to write a new keymap you might want to see the raw key
+In order to write a new keymap you might want to see the raw key
values in the kernel log. Use
# insmod dvb-ttpci.o av7110_ir_debug=1
@@ -52,13 +52,12 @@ the kernel log while pressing your remote control keys. When you don't see
any messages in your kernel log you should check all electrical connections,
the selected protocol (RC5 or RCMM?) and the inversion setting.
-You find a list of all linux input key identifiers in </usr/include/input.h>
+You find a list of all linux input key identifiers in </usr/include/input.h>
and "./input_fake.h".
-Please post new keymaps on the linux-dvb mailing list or send them to
+Please post new keymaps on the linux-dvb mailing list or send them to
me <holger@convergence.de>.
-have fun!
+have fun!
Holger
-
diff --git a/util/av7110_loadkeys/activy.rcmm b/util/av7110_loadkeys/activy.rcmm
index 372df8e..c7d7280 100644
--- a/util/av7110_loadkeys/activy.rcmm
+++ b/util/av7110_loadkeys/activy.rcmm
@@ -51,4 +51,3 @@
0x31 KEY_STOP
0x20 KEY_NEXT
0x42 KEY_EJECTCD
-
diff --git a/util/av7110_loadkeys/av7110_loadkeys.c b/util/av7110_loadkeys/av7110_loadkeys.c
index e9eeea0..793862f 100644
--- a/util/av7110_loadkeys/av7110_loadkeys.c
+++ b/util/av7110_loadkeys/av7110_loadkeys.c
@@ -33,9 +33,10 @@ void print_error (const char *action, const char *file)
static
int parse_keyname (char *pos, char **nend, int limit)
{
- int cmp, index;
+ int cmp, _index;
int l = 1;
- int r = sizeof (key_name) / sizeof (key_name[0]);
+ const struct input_key_name *kn;
+ int r;
if (limit < 5)
return -1;
@@ -46,7 +47,18 @@ int parse_keyname (char *pos, char **nend, int limit)
limit--;
}
- if (pos [0] != 'K' || pos[1] != 'E' || pos[2] != 'Y' || pos[3] != '_')
+ if (pos[3] != '_')
+ return -2;
+
+ if (pos[0] == 'K' && pos[1] == 'E' && pos[2] == 'Y') {
+ kn = key_name;
+ r = sizeof (key_name) / sizeof (key_name[0]);
+ }
+ else if (pos[0] == 'B' && pos[1] == 'T' && pos[2] == 'N') {
+ kn = btn_name;
+ r = sizeof (btn_name) / sizeof (btn_name[0]);
+ }
+ else
return -2;
(*nend) += 4;
@@ -56,21 +68,21 @@ int parse_keyname (char *pos, char **nend, int limit)
while (r >= l) {
int len0, len1 = 0;
- index = (l + r) / 2;
-
- len0 = strlen(key_name[index-1].name);
+ _index = (l + r) / 2;
+
+ len0 = strlen(kn[_index-1].name);
while (len1 < limit && isgraph(pos[len1]))
len1++;
- cmp = strncmp (key_name[index-1].name, pos,
- strlen(key_name[index-1].name));
-
+ cmp = strncmp (kn[_index-1].name, pos,
+ strlen(kn[_index-1].name));
+
if (len0 < len1 && cmp == 0)
cmp = -1;
if (cmp == 0) {
- *nend = pos + strlen (key_name[index-1].name);
+ *nend = pos + strlen (kn[_index-1].name);
if (**nend != '\n' &&
**nend != '\t' &&
@@ -78,13 +90,13 @@ int parse_keyname (char *pos, char **nend, int limit)
*nend != pos)
return -3;
- return key_name[index-1].key;
+ return kn[_index-1].key;
}
if (cmp < 0)
- l = index + 1;
+ l = _index + 1;
else
- r = index - 1;
+ r = _index - 1;
if (r < l) {
static const char msg [] = "\nunknown key '";
@@ -151,18 +163,18 @@ int main (int argc, char **argv)
while (pos < buf + len) {
int key, keycode;
-
+
while (!isxdigit(*pos) && pos < buf + len)
pos++;
if (pos == buf + len)
break;
-
+
key = strtol (pos, &pos, 0);
keycode = parse_keyname (pos, &pos, buf + len - pos);
if (key < 0 || key > 0xff) {
- const char msg [] =
+ const char msg [] =
"\nERROR: key must be in range 0 ... 0xff!\n\n";
write (0, msg, strlen(msg));
@@ -174,7 +186,7 @@ int main (int argc, char **argv)
setup.keytab[key] = keycode;
}
-
+
munmap (buf, len);
close (fd);
@@ -182,5 +194,3 @@ int main (int argc, char **argv)
return 0;
}
-
-
diff --git a/util/av7110_loadkeys/evtest.c b/util/av7110_loadkeys/evtest.c
deleted file mode 100644
index 6714128..0000000
--- a/util/av7110_loadkeys/evtest.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- * $Id: evtest.c,v 1.1 2004/01/17 16:59:46 js Exp $
- *
- * Copyright (c) 1999-2000 Vojtech Pavlik
- *
- * Event device test program
- */
-
-/*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Should you need to contact me, the author, you can do so either by
- * e-mail - mail your message to <vojtech@ucw.cz>, or by paper mail:
- * Vojtech Pavlik, Simunkova 1594, Prague 8, 182 00 Czech Republic
- */
-
-#include <linux/input.h>
-
-#include <string.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-char *events[EV_MAX + 1] = { "Reset", "Key", "Relative", "Absolute", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-NULL, NULL, NULL, "LED", "Sound", NULL, "Repeat", "ForceFeedback", NULL, "ForceFeedbackStatus"};
-char *keys[KEY_MAX + 1] = { "Reserved", "Esc", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "Minus", "Equal", "Backspace",
-"Tab", "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "LeftBrace", "RightBrace", "Enter", "LeftControl", "A", "S", "D", "F", "G",
-"H", "J", "K", "L", "Semicolon", "Apostrophe", "Grave", "LeftShift", "BackSlash", "Z", "X", "C", "V", "B", "N", "M", "Comma", "Dot",
-"Slash", "RightShift", "KPAsterisk", "LeftAlt", "Space", "CapsLock", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10",
-"NumLock", "ScrollLock", "KP7", "KP8", "KP9", "KPMinus", "KP4", "KP5", "KP6", "KPPlus", "KP1", "KP2", "KP3", "KP0", "KPDot", "103rd",
-"F13", "102nd", "F11", "F12", "F14", "F15", "F16", "F17", "F18", "F19", "F20", "KPEnter", "RightCtrl", "KPSlash", "SysRq",
-"RightAlt", "LineFeed", "Home", "Up", "PageUp", "Left", "Right", "End", "Down", "PageDown", "Insert", "Delete", "Macro", "Mute",
-"VolumeDown", "VolumeUp", "Power", "KPEqual", "KPPlusMinus", "Pause", "F21", "F22", "F23", "F24", "KPComma", "LeftMeta", "RightMeta",
-"Compose", "Stop", "Again", "Props", "Undo", "Front", "Copy", "Open", "Paste", "Find", "Cut", "Help", "Menu", "Calc", "Setup",
-"Sleep", "WakeUp", "File", "SendFile", "DeleteFile", "X-fer", "Prog1", "Prog2", "WWW", "MSDOS", "Coffee", "Direction",
-"CycleWindows", "Mail", "Bookmarks", "Computer", "Back", "Forward", "CloseCD", "EjectCD", "EjectCloseCD", "NextSong", "PlayPause",
-"PreviousSong", "StopCD", "Record", "Rewind", "Phone", "ISOKey", "Config", "HomePage", "Refresh", "Exit", "Move", "Edit", "ScrollUp",
-"ScrollDown", "KPLeftParenthesis", "KPRightParenthesis",
-"International1", "International2", "International3", "International4", "International5",
-"International6", "International7", "International8", "International9",
-"Language1", "Language2", "Language3", "Language4", "Language5", "Language6", "Language7", "Language8", "Language9",
-NULL,
-"PlayCD", "PauseCD", "Prog3", "Prog4", "Suspend", "Close",
-NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-"Btn0", "Btn1", "Btn2", "Btn3", "Btn4", "Btn5", "Btn6", "Btn7", "Btn8", "Btn9",
-NULL, NULL, NULL, NULL, NULL, NULL,
-"LeftBtn", "RightBtn", "MiddleBtn", "SideBtn", "ExtraBtn", "ForwardBtn", "BackBtn",
-NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-"Trigger", "ThumbBtn", "ThumbBtn2", "TopBtn", "TopBtn2", "PinkieBtn",
-"BaseBtn", "BaseBtn2", "BaseBtn3", "BaseBtn4", "BaseBtn5", "BaseBtn6",
-NULL, NULL, NULL, "BtnDead",
-"BtnA", "BtnB", "BtnC", "BtnX", "BtnY", "BtnZ", "BtnTL", "BtnTR", "BtnTL2", "BtnTR2", "BtnSelect", "BtnStart", "BtnMode",
-"BtnThumbL", "BtnThumbR", NULL,
-"ToolPen", "ToolRubber", "ToolBrush", "ToolPencil", "ToolAirbrush", "ToolFinger", "ToolMouse", "ToolLens", NULL, NULL,
-"Touch", "Stylus", "Stylus2", NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-"Ok", "Select", "Goto", "Clear", "Power2", "Option", "Info", "Time", "Vendor",
-"Archive", "Program", "Channel", "Favorites", "EPG", "PVR", "MHP", "Language",
-"Title", "Subtitle", "Angle", "Zoom", "Mode", "Keyboard", "Screen", "PC", "TV",
-"TV2", "VCR", "VCR2", "Sat", "Sat2", "CD", "Tape", "Radio", "Tuner", "Player",
-"Text", "DVD", "Aux", "MP3", "Audio", "Video", "Directory", "List", "Memo",
-"Calendar", "Red", "Green", "Yellow", "Blue", "ChannelUp", "ChannelDown",
-"First", "Last", "AB", "Play", "Restart", "Slow", "Shuffle", "FastForward",
-"Previous", "Next", "Digits", "Teen", "Twen", "Break" };
-
-char *absval[5] = { "Value", "Min ", "Max ", "Fuzz ", "Flat " };
-char *relatives[REL_MAX + 1] = { "X", "Y", "Z", NULL, NULL, NULL, "HWheel", "Dial", "Wheel" };
-char *absolutes[ABS_MAX + 1] = { "X", "Y", "Z", "Rx", "Ry", "Rz", "Throttle", "Rudder", "Wheel", "Gas", "Brake",
-NULL, NULL, NULL, NULL, NULL,
-"Hat0X", "Hat0Y", "Hat1X", "Hat1Y", "Hat2X", "Hat2Y", "Hat3X", "Hat 3Y", "Pressure", "Distance", "XTilt", "YTilt"};
-char *leds[LED_MAX + 1] = { "NumLock", "CapsLock", "ScrollLock", "Compose", "Kana", "Sleep", "Suspend", "Mute" };
-char *repeats[REP_MAX + 1] = { "Delay", "Period" };
-char *sounds[SND_MAX + 1] = { "Bell", "Click" };
-
-char **names[EV_MAX + 1] = { events, keys, relatives, absolutes, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-NULL, NULL, leds, sounds, NULL, repeats, NULL, NULL, NULL };
-
-#define BITS_PER_LONG (sizeof(long) * 8)
-#define NBITS(x) ((((x)-1)/BITS_PER_LONG)+1)
-#define OFF(x) ((x)%BITS_PER_LONG)
-#define BIT(x) (1UL<<OFF(x))
-#define LONG(x) ((x)/BITS_PER_LONG)
-#define test_bit(bit, array) ((array[LONG(bit)] >> OFF(bit)) & 1)
-
-int main (int argc, char **argv)
-{
- int fd, rd, i, j, k;
- struct input_event ev[64];
- int version;
- unsigned short id[4];
- unsigned long bit[EV_MAX][NBITS(KEY_MAX)];
- char name[256] = "Unknown";
- int abs[5];
-
- if (argc < 2) {
- printf("Usage: evtest /dev/input/eventX\n");
- printf("Where X = input device number\n");
- exit(1);
- }
-
- if ((fd = open(argv[argc - 1], O_RDONLY)) < 0) {
- perror("evtest");
- exit(1);
- }
-
- if (ioctl(fd, EVIOCGVERSION, &version)) {
- perror("evtest: can't get version");
- exit(1);
- }
-
- printf("Input driver version is %d.%d.%d\n",
- version >> 16, (version >> 8) & 0xff, version & 0xff);
-
- ioctl(fd, EVIOCGID, id);
- printf("Input device ID: bus 0x%x vendor 0x%x product 0x%x version 0x%x\n",
- id[ID_BUS], id[ID_VENDOR], id[ID_PRODUCT], id[ID_VERSION]);
-
- ioctl(fd, EVIOCGNAME(sizeof(name)), name);
- printf("Input device name: \"%s\"\n", name);
-
- memset(bit, 0, sizeof(bit));
- ioctl(fd, EVIOCGBIT(0, EV_MAX), bit[0]);
- printf("Supported events:\n");
-
- for (i = 0; i < EV_MAX; i++)
- if (test_bit(i, bit[0])) {
- printf(" Event type %d (%s)\n", i, events[i] ? events[i] : "?");
- ioctl(fd, EVIOCGBIT(i, KEY_MAX), bit[i]);
- for (j = 0; j < KEY_MAX; j++)
- if (test_bit(j, bit[i])) {
- printf(" Event code %d (%s)\n", j, names[i] ? (names[i][j] ? names[i][j] : "?") : "?");
- if (i == EV_ABS) {
- ioctl(fd, EVIOCGABS(j), abs);
- for (k = 0; k < 5; k++)
- if ((k < 3) || abs[k])
- printf(" %s %6d\n", absval[k], abs[k]);
- }
- }
- }
-
-
- printf("Testing ... (interrupt to exit)\n");
-
- while (1) {
- rd = read(fd, ev, sizeof(struct input_event) * 64);
-
- if (rd < (int) sizeof(struct input_event)) {
- printf("yyy\n");
- perror("\nevtest: error reading");
- exit (1);
- }
-
- for (i = 0; i < rd / sizeof(struct input_event); i++)
- printf("Event: time %ld.%06ld, type %d (%s), code %d (%s), value %d\n",
- ev[i].time.tv_sec, ev[i].time.tv_usec, ev[i].type,
- events[ev[i].type] ? events[ev[i].type] : "?",
- ev[i].code,
- names[ev[i].type] ? (names[ev[i].type][ev[i].code] ? names[ev[i].type][ev[i].code] : "?") : "?",
- ev[i].value);
-
- }
-}
-
diff --git a/util/av7110_loadkeys/galaxis.rcmm b/util/av7110_loadkeys/galaxis.rcmm
index 86268e9..38eb389 100644
--- a/util/av7110_loadkeys/galaxis.rcmm
+++ b/util/av7110_loadkeys/galaxis.rcmm
@@ -37,7 +37,7 @@
0x6e KEY_GREEN
0x6f KEY_YELLOW
0x70 KEY_BLUE
-
+
0x78 KEY_MENU
0x79 KEY_LIST
0xcc KEY_EPG
@@ -48,4 +48,3 @@
0xc7 KEY_DOWN
0xff KEY_VCR
-
diff --git a/util/av7110_loadkeys/generate-keynames.sh b/util/av7110_loadkeys/generate-keynames.sh
new file mode 100644
index 0000000..49d2b71
--- /dev/null
+++ b/util/av7110_loadkeys/generate-keynames.sh
@@ -0,0 +1,37 @@
+# Makefile helper for linuxtv.org dvb-apps/util/av7110_loadkeys
+
+echo "generate $1..."
+echo "#ifndef INPUT_KEYNAMES_H" > $1
+echo "#define INPUT_KEYNAMES_H" >> $1
+echo >> $1
+echo "#include <linux/input.h>" >> $1
+echo >> $1
+echo "#if !defined(KEY_OK)" >> $1
+echo "#include \"input_fake.h\"" >> $1
+echo "#endif" >> $1
+echo >> $1
+echo >> $1
+echo "struct input_key_name {" >> $1
+echo " const char *name;" >> $1
+echo " int key;" >> $1
+echo "};" >> $1
+echo >> $1
+echo >> $1
+echo "static struct input_key_name key_name [] = {" >> $1
+for x in $(cat /usr/include/linux/input.h input_fake.h | \
+ egrep "#define[ \t]+KEY_" | grep -v KEY_MAX | \
+ cut -f 1 | cut -f 2 -d " " | sort -u) ; do
+ echo " { \"$(echo $x | cut -b 5-)\", $x }," >> $1
+done
+echo "};" >> $1
+echo >> $1
+echo "static struct input_key_name btn_name [] = {" >> $1
+for x in $(cat /usr/include/linux/input.h input_fake.h | \
+ egrep "#define[ \t]+BTN_" | \
+ cut -f 1 | cut -f 2 -d " " | sort -u) ; do
+ echo " { \"$(echo $x | cut -b 5-)\", $x }," >> $1
+done
+echo "};" >> $1
+echo >> $1
+echo "#endif /* INPUT_KEYNAMES_H */" >> $1
+echo >> $1
diff --git a/util/av7110_loadkeys/hauppauge.rc5 b/util/av7110_loadkeys/hauppauge.rc5
index c9a65b3..f52eb85 100644
--- a/util/av7110_loadkeys/hauppauge.rc5
+++ b/util/av7110_loadkeys/hauppauge.rc5
@@ -22,4 +22,3 @@
0x22 KEY_SELECT
0x26 KEY_CYCLEWINDOWS
0x2e KEY_SCREEN
-
diff --git a/util/av7110_loadkeys/hauppauge2.rc5 b/util/av7110_loadkeys/hauppauge2.rc5
new file mode 100644
index 0000000..663fea8
--- /dev/null
+++ b/util/av7110_loadkeys/hauppauge2.rc5
@@ -0,0 +1,40 @@
+0x00 KEY_0
+0x01 KEY_1
+0x02 KEY_2
+0x03 KEY_3
+0x04 KEY_4
+0x05 KEY_5
+0x06 KEY_6
+0x07 KEY_7
+0x08 KEY_8
+0x09 KEY_9
+
+0x10 KEY_VOLUMEUP
+0x11 KEY_VOLUMEDOWN
+0x1e KEY_VENDOR
+
+0x20 KEY_CHANNELUP
+0x21 KEY_CHANNELDOWN
+0x22 KEY_SELECT
+0x26 KEY_CYCLEWINDOWS
+
+0x3d KEY_POWER
+0x3b KEY_GOTO
+0x1f KEY_BACK
+0x0d KEY_MENU
+0x0b KEY_RED
+0x2e KEY_GREEN
+0x38 KEY_YELLOW
+0x25 KEY_OK
+0x29 KEY_BLUE
+0x0f KEY_MUTE
+0x0c KEY_AUX
+0x3c KEY_SCREEN
+0x32 KEY_REWIND
+0x35 KEY_PLAY
+0x34 KEY_FORWARD
+0x37 KEY_RECORD
+0x36 KEY_STOP
+0x30 KEY_PAUSE
+0x24 KEY_LEFT
+0x1e KEY_RIGHT
diff --git a/util/av7110_loadkeys/hauppauge_grey.rc5 b/util/av7110_loadkeys/hauppauge_grey.rc5
index ac186dc..2bca524 100644
--- a/util/av7110_loadkeys/hauppauge_grey.rc5
+++ b/util/av7110_loadkeys/hauppauge_grey.rc5
@@ -1,4 +1,3 @@
-
0x3d KEY_POWER
0x3b KEY_GOTO
diff --git a/util/av7110_loadkeys/input_fake.h b/util/av7110_loadkeys/input_fake.h
index 7aecc9f..0ec96df 100644
--- a/util/av7110_loadkeys/input_fake.h
+++ b/util/av7110_loadkeys/input_fake.h
@@ -7,7 +7,7 @@
#if !defined(KEY_OK)
/**
- * define some additional remote control keys in case they
+ * define some additional remote control keys in case they
* were not already defined above in <linux/input.h>
*/
@@ -66,19 +66,16 @@
#define KEY_FIRST 0x194
#define KEY_LAST 0x195
#define KEY_AB 0x196
-#define KEY_PLAY 0x197
+#define KEY_NEXT 0x197
#define KEY_RESTART 0x198
#define KEY_SLOW 0x199
#define KEY_SHUFFLE 0x19a
-#define KEY_FASTFORWARD 0x19b
+#define KEY_BREAK 0x19b
#define KEY_PREVIOUS 0x19c
-#define KEY_NEXT 0x19d
-#define KEY_DIGITS 0x19e
-#define KEY_TEEN 0x19f
-#define KEY_TWEN 0x1a0
-#define KEY_BREAK 0x1a1
+#define KEY_DIGITS 0x19d
+#define KEY_TEEN 0x19e
+#define KEY_TWEN 0x19f
#endif /* !defined(KEY_OK) */
#endif /* _INPUT_FAKE_H */
-
diff --git a/util/av7110_loadkeys/philips1358.rc5 b/util/av7110_loadkeys/philips1358.rc5
index e30efba..805755e 100644
--- a/util/av7110_loadkeys/philips1358.rc5
+++ b/util/av7110_loadkeys/philips1358.rc5
@@ -26,12 +26,12 @@
0x2B KEY_PAUSE
0x2C KEY_REWIND
0x2D KEY_F4
-0x2E KEY_F3
+0x2E KEY_F3
0x32 KEY_YELLOW
0x34 KEY_BLUE
0x36 KEY_GREEN
0x37 KEY_RED
0x38 KEY_AUX
-0x3C KEY_F2
+0x3C KEY_F2
0x3D KEY_SCREEN
-0x3F KEY_F1 \ No newline at end of file
+0x3F KEY_F1
diff --git a/util/dib3000-watch/Makefile b/util/dib3000-watch/Makefile
new file mode 100644
index 0000000..2961905
--- /dev/null
+++ b/util/dib3000-watch/Makefile
@@ -0,0 +1,13 @@
+# Makefile for linuxtv.org dvb-apps/util/dib3000-watch
+
+binaries = dib3000-watch
+
+inst_bin = $(binaries)
+
+LDLIBS += -lm
+
+.PHONY: all
+
+all: $(binaries)
+
+include ../../Make.rules
diff --git a/util/dib3000-watch/README.dib3000-watch b/util/dib3000-watch/README.dib3000-watch
new file mode 100644
index 0000000..a9499d5
--- /dev/null
+++ b/util/dib3000-watch/README.dib3000-watch
@@ -0,0 +1,29 @@
+This is a small tool for gathering and evaluating more reception-related data
+from the dib3000-demodulators, than the DVB-API currently makes use of.
+
+It uses the i2c-dev-interface. In order to use it, you have to enable i2c-dev
+in your kernel. The module i2c-dev is loaded automatically, when you want to
+access the /dev/i2c-*-node.
+
+If your distribution hasn't create the /dev/i2c-*-nodes you can use the
+make-i2c-dev-script located its source directory.
+
+It is not yet completed, but works fine for all dib3000mb-demods (all of the
+USB1.1 dibusb-devices are equipped with it).
+Having a CSV output would certainly be useful, when you want to make range
+tests by driving around with your car and check the signal. Nevertheless,
+this isn't written yet, but should be easy-going. Each line then should
+have an timestamp.
+
+I cannot guarantee for the values this program calculates, I'm not a signal
+expert, thus I don't know if they are correct.
+
+Thanks to Amaury Demol from DiBcom, who provides source for showing me how to
+calculate frequencies from the demod values.
+
+Patrick Boettcher <patrick.boettcher@desy.de>
+
+PS: Please feel free to modify the source to fullfil your wishes. But please
+remember, it is released under the GPL, thus please send back patches to the
+author or to the linux-dvb mailing list, so other users can have benefit from
+it.
diff --git a/util/dib3000-watch/dib-i2c.h b/util/dib3000-watch/dib-i2c.h
new file mode 100644
index 0000000..2e9c661
--- /dev/null
+++ b/util/dib3000-watch/dib-i2c.h
@@ -0,0 +1,43 @@
+/*
+ * adapted from different kernel headers
+ * "this is the current way of doing things."-Greg K-H
+ *
+ * everything copied from linux kernel 2.6.10 source
+ */
+
+#ifndef _DIB_I2C_H
+#define _DIB_I2C_H
+
+
+/* from <linux/i2c.h> */
+#define I2C_SLAVE 0x0703
+#define I2C_SLAVE_FORCE 0x0706
+#define I2C_TENBIT 0x0704
+#define I2C_PEC 0x0708
+#define I2C_RETRIES 0x0701
+#define I2C_TIMEOUT 0x0702
+
+#define I2C_FUNCS 0x0705
+#define I2C_RDWR 0x0707
+#define I2C_SMBUS 0x0720
+
+struct i2c_msg {
+ __u16 addr;
+ __u16 flags;
+#define I2C_M_RD 0x0001
+#define I2C_M_TEN 0x0010
+#define I2C_M_NOSTART 0x4000
+#define I2C_M_REV_DIR_ADDR 0x2000
+#define I2C_M_IGNORE_NAK 0x1000
+#define I2C_M_NO_RD_ACK 0x0800
+ __u16 len;
+ __u8 *buf;
+};
+
+/* from <linux/i2c-dev.h> */
+struct i2c_rdwr_ioctl_data {
+ struct i2c_msg *msgs;
+ __u32 nmsgs;
+};
+
+#endif
diff --git a/util/dib3000-watch/dib3000-watch.c b/util/dib3000-watch/dib3000-watch.c
new file mode 100644
index 0000000..16bccb7
--- /dev/null
+++ b/util/dib3000-watch/dib3000-watch.c
@@ -0,0 +1,296 @@
+/*
+ * Tool for watching the dib3000*-demodulators,
+ * with an extended output.
+ *
+ * Copyright (C) 2005 by Patrick Boettcher <patrick.boettcher@desy.de>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
+ */
+#include <stdio.h>
+#include <string.h>
+#include <errno.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <ctype.h>
+
+#include <getopt.h>
+
+#include <signal.h>
+
+#include <math.h>
+
+#include <fcntl.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/ioctl.h>
+
+#include <linux/types.h>
+
+#include "dib-i2c.h"
+#include "dib3000-watch.h"
+#include "dib3000.h"
+
+void usage (void)
+{
+ verb("usage: dib3000-watch -d <i2c-device> -a <i2c-address> [-o <type>] [-i <seconds>]\n"
+ " -d normally one of /dev/i2c-[0-255]\n"
+ " -a is 8 for DiB3000M-B and 9, 10, 11 or 12 for DiB3000M-C or DiB3000-P\n"
+ " -o output type (print|csv) (default: print)\n"
+ " -i query interval in seconds (default: 0.1)\n"
+ "\n"
+ "Don't forget to run tzap or any other dvb-tune program (vdr, kaxtv) in order to tune a channel,\n"
+ "tuning isn't done by this tool.\n"
+ "\n"
+ "A lot of thing have been taken for the dibusb, dib3000m[bc] driver from kernel and\n"
+ "from t_demod-test software created by DiBcom. Both is GPL, so is dib-demod-watch.\n"
+ "\n"
+ "Copyright (C) 2005 by Patrick Boettcher <patrick.boettcher@desy.de>\n"
+ "\n"
+ "The source of this tool is released under the GPL.\n"
+ );
+ exit(1);
+}
+
+__u16 dib_read_reg(struct dib_demod *dib,__u16 reg)
+{
+ int ret;
+ __u8 wb[] = { ((reg >> 8) | 0x80) & 0xff, reg & 0xff };
+ __u8 rb[2];
+ struct i2c_msg msg[] = {
+ { .addr = dib->i2c_addr, .flags = 0, .buf = wb, .len = 2 },
+ { .addr = dib->i2c_addr, .flags = I2C_M_RD, .buf = rb, .len = 2 },
+ };
+ struct i2c_rdwr_ioctl_data i2c_data = {
+ .msgs = msg,
+ .nmsgs = 2,
+ };
+
+ if ((ret = ioctl(dib->fd,I2C_RDWR,&i2c_data)) != 2) {
+ err("i2c_rdwr read failed. (%d)\n",ret);
+ return 0;
+ }
+ return (rb[0] << 8)| rb[1];
+};
+
+int dib_write_reg(struct dib_demod *dib, __u16 reg, __u16 val)
+{
+ int ret;
+ __u8 b[] = {
+ (reg >> 8) & 0xff, reg & 0xff,
+ (val >> 8) & 0xff, val & 0xff,
+ };
+ struct i2c_msg msg[] = {
+ { .addr = dib->i2c_addr, .flags = 0, .buf = b, .len = 4 }
+ };
+ struct i2c_rdwr_ioctl_data i2c_data = {
+ .msgs = msg,
+ .nmsgs = 1,
+ };
+
+ if ((ret = ioctl(dib->fd,I2C_RDWR,&i2c_data)) != 1) {
+ err("i2c_rdwr write failed. (%d)\n",ret);
+ return -1;
+ }
+ return 0;
+}
+
+int dib3000mb_monitoring(struct dib_demod *dib,struct dib3000mb_monitoring *m)
+{
+ int dds_freq, p_dds_freq,
+ n_agc_power = dib_read_reg(dib,DIB3000MB_REG_AGC_POWER),
+ rf_power = dib_read_reg(dib,DIB3000MB_REG_RF_POWER),
+ timing_offset;
+ double ad_power_dB, minor_power;
+
+ m->invspec = dib_read_reg(dib,DIB3000MB_REG_DDS_INV);
+ m->nfft = dib_read_reg(dib,DIB3000MB_REG_TPS_FFT);
+
+ m->agc_lock = dib_read_reg(dib,DIB3000MB_REG_AGC_LOCK);
+ m->carrier_lock = dib_read_reg(dib,DIB3000MB_REG_CARRIER_LOCK);
+ m->tps_lock = dib_read_reg(dib,DIB3000MB_REG_TPS_LOCK);
+ m->vit_lock = dib_read_reg(dib,DIB3000MB_REG_VIT_LCK);
+ m->ts_sync_lock = dib_read_reg(dib,DIB3000MB_REG_TS_SYNC_LOCK);
+ m->ts_data_lock = dib_read_reg(dib,DIB3000MB_REG_TS_RS_LOCK);
+
+ p_dds_freq = ((dib_read_reg(dib,DIB3000MB_REG_DDS_FREQ_MSB) & 0xff) << 8) |
+ ((dib_read_reg(dib,DIB3000MB_REG_DDS_FREQ_LSB) & 0xff00) >> 8);
+ dds_freq = ((dib_read_reg(dib,DIB3000MB_REG_DDS_VALUE_MSB) & 0xff) << 8) |
+ ((dib_read_reg(dib,DIB3000MB_REG_DDS_VALUE_LSB) & 0xff00) >> 8);
+ if (m->invspec)
+ dds_freq = (1 << 16) - dds_freq;
+ m->carrier_offset = (double)(dds_freq - p_dds_freq) / (double)(1 << 16) * DEF_SampFreq_KHz;
+
+ m->ber = (double)((dib_read_reg(dib,DIB3000MB_REG_BER_MSB) << 16) | dib_read_reg(dib,DIB3000MB_REG_BER_LSB)) / (double) 1e8;
+ m->per = dib_read_reg(dib,DIB3000MB_REG_PACKET_ERROR_RATE);
+ m->unc = dib_read_reg(dib,DIB3000MB_REG_UNC);
+ m->fft_pos = dib_read_reg(dib,DIB3000MB_REG_FFT_WINDOW_POS);
+ m->snr = 10.0 * log10( (double)(dib_read_reg(dib,DIB3000MB_REG_SIGNAL_POWER) << 8) /
+ (double)((dib_read_reg(dib,DIB3000MB_REG_NOISE_POWER_MSB) << 16) + dib_read_reg(dib,DIB3000MB_REG_NOISE_POWER_LSB)));
+
+ m->mer = (double) ((dib_read_reg(dib,DIB3000MB_REG_MER_MSB) << 16) + dib_read_reg(dib,DIB3000MB_REG_MER_LSB))
+ / (double) (1<<9) / (m->nfft ? 767.0 : 191.0);
+
+ if (n_agc_power == 0)
+ n_agc_power = 1;
+ ad_power_dB = 10 * log10( (double)(n_agc_power) / (double)(1<<16));
+ minor_power = ad_power_dB - DEF_agc_ref_dB ;
+ m->rf_power = -DEF_gain_slope_dB * (double)rf_power/(double)(1<<16) + DEF_gain_delta_dB + minor_power;
+
+ timing_offset =
+ (dib_read_reg(dib,DIB3000MB_REG_TIMING_OFFSET_MSB) << 16) + dib_read_reg(dib,DIB3000MB_REG_TIMING_OFFSET_LSB);
+ if (timing_offset >= 0x800000)
+ timing_offset |= 0xff000000;
+ m->timing_offset_ppm = -(double)timing_offset / (double)(m->nfft ? 8192 : 2048) * 1e6 / (double)(1<<20);
+
+ return 0;
+}
+
+int dib3000mb_print_monitoring(struct dib3000mb_monitoring *m)
+{
+ printf("DiB3000M-B status\n\n");
+ printf(" AGC lock: %10d\n",m->agc_lock);
+ printf(" carrier lock: %10d\n",m->carrier_lock);
+ printf(" TPS synchronize lock: %10d\n",m->tps_lock);
+ printf(" Viterbi lock: %10d\n",m->vit_lock);
+ printf(" MPEG TS synchronize lock: %10d\n",m->ts_sync_lock);
+ printf(" MPEG TS data lock: %10d\n",m->ts_data_lock);
+ printf("\n\n");
+ printf(" spectrum inversion: %10d\n",m->invspec);
+ printf(" carrier offset: %3.7g\n",m->carrier_offset);
+ printf("\n\n");
+ printf(" bit error rate: %3.7g\n",m->ber);
+ printf(" packet error rate: %10d\n",m->per);
+ printf(" packet error count: %10d\n",m->unc);
+ printf("\n\n");
+ printf(" fft position: %10d\n",m->fft_pos);
+ printf(" transmission mode: %10s\n",m->nfft ? "8k" : "2k");
+ printf("\n\n");
+ printf(" C / (N + I) = %3.7g\n",m->snr);
+ printf(" MER = %3.7g dB\n",m->mer);
+ printf(" RF power = %3.7g dBm\n",m->rf_power);
+ printf(" timing offset = %3.7g ppm\n",m->timing_offset_ppm);
+ return 0;
+}
+
+int interrupted;
+
+void sighandler (int sig)
+{
+ (void)sig;
+ interrupted = 1;
+}
+
+typedef enum {
+ OUT_PRINT = 0,
+ OUT_CSV,
+} dib3000m_output_t;
+
+int main (int argc, char * const argv[])
+{
+ struct dib_demod dib;
+ struct dib3000mb_monitoring mon;
+ const char *dev = NULL;
+ float intervall = 0.1;
+ dib3000m_output_t out = OUT_PRINT;
+ int c;
+
+ while ((c = getopt(argc,argv,"d:a:o:i:")) != -1) {
+ switch (c) {
+ case 'd':
+ dev = optarg;
+ break;
+ case 'a':
+ dib.i2c_addr = atoi(optarg); /* The I2C address */
+ break;
+ case 'o':
+ if (strcasecmp(optarg,"print") == 0) out = OUT_PRINT;
+ else if (strcasecmp(optarg,"csv") == 0) out = OUT_CSV;
+ else usage();
+ break;
+ case 'i':
+ intervall = atof(optarg);
+ break;
+ default:
+ usage();
+ }
+ }
+
+ if (dev == NULL)
+ usage();
+
+ interrupted = 0;
+ signal(SIGINT, sighandler);
+ signal(SIGKILL, sighandler);
+ signal(SIGHUP, sighandler);
+
+ verb("will use '%s' as i2c-device and %d as i2c address.\n",dev,dib.i2c_addr);
+
+ if ((dib.fd = open(dev,O_RDWR)) < 0) {
+ err("could not open %s\n",dev);
+ exit(1);
+ }
+
+ if (ioctl(dib.fd,I2C_SLAVE,dib.i2c_addr) < 0) {
+ err("could not set i2c address\n");
+ exit(1);
+ }
+
+ if (dib_read_reg(&dib,DIB3000_REG_MANUFACTOR_ID) != DIB3000_I2C_ID_DIBCOM) {
+ err("could not find a dib3000 demodulator at i2c-address %d\n",dib.i2c_addr);
+ exit(1);
+ }
+
+ switch (dib_read_reg(&dib,DIB3000_REG_DEVICE_ID)) {
+ case DIB3000MB_DEVICE_ID:
+ verb("found a DiB3000M-B demodulator.\n");
+ dib.rev = DIB3000MB;
+ break;
+ case DIB3000MC_DEVICE_ID:
+ verb("found a DiB3000M-C demodulator.\n");
+ dib.rev = DIB3000MC;
+ break;
+ case DIB3000P_DEVICE_ID:
+ verb("found a DiB3000-P demodulator.\n");
+ dib.rev = DIB3000P;
+ break;
+ default:
+ err("unsupported demodulator found.\n");
+ }
+
+ while (!interrupted) {
+ switch (dib.rev) {
+ case DIB3000MB:
+ dib3000mb_monitoring(&dib,&mon);
+ if (out == OUT_PRINT) {
+ printf("\E[H\E[2J");
+ dib3000mb_print_monitoring(&mon);
+ } else if (out == OUT_CSV) {
+ printf("no csv output implemented yet.\n");
+ }
+ break;
+ default:
+ interrupted=1;
+ err("no monitoring writting for this demod, yet.\n");
+ }
+ usleep((int) (intervall * 1000000));
+ }
+
+ close(dib.fd);
+
+ return 0;
+}
diff --git a/util/dib3000-watch/dib3000-watch.h b/util/dib3000-watch/dib3000-watch.h
new file mode 100644
index 0000000..6d50521
--- /dev/null
+++ b/util/dib3000-watch/dib3000-watch.h
@@ -0,0 +1,46 @@
+#ifndef __DIB_DEMOD_WATCH__
+#define __DIB_DEMOD_WATCH__
+
+#define err(args...) fprintf(stderr,"error '%s': ",strerror(errno)); fprintf(stderr,args)
+#define verb(args...) fprintf(stderr,args)
+
+typedef enum {
+ DIB3000MB = 0,
+ DIB3000MC,
+ DIB3000P,
+} dib_demod_t;
+
+
+struct dib_demod {
+ int fd;
+ __u8 i2c_addr;
+
+ dib_demod_t rev;
+};
+
+struct dib3000mb_monitoring {
+ int agc_lock;
+ int carrier_lock;
+ int tps_lock;
+ int vit_lock;
+ int ts_sync_lock;
+ int ts_data_lock;
+
+ int invspec;
+
+ int per;
+ int unc;
+
+ int fft_pos;
+
+ int nfft;
+
+ double carrier_offset;
+ double ber;
+ double snr;
+ double mer;
+ double rf_power;
+ double timing_offset_ppm;
+};
+
+#endif
diff --git a/util/dib3000-watch/dib3000.h b/util/dib3000-watch/dib3000.h
new file mode 100644
index 0000000..7c3b8bd
--- /dev/null
+++ b/util/dib3000-watch/dib3000.h
@@ -0,0 +1,56 @@
+#ifndef __DIB3000_H__
+#define __DIB3000_H__
+
+/* most of this is taken from dib3000-common.h, dib3000mc_priv.h and dib3000mb_priv.h */
+
+#define DIB3000_REG_MANUFACTOR_ID ( 1025)
+#define DIB3000_I2C_ID_DIBCOM (0x01b3)
+
+#define DIB3000_REG_DEVICE_ID ( 1026)
+#define DIB3000MB_DEVICE_ID (0x3000)
+#define DIB3000MC_DEVICE_ID (0x3001)
+#define DIB3000P_DEVICE_ID (0x3002)
+
+/* dib3000mb_priv.h */
+
+#define DIB3000MB_REG_DDS_INV ( 5)
+#define DIB3000MB_REG_AGC_LOCK ( 324)
+#define DIB3000MB_REG_CARRIER_LOCK ( 355)
+#define DIB3000MB_REG_TPS_LOCK ( 394)
+#define DIB3000MB_REG_VIT_LCK ( 421)
+#define DIB3000MB_REG_TS_SYNC_LOCK ( 423)
+#define DIB3000MB_REG_TS_RS_LOCK ( 424)
+
+#define DIB3000MB_REG_DDS_FREQ_MSB ( 6)
+#define DIB3000MB_REG_DDS_FREQ_LSB ( 7)
+#define DIB3000MB_REG_DDS_VALUE_MSB ( 339)
+#define DIB3000MB_REG_DDS_VALUE_LSB ( 340)
+
+#define DIB3000MB_REG_BER_MSB ( 414)
+#define DIB3000MB_REG_BER_LSB ( 415)
+#define DIB3000MB_REG_PACKET_ERROR_RATE ( 417)
+#define DIB3000MB_REG_UNC ( 420)
+
+#define DIB3000MB_REG_FFT_WINDOW_POS ( 353)
+#define DIB3000MB_REG_TPS_FFT ( 404)
+
+#define DIB3000MB_REG_NOISE_POWER_MSB ( 372)
+#define DIB3000MB_REG_NOISE_POWER_LSB ( 373)
+
+#define DIB3000MB_REG_SIGNAL_POWER ( 380)
+
+#define DIB3000MB_REG_MER_MSB ( 381)
+#define DIB3000MB_REG_MER_LSB ( 382)
+
+#define DIB3000MB_REG_AGC_POWER ( 325)
+#define DIB3000MB_REG_RF_POWER ( 328)
+
+#define DIB3000MB_REG_TIMING_OFFSET_MSB ( 341)
+#define DIB3000MB_REG_TIMING_OFFSET_LSB ( 342)
+
+#define DEF_agc_ref_dB -14
+#define DEF_gain_slope_dB 100
+#define DEF_gain_delta_dB -2
+#define DEF_SampFreq_KHz 27700
+
+#endif
diff --git a/util/dib3000-watch/make-i2c-dev b/util/dib3000-watch/make-i2c-dev
new file mode 100644
index 0000000..8f02bbd
--- /dev/null
+++ b/util/dib3000-watch/make-i2c-dev
@@ -0,0 +1,6 @@
+for i in `seq 0 10`;
+do
+ mknod /dev/i2c-$i c 89 $i
+ chown root.video /dev/i2c-$i
+ chmod 664 /dev/i2c-$i
+done
diff --git a/util/dst-utils/Makefile b/util/dst-utils/Makefile
new file mode 100644
index 0000000..f705c3f
--- /dev/null
+++ b/util/dst-utils/Makefile
@@ -0,0 +1,13 @@
+# Makefile for linuxtv.org dvb-apps/util/dst-utils
+
+binaries = dst_test
+
+inst_bin = $(binaries)
+
+CPPFLAGS += -I../../lib
+
+.PHONY: all
+
+all: $(binaries)
+
+include ../../Make.rules
diff --git a/util/dst-utils/dst_test.c b/util/dst-utils/dst_test.c
new file mode 100644
index 0000000..74385de
--- /dev/null
+++ b/util/dst-utils/dst_test.c
@@ -0,0 +1,258 @@
+/*
+ DST-TEST utility
+ an implementation for the High Level Common Interface
+
+ Copyright (C) 2004, 2005 Manu Abraham <abraham.manu@gmail.com>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <sys/ioctl.h>
+#include <errno.h>
+#include <stdint.h>
+
+#include <linux/dvb/dmx.h>
+#include <linux/dvb/ca.h>
+#include <libdvben50221/en50221_app_tags.h>
+
+#define CA_NODE "/dev/dvb/adapter0/ca0"
+
+static int dst_comms(int cafd, uint32_t tag, uint32_t function, struct ca_msg *msg)
+{
+ if (tag) {
+ msg->msg[2] = tag & 0xff;
+ msg->msg[1] = (tag & 0xff00) >> 8;
+ msg->msg[0] = (tag & 0xff0000) >> 16;
+
+ printf("%s: Msg=[%02x %02x %02x ]\n",__FUNCTION__, msg->msg[0], msg->msg[1], msg->msg[2]);
+ }
+
+ if ((ioctl(cafd, function, msg)) < 0) {
+ printf("%s: ioctl failed ..\n", __FUNCTION__);
+ return -1;
+ }
+
+ return 0;
+}
+
+
+static int dst_get_caps(int cafd, struct ca_caps *caps)
+{
+ if ((ioctl(cafd, CA_GET_CAP, caps)) < 0) {
+ printf("%s: ioctl failed ..\n", __FUNCTION__);
+ return -1;
+ }
+
+ if (caps->slot_num < 1) {
+ printf ("No CI Slots found\n");
+ return -1;
+ }
+
+ printf("APP: Slots=[%d]\n", caps->slot_num);
+ printf("APP: Type=[%d]\n", caps->slot_type);
+ printf("APP: Descrambler keys=[%d]\n", caps->descr_num);
+ printf("APP: Type=[%d]\n", caps->descr_type);
+
+ return 0;
+}
+
+static int dst_get_info(int cafd, struct ca_slot_info *info)
+{
+ if ((ioctl(cafd, CA_GET_SLOT_INFO, info)) < 0) {
+ printf("%s: ioctl failed ..\n", __FUNCTION__);
+ return -1;
+ }
+ if (info->num < 1) {
+ printf("No CI Slots found\n");
+ return -1;
+ }
+ printf("APP: Number=[%d]\n", info->num);
+ printf("APP: Type=[%d]\n", info->type);
+ printf("APP: flags=[%d]\n", info->flags);
+
+ if (info->flags == 1)
+ printf("APP: CI High level interface\n");
+ if (info->flags == 1)
+ printf("APP: CA/CI Module Present\n");
+ else if (info->flags == 2)
+ printf("APP: CA/CI Module Ready\n");
+ else if (info->flags == 0)
+ printf("APP: No CA/CI Module\n");
+
+ return 0;
+}
+
+static int dst_reset(int cafd)
+{
+ if ((ioctl(cafd, CA_RESET)) < 0) {
+ printf("%s: ioctl failed ..\n", __FUNCTION__);
+ return -1;
+ }
+
+ return 0;
+}
+
+static int dst_set_pid(int cafd)
+{
+ if ((ioctl(cafd, CA_SET_PID)) < 0) {
+ printf("%s: ioctl failed ..\n", __FUNCTION__);
+ return -1;
+ }
+
+ return 0;
+}
+
+static int dst_get_descr(int cafd)
+{
+ if ((ioctl(cafd, CA_GET_DESCR_INFO)) < 0) {
+ printf("%s: ioctl failed ..\n", __FUNCTION__);
+ return -1;
+ }
+
+ return 0;
+}
+
+static int dst_set_descr(int cafd)
+{
+ if ((ioctl(cafd, CA_SET_DESCR)) < 0) {
+ printf("%s: ioctl failed ..\n", __FUNCTION__);
+ return -1;
+ }
+ return 0;
+}
+
+static int dst_get_app_info(int cafd, struct ca_msg *msg)
+{
+ uint32_t tag = 0;
+
+ /* Enquire */
+ tag = TAG_CA_INFO_ENQUIRY;
+ if ((dst_comms(cafd, tag, CA_SEND_MSG, msg)) < 0) {
+ printf("%s: Dst communication failed\n", __FUNCTION__);
+ return -1;
+ }
+
+ /* Receive */
+ tag = TAG_CA_INFO;
+ if ((dst_comms(cafd, tag, CA_GET_MSG, msg)) < 0) {
+ printf("%s: Dst communication failed\n", __FUNCTION__);
+ return -1;
+ }
+
+ /* Process */
+ printf("%s: ================================ CI Module Application Info ======================================\n", __FUNCTION__);
+ printf("%s: Application Type=[%d], Application Vendor=[%d], Vendor Code=[%d]\n%s: Application info=[%s]\n",
+ __FUNCTION__, msg->msg[7], (msg->msg[8] << 8) | msg->msg[9], (msg->msg[10] << 8) | msg->msg[11], __FUNCTION__,
+ ((char *) (&msg->msg[12])));
+ printf("%s: ==================================================================================================\n", __FUNCTION__);
+
+ return 0;
+}
+
+static int dst_session_test(int cafd, struct ca_msg *msg)
+{
+ msg->msg[0] = 0x91;
+ printf("Debugging open session request\n");
+ if ((ioctl(cafd, CA_SEND_MSG, msg)) < 0) {
+ printf("%s: ioctl failed ..\n", __FUNCTION__);
+ return -1;
+ }
+
+ return 0;
+}
+
+
+int main(int argc, char *argv[])
+{
+ int cafd;
+ const char *usage = " DST-TEST: Twinhan DST and clones test utility\n"
+ " an implementation for the High Level Common Interface\n"
+ " Copyright (C) 2004, 2005 Manu Abraham (manu@kromtek.com)\n\n"
+ "\t dst_test options:\n"
+ "\t -c capabilities\n"
+ "\t -i info\n"
+ "\t -r reset\n"
+ "\t -p pid\n"
+ "\t -g get descr\n"
+ "\t -s set_descr\n"
+ "\t -a app_info\n"
+ "\t -t session test\n";
+
+
+ struct ca_caps *caps;
+ caps = (struct ca_caps *) malloc(sizeof (struct ca_caps));
+
+ struct ca_slot_info *info;
+ info = (struct ca_slot_info *)malloc (sizeof (struct ca_slot_info));
+
+ struct ca_msg *msg;
+ msg = (struct ca_msg *) malloc(sizeof (struct ca_msg));
+
+ if (argc < 2)
+ printf("%s\n", usage);
+
+ if (argc > 1) {
+ if ((cafd = open(CA_NODE, O_RDONLY)) < 0) {
+ printf("%s: Error opening %s\n", __FUNCTION__, CA_NODE);
+ return -1;
+ }
+
+ switch (getopt(argc, argv, "cirpgsat")) {
+ case 'c':
+ printf("%s: Capabilities\n", __FUNCTION__);
+ dst_get_caps(cafd, caps);
+ break;
+ case 'i':
+ printf("%s: Info\n", __FUNCTION__);
+ dst_get_info(cafd, info);
+ break;
+ case 'r':
+ printf("%s: Reset\n", __FUNCTION__);
+ dst_reset(cafd);
+ break;
+ case 'p':
+ printf("%s: PID\n", __FUNCTION__);
+ dst_set_pid(cafd);
+ break;
+ case 'g':
+ printf("%s: Get Desc\n", __FUNCTION__);
+ dst_get_descr(cafd);
+ break;
+ case 's':
+ printf("%s: Set Desc\n", __FUNCTION__);
+ dst_set_descr(cafd);
+ break;
+ case 'a':
+ printf("%s: App Info\n", __FUNCTION__);
+ dst_get_app_info(cafd, msg);
+ break;
+ case 't':
+ printf("%s: Session test\n", __FUNCTION__);
+ dst_session_test(cafd, msg);
+ break;
+
+ break;
+ }
+ close(cafd);
+ }
+ return 0;
+}
diff --git a/util/dvbdate/Makefile b/util/dvbdate/Makefile
index ea514db..2602512 100644
--- a/util/dvbdate/Makefile
+++ b/util/dvbdate/Makefile
@@ -1,25 +1,15 @@
+# Makefile for linuxtv.org dvb-apps/util/dvbdate
-CC = gcc
-CFLAGS = -g -O2 -MD -Wall -I. -I../../include
-LFLAGS =
+binaries = dvbdate
-OBJS = dvbdate.o
-TARGET = dvbdate
-DESTDIR = /usr/local/bin/
+inst_bin = $(binaries)
-all: $(TARGET)
+CPPFLAGS += -I../../lib
+LDFLAGS += -L../../lib/libdvbapi -L../../lib/libucsi
+LDLIBS += -ldvbapi -lucsi
-.c.o:
- $(CC) $(CFLAGS) -c $< -o $@
+.PHONY: all
-$(TARGET): $(OBJS)
- $(CC) -o $@ $(OBJS) $(LFLAGS)
-
-install: all
- install -m 755 $(TARGET) $(DESTDIR)
-
-clean:
- rm -f $(TARGET) $(OBJS) core* *~ *.d
-
--include $(wildcard *.d) dummy
+all: $(binaries)
+include ../../Make.rules
diff --git a/util/dvbdate/dvbdate.c b/util/dvbdate/dvbdate.c
index 9821012..f0df437 100644
--- a/util/dvbdate/dvbdate.c
+++ b/util/dvbdate/dvbdate.c
@@ -8,7 +8,10 @@
Revamped by Johannes Stezenbach <js@convergence.de>
and Michael Hunold <hunold@convergence.de>
-
+
+ Ported to use the standard dvb libraries and add ATSC STT
+ support Andrew de Quincey <adq_dvb@lidskialf.net>
+
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
@@ -40,10 +43,10 @@
#include <errno.h>
#include <getopt.h>
#include <stdarg.h>
-
-#include <linux/dvb/dmx.h>
-
-#define bcdtoint(i) ((((i & 0xf0) >> 4) * 10) + (i & 0x0f))
+#include <libdvbapi/dvbfe.h>
+#include <libdvbapi/dvbdemux.h>
+#include <libucsi/dvb/section.h>
+#include <libucsi/atsc/section.h>
/* How many seconds can the system clock be out before we get warned? */
#define ALLOWABLE_DELTA 30*60
@@ -54,6 +57,7 @@ int do_set;
int do_force;
int do_quiet;
int timeout = 25;
+int adapter = 0;
void errmsg(char *message, ...)
{
@@ -65,15 +69,24 @@ void errmsg(char *message, ...)
va_end(ap);
}
-void usage()
+void usage(void)
{
- fprintf(stderr, "usage: %s [-p] [-s] [-f] [-q] [-h]\n", ProgName);
+ fprintf(stderr, "usage: %s [-a] [-p] [-s] [-f] [-q] [-h]\n", ProgName);
_exit(1);
}
-void help()
+void help(void)
{
- fprintf(stderr, "\nhelp:\n" "%s [-p] [-s] [-f] [-q] [-h] [-t n]\n" " --print (print current time, TDT time and delta)\n" " --set (set the system clock to TDT time)\n" " --force (force the setting of the clock)\n" " --quiet (be silent)\n" " --help (display this message)\n"" --timout n (max seconds to wait, default: 25)\n", ProgName);
+ fprintf(stderr,
+ "\nhelp:\n"
+ "%s [-a] [-p] [-s] [-f] [-q] [-h] [-t n]\n"
+ " --adapter (adapter to use, default: 0)\n"
+ " --print (print current time, received time and delta)\n"
+ " --set (set the system clock to received time)\n"
+ " --force (force the setting of the clock)\n"
+ " --quiet (be silent)\n"
+ " --help (display this message)\n"
+ " --timeout n (max seconds to wait, default: 25)\n", ProgName);
_exit(1);
}
@@ -86,13 +99,14 @@ int do_options(int arg_count, char **arg_strings)
{"quiet", 0, 0, 'q'},
{"help", 0, 0, 'h'},
{"timeout", 1, 0, 't'},
+ {"adapter", 1, 0, 'a'},
{0, 0, 0, 0}
};
int c;
int Option_Index = 0;
while (1) {
- c = getopt_long(arg_count, arg_strings, "psfqht:", Long_Options, &Option_Index);
+ c = getopt_long(arg_count, arg_strings, "a:psfqht:", Long_Options, &Option_Index);
if (c == EOF)
break;
switch (c) {
@@ -103,6 +117,9 @@ int do_options(int arg_count, char **arg_strings)
usage();
}
break;
+ case 'a':
+ adapter = atoi(optarg);
+ break;
case 'p':
do_print = 1;
break;
@@ -134,7 +151,8 @@ int do_options(int arg_count, char **arg_strings)
case 2: /* Force */
case 3: /* Quiet */
case 4: /* Help */
- case 5: /* timout */
+ case 5: /* timeout */
+ case 6: /* adapter */
break;
default:
fprintf(stderr, "%s: unknown long option %d\n", ProgName, Option_Index);
@@ -153,125 +171,135 @@ int do_options(int arg_count, char **arg_strings)
}
/*
- * return the TDT time in UNIX time_t format
+ * Get the next UTC date packet from the TDT section
*/
-
-time_t convert_date(char *dvb_buf)
+int dvb_scan_date(time_t *rx_time, unsigned int to)
{
- int i;
- int year, month, day, hour, min, sec;
- long int mjd;
- struct tm dvb_time;
-
- mjd = (dvb_buf[0] & 0xff) << 8;
- mjd += (dvb_buf[1] & 0xff);
- hour = bcdtoint(dvb_buf[2] & 0xff);
- min = bcdtoint(dvb_buf[3] & 0xff);
- sec = bcdtoint(dvb_buf[4] & 0xff);
-/*
- * Use the routine specified in ETSI EN 300 468 V1.4.1,
- * "Specification for Service Information in Digital Video Broadcasting"
- * to convert from Modified Julian Date to Year, Month, Day.
- */
- year = (int) ((mjd - 15078.2) / 365.25);
- month = (int) ((mjd - 14956.1 - (int) (year * 365.25)) / 30.6001);
- day = mjd - 14956 - (int) (year * 365.25) - (int) (month * 30.6001);
- if (month == 14 || month == 15)
- i = 1;
- else
- i = 0;
- year += i;
- month = month - 1 - i * 12;
-
- dvb_time.tm_sec = sec;
- dvb_time.tm_min = min;
- dvb_time.tm_hour = hour;
- dvb_time.tm_mday = day;
- dvb_time.tm_mon = month - 1;
- dvb_time.tm_year = year;
- dvb_time.tm_isdst = -1;
- dvb_time.tm_wday = 0;
- dvb_time.tm_yday = 0;
- return (timegm(&dvb_time));
+ int tdt_fd;
+ uint8_t filter[18];
+ uint8_t mask[18];
+ unsigned char sibuf[4096];
+ int size;
+
+ // open the demuxer
+ if ((tdt_fd = dvbdemux_open_demux(adapter, 0, 0)) < 0) {
+ return -1;
+ }
+
+ // create a section filter for the TDT
+ memset(filter, 0, sizeof(filter));
+ memset(mask, 0, sizeof(mask));
+ filter[0] = stag_dvb_time_date;
+ mask[0] = 0xFF;
+ if (dvbdemux_set_section_filter(tdt_fd, TRANSPORT_TDT_PID, filter, mask, 1, 1)) {
+ close(tdt_fd);
+ return -1;
+ }
+
+ // poll for data
+ struct pollfd pollfd;
+ pollfd.fd = tdt_fd;
+ pollfd.events = POLLIN|POLLERR|POLLPRI;
+ if (poll(&pollfd, 1, to * 1000) != 1) {
+ close(tdt_fd);
+ return -1;
+ }
+
+ // read it
+ if ((size = read(tdt_fd, sibuf, sizeof(sibuf))) < 0) {
+ close(tdt_fd);
+ return -1;
+ }
+
+ // parse section
+ struct section *section = section_codec(sibuf, size);
+ if (section == NULL) {
+ close(tdt_fd);
+ return -1;
+ }
+
+ // parse TDT
+ struct dvb_tdt_section *tdt = dvb_tdt_section_codec(section);
+ if (tdt == NULL) {
+ close(tdt_fd);
+ return -1;
+ }
+
+ // done
+ *rx_time = dvbdate_to_unixtime(tdt->utc_time);
+ close(tdt_fd);
+ return 0;
}
/*
- * Get the next UTC date packet from the TDT multiplex
+ * Get the next date packet from the STT section
*/
-
-int scan_date(time_t *dvb_time, unsigned int to)
+int atsc_scan_date(time_t *rx_time, unsigned int to)
{
- int fd_date;
- int n, seclen;
- time_t t;
- unsigned char buf[4096];
- struct dmx_sct_filter_params sctFilterParams;
- struct pollfd ufd;
- int found = 0;
-
- t = 0;
- if ((fd_date = open("/dev/dvb/adapter0/demux0", O_RDWR | O_NONBLOCK)) < 0) {
- perror("fd_date DEVICE: ");
+ int stt_fd;
+ uint8_t filter[18];
+ uint8_t mask[18];
+ unsigned char sibuf[4096];
+ int size;
+
+ // open the demuxer
+ if ((stt_fd = dvbdemux_open_demux(adapter, 0, 0)) < 0) {
return -1;
}
- memset(&sctFilterParams, 0, sizeof(sctFilterParams));
- sctFilterParams.pid = 0x14;
- sctFilterParams.timeout = 0;
- sctFilterParams.flags = DMX_IMMEDIATE_START;
- sctFilterParams.filter.filter[0] = 0x70;
- sctFilterParams.filter.mask[0] = 0xff;
+ // create a section filter for the STT
+ memset(filter, 0, sizeof(filter));
+ memset(mask, 0, sizeof(mask));
+ filter[0] = stag_atsc_system_time;
+ mask[0] = 0xFF;
+ if (dvbdemux_set_section_filter(stt_fd, ATSC_BASE_PID, filter, mask, 1, 1)) {
+ close(stt_fd);
+ return -1;
+ }
- if (ioctl(fd_date, DMX_SET_FILTER, &sctFilterParams) < 0) {
- perror("DATE - DMX_SET_FILTER:");
- close(fd_date);
+ // poll for data
+ struct pollfd pollfd;
+ pollfd.fd = stt_fd;
+ pollfd.events = POLLIN|POLLERR|POLLPRI;
+ if (poll(&pollfd, 1, to * 1000) != 1) {
+ close(stt_fd);
return -1;
}
- while (to > 0) {
- int res;
-
- memset(&ufd,0,sizeof(ufd));
- ufd.fd=fd_date;
- ufd.events=POLLIN;
-
- res = poll(&ufd,1,1000);
- if (0 == res) {
- fprintf(stdout, ".");
- fflush(stdout);
- to--;
- continue;
- }
- if (1 == res) {
- found = 1;
- break;
- }
- errmsg("error polling for data");
- close(fd_date);
+ // read it
+ if ((size = read(stt_fd, sibuf, sizeof(sibuf))) < 0) {
+ close(stt_fd);
+ return -1;
+ }
+
+ // parse section
+ struct section *section = section_codec(sibuf, size);
+ if (section == NULL) {
+ close(stt_fd);
+ return -1;
+ }
+ struct section_ext *section_ext = section_ext_decode(section, 0);
+ if (section_ext == NULL) {
+ close(stt_fd);
return -1;
}
- fprintf(stdout, "\n");
- if (0 == found) {
- errmsg("timeout - try tuning to a multiplex?\n");
- close(fd_date);
+ struct atsc_section_psip *psip = atsc_section_psip_decode(section_ext);
+ if (psip == NULL) {
+ close(stt_fd);
return -1;
}
- if ((n = read(fd_date, buf, 4096)) >= 3) {
- seclen = ((buf[1] & 0x0f) << 8) | (buf[2] & 0xff);
- if (n == seclen + 3) {
- t = convert_date(&(buf[3]));
- } else {
- errmsg("Under-read bytes for DATE - wanted %d, got %d\n", seclen, n);
- return 0;
- }
- } else {
- errmsg("Nothing to read from fd_date - try tuning to a multiplex?\n");
- return 0;
+ // parse STT
+ struct atsc_stt_section *stt = atsc_stt_section_codec(psip);
+ if (stt == NULL) {
+ close(stt_fd);
+ return -1;
}
- close(fd_date);
- *dvb_time = t;
+
+ // done
+ *rx_time = atsctime_to_unixtime(stt->system_time);
+ close(stt_fd);
return 0;
}
@@ -291,10 +319,12 @@ int set_time(time_t * new_time)
int main(int argc, char **argv)
{
- time_t dvb_time;
+ time_t rx_time;
time_t real_time;
time_t offset;
int ret;
+ struct dvbfe_handle *fe;
+ struct dvbfe_info fe_info;
do_print = 0;
do_force = 0;
@@ -310,27 +340,51 @@ int main(int argc, char **argv)
errmsg("quiet and print options are mutually exclusive.\n");
exit(1);
}
+
+/*
+ * Find the frontend type
+ */
+ if ((fe = dvbfe_open(adapter, 0, 1)) == NULL) {
+ errmsg("Unable to open frontend.\n");
+ exit(1);
+ }
+ dvbfe_get_info(fe, 0, &fe_info, DVBFE_INFO_QUERYTYPE_IMMEDIATE, 0);
+
/*
- * Get the date from the currently tuned TDT multiplex
+ * Get the date from the currently tuned multiplex
*/
- ret = scan_date(&dvb_time, timeout);
+ switch(fe_info.type) {
+ case DVBFE_TYPE_DVBS:
+ case DVBFE_TYPE_DVBC:
+ case DVBFE_TYPE_DVBT:
+ ret = dvb_scan_date(&rx_time, timeout);
+ break;
+
+ case DVBFE_TYPE_ATSC:
+ ret = atsc_scan_date(&rx_time, timeout);
+ break;
+
+ default:
+ errmsg("Unsupported frontend type.\n");
+ exit(1);
+ }
if (ret != 0) {
errmsg("Unable to get time from multiplex.\n");
exit(1);
}
time(&real_time);
- offset = dvb_time - real_time;
+ offset = rx_time - real_time;
if (do_print) {
fprintf(stdout, "System time: %s", ctime(&real_time));
- fprintf(stdout, " TDT time: %s", ctime(&dvb_time));
+ fprintf(stdout, " RX time: %s", ctime(&rx_time));
fprintf(stdout, " Offset: %ld seconds\n", offset);
} else if (!do_quiet) {
- fprintf(stdout, "%s", ctime(&dvb_time));
+ fprintf(stdout, "%s", ctime(&rx_time));
}
if (do_set) {
if (labs(offset) > ALLOWABLE_DELTA) {
if (do_force) {
- if (0 != set_time(&dvb_time)) {
+ if (0 != set_time(&rx_time)) {
errmsg("setting the time failed\n");
}
} else {
@@ -339,7 +393,7 @@ int main(int argc, char **argv)
exit(1);
}
} else {
- set_time(&dvb_time);
+ set_time(&rx_time);
}
} /* #end if (do_set) */
return (0);
diff --git a/util/dvbnet/Makefile b/util/dvbnet/Makefile
index 187dee2..c9ebab9 100644
--- a/util/dvbnet/Makefile
+++ b/util/dvbnet/Makefile
@@ -1,29 +1,15 @@
+# Makefile for linuxtv.org dvb-apps/util/dvbnet
-CC = gcc
-CFLAGS = -g -O2 -MD -Wall -I. -I../../include
-LFLAGS =
+binaries = dvbnet
-OBJS = dvbnet.o
-TARGET = dvbnet
-DESTDIR = /usr/local/bin/
+inst_bin = $(binaries)
-all: version.h $(TARGET)
+CPPFLAGS += -I../../lib
+LDFLAGS += -L../../lib/libdvbapi
+LDLIBS += -ldvbapi
-.c.o:
- $(CC) $(CFLAGS) -c $< -o $@
+.PHONY: all
-$(TARGET): $(OBJS)
- $(CC) -o $@ $(OBJS) $(LFLAGS)
-
-version.h:
- printf '#define VERSION_INFO "%s (Build %s)"\n' \
- "`cat $@.in`" "`date +'%a %b %d %X %Y'`" > $@
-
-install: all
- install -m 755 $(TARGET) $(DESTDIR)
-
-clean:
- rm -f $(TARGET) $(OBJS) version.h core* *~ *.d
-
--include $(wildcard *.d) dummy
+all: $(binaries)
+include ../../Make.rules
diff --git a/util/dvbnet/dvbnet.c b/util/dvbnet/dvbnet.c
index a58f156..53aa719 100644
--- a/util/dvbnet/dvbnet.c
+++ b/util/dvbnet/dvbnet.c
@@ -1,26 +1,29 @@
-/*
+/*
* dvbnet.c
*
* Copyright (C) 2003 TV Files S.p.A
* L.Y.Mesentsev <lymes@tiscalinet.it>
*
+ * Ported to use new DVB libraries:
+ * Copyright (C) 2006 Andrew de Quincey <adq_dvb@lidskialf.net>
+ *
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
- *
+ *
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* Or, point your browser to http://www.gnu.org/copyleft/gpl.html
- *
+ *
*/
#include <stdio.h>
@@ -33,19 +36,10 @@
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/ioctl.h>
-
-#include <linux/dvb/net.h>
-#include <version.h>
-
-#ifndef VERSION_INFO
-#define VERSION_INFO "1.1.1"
-#endif
+#include <libdvbapi/dvbnet.h>
#define OK 0
#define FAIL -1
-#define DVB_NET_DEVICE "/dev/dvb/adapter%d/net%d"
-#define DVB_NET_DEVICES_MAX 10
-#define IFNAME_DVB "dvb"
enum Mode {
@@ -57,14 +51,15 @@ enum Mode {
static int adapter = 0;
static int netdev = 0;
-static struct dvb_net_if net_data;
static void hello(void);
static void usage(char *);
static void parse_args(int, char **);
-static int queryInterface(int, int);
+static void queryInterface(int);
-static char dvb_net_device[40];
+int ifnum;
+int pid;
+int encapsulation;
int main(int argc, char **argv)
{
@@ -74,40 +69,36 @@ int main(int argc, char **argv)
parse_args(argc, argv);
- sprintf(dvb_net_device, DVB_NET_DEVICE, adapter, netdev);
-
- printf("Device: %s\n", dvb_net_device);
-
- if ((fd_net = open(dvb_net_device, O_RDWR | O_NONBLOCK)) < 0) {
- fprintf(stderr, "Error: couldn't open device %s: %d %m\n",
- dvb_net_device, errno);
+ if ((fd_net = dvbnet_open(adapter, netdev)) < 0) {
+ fprintf(stderr, "Error: couldn't open device %d: %d %m\n",
+ netdev, errno);
return FAIL;
}
switch (op_mode) {
case DEL_INTERFACE:
- if (ioctl(fd_net, NET_REMOVE_IF, net_data.if_num))
+ if (dvbnet_remove_interface(fd_net, ifnum))
fprintf(stderr,
"Error: couldn't remove interface %d: %d %m.\n",
- net_data.if_num, errno);
+ ifnum, errno);
else
printf("Status: device %d removed successfully.\n",
- net_data.if_num);
+ ifnum);
break;
case ADD_INTERFACE:
- if (ioctl(fd_net, NET_ADD_IF, &net_data))
+ if ((ifnum = dvbnet_add_interface(fd_net, pid, encapsulation)) < 0)
fprintf(stderr,
"Error: couldn't add interface for pid %d: %d %m.\n",
- net_data.pid, errno);
+ pid, errno);
else
printf
("Status: device dvb%d_%d for pid %d created successfully.\n",
- adapter, net_data.if_num, net_data.pid);
+ adapter, ifnum, pid);
break;
case LST_INTERFACE:
- queryInterface(fd_net, 0);
+ queryInterface(fd_net);
break;
default:
@@ -120,39 +111,48 @@ int main(int argc, char **argv)
}
-int queryInterface(int fd_net, int dev)
+void queryInterface(int fd_net)
{
- struct dvb_net_if data;
- int IF, nIFaces = 0, ret = FAIL;
+ int IF, nIFaces = 0;
+ char *encap;
printf("Query DVB network interfaces:\n");
printf("-----------------------------\n");
- for (IF = 0; IF < DVB_NET_DEVICES_MAX; IF++) {
- data.if_num = IF;
- if (ioctl(fd_net, NET_GET_IF, &data))
+ for (IF = 0; IF < DVBNET_MAX_INTERFACES; IF++) {
+ uint16_t _pid;
+ enum dvbnet_encap _encapsulation;
+ if (dvbnet_get_interface(fd_net, IF, &_pid, &_encapsulation))
continue;
- if (dev == data.if_num)
- ret = OK;
+ encap = "???";
+ switch(_encapsulation) {
+ case DVBNET_ENCAP_MPE:
+ encap = "MPE";
+ break;
+ case DVBNET_ENCAP_ULE:
+ encap = "ULE";
+ break;
+ }
printf("Found device %d: interface dvb%d_%d, "
- "listening on PID %d\n",
- IF, adapter, data.if_num, data.pid);
+ "listening on PID %d, encapsulation %s\n",
+ IF, adapter, IF, _pid, encap);
nIFaces++;
}
printf("-----------------------------\n");
printf("Found %d interface(s).\n\n", nIFaces);
- return ret;
}
void parse_args(int argc, char **argv)
{
- char c, *s;
+ int c;
+ char *s;
op_mode = UNKNOWN;
- while ((c = getopt(argc, argv, "a:n:p:d:lvh")) != EOF) {
+ encapsulation = DVBNET_ENCAP_MPE;
+ while ((c = getopt(argc, argv, "a:n:p:d:lUvh")) != EOF) {
switch (c) {
case 'a':
adapter = strtol(optarg, NULL, 0);
@@ -161,16 +161,19 @@ void parse_args(int argc, char **argv)
netdev = strtol(optarg, NULL, 0);
break;
case 'p':
- net_data.pid = strtol(optarg, NULL, 0);
+ pid = strtol(optarg, NULL, 0);
op_mode = ADD_INTERFACE;
break;
case 'd':
- net_data.if_num = strtol(optarg, NULL, 0);
+ ifnum = strtol(optarg, NULL, 0);
op_mode = DEL_INTERFACE;
break;
case 'l':
op_mode = LST_INTERFACE;
break;
+ case 'U':
+ encapsulation = DVBNET_ENCAP_ULE;
+ break;
case 'v':
exit(OK);
case 'h':
@@ -187,12 +190,12 @@ void usage(char *prog_name)
{
fprintf(stderr, "Usage: %s [options]\n", prog_name);
fprintf(stderr, "Where options are:\n");
- fprintf(stderr, "\t-a AD : Adapter card AD (default 0)\n");
- fprintf(stderr, "\t-n NET : Net demux NET (default 0)\n");
+ fprintf(stderr, "\t-a AD : Adapter card (default 0)\n");
+ fprintf(stderr, "\t-n DD : Demux (default 0)\n");
fprintf(stderr, "\t-p PID : Add interface listening on PID\n");
- fprintf(stderr, "\t-d NUM : Remove interface dvbAD_NUM\n");
- fprintf(stderr,
- "\t-l : List currently available interfaces\n");
+ fprintf(stderr, "\t-d NUM : Remove interface NUM\n");
+ fprintf(stderr, "\t-l : List currently available interfaces\n");
+ fprintf(stderr, "\t-U : use ULE framing (default: MPE)\n" );
fprintf(stderr, "\t-v : Print current version\n\n");
}
@@ -200,6 +203,5 @@ void usage(char *prog_name)
void hello(void)
{
printf("\nDVB Network Interface Manager\n");
- printf("Version %s\n", VERSION_INFO);
printf("Copyright (C) 2003, TV Files S.p.A\n\n");
}
diff --git a/util/dvbnet/net_start.pl b/util/dvbnet/net_start.pl
index 71e6367..f31ba22 100755..100644
--- a/util/dvbnet/net_start.pl
+++ b/util/dvbnet/net_start.pl
@@ -22,4 +22,3 @@ sub dvbnet
system("/sbin/ifconfig $DEV_NAME");
}
-
diff --git a/util/dvbnet/net_start.sh b/util/dvbnet/net_start.sh
index b155989..b155989 100755..100644
--- a/util/dvbnet/net_start.sh
+++ b/util/dvbnet/net_start.sh
diff --git a/util/dvbnet/version.h.in b/util/dvbnet/version.h.in
deleted file mode 100644
index d0a6e20..0000000
--- a/util/dvbnet/version.h.in
+++ /dev/null
@@ -1 +0,0 @@
-1.1.0-TVF
diff --git a/util/dvbscan/Makefile b/util/dvbscan/Makefile
new file mode 100644
index 0000000..d7e5de5
--- /dev/null
+++ b/util/dvbscan/Makefile
@@ -0,0 +1,22 @@
+# Makefile for linuxtv.org dvb-apps/util/dvbscan
+
+objects = dvbscan.o \
+ dvbscan_structutils.o \
+ dvbscan_dvb.o \
+ dvbscan_atsc.o
+
+binaries = dvbscan
+
+inst_bin = $(binaries)
+
+CPPFLAGS += -I../../lib
+LDFLAGS += -L../../lib/libdvbapi -L../../lib/libdvbcfg -L../../lib/libdvbsec -L../../lib/libucsi
+LDLIBS += -ldvbcfg -lucsi -ldvbsec -ldvbapi -lpthread
+
+.PHONY: all
+
+all: $(binaries)
+
+$(binaries): $(objects)
+
+include ../../Make.rules
diff --git a/util/dvbscan/dvbscan.c b/util/dvbscan/dvbscan.c
new file mode 100644
index 0000000..c6f9ea8
--- /dev/null
+++ b/util/dvbscan/dvbscan.c
@@ -0,0 +1,370 @@
+/*
+ dvbscan utility
+
+ Copyright (C) 2006 Andrew de Quincey (adq_dvb@lidskialf.net)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <string.h>
+#include <time.h>
+#include <libdvbsec/dvbsec_cfg.h>
+#include <libdvbcfg/dvbcfg_scanfile.h>
+#include <libdvbapi/dvbdemux.h>
+#include "dvbscan.h"
+
+
+#define OUTPUT_TYPE_RAW 1
+#define OUTPUT_TYPE_CHANNELS 2
+#define OUTPUT_TYPE_VDR12 3
+#define OUTPUT_TYPE_VDR13 4
+
+#define SERVICE_FILTER_TV 1
+#define SERVICE_FILTER_RADIO 2
+#define SERVICE_FILTER_OTHER 4
+#define SERVICE_FILTER_ENCRYPTED 8
+
+#define TIMEOUT_WAIT_LOCK 2
+
+
+// transponders we have yet to scan
+static struct transponder *toscan = NULL;
+static struct transponder *toscan_end = NULL;
+
+// transponders we have scanned
+static struct transponder *scanned = NULL;
+static struct transponder *scanned_end = NULL;
+
+
+static void usage(void)
+{
+ static const char *_usage = "\n"
+ " dvbscan: A digital tv channel scanning utility\n"
+ " Copyright (C) 2006 Andrew de Quincey (adq_dvb@lidskialf.net)\n\n"
+ " usage: dvbscan <options> as follows:\n"
+ " -h help\n"
+ " -adapter <id> adapter to use (default 0)\n"
+ " -frontend <id> frontend to use (default 0)\n"
+ " -demux <id> demux to use (default 0)\n"
+ " -secfile <filename> Optional sec.conf file.\n"
+ " -secid <secid> ID of the SEC configuration to use, one of:\n"
+ " * UNIVERSAL (default) - Europe, 10800 to 11800 MHz and 11600 to 12700 Mhz,\n"
+ " Dual LO, loband 9750, hiband 10600 MHz.\n"
+ " * DBS - Expressvu, North America, 12200 to 12700 MHz, Single LO, 11250 MHz.\n"
+ " * STANDARD - 10945 to 11450 Mhz, Single LO, 10000 Mhz.\n"
+ " * ENHANCED - Astra, 10700 to 11700 MHz, Single LO, 9750 MHz.\n"
+ " * C-BAND - Big Dish, 3700 to 4200 MHz, Single LO, 5150 Mhz.\n"
+ " * C-MULTI - Big Dish - Multipoint LNBf, 3700 to 4200 MHz,\n"
+ " Dual LO, H:5150MHz, V:5750MHz.\n"
+ " * One of the sec definitions from the secfile if supplied\n"
+ " -satpos <position> Specify DISEQC switch position for DVB-S.\n"
+ " -inversion <on|off|auto> Specify inversion (default: auto).\n"
+ " -uk-ordering Use UK DVB-T channel ordering if present.\n"
+ " -timeout <secs> Specify filter timeout to use (standard specced values will be used by default)\n"
+ " -filter <filter> Specify service filter, a comma seperated list of the following tokens:\n"
+ " (If no filter is supplied, all services will be output)\n"
+ " * tv - Output TV channels\n"
+ " * radio - Output radio channels\n"
+ " * other - Output other channels\n"
+ " * encrypted - Output encrypted channels\n"
+ " -out raw <filename>|- Output in raw format to <filename> or stdout\n"
+ " channels <filename>|- Output in channels.conf format to <filename> or stdout.\n"
+ " vdr12 <filename>|- Output in vdr 1.2.x format to <filename> or stdout.\n"
+ " vdr13 <filename>|- Output in vdr 1.3.x format to <filename> or stdout.\n"
+ " <initial scan file>\n";
+ fprintf(stderr, "%s\n", _usage);
+
+ exit(1);
+}
+
+
+static int scan_load_callback(struct dvbcfg_scanfile *channel, void *private_data)
+{
+ struct dvbfe_info *feinfo = (struct dvbfe_info *) private_data;
+
+ if (channel->fe_type != feinfo->type)
+ return 0;
+
+ struct transponder *t = new_transponder();
+ append_transponder(t, &toscan, &toscan_end);
+ memcpy(&t->params, &channel->fe_params, sizeof(struct dvbfe_parameters));
+
+ add_frequency(t, t->params.frequency);
+ t->params.frequency = 0;
+
+ return 0;
+}
+
+int main(int argc, char *argv[])
+{
+ uint32_t i;
+ int argpos = 1;
+ int adapter_id = 0;
+ int frontend_id = 0;
+ int demux_id = 0;
+ char *secfile = NULL;
+ char *secid = NULL;
+ int satpos = 0;
+ enum dvbfe_spectral_inversion inversion = DVBFE_INVERSION_AUTO;
+ int service_filter = -1;
+ int uk_ordering = 0;
+ int timeout = 5;
+ int output_type = OUTPUT_TYPE_RAW;
+ char *output_filename = NULL;
+ char *scan_filename = NULL;
+ struct dvbsec_config sec;
+ int valid_sec = 0;
+
+ while(argpos != argc) {
+ if (!strcmp(argv[argpos], "-h")) {
+ usage();
+ } else if (!strcmp(argv[argpos], "-adapter")) {
+ if ((argc - argpos) < 2)
+ usage();
+ if (sscanf(argv[argpos+1], "%i", &adapter_id) != 1)
+ usage();
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-frontend")) {
+ if ((argc - argpos) < 2)
+ usage();
+ if (sscanf(argv[argpos+1], "%i", &frontend_id) != 1)
+ usage();
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-demux")) {
+ if ((argc - argpos) < 2)
+ usage();
+ if (sscanf(argv[argpos+1], "%i", &demux_id) != 1)
+ usage();
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-secfile")) {
+ if ((argc - argpos) < 2)
+ usage();
+ secfile = argv[argpos+1];
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-secid")) {
+ if ((argc - argpos) < 2)
+ usage();
+ secid = argv[argpos+1];
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-satpos")) {
+ if ((argc - argpos) < 2)
+ usage();
+ if (sscanf(argv[argpos+1], "%i", &satpos) != 1)
+ usage();
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-inversion")) {
+ if ((argc - argpos) < 2)
+ usage();
+ if (!strcmp(argv[argpos+1], "off")) {
+ inversion = DVBFE_INVERSION_OFF;
+ } else if (!strcmp(argv[argpos+1], "on")) {
+ inversion = DVBFE_INVERSION_ON;
+ } else if (!strcmp(argv[argpos+1], "auto")) {
+ inversion = DVBFE_INVERSION_AUTO;
+ } else {
+ usage();
+ }
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-uk-ordering")) {
+ if ((argc - argpos) < 1)
+ usage();
+ uk_ordering = 1;
+ } else if (!strcmp(argv[argpos], "-timeout")) {
+ if ((argc - argpos) < 2)
+ usage();
+ if (sscanf(argv[argpos+1], "%i", &timeout) != 1)
+ usage();
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-filter")) {
+ if ((argc - argpos) < 2)
+ usage();
+ service_filter = 0;
+ if (!strstr(argv[argpos+1], "tv")) {
+ service_filter |= SERVICE_FILTER_TV;
+ }
+ if (!strstr(argv[argpos+1], "radio")) {
+ service_filter |= SERVICE_FILTER_RADIO;
+ }
+ if (!strstr(argv[argpos+1], "other")) {
+ service_filter |= SERVICE_FILTER_OTHER;
+ }
+ if (!strstr(argv[argpos+1], "encrypted")) {
+ service_filter |= SERVICE_FILTER_ENCRYPTED;
+ }
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-out")) {
+ if ((argc - argpos) < 3)
+ usage();
+ if (!strcmp(argv[argpos+1], "raw")) {
+ output_type = OUTPUT_TYPE_RAW;
+ } else if (!strcmp(argv[argpos+1], "channels")) {
+ output_type = OUTPUT_TYPE_CHANNELS;
+ } else if (!strcmp(argv[argpos+1], "vdr12")) {
+ output_type = OUTPUT_TYPE_VDR12;
+ } else if (!strcmp(argv[argpos+1], "vdr13")) {
+ output_type = OUTPUT_TYPE_VDR13;
+ } else {
+ usage();
+ }
+ output_filename = argv[argpos+2];
+ if (!strcmp(output_filename, "-"))
+ output_filename = NULL;
+ } else {
+ if ((argc - argpos) != 1)
+ usage();
+ scan_filename = argv[argpos];
+ argpos++;
+ }
+ }
+
+ // open the frontend & get its type
+ struct dvbfe_handle *fe = dvbfe_open(adapter_id, frontend_id, 0);
+ if (fe == NULL) {
+ fprintf(stderr, "Failed to open frontend\n");
+ exit(1);
+ }
+ struct dvbfe_info feinfo;
+ if (dvbfe_get_info(fe, 0, &feinfo, DVBFE_INFO_QUERYTYPE_IMMEDIATE, 0) != 0) {
+ fprintf(stderr, "Failed to query frontend\n");
+ exit(1);
+ }
+
+ // default SEC with a DVBS card
+ if ((secid == NULL) && (feinfo.type == DVBFE_TYPE_DVBS))
+ secid = "UNIVERSAL";
+
+ // look up SECID if one was supplied
+ if (secid != NULL) {
+ if (dvbsec_cfg_find(secfile, secid, &sec)) {
+ fprintf(stderr, "Unable to find suitable sec/lnb configuration for channel\n");
+ exit(1);
+ }
+ valid_sec = 1;
+ }
+
+ // load the initial scan file
+ FILE *scan_file = fopen(scan_filename, "r");
+ if (scan_file == NULL) {
+ fprintf(stderr, "Could not open scan file %s\n", scan_filename);
+ exit(1);
+ }
+ if (dvbcfg_scanfile_parse(scan_file, scan_load_callback, &feinfo) < 0) {
+ fprintf(stderr, "Could not parse scan file %s\n", scan_filename);
+ exit(1);
+ }
+ fclose(scan_file);
+
+ // main scan loop
+ while(toscan) {
+ // get the first item on the toscan list
+ struct transponder *tmp = first_transponder(&toscan, &toscan_end);
+
+ // have we already seen this transponder?
+ if (seen_transponder(tmp, scanned)) {
+ free_transponder(tmp);
+ continue;
+ }
+
+ // do we have a valid SEC configuration?
+ struct dvbsec_config *psec = NULL;
+ if (valid_sec)
+ psec = &sec;
+
+ // tune it
+ int tuned_ok = 0;
+ for(i=0; i < tmp->frequency_count; i++) {
+ tmp->params.frequency = tmp->frequencies[i];
+ if (dvbsec_set(fe,
+ psec,
+ tmp->polarization,
+ (satpos & 0x01) ? DISEQC_SWITCH_B : DISEQC_SWITCH_A,
+ (satpos & 0x02) ? DISEQC_SWITCH_B : DISEQC_SWITCH_A,
+ &tmp->params,
+ 0)) {
+ fprintf(stderr, "Failed to set frontend\n");
+ exit(1);
+ }
+
+ // wait for lock
+ time_t starttime = time(NULL);
+ while((time(NULL) - starttime) < TIMEOUT_WAIT_LOCK) {
+ if (dvbfe_get_info(fe, DVBFE_INFO_LOCKSTATUS, &feinfo,
+ DVBFE_INFO_QUERYTYPE_IMMEDIATE, 0) !=
+ DVBFE_INFO_QUERYTYPE_IMMEDIATE) {
+ fprintf(stderr, "Unable to query frontend status\n");
+ exit(1);
+ }
+ if (feinfo.lock) {
+ tuned_ok = 1;
+ break;
+ }
+ usleep(100000);
+ }
+ }
+ if (!tuned_ok) {
+ free_transponder(tmp);
+ continue;
+ }
+
+ // scan it
+ switch(feinfo.type) {
+ case DVBFE_TYPE_DVBS:
+ case DVBFE_TYPE_DVBC:
+ case DVBFE_TYPE_DVBT:
+ dvbscan_scan_dvb(fe);
+ break;
+
+ case DVBFE_TYPE_ATSC:
+ dvbscan_scan_atsc(fe);
+ break;
+ }
+
+ // add to scanned list.
+ append_transponder(tmp, &scanned, &scanned_end);
+ }
+
+ // FIXME: output the data
+
+ return 0;
+}
+
+int create_section_filter(int adapter, int demux, uint16_t pid, uint8_t table_id)
+{
+ int demux_fd = -1;
+ uint8_t filter[18];
+ uint8_t mask[18];
+
+ // open the demuxer
+ if ((demux_fd = dvbdemux_open_demux(adapter, demux, 0)) < 0) {
+ return -1;
+ }
+
+ // create a section filter
+ memset(filter, 0, sizeof(filter));
+ memset(mask, 0, sizeof(mask));
+ filter[0] = table_id;
+ mask[0] = 0xFF;
+ if (dvbdemux_set_section_filter(demux_fd, pid, filter, mask, 1, 1)) {
+ close(demux_fd);
+ return -1;
+ }
+
+ // done
+ return demux_fd;
+}
diff --git a/util/dvbscan/dvbscan.h b/util/dvbscan/dvbscan.h
new file mode 100644
index 0000000..ddf61cf
--- /dev/null
+++ b/util/dvbscan/dvbscan.h
@@ -0,0 +1,136 @@
+/*
+ dvbscan utility
+
+ Copyright (C) 2006 Andrew de Quincey (adq_dvb@lidskialf.net)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#ifndef DVBSCAN_H
+#define DVBSCAN_H 1
+
+#include <libdvbapi/dvbfe.h>
+#include <libdvbsec/dvbsec_api.h>
+#include <libucsi/types.h>
+
+/**
+ * A stream which is part of a service.
+ */
+struct stream
+{
+ uint8_t stream_type;
+ iso639lang_t language;
+
+ struct stream *next;
+};
+
+/**
+ * A service (programme) which is part of a transponder.
+ */
+struct service
+{
+ /**
+ * Service identification stuff. Strings are in UTF-8.
+ */
+ uint16_t service_id;
+ char *provider_name;
+ char *service_name;
+
+ /**
+ * Pids common to the whole service.
+ */
+ uint16_t pmt_pid;
+ uint16_t pcr_pid;
+
+ /**
+ * CA stuff.
+ */
+ uint16_t *ca_ids;
+ uint32_t ca_ids_count;
+ uint8_t is_scrambled;
+
+ /**
+ * BBC channel number (-1 if unknown).
+ */
+ int bbc_channel_number;
+
+ /**
+ * Streams composing this service.
+ */
+ struct stream *streams;
+ struct stream *streams_end;
+
+ /**
+ * Next service in list.
+ */
+ struct service *next;
+};
+
+/**
+ * A collection of multiplexed services.
+ */
+struct transponder
+{
+ /**
+ * we need to have a seperate list of frequencies since the
+ * DVB standard allows a frequency list descriptor of alternate
+ * frequencies to be supplied.
+ */
+ uint32_t *frequencies;
+ uint32_t frequency_count;
+
+ /**
+ * The rest of the tuning parameters.
+ */
+ struct dvbfe_parameters params;
+
+ /**
+ * DVBS specific parameters
+ */
+ enum dvbsec_diseqc_polarization polarization;
+ int oribital_position;
+
+ /**
+ * Numerical IDs
+ */
+ uint16_t network_id;
+ uint16_t original_network_id;
+ uint16_t transport_stream_id;
+
+ /**
+ * Services detected on this transponder.
+ */
+ struct service *services;
+ struct service *services_end;
+
+ /**
+ * Next item in list.
+ */
+ struct transponder *next;
+};
+
+extern void append_transponder(struct transponder *t, struct transponder **tlist, struct transponder **tlist_end);
+extern struct transponder *new_transponder(void);
+extern void free_transponder(struct transponder *t);
+extern int seen_transponder(struct transponder *t, struct transponder *checklist);
+extern void add_frequency(struct transponder *t, uint32_t frequency);
+extern struct transponder *first_transponder(struct transponder **tlist, struct transponder **tlist_end);
+
+extern int create_section_filter(int adapter, int demux, uint16_t pid, uint8_t table_id);
+extern void dvbscan_scan_dvb(struct dvbfe_handle *fe);
+extern void dvbscan_scan_atsc(struct dvbfe_handle *fe);
+
+#endif
diff --git a/util/dvbscan/dvbscan_atsc.c b/util/dvbscan/dvbscan_atsc.c
new file mode 100644
index 0000000..b346f78
--- /dev/null
+++ b/util/dvbscan/dvbscan_atsc.c
@@ -0,0 +1,30 @@
+/*
+ dvbscan utility
+
+ Copyright (C) 2006 Andrew de Quincey (adq_dvb@lidskialf.net)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include "dvbscan.h"
+
+void dvbscan_scan_atsc(struct dvbfe_handle *fe)
+{
+ // FIXME
+}
diff --git a/util/dvbscan/dvbscan_dvb.c b/util/dvbscan/dvbscan_dvb.c
new file mode 100644
index 0000000..c76d072
--- /dev/null
+++ b/util/dvbscan/dvbscan_dvb.c
@@ -0,0 +1,30 @@
+/*
+ dvbscan utility
+
+ Copyright (C) 2006 Andrew de Quincey (adq_dvb@lidskialf.net)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include "dvbscan.h"
+
+void dvbscan_scan_dvb(struct dvbfe_handle *fe)
+{
+ // FIXME
+}
diff --git a/util/dvbscan/dvbscan_structutils.c b/util/dvbscan/dvbscan_structutils.c
new file mode 100644
index 0000000..6fe3124
--- /dev/null
+++ b/util/dvbscan/dvbscan_structutils.c
@@ -0,0 +1,99 @@
+/*
+ dvbscan utility
+
+ Copyright (C) 2006 Andrew de Quincey (adq_dvb@lidskialf.net)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include "dvbscan.h"
+
+void append_transponder(struct transponder *t, struct transponder **tlist, struct transponder **tlist_end)
+{
+ if (*tlist_end == NULL) {
+ *tlist = t;
+ } else {
+ (*tlist_end)->next = t;
+ }
+ *tlist_end = t;
+ t->next = NULL;
+}
+
+struct transponder *new_transponder(void)
+{
+ struct transponder *t = (struct transponder *) malloc(sizeof(struct transponder));
+ if (t == NULL) {
+ fprintf(stderr, "Out of memory\n");
+ exit(1);
+ }
+ memset(t, 0, sizeof(struct transponder));
+
+ return t;
+}
+
+void free_transponder(struct transponder *t)
+{
+ if (t->frequencies)
+ free(t->frequencies);
+ // FIXME: free services
+ free(t);
+}
+
+int seen_transponder(struct transponder *t, struct transponder *checklist)
+{
+ uint32_t i;
+
+ struct transponder *cur_check = checklist;
+ while(cur_check) {
+ uint32_t freq1 = cur_check->params.frequency / 2000;
+ for(i=0; i < t->frequency_count; i++) {
+ uint32_t freq2 = t->frequencies[i] / 2000;
+ if (freq1 == freq2) {
+ return 1;
+ }
+ }
+ cur_check = cur_check->next;
+ }
+
+ return 0;
+}
+
+void add_frequency(struct transponder *t, uint32_t frequency)
+{
+ uint32_t *tmp;
+
+ tmp = (uint32_t*) realloc(t->frequencies, sizeof(uint32_t) * (t->frequency_count + 1));
+ if (tmp == NULL) {
+ fprintf(stderr, "Out of memory\n");
+ exit(1);
+ }
+ tmp[t->frequency_count++] = frequency;
+ t->frequencies = tmp;
+}
+
+struct transponder *first_transponder(struct transponder **tlist, struct transponder **tlist_end)
+{
+ struct transponder *t = *tlist;
+
+ *tlist = t->next;
+ if (*tlist == NULL)
+ *tlist_end = NULL;
+
+ return t;
+}
diff --git a/util/dvbtraffic/Makefile b/util/dvbtraffic/Makefile
index c29be40..b9a8e82 100644
--- a/util/dvbtraffic/Makefile
+++ b/util/dvbtraffic/Makefile
@@ -1,6 +1,15 @@
+# Makefile for linuxtv.org dvb-apps/util/dvbtraffic
-dvbtraffic: dvbtraffic.c
- gcc -MD -g -O2 -Wall -I../../include $< -o $@
+binaries = dvbtraffic
-clean:
- rm -f *.o *.d dvbtraffic
+inst_bin = $(binaries)
+
+CPPFLAGS += -I../../lib
+LDFLAGS += -L../../lib/libdvbapi
+LDLIBS += -ldvbapi
+
+.PHONY: all
+
+all: $(binaries)
+
+include ../../Make.rules
diff --git a/util/dvbtraffic/dvbtraffic.c b/util/dvbtraffic/dvbtraffic.c
index 8add053..b9a151d 100644
--- a/util/dvbtraffic/dvbtraffic.c
+++ b/util/dvbtraffic/dvbtraffic.c
@@ -1,3 +1,5 @@
+/* This file is released into the public domain by its authors */
+
#include <stdio.h>
#include <stdlib.h>
#include <sys/ioctl.h>
@@ -9,64 +11,83 @@
#include <sys/poll.h>
#include <sys/time.h>
#include <string.h>
-
-#include <linux/dvb/dmx.h>
-#include <linux/dvb/frontend.h>
-#include <linux/dvb/video.h>
+#include <limits.h>
+#include <libdvbapi/dvbdemux.h>
#define BSIZE 188
-int pidt[0x2001];
+static int pidt[0x2001];
+
+static void usage(FILE *output)
+{
+ fprintf(output,
+ "Usage: dvbtraffic [OPTION]...\n"
+ "Options:\n"
+ " -a N use dvb adapter N\n"
+ " -d N use demux N\n"
+ " -h display this help\n");
+}
int main(int argc, char **argv)
{
- int fd, ffd, packets = 0;
struct timeval startt;
- struct dmx_pes_filter_params flt;
- char *search;
- unsigned char buffer[BSIZE];
-
- fd = open("/dev/dvb/adapter0/dvr0", O_RDONLY);
-
- ioctl(fd, DMX_SET_BUFFER_SIZE, 1024 * 1024);
+ int adapter = 0, demux = 0;
+ char *search = NULL;
+ int fd, ffd, packets = 0;
+ int opt;
- ffd = open("/dev/dvb/adapter0/demux0", O_RDWR);
- if (ffd < 0) {
- perror("/dev/dvb/adapter0/demux0");
- return -fd;
+ while ((opt = getopt(argc, argv, "a:d:hs:")) != -1) {
+ switch (opt) {
+ case 'a':
+ adapter = atoi(optarg);
+ break;
+ case 'd':
+ demux = atoi(optarg);
+ break;
+ case 'h':
+ usage(stdout);
+ exit(0);
+ case 's':
+ search = strdup(optarg);
+ break;
+ default:
+ usage(stderr);
+ exit(1);
+ }
}
- flt.pid = 0x2000;
- flt.input = DMX_IN_FRONTEND;
- flt.output = DMX_OUT_TS_TAP;
- flt.pes_type = DMX_PES_OTHER;
- flt.flags = 0;
+ // open the DVR device
+ fd = dvbdemux_open_dvr(adapter, demux, 1, 0);
+ if (fd < 0) {
+ fprintf(stderr, "dvbtraffic: Could not open dvr device: %m\n");
+ exit(1);
+ }
+ dvbdemux_set_buffer(fd, 1024 * 1024);
- if (ioctl(ffd, DMX_SET_PES_FILTER, &flt) < 0) {
- perror("DMX_SET_PES_FILTER");
- return -1;
+ ffd = dvbdemux_open_demux(adapter, demux, 0);
+ if (ffd < 0) {
+ fprintf(stderr, "dvbtraffic: Could not open demux device: %m\n");
+ exit(1);
}
- if (ioctl(ffd, DMX_START, 0) < 0) {
- perror("DMX_SET_PES_FILTER");
+ if (dvbdemux_set_pid_filter(ffd, -1, DVBDEMUX_INPUT_FRONTEND, DVBDEMUX_OUTPUT_DVR, 1)) {
+ perror("dvbdemux_set_pid_filter");
return -1;
}
gettimeofday(&startt, 0);
- if (argc > 1)
- search = argv[1];
- else
- search = 0;
-
while (1) {
- int pid, r, ok;
- if ((r = read(fd, buffer, 188)) <= 0) {
+ unsigned char buffer[BSIZE];
+ int pid, ok;
+ ssize_t r;
+
+ if ((r = read(fd, buffer, BSIZE)) <= 0) {
perror("read");
break;
}
- if (r != 188) {
- printf("only read %d\n", r);
+ if (r != BSIZE) {
+ fprintf(stderr, "dvbtraffic: only read %zd bytes\n", r);
break;
}
if (buffer[0] != 0x47) {
@@ -106,16 +127,16 @@ int main(int argc, char **argv)
(now.tv_sec - startt.tv_sec) * 1000 +
(now.tv_usec - startt.tv_usec) / 1000;
if (diff > 1000) {
- int pid = 0;
- for (pid = 0; pid < 0x2001; pid++) {
- if (pidt[pid]) {
+ int _pid = 0;
+ for (_pid = 0; _pid < 0x2001; _pid++) {
+ if (pidt[_pid]) {
printf("%04x %5d p/s %5d kb/s %5d kbit\n",
- pid,
- pidt[pid] * 1000 / diff,
- pidt[pid] * 1000 / diff * 188 / 1024,
- pidt[pid] * 8 * 1000 / diff * 188 / 1000);
+ _pid,
+ pidt[_pid] * 1000 / diff,
+ pidt[_pid] * 1000 / diff * 188 / 1024,
+ pidt[_pid] * 8 * 1000 / diff * 188 / 1000);
}
- pidt[pid] = 0;
+ pidt[_pid] = 0;
}
printf("-PID--FREQ-----BANDWIDTH-BANDWIDTH-\n");
startt = now;
@@ -127,4 +148,3 @@ int main(int argc, char **argv)
close(fd);
return 0;
}
-
diff --git a/util/femon/Makefile b/util/femon/Makefile
new file mode 100644
index 0000000..4381d43
--- /dev/null
+++ b/util/femon/Makefile
@@ -0,0 +1,15 @@
+# Makefile for linuxtv.org dvb-apps/util/femon
+
+binaries = femon
+
+inst_bin = $(binaries)
+
+CPPFLAGS += -I../../lib
+LDFLAGS += -L../../lib/libdvbapi
+LDLIBS += -ldvbapi
+
+.PHONY: all
+
+all: $(binaries)
+
+include ../../Make.rules
diff --git a/util/femon/femon.c b/util/femon/femon.c
new file mode 100644
index 0000000..46d239d
--- /dev/null
+++ b/util/femon/femon.c
@@ -0,0 +1,175 @@
+/* femon -- monitor frontend status
+ *
+ * Copyright (C) 2003 convergence GmbH
+ * Johannes Stezenbach <js@convergence.de>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <limits.h>
+#include <string.h>
+#include <errno.h>
+#include <sys/ioctl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/poll.h>
+#include <fcntl.h>
+#include <time.h>
+#include <unistd.h>
+
+#include <stdint.h>
+#include <sys/time.h>
+
+#include <libdvbapi/dvbfe.h>
+
+#define FE_STATUS_PARAMS (DVBFE_INFO_LOCKSTATUS|DVBFE_INFO_SIGNAL_STRENGTH|DVBFE_INFO_BER|DVBFE_INFO_SNR|DVBFE_INFO_UNCORRECTED_BLOCKS)
+
+static char *usage_str =
+ "\nusage: femon [options]\n"
+ " -H : human readable output\n"
+ " -a number : use given adapter (default 0)\n"
+ " -f number : use given frontend (default 0)\n"
+ " -c number : samples to take (default 0 = infinite)\n\n";
+
+
+static void usage(void)
+{
+ fprintf(stderr, usage_str);
+ exit(1);
+}
+
+
+static
+int check_frontend (struct dvbfe_handle *fe, int human_readable, unsigned int count)
+{
+ struct dvbfe_info fe_info;
+ unsigned int samples = 0;
+
+ do {
+ if (dvbfe_get_info(fe, FE_STATUS_PARAMS, &fe_info, DVBFE_INFO_QUERYTYPE_IMMEDIATE, 0) != FE_STATUS_PARAMS) {
+ fprintf(stderr, "Problem retrieving frontend information: %m\n");
+ }
+
+
+
+ if (human_readable) {
+ printf ("status %c%c%c%c%c | signal %3u%% | snr %3u%% | ber %d | unc %d | ",
+ fe_info.signal ? 'S' : ' ',
+ fe_info.carrier ? 'C' : ' ',
+ fe_info.viterbi ? 'V' : ' ',
+ fe_info.sync ? 'Y' : ' ',
+ fe_info.lock ? 'L' : ' ',
+ (fe_info.signal_strength * 100) / 0xffff,
+ (fe_info.snr * 100) / 0xffff,
+ fe_info.ber,
+ fe_info.ucblocks);
+ } else {
+ printf ("status %c%c%c%c%c | signal %04x | snr %04x | ber %08x | unc %08x | ",
+ fe_info.signal ? 'S' : ' ',
+ fe_info.carrier ? 'C' : ' ',
+ fe_info.viterbi ? 'V' : ' ',
+ fe_info.sync ? 'Y' : ' ',
+ fe_info.lock ? 'L' : ' ',
+ fe_info.signal_strength,
+ fe_info.snr,
+ fe_info.ber,
+ fe_info.ucblocks);
+ }
+
+ if (fe_info.lock)
+ printf("FE_HAS_LOCK");
+
+ printf("\n");
+ fflush(stdout);
+ usleep(1000000);
+ samples++;
+ } while ((!count) || (count-samples));
+
+ return 0;
+}
+
+
+static
+int do_mon(unsigned int adapter, unsigned int frontend, int human_readable, unsigned int count)
+{
+ int result;
+ struct dvbfe_handle *fe;
+ struct dvbfe_info fe_info;
+ char *fe_type = "UNKNOWN";
+
+ fe = dvbfe_open(adapter, frontend, 1);
+ if (fe == NULL) {
+ perror("opening frontend failed");
+ return 0;
+ }
+
+ dvbfe_get_info(fe, 0, &fe_info, DVBFE_INFO_QUERYTYPE_IMMEDIATE, 0);
+ switch(fe_info.type) {
+ case DVBFE_TYPE_DVBS:
+ fe_type = "DVBS";
+ break;
+ case DVBFE_TYPE_DVBC:
+ fe_type = "DVBC";
+ break;
+ case DVBFE_TYPE_DVBT:
+ fe_type = "DVBT";
+ break;
+ case DVBFE_TYPE_ATSC:
+ fe_type = "ATSC";
+ break;
+ }
+ printf("FE: %s (%s)\n", fe_info.name, fe_type);
+
+ result = check_frontend (fe, human_readable, count);
+
+ dvbfe_close(fe);
+
+ return result;
+}
+
+int main(int argc, char *argv[])
+{
+ unsigned int adapter = 0, frontend = 0, count = 0;
+ int human_readable = 0;
+ int opt;
+
+ while ((opt = getopt(argc, argv, "Ha:f:c:")) != -1) {
+ switch (opt)
+ {
+ default:
+ usage();
+ break;
+ case 'a':
+ adapter = strtoul(optarg, NULL, 0);
+ break;
+ case 'c':
+ count = strtoul(optarg, NULL, 0);
+ break;
+ case 'f':
+ frontend = strtoul(optarg, NULL, 0);
+ break;
+ case 'H':
+ human_readable = 1;
+ break;
+ }
+ }
+
+ do_mon(adapter, frontend, human_readable, count);
+
+ return 0;
+}
diff --git a/util/gnutv/Makefile b/util/gnutv/Makefile
new file mode 100644
index 0000000..3a679c4
--- /dev/null
+++ b/util/gnutv/Makefile
@@ -0,0 +1,21 @@
+# Makefile for linuxtv.org dvb-apps/util/gnutv
+
+objects = gnutv_ca.o \
+ gnutv_dvb.o \
+ gnutv_data.o
+
+binaries = gnutv
+
+inst_bin = $(binaries)
+
+CPPFLAGS += -I../../lib
+LDFLAGS += -L../../lib/libdvbapi -L../../lib/libdvbcfg -L../../lib/libdvbsec -L../../lib/libdvben50221 -L../../lib/libucsi
+LDLIBS += -ldvbcfg -ldvben50221 -lucsi -ldvbsec -ldvbapi -lpthread
+
+.PHONY: all
+
+all: $(binaries)
+
+$(binaries): $(objects)
+
+include ../../Make.rules
diff --git a/util/gnutv/gnutv.c b/util/gnutv/gnutv.c
new file mode 100644
index 0000000..62f19be
--- /dev/null
+++ b/util/gnutv/gnutv.c
@@ -0,0 +1,365 @@
+/*
+ gnutv utility
+
+ Copyright (C) 2004, 2005 Manu Abraham <abraham.manu@gmail.com>
+ Copyright (C) 2006 Andrew de Quincey (adq_dvb@lidskialf.net)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include <stdio.h>
+#include <unistd.h>
+#include <limits.h>
+#include <string.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <pthread.h>
+#include <sys/poll.h>
+#include <libdvbapi/dvbdemux.h>
+#include <libdvbapi/dvbaudio.h>
+#include <libdvbsec/dvbsec_cfg.h>
+#include <libucsi/mpeg/section.h>
+#include "gnutv.h"
+#include "gnutv_dvb.h"
+#include "gnutv_ca.h"
+#include "gnutv_data.h"
+
+
+static void signal_handler(int _signal);
+
+static int quit_app = 0;
+
+void usage(void)
+{
+ static const char *_usage = "\n"
+ " gnutv: A digital tv utility\n"
+ " Copyright (C) 2004, 2005, 2006 Manu Abraham (manu@kromtek.com)\n"
+ " Copyright (C) 2006 Andrew de Quincey (adq_dvb@lidskialf.net)\n\n"
+ " usage: gnutv <options> as follows:\n"
+ " -h help\n"
+ " -adapter <id> adapter to use (default 0)\n"
+ " -frontend <id> frontend to use (default 0)\n"
+ " -demux <id> demux to use (default 0)\n"
+ " -caslotnum <id> ca slot number to use (default 0)\n"
+ " -channels <filename> channels.conf file.\n"
+ " -secfile <filename> Optional sec.conf file.\n"
+ " -secid <secid> ID of the SEC configuration to use, one of:\n"
+ " * UNIVERSAL (default) - Europe, 10800 to 11800 MHz and 11600 to 12700 Mhz,\n"
+ " Dual LO, loband 9750, hiband 10600 MHz.\n"
+ " * DBS - Expressvu, North America, 12200 to 12700 MHz, Single LO, 11250 MHz.\n"
+ " * STANDARD - 10945 to 11450 Mhz, Single LO, 10000 Mhz.\n"
+ " * ENHANCED - Astra, 10700 to 11700 MHz, Single LO, 9750 MHz.\n"
+ " * C-BAND - Big Dish, 3700 to 4200 MHz, Single LO, 5150 Mhz.\n"
+ " * C-MULTI - Big Dish - Multipoint LNBf, 3700 to 4200 MHz,\n"
+ " Dual LO, H:5150MHz, V:5750MHz.\n"
+ " * One of the sec definitions from the secfile if supplied\n"
+ " -out decoder Output to hardware decoder (default)\n"
+ " decoderabypass Output to hardware decoder using audio bypass\n"
+ " dvr Output stream to dvr device\n"
+ " null Do not output anything\n"
+ " stdout Output to stdout\n"
+ " file <filename> Output stream to file\n"
+ " udp <address> <port> Output stream to address:port using udp\n"
+ " udpif <address> <port> <interface> Output stream to address:port using udp\n"
+ " forcing the specified interface\n"
+ " rtp <address> <port> Output stream to address:port using udp-rtp\n"
+ " rtpif <address> <port> <interface> Output stream to address:port using udp-rtp\n"
+ " forcing the specified interface\n"
+ " -timeout <secs> Number of seconds to output channel for\n"
+ " (0=>exit immediately after successful tuning, default is to output forever)\n"
+ " -cammenu Show the CAM menu\n"
+ " -nomoveca Do not attempt to move CA descriptors from stream to programme level\n"
+ " <channel name>\n";
+ fprintf(stderr, "%s\n", _usage);
+
+ exit(1);
+}
+
+int find_channel(struct dvbcfg_zapchannel *channel, void *private_data)
+{
+ struct dvbcfg_zapchannel *tmpchannel = private_data;
+
+ if (strcmp(channel->name, tmpchannel->name) == 0) {
+ memcpy(tmpchannel, channel, sizeof(struct dvbcfg_zapchannel));
+ return 1;
+ }
+
+ return 0;
+}
+
+int main(int argc, char *argv[])
+{
+ int adapter_id = 0;
+ int frontend_id = 0;
+ int demux_id = 0;
+ int caslot_num = 0;
+ char *chanfile = "/etc/channels.conf";
+ char *secfile = NULL;
+ char *secid = NULL;
+ char *channel_name = NULL;
+ int output_type = OUTPUT_TYPE_DECODER;
+ char *outfile = NULL;
+ char *outhost = NULL;
+ char *outport = NULL;
+ char *outif = NULL;
+ struct addrinfo *outaddrs = NULL;
+ int timeout = -1;
+ int moveca = 1;
+ int cammenu = 0;
+ int argpos = 1;
+ struct gnutv_dvb_params gnutv_dvb_params;
+ struct gnutv_ca_params gnutv_ca_params;
+ int ffaudiofd = -1;
+ int usertp = 0;
+
+ while(argpos != argc) {
+ if (!strcmp(argv[argpos], "-h")) {
+ usage();
+ } else if (!strcmp(argv[argpos], "-adapter")) {
+ if ((argc - argpos) < 2)
+ usage();
+ if (sscanf(argv[argpos+1], "%i", &adapter_id) != 1)
+ usage();
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-frontend")) {
+ if ((argc - argpos) < 2)
+ usage();
+ if (sscanf(argv[argpos+1], "%i", &frontend_id) != 1)
+ usage();
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-demux")) {
+ if ((argc - argpos) < 2)
+ usage();
+ if (sscanf(argv[argpos+1], "%i", &demux_id) != 1)
+ usage();
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-caslotnum")) {
+ if ((argc - argpos) < 2)
+ usage();
+ if (sscanf(argv[argpos+1], "%i", &caslot_num) != 1)
+ usage();
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-channels")) {
+ if ((argc - argpos) < 2)
+ usage();
+ chanfile = argv[argpos+1];
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-secfile")) {
+ if ((argc - argpos) < 2)
+ usage();
+ secfile = argv[argpos+1];
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-secid")) {
+ if ((argc - argpos) < 2)
+ usage();
+ secid = argv[argpos+1];
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-out")) {
+ if ((argc - argpos) < 2)
+ usage();
+ if (!strcmp(argv[argpos+1], "decoder")) {
+ output_type = OUTPUT_TYPE_DECODER;
+ } else if (!strcmp(argv[argpos+1], "decoderabypass")) {
+ output_type = OUTPUT_TYPE_DECODER_ABYPASS;
+ } else if (!strcmp(argv[argpos+1], "dvr")) {
+ output_type = OUTPUT_TYPE_DVR;
+ } else if (!strcmp(argv[argpos+1], "null")) {
+ output_type = OUTPUT_TYPE_NULL;
+ } else if (!strcmp(argv[argpos+1], "stdout")) {
+ output_type = OUTPUT_TYPE_STDOUT;
+ } else if (!strcmp(argv[argpos+1], "file")) {
+ output_type = OUTPUT_TYPE_FILE;
+ if ((argc - argpos) < 3)
+ usage();
+ outfile = argv[argpos+2];
+ argpos++;
+ } else if ((!strcmp(argv[argpos+1], "udp")) ||
+ (!strcmp(argv[argpos+1], "rtp"))) {
+ output_type = OUTPUT_TYPE_UDP;
+ if ((argc - argpos) < 4)
+ usage();
+
+ if (!strcmp(argv[argpos+1], "rtp"))
+ usertp = 1;
+ outhost = argv[argpos+2];
+ outport = argv[argpos+3];
+ argpos+=2;
+ } else if ((!strcmp(argv[argpos+1], "udpif")) ||
+ (!strcmp(argv[argpos+1], "rtpif"))) {
+ output_type = OUTPUT_TYPE_UDP;
+ if ((argc - argpos) < 5)
+ usage();
+
+ if (!strcmp(argv[argpos+1], "rtpif"))
+ usertp = 1;
+ outhost = argv[argpos+2];
+ outport = argv[argpos+3];
+ outif = argv[argpos+4];
+ argpos+=3;
+ } else {
+ usage();
+ }
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-timeout")) {
+ if ((argc - argpos) < 2)
+ usage();
+ if (sscanf(argv[argpos+1], "%i", &timeout) != 1)
+ usage();
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-nomoveca")) {
+ moveca = 0;
+ argpos++;
+ } else if (!strcmp(argv[argpos], "-cammenu")) {
+ cammenu = 1;
+ argpos++;
+ } else {
+ if ((argc - argpos) != 1)
+ usage();
+ channel_name = argv[argpos];
+ argpos++;
+ }
+ }
+
+ // the user didn't select anything!
+ if ((channel_name == NULL) && (!cammenu))
+ usage();
+
+ // resolve host/port
+ if ((outhost != NULL) && (outport != NULL)) {
+ int res;
+ struct addrinfo hints;
+ memset(&hints, 0, sizeof(hints));
+ hints.ai_family = AF_UNSPEC;
+ hints.ai_socktype = SOCK_DGRAM;
+ if ((res = getaddrinfo(outhost, outport, &hints, &outaddrs)) != 0) {
+ fprintf(stderr, "Unable to resolve requested address: %s\n", gai_strerror(res));
+ exit(1);
+ }
+ }
+
+ // setup any signals
+ signal(SIGINT, signal_handler);
+ signal(SIGPIPE, SIG_IGN);
+
+ // start the CA stuff
+ gnutv_ca_params.adapter_id = adapter_id;
+ gnutv_ca_params.caslot_num = caslot_num;
+ gnutv_ca_params.cammenu = cammenu;
+ gnutv_ca_params.moveca = moveca;
+ gnutv_ca_start(&gnutv_ca_params);
+
+ // frontend setup if a channel name was supplied
+ if ((!cammenu) && (channel_name != NULL)) {
+ // find the requested channel
+ if (strlen(channel_name) >= sizeof(gnutv_dvb_params.channel.name)) {
+ fprintf(stderr, "Channel name is too long %s\n", channel_name);
+ exit(1);
+ }
+ FILE *channel_file = fopen(chanfile, "r");
+ if (channel_file == NULL) {
+ fprintf(stderr, "Could open channel file %s\n", chanfile);
+ exit(1);
+ }
+ memcpy(gnutv_dvb_params.channel.name, channel_name, strlen(channel_name) + 1);
+ if (dvbcfg_zapchannel_parse(channel_file, find_channel, &gnutv_dvb_params.channel) != 1) {
+ fprintf(stderr, "Unable to find requested channel %s\n", channel_name);
+ exit(1);
+ }
+ fclose(channel_file);
+
+ // default SEC with a DVBS card
+ if ((secid == NULL) && (gnutv_dvb_params.channel.fe_type == DVBFE_TYPE_DVBS))
+ secid = "UNIVERSAL";
+
+ // look it up if one were supplied
+ gnutv_dvb_params.valid_sec = 0;
+ if (secid != NULL) {
+ if (dvbsec_cfg_find(secfile, secid,
+ &gnutv_dvb_params.sec)) {
+ fprintf(stderr, "Unable to find suitable sec/lnb configuration for channel\n");
+ exit(1);
+ }
+ gnutv_dvb_params.valid_sec = 1;
+ }
+
+ // open the frontend
+ gnutv_dvb_params.fe = dvbfe_open(adapter_id, frontend_id, 0);
+ if (gnutv_dvb_params.fe == NULL) {
+ fprintf(stderr, "Failed to open frontend\n");
+ exit(1);
+ }
+
+ // failover decoder to dvr output if decoder not available
+ if ((output_type == OUTPUT_TYPE_DECODER) ||
+ (output_type == OUTPUT_TYPE_DECODER_ABYPASS)) {
+ ffaudiofd = dvbaudio_open(adapter_id, 0);
+ if (ffaudiofd < 0) {
+ fprintf(stderr, "Cannot open decoder; defaulting to dvr output\n");
+ output_type = OUTPUT_TYPE_DVR;
+ }
+ }
+
+ // start the DVB stuff
+ gnutv_dvb_params.adapter_id = adapter_id;
+ gnutv_dvb_params.frontend_id = frontend_id;
+ gnutv_dvb_params.demux_id = demux_id;
+ gnutv_dvb_params.output_type = output_type;
+ gnutv_dvb_start(&gnutv_dvb_params);
+
+ // start the data stuff
+ gnutv_data_start(output_type, ffaudiofd, adapter_id, demux_id, outfile, outif, outaddrs, usertp);
+ }
+
+ // the UI
+ time_t start = 0;
+ while(!quit_app) {
+ if (gnutv_dvb_locked() && (start == 0))
+ start = time(NULL);
+
+ // the timeout
+ if ((timeout != -1) && (start != 0)) {
+ if ((time(NULL) - start) >= timeout)
+ break;
+ }
+
+ if (cammenu)
+ gnutv_ca_ui();
+ else
+ usleep(1);
+ }
+
+ // stop data handling
+ gnutv_data_stop();
+
+ // shutdown DVB stuff
+ if (channel_name != NULL)
+ gnutv_dvb_stop();
+
+ // shutdown CA stuff
+ gnutv_ca_stop();
+
+ // done
+ exit(0);
+}
+
+static void signal_handler(int _signal)
+{
+ (void) _signal;
+
+ if (!quit_app) {
+ quit_app = 1;
+ }
+}
diff --git a/util/gnutv/gnutv.h b/util/gnutv/gnutv.h
new file mode 100644
index 0000000..02ed041
--- /dev/null
+++ b/util/gnutv/gnutv.h
@@ -0,0 +1,37 @@
+/*
+ gnutv utility
+
+ Copyright (C) 2004, 2005 Manu Abraham <abraham.manu@gmail.com>
+ Copyright (C) 2006 Andrew de Quincey (adq_dvb@lidskialf.net)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#ifndef __CA_gnutv_H__
+#define __CA_gnutv_H__
+
+#include <stdlib.h>
+#include <stdint.h>
+
+#define OUTPUT_TYPE_DECODER 0
+#define OUTPUT_TYPE_DECODER_ABYPASS 1
+#define OUTPUT_TYPE_DVR 2
+#define OUTPUT_TYPE_NULL 3
+#define OUTPUT_TYPE_FILE 4
+#define OUTPUT_TYPE_UDP 5
+#define OUTPUT_TYPE_STDOUT 6
+
+#endif
diff --git a/util/gnutv/gnutv_ca.c b/util/gnutv/gnutv_ca.c
new file mode 100644
index 0000000..5830f21
--- /dev/null
+++ b/util/gnutv/gnutv_ca.c
@@ -0,0 +1,404 @@
+/*
+ gnutv utility
+
+ Copyright (C) 2004, 2005 Manu Abraham <abraham.manu@gmail.com>
+ Copyright (C) 2006 Andrew de Quincey (adq_dvb@lidskialf.net)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/poll.h>
+#include <pthread.h>
+#include <libdvben50221/en50221_stdcam.h>
+#include "gnutv.h"
+#include "gnutv_ca.h"
+
+
+
+#define MMI_STATE_CLOSED 0
+#define MMI_STATE_OPEN 1
+#define MMI_STATE_ENQ 2
+#define MMI_STATE_MENU 3
+
+static int gnutv_ca_info_callback(void *arg, uint8_t slot_id, uint16_t session_number, uint32_t ca_id_count, uint16_t *ca_ids);
+static int gnutv_ai_callback(void *arg, uint8_t slot_id, uint16_t session_number,
+ uint8_t application_type, uint16_t application_manufacturer,
+ uint16_t manufacturer_code, uint8_t menu_string_length,
+ uint8_t *menu_string);
+
+static int gnutv_mmi_close_callback(void *arg, uint8_t slot_id, uint16_t session_number,
+ uint8_t cmd_id, uint8_t delay);
+static int gnutv_mmi_display_control_callback(void *arg, uint8_t slot_id, uint16_t session_number,
+ uint8_t cmd_id, uint8_t mmi_mode);
+static int gnutv_mmi_enq_callback(void *arg, uint8_t slot_id, uint16_t session_number,
+ uint8_t blind_answer, uint8_t expected_answer_length,
+ uint8_t *text, uint32_t text_size);
+static int gnutv_mmi_menu_callback(void *arg, uint8_t slot_id, uint16_t session_number,
+ struct en50221_app_mmi_text *title,
+ struct en50221_app_mmi_text *sub_title,
+ struct en50221_app_mmi_text *bottom,
+ uint32_t item_count, struct en50221_app_mmi_text *items,
+ uint32_t item_raw_length, uint8_t *items_raw);
+static void *camthread_func(void* arg);
+
+static struct en50221_transport_layer *tl = NULL;
+static struct en50221_session_layer *sl = NULL;
+static struct en50221_stdcam *stdcam = NULL;
+
+static int ca_resource_connected = 0;
+static int mmi_state = MMI_STATE_CLOSED;
+static int mmi_enq_blind;
+static int mmi_enq_length;
+
+static int camthread_shutdown = 0;
+static pthread_t camthread;
+int moveca = 0;
+int seenpmt = 0;
+int cammenu = 0;
+
+char ui_line[256];
+uint32_t ui_linepos = 0;
+
+
+void gnutv_ca_start(struct gnutv_ca_params *params)
+{
+ // create transport layer
+ tl = en50221_tl_create(1, 16);
+ if (tl == NULL) {
+ fprintf(stderr, "Failed to create transport layer\n");
+ return;
+ }
+
+ // create session layer
+ sl = en50221_sl_create(tl, 16);
+ if (sl == NULL) {
+ fprintf(stderr, "Failed to create session layer\n");
+ en50221_tl_destroy(tl);
+ return;
+ }
+
+ // create the stdcam instance
+ stdcam = en50221_stdcam_create(params->adapter_id, params->caslot_num, tl, sl);
+ if (stdcam == NULL) {
+ en50221_sl_destroy(sl);
+ en50221_tl_destroy(tl);
+ return;
+ }
+
+ // hook up the AI callbacks
+ if (stdcam->ai_resource) {
+ en50221_app_ai_register_callback(stdcam->ai_resource, gnutv_ai_callback, stdcam);
+ }
+
+ // hook up the CA callbacks
+ if (stdcam->ca_resource) {
+ en50221_app_ca_register_info_callback(stdcam->ca_resource, gnutv_ca_info_callback, stdcam);
+ }
+
+ // hook up the MMI callbacks
+ if (params->cammenu) {
+ if (stdcam->mmi_resource) {
+ en50221_app_mmi_register_close_callback(stdcam->mmi_resource, gnutv_mmi_close_callback, stdcam);
+ en50221_app_mmi_register_display_control_callback(stdcam->mmi_resource, gnutv_mmi_display_control_callback, stdcam);
+ en50221_app_mmi_register_enq_callback(stdcam->mmi_resource, gnutv_mmi_enq_callback, stdcam);
+ en50221_app_mmi_register_menu_callback(stdcam->mmi_resource, gnutv_mmi_menu_callback, stdcam);
+ en50221_app_mmi_register_list_callback(stdcam->mmi_resource, gnutv_mmi_menu_callback, stdcam);
+ } else {
+ fprintf(stderr, "CAM Menus are not supported by this interface hardware\n");
+ exit(1);
+ }
+ }
+
+ // any other stuff
+ moveca = params->moveca;
+ cammenu = params->cammenu;
+
+ // start the cam thread
+ pthread_create(&camthread, NULL, camthread_func, NULL);
+}
+
+void gnutv_ca_stop(void)
+{
+ if (stdcam == NULL)
+ return;
+
+ // shutdown the cam thread
+ camthread_shutdown = 1;
+ pthread_join(camthread, NULL);
+
+ // destroy the stdcam
+ if (stdcam->destroy)
+ stdcam->destroy(stdcam, 1);
+
+ // destroy session layer
+ en50221_sl_destroy(sl);
+
+ // destroy transport layer
+ en50221_tl_destroy(tl);
+}
+
+void gnutv_ca_ui(void)
+{
+ // make up polling structure for stdin
+ struct pollfd pollfd;
+ pollfd.fd = 0;
+ pollfd.events = POLLIN|POLLPRI|POLLERR;
+
+ if (stdcam == NULL)
+ return;
+
+ // is there a character?
+ if (poll(&pollfd, 1, 10) != 1)
+ return;
+ if (pollfd.revents & POLLERR)
+ return;
+
+ // try to read the character
+ char c;
+ if (read(0, &c, 1) != 1)
+ return;
+ if (c == '\r') {
+ return;
+ } else if (c == '\n') {
+ switch(mmi_state) {
+ case MMI_STATE_CLOSED:
+ case MMI_STATE_OPEN:
+ if ((ui_linepos == 0) && (ca_resource_connected)) {
+ en50221_app_ai_entermenu(stdcam->ai_resource, stdcam->ai_session_number);
+ }
+ break;
+
+ case MMI_STATE_ENQ:
+ if (ui_linepos == 0) {
+ en50221_app_mmi_answ(stdcam->mmi_resource, stdcam->mmi_session_number,
+ MMI_ANSW_ID_CANCEL, NULL, 0);
+ } else {
+ en50221_app_mmi_answ(stdcam->mmi_resource, stdcam->mmi_session_number,
+ MMI_ANSW_ID_ANSWER, (uint8_t*) ui_line, ui_linepos);
+ }
+ mmi_state = MMI_STATE_OPEN;
+ break;
+
+ case MMI_STATE_MENU:
+ ui_line[ui_linepos] = 0;
+ en50221_app_mmi_menu_answ(stdcam->mmi_resource, stdcam->mmi_session_number,
+ atoi(ui_line));
+ mmi_state = MMI_STATE_OPEN;
+ break;
+ }
+ ui_linepos = 0;
+ } else {
+ if (ui_linepos < (sizeof(ui_line)-1)) {
+ ui_line[ui_linepos++] = c;
+ }
+ }
+}
+
+int gnutv_ca_new_pmt(struct mpeg_pmt_section *pmt)
+{
+ uint8_t capmt[4096];
+ int size;
+
+ if (stdcam == NULL)
+ return -1;
+
+ if (ca_resource_connected) {
+ fprintf(stderr, "Received new PMT - sending to CAM...\n");
+
+ // translate it into a CA PMT
+ int listmgmt = CA_LIST_MANAGEMENT_ONLY;
+ if (seenpmt) {
+ listmgmt = CA_LIST_MANAGEMENT_UPDATE;
+ }
+ seenpmt = 1;
+
+ if ((size = en50221_ca_format_pmt(pmt, capmt, sizeof(capmt), moveca, listmgmt,
+ CA_PMT_CMD_ID_OK_DESCRAMBLING)) < 0) {
+ fprintf(stderr, "Failed to format PMT\n");
+ return -1;
+ }
+
+ // set it
+ if (en50221_app_ca_pmt(stdcam->ca_resource, stdcam->ca_session_number, capmt, size)) {
+ fprintf(stderr, "Failed to send PMT\n");
+ return -1;
+ }
+
+ // we've seen this PMT
+ return 1;
+ }
+
+ return 0;
+}
+
+void gnutv_ca_new_dvbtime(time_t dvb_time)
+{
+ if (stdcam == NULL)
+ return;
+
+ if (stdcam->dvbtime)
+ stdcam->dvbtime(stdcam, dvb_time);
+}
+
+static void *camthread_func(void* arg)
+{
+ (void) arg;
+ int entered_menu = 0;
+
+ while(!camthread_shutdown) {
+ stdcam->poll(stdcam);
+
+ if ((!entered_menu) && cammenu && ca_resource_connected && stdcam->mmi_resource) {
+ en50221_app_ai_entermenu(stdcam->ai_resource, stdcam->ai_session_number);
+ entered_menu = 1;
+ }
+ }
+
+ return 0;
+}
+
+static int gnutv_ai_callback(void *arg, uint8_t slot_id, uint16_t session_number,
+ uint8_t application_type, uint16_t application_manufacturer,
+ uint16_t manufacturer_code, uint8_t menu_string_length,
+ uint8_t *menu_string)
+{
+ (void) arg;
+ (void) slot_id;
+ (void) session_number;
+
+ fprintf(stderr, "CAM Application type: %02x\n", application_type);
+ fprintf(stderr, "CAM Application manufacturer: %04x\n", application_manufacturer);
+ fprintf(stderr, "CAM Manufacturer code: %04x\n", manufacturer_code);
+ fprintf(stderr, "CAM Menu string: %.*s\n", menu_string_length, menu_string);
+
+ return 0;
+}
+
+static int gnutv_ca_info_callback(void *arg, uint8_t slot_id, uint16_t session_number, uint32_t ca_id_count, uint16_t *ca_ids)
+{
+ (void) arg;
+ (void) slot_id;
+ (void) session_number;
+
+ fprintf(stderr, "CAM supports the following ca system ids:\n");
+ uint32_t i;
+ for(i=0; i< ca_id_count; i++) {
+ fprintf(stderr, " 0x%04x\n", ca_ids[i]);
+ }
+ ca_resource_connected = 1;
+ return 0;
+}
+
+static int gnutv_mmi_close_callback(void *arg, uint8_t slot_id, uint16_t session_number,
+ uint8_t cmd_id, uint8_t delay)
+{
+ (void) arg;
+ (void) slot_id;
+ (void) session_number;
+ (void) cmd_id;
+ (void) delay;
+
+ // note: not entirely correct as its supposed to delay if asked
+ mmi_state = MMI_STATE_CLOSED;
+ return 0;
+}
+
+static int gnutv_mmi_display_control_callback(void *arg, uint8_t slot_id, uint16_t session_number,
+ uint8_t cmd_id, uint8_t mmi_mode)
+{
+ struct en50221_app_mmi_display_reply_details reply;
+ (void) arg;
+ (void) slot_id;
+
+ // don't support any commands but set mode
+ if (cmd_id != MMI_DISPLAY_CONTROL_CMD_ID_SET_MMI_MODE) {
+ en50221_app_mmi_display_reply(stdcam->mmi_resource, session_number,
+ MMI_DISPLAY_REPLY_ID_UNKNOWN_CMD_ID, &reply);
+ return 0;
+ }
+
+ // we only support high level mode
+ if (mmi_mode != MMI_MODE_HIGH_LEVEL) {
+ en50221_app_mmi_display_reply(stdcam->mmi_resource, session_number,
+ MMI_DISPLAY_REPLY_ID_UNKNOWN_MMI_MODE, &reply);
+ return 0;
+ }
+
+ // ack the high level open
+ reply.u.mode_ack.mmi_mode = mmi_mode;
+ en50221_app_mmi_display_reply(stdcam->mmi_resource, session_number,
+ MMI_DISPLAY_REPLY_ID_MMI_MODE_ACK, &reply);
+ mmi_state = MMI_STATE_OPEN;
+ return 0;
+}
+
+static int gnutv_mmi_enq_callback(void *arg, uint8_t slot_id, uint16_t session_number,
+ uint8_t blind_answer, uint8_t expected_answer_length,
+ uint8_t *text, uint32_t text_size)
+{
+ (void) arg;
+ (void) slot_id;
+ (void) session_number;
+
+ fprintf(stderr, "%.*s: ", text_size, text);
+ fflush(stdout);
+
+ mmi_enq_blind = blind_answer;
+ mmi_enq_length = expected_answer_length;
+ mmi_state = MMI_STATE_ENQ;
+ return 0;
+}
+
+static int gnutv_mmi_menu_callback(void *arg, uint8_t slot_id, uint16_t session_number,
+ struct en50221_app_mmi_text *title,
+ struct en50221_app_mmi_text *sub_title,
+ struct en50221_app_mmi_text *bottom,
+ uint32_t item_count, struct en50221_app_mmi_text *items,
+ uint32_t item_raw_length, uint8_t *items_raw)
+{
+ (void) arg;
+ (void) slot_id;
+ (void) session_number;
+ (void) item_raw_length;
+ (void) items_raw;
+
+ fprintf(stderr, "------------------------------\n");
+
+ if (title->text_length) {
+ fprintf(stderr, "%.*s\n", title->text_length, title->text);
+ }
+ if (sub_title->text_length) {
+ fprintf(stderr, "%.*s\n", sub_title->text_length, sub_title->text);
+ }
+
+ uint32_t i;
+ fprintf(stderr, "0. Quit menu\n");
+ for(i=0; i< item_count; i++) {
+ fprintf(stderr, "%i. %.*s\n", i+1, items[i].text_length, items[i].text);
+ }
+
+ if (bottom->text_length) {
+ fprintf(stderr, "%.*s\n", bottom->text_length, bottom->text);
+ }
+ fprintf(stderr, "Enter option: ");
+ fflush(stdout);
+
+ mmi_state = MMI_STATE_MENU;
+ return 0;
+}
diff --git a/util/gnutv/gnutv_ca.h b/util/gnutv/gnutv_ca.h
new file mode 100644
index 0000000..7b5d5b3
--- /dev/null
+++ b/util/gnutv/gnutv_ca.h
@@ -0,0 +1,40 @@
+/*
+ gnutv utility
+
+ Copyright (C) 2004, 2005 Manu Abraham <abraham.manu@gmail.com>
+ Copyright (C) 2006 Andrew de Quincey (adq_dvb@lidskialf.net)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#ifndef gnutv_CA_H
+#define gnutv_CA_H 1
+
+struct gnutv_ca_params {
+ int adapter_id;
+ int caslot_num;
+ int cammenu;
+ int moveca;
+};
+
+extern void gnutv_ca_start(struct gnutv_ca_params *params);
+extern void gnutv_ca_ui(void);
+extern void gnutv_ca_stop(void);
+
+extern int gnutv_ca_new_pmt(struct mpeg_pmt_section *pmt);
+extern void gnutv_ca_new_dvbtime(time_t dvb_time);
+
+#endif
diff --git a/util/gnutv/gnutv_data.c b/util/gnutv/gnutv_data.c
new file mode 100644
index 0000000..7ac0f23
--- /dev/null
+++ b/util/gnutv/gnutv_data.c
@@ -0,0 +1,459 @@
+/*
+ gnutv utility
+
+ Copyright (C) 2004, 2005 Manu Abraham <abraham.manu@gmail.com>
+ Copyright (C) 2006 Andrew de Quincey (adq_dvb@lidskialf.net)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#define _FILE_OFFSET_BITS 64
+#define _LARGEFILE_SOURCE 1
+#define _LARGEFILE64_SOURCE 1
+
+#include <stdio.h>
+#include <unistd.h>
+#include <limits.h>
+#include <string.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <pthread.h>
+#include <errno.h>
+#include <sys/poll.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <libdvbapi/dvbdemux.h>
+#include <libdvbapi/dvbaudio.h>
+#include <libucsi/mpeg/section.h>
+#include "gnutv.h"
+#include "gnutv_dvb.h"
+#include "gnutv_ca.h"
+#include "gnutv_data.h"
+
+static void *fileoutputthread_func(void* arg);
+static void *udpoutputthread_func(void* arg);
+
+static int gnutv_data_create_decoder_filter(int adapter, int demux, uint16_t pid, int pestype);
+static int gnutv_data_create_dvr_filter(int adapter, int demux, uint16_t pid);
+
+static void gnutv_data_decoder_pmt(struct mpeg_pmt_section *pmt);
+static void gnutv_data_dvr_pmt(struct mpeg_pmt_section *pmt);
+
+static void gnutv_data_append_pid_fd(int pid, int fd);
+static void gnutv_data_free_pid_fds(void);
+
+static pthread_t outputthread;
+static int outfd = -1;
+static int dvrfd = -1;
+static int pat_fd_dvrout = -1;
+static int pmt_fd_dvrout = -1;
+static int outputthread_shutdown = 0;
+
+static int usertp = 0;
+static int adapter_id = -1;
+static int demux_id = -1;
+static int output_type = 0;
+static struct addrinfo *outaddrs = NULL;
+
+struct pid_fd {
+ int pid;
+ int fd;
+};
+static struct pid_fd *pid_fds = NULL;
+static int pid_fds_count = 0;
+
+void gnutv_data_start(int _output_type,
+ int ffaudiofd, int _adapter_id, int _demux_id,
+ char *outfile,
+ char* outif, struct addrinfo *_outaddrs, int _usertp)
+{
+ usertp = _usertp;
+ demux_id = _demux_id;
+ adapter_id = _adapter_id;
+ output_type = _output_type;
+
+ // setup output
+ switch(output_type) {
+ case OUTPUT_TYPE_DECODER:
+ case OUTPUT_TYPE_DECODER_ABYPASS:
+ dvbaudio_set_bypass(ffaudiofd, (output_type == OUTPUT_TYPE_DECODER_ABYPASS) ? 1 : 0);
+ close(ffaudiofd);
+ break;
+
+ case OUTPUT_TYPE_STDOUT:
+ case OUTPUT_TYPE_FILE:
+ if (output_type == OUTPUT_TYPE_FILE) {
+ // open output file
+ outfd = open(outfile, O_WRONLY|O_CREAT|O_LARGEFILE|O_TRUNC, 0644);
+ if (outfd < 0) {
+ fprintf(stderr, "Failed to open output file\n");
+ exit(1);
+ }
+ } else {
+ outfd = STDOUT_FILENO;
+ }
+
+ // open dvr device
+ dvrfd = dvbdemux_open_dvr(adapter_id, 0, 1, 0);
+ if (dvrfd < 0) {
+ fprintf(stderr, "Failed to open DVR device\n");
+ exit(1);
+ }
+
+ pthread_create(&outputthread, NULL, fileoutputthread_func, NULL);
+ break;
+
+ case OUTPUT_TYPE_UDP:
+ outaddrs = _outaddrs;
+
+ // open output socket
+ outfd = socket(outaddrs->ai_family, outaddrs->ai_socktype, outaddrs->ai_protocol);
+ if (outfd < 0) {
+ fprintf(stderr, "Failed to open output socket\n");
+ exit(1);
+ }
+
+ // bind to local interface if requested
+ if (outif != NULL) {
+ if (setsockopt(outfd, SOL_SOCKET, SO_BINDTODEVICE, outif, strlen(outif)) < 0) {
+ fprintf(stderr, "Failed to bind to interface %s\n", outif);
+ exit(1);
+ }
+ }
+
+ // open dvr device
+ dvrfd = dvbdemux_open_dvr(adapter_id, 0, 1, 0);
+ if (dvrfd < 0) {
+ fprintf(stderr, "Failed to open DVR device\n");
+ exit(1);
+ }
+
+ pthread_create(&outputthread, NULL, udpoutputthread_func, NULL);
+ break;
+ }
+
+ // output PAT to DVR if requested
+ switch(output_type) {
+ case OUTPUT_TYPE_DVR:
+ case OUTPUT_TYPE_FILE:
+ case OUTPUT_TYPE_STDOUT:
+ case OUTPUT_TYPE_UDP:
+ pat_fd_dvrout = gnutv_data_create_dvr_filter(adapter_id, demux_id, TRANSPORT_PAT_PID);
+ }
+}
+
+void gnutv_data_stop()
+{
+ // shutdown output thread if necessary
+ if (dvrfd != -1) {
+ outputthread_shutdown = 1;
+ pthread_join(outputthread, NULL);
+ }
+ gnutv_data_free_pid_fds();
+ if (pat_fd_dvrout != -1)
+ close(pat_fd_dvrout);
+ if (pmt_fd_dvrout != -1)
+ close(pmt_fd_dvrout);
+ if (outaddrs)
+ freeaddrinfo(outaddrs);
+}
+
+void gnutv_data_new_pat(int pmt_pid)
+{
+ // output PMT to DVR if requested
+ switch(output_type) {
+ case OUTPUT_TYPE_DVR:
+ case OUTPUT_TYPE_FILE:
+ case OUTPUT_TYPE_STDOUT:
+ case OUTPUT_TYPE_UDP:
+ if (pmt_fd_dvrout != -1)
+ close(pmt_fd_dvrout);
+ pmt_fd_dvrout = gnutv_data_create_dvr_filter(adapter_id, demux_id, pmt_pid);
+ }
+}
+
+int gnutv_data_new_pmt(struct mpeg_pmt_section *pmt)
+{
+ // close all old PID FDs
+ gnutv_data_free_pid_fds();
+
+ // deal with the PMT appropriately
+ switch(output_type) {
+ case OUTPUT_TYPE_DECODER:
+ case OUTPUT_TYPE_DECODER_ABYPASS:
+ gnutv_data_decoder_pmt(pmt);
+ break;
+
+ case OUTPUT_TYPE_DVR:
+ case OUTPUT_TYPE_FILE:
+ case OUTPUT_TYPE_STDOUT:
+ case OUTPUT_TYPE_UDP:
+ gnutv_data_dvr_pmt(pmt);
+ break;
+ }
+
+ return 1;
+}
+
+static void *fileoutputthread_func(void* arg)
+{
+ (void)arg;
+ uint8_t buf[4096];
+ struct pollfd pollfd;
+ int written;
+
+ pollfd.fd = dvrfd;
+ pollfd.events = POLLIN|POLLPRI|POLLERR;
+
+ while(!outputthread_shutdown) {
+ if (poll(&pollfd, 1, 1000) != 1)
+ continue;
+ if (pollfd.revents & POLLERR) {
+ if (errno == EINTR)
+ continue;
+ fprintf(stderr, "DVR device read failure\n");
+ return 0;
+ }
+
+ int size = read(dvrfd, buf, sizeof(buf));
+ if (size < 0) {
+ if (errno == EINTR)
+ continue;
+ fprintf(stderr, "DVR device read failure\n");
+ return 0;
+ }
+
+ written = 0;
+ while(written < size) {
+ int tmp = write(outfd, buf + written, size - written);
+ if (tmp == -1) {
+ if (errno != EINTR) {
+ fprintf(stderr, "Write error: %m\n");
+ break;
+ }
+ } else {
+ written += tmp;
+ }
+ }
+ }
+
+ return 0;
+}
+
+#define TS_PAYLOAD_SIZE (188*7)
+
+static void *udpoutputthread_func(void* arg)
+{
+ (void)arg;
+ uint8_t buf[12 + TS_PAYLOAD_SIZE];
+ struct pollfd pollfd;
+ int bufsize = 0;
+ int bufbase = 0;
+ int readsize;
+ uint16_t rtpseq = 0;
+
+ pollfd.fd = dvrfd;
+ pollfd.events = POLLIN|POLLPRI|POLLERR;
+
+ if (usertp) {
+ srandom(time(NULL));
+ int ssrc = random();
+ rtpseq = random();
+ buf[0x0] = 0x80;
+ buf[0x1] = 0x21;
+ buf[0x4] = 0x00; // }
+ buf[0x5] = 0x00; // } FIXME: should really be a valid stamp
+ buf[0x6] = 0x00; // }
+ buf[0x7] = 0x00; // }
+ buf[0x8] = ssrc >> 24;
+ buf[0x9] = ssrc >> 16;
+ buf[0xa] = ssrc >> 8;
+ buf[0xb] = ssrc;
+ bufbase = 12;
+ }
+
+ while(!outputthread_shutdown) {
+ if (poll(&pollfd, 1, 1000) != 1)
+ continue;
+ if (pollfd.revents & POLLERR) {
+ if (errno == EINTR)
+ continue;
+ fprintf(stderr, "DVR device read failure\n");
+ return 0;
+ }
+
+ readsize = TS_PAYLOAD_SIZE - bufsize;
+ readsize = read(dvrfd, buf + bufbase + bufsize, readsize);
+ if (readsize < 0) {
+ if (errno == EINTR)
+ continue;
+ fprintf(stderr, "DVR device read failure\n");
+ return 0;
+ }
+ bufsize += readsize;
+
+ if (bufsize == TS_PAYLOAD_SIZE) {
+ if (usertp) {
+ buf[2] = rtpseq >> 8;
+ buf[3] = rtpseq;
+ }
+ if (sendto(outfd, buf, bufbase + bufsize, 0, outaddrs->ai_addr, outaddrs->ai_addrlen) < 0) {
+ if (errno != EINTR) {
+ fprintf(stderr, "Socket send failure: %m\n");
+ return 0;
+ }
+ }
+ rtpseq++;
+ bufsize = 0;
+ }
+ }
+
+ if (bufsize) {
+ if (usertp) {
+ buf[2] = rtpseq >> 8;
+ buf[3] = rtpseq;
+ }
+ if (sendto(outfd, buf, bufbase + bufsize, 0, outaddrs->ai_addr, outaddrs->ai_addrlen) < 0) {
+ if (errno != EINTR)
+ fprintf(stderr, "Socket send failure: %m\n");
+ }
+ }
+
+ return 0;
+}
+
+static int gnutv_data_create_decoder_filter(int adapter, int demux, uint16_t pid, int pestype)
+{
+ int demux_fd = -1;
+
+ // open the demuxer
+ if ((demux_fd = dvbdemux_open_demux(adapter, demux, 0)) < 0) {
+ return -1;
+ }
+
+ // create a section filter
+ if (dvbdemux_set_pes_filter(demux_fd, pid, DVBDEMUX_INPUT_FRONTEND, DVBDEMUX_OUTPUT_DECODER, pestype, 1)) {
+ close(demux_fd);
+ return -1;
+ }
+
+ // done
+ return demux_fd;
+}
+
+static int gnutv_data_create_dvr_filter(int adapter, int demux, uint16_t pid)
+{
+ int demux_fd = -1;
+
+ // open the demuxer
+ if ((demux_fd = dvbdemux_open_demux(adapter, demux, 0)) < 0) {
+ return -1;
+ }
+
+ // create a section filter
+ if (dvbdemux_set_pid_filter(demux_fd, pid, DVBDEMUX_INPUT_FRONTEND, DVBDEMUX_OUTPUT_DVR, 1)) {
+ close(demux_fd);
+ return -1;
+ }
+
+ // done
+ return demux_fd;
+}
+
+static void gnutv_data_decoder_pmt(struct mpeg_pmt_section *pmt)
+{
+ int audio_pid = -1;
+ int video_pid = -1;
+ struct mpeg_pmt_stream *cur_stream;
+ mpeg_pmt_section_streams_for_each(pmt, cur_stream) {
+ switch(cur_stream->stream_type) {
+ case 1:
+ case 2: // video
+ video_pid = cur_stream->pid;
+ break;
+
+ case 3:
+ case 4: // audio
+ audio_pid = cur_stream->pid;
+ break;
+ }
+ }
+
+ if (audio_pid != -1) {
+ int fd = gnutv_data_create_decoder_filter(adapter_id, demux_id, audio_pid, DVBDEMUX_PESTYPE_AUDIO);
+ if (fd < 0) {
+ fprintf(stderr, "Unable to create dvr filter for PID %i\n", audio_pid);
+ } else {
+ gnutv_data_append_pid_fd(audio_pid, fd);
+ }
+ }
+ if (video_pid != -1) {
+ int fd = gnutv_data_create_decoder_filter(adapter_id, demux_id, video_pid, DVBDEMUX_PESTYPE_VIDEO);
+ if (fd < 0) {
+ fprintf(stderr, "Unable to create dvr filter for PID %i\n", video_pid);
+ } else {
+ gnutv_data_append_pid_fd(video_pid, fd);
+ }
+ }
+ int fd = gnutv_data_create_decoder_filter(adapter_id, demux_id, pmt->pcr_pid, DVBDEMUX_PESTYPE_PCR);
+ if (fd < 0) {
+ fprintf(stderr, "Unable to create dvr filter for PID %i\n", pmt->pcr_pid);
+ } else {
+ gnutv_data_append_pid_fd(pmt->pcr_pid, fd);
+ }
+}
+
+static void gnutv_data_dvr_pmt(struct mpeg_pmt_section *pmt)
+{
+ struct mpeg_pmt_stream *cur_stream;
+ mpeg_pmt_section_streams_for_each(pmt, cur_stream) {
+ int fd = gnutv_data_create_dvr_filter(adapter_id, demux_id, cur_stream->pid);
+ if (fd < 0) {
+ fprintf(stderr, "Unable to create dvr filter for PID %i\n", cur_stream->pid);
+ } else {
+ gnutv_data_append_pid_fd(cur_stream->pid, fd);
+ }
+ }
+}
+
+static void gnutv_data_append_pid_fd(int pid, int fd)
+{
+ struct pid_fd *tmp;
+ if ((tmp = realloc(pid_fds, (pid_fds_count +1) * sizeof(struct pid_fd))) == NULL) {
+ fprintf(stderr, "Out of memory when adding a new pid_fd\n");
+ exit(1);
+ }
+ tmp[pid_fds_count].pid = pid;
+ tmp[pid_fds_count].fd = fd;
+ pid_fds_count++;
+ pid_fds = tmp;
+}
+
+static void gnutv_data_free_pid_fds()
+{
+ if (pid_fds_count) {
+ int i;
+ for(i=0; i< pid_fds_count; i++) {
+ close(pid_fds[i].fd);
+ }
+ }
+ if (pid_fds)
+ free(pid_fds);
+
+ pid_fds_count = 0;
+ pid_fds = NULL;
+}
diff --git a/util/gnutv/gnutv_data.h b/util/gnutv/gnutv_data.h
new file mode 100644
index 0000000..8e47e3a
--- /dev/null
+++ b/util/gnutv/gnutv_data.h
@@ -0,0 +1,39 @@
+/*
+ gnutv utility
+
+ Copyright (C) 2004, 2005 Manu Abraham <abraham.manu@gmail.com>
+ Copyright (C) 2006 Andrew de Quincey (adq_dvb@lidskialf.net)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#ifndef gnutv_DATA_H
+#define gnutv_DATA_H 1
+
+#include <netdb.h>
+
+extern void gnutv_data_start(int output_type,
+ int ffaudiofd, int adapter_id, int demux_id,
+ char *outfile,
+ char* outif, struct addrinfo *outaddrs, int usertp);
+extern void gnutv_data_stop(void);
+
+extern void gnutv_data_new_pat(int pmt_pid);
+extern int gnutv_data_new_pmt(struct mpeg_pmt_section *pmt);
+
+
+
+#endif
diff --git a/util/gnutv/gnutv_dvb.c b/util/gnutv/gnutv_dvb.c
new file mode 100644
index 0000000..a903c26
--- /dev/null
+++ b/util/gnutv/gnutv_dvb.c
@@ -0,0 +1,376 @@
+/*
+ gnutv utility
+
+ Copyright (C) 2004, 2005 Manu Abraham <abraham.manu@gmail.com>
+ Copyright (C) 2006 Andrew de Quincey (adq_dvb@lidskialf.net)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include <stdio.h>
+#include <unistd.h>
+#include <limits.h>
+#include <string.h>
+#include <signal.h>
+#include <pthread.h>
+#include <errno.h>
+#include <sys/poll.h>
+#include <libdvbapi/dvbdemux.h>
+#include <libucsi/section.h>
+#include <libucsi/mpeg/section.h>
+#include <libucsi/dvb/section.h>
+#include "gnutv.h"
+#include "gnutv_dvb.h"
+#include "gnutv_data.h"
+#include "gnutv_ca.h"
+
+#define FE_STATUS_PARAMS (DVBFE_INFO_LOCKSTATUS|DVBFE_INFO_SIGNAL_STRENGTH|DVBFE_INFO_BER|DVBFE_INFO_SNR|DVBFE_INFO_UNCORRECTED_BLOCKS)
+
+static int dvbthread_shutdown = 0;
+static pthread_t dvbthread;
+static int tune_state = 0;
+
+static int pat_version = -1;
+static int ca_pmt_version = -1;
+static int data_pmt_version = -1;
+
+static void *dvbthread_func(void* arg);
+
+static void process_pat(int pat_fd, struct gnutv_dvb_params *params, int *pmt_fd, struct pollfd *pollfd);
+static void process_tdt(int tdt_fd);
+static void process_pmt(int pmt_fd, struct gnutv_dvb_params *params);
+static int create_section_filter(int adapter, int demux, uint16_t pid, uint8_t table_id);
+
+
+int gnutv_dvb_start(struct gnutv_dvb_params *params)
+{
+ pthread_create(&dvbthread, NULL, dvbthread_func, (void*) params);
+ return 0;
+}
+
+void gnutv_dvb_stop(void)
+{
+ dvbthread_shutdown = 1;
+ pthread_join(dvbthread, NULL);
+}
+
+int gnutv_dvb_locked(void)
+{
+ return tune_state == 2;
+}
+
+static void *dvbthread_func(void* arg)
+{
+ int pat_fd = -1;
+ int pmt_fd = -1;
+ int tdt_fd = -1;
+ struct pollfd pollfds[3];
+
+ struct gnutv_dvb_params *params = (struct gnutv_dvb_params *) arg;
+
+ tune_state = 0;
+
+ // create PAT filter
+ if ((pat_fd = create_section_filter(params->adapter_id, params->demux_id,
+ TRANSPORT_PAT_PID, stag_mpeg_program_association)) < 0) {
+ fprintf(stderr, "Failed to create PAT section filter\n");
+ exit(1);
+ }
+ pollfds[0].fd = pat_fd;
+ pollfds[0].events = POLLIN|POLLPRI|POLLERR;
+
+ // create TDT filter
+ if ((tdt_fd = create_section_filter(params->adapter_id, params->demux_id, TRANSPORT_TDT_PID, stag_dvb_time_date)) < 0) {
+ fprintf(stderr, "Failed to create TDT section filter\n");
+ exit(1);
+ }
+ pollfds[1].fd = tdt_fd;
+ pollfds[1].events = POLLIN|POLLPRI|POLLERR;
+
+ // zero PMT filter
+ pollfds[2].fd = 0;
+ pollfds[2].events = 0;
+
+ // the DVB loop
+ while(!dvbthread_shutdown) {
+ // tune frontend + monitor lock status
+ if (tune_state == 0) {
+ // get the type of frontend
+ struct dvbfe_info result;
+ char *types;
+ memset(&result, 0, sizeof(result));
+ dvbfe_get_info(params->fe, 0, &result, DVBFE_INFO_QUERYTYPE_IMMEDIATE, 0);
+ switch(result.type) {
+ case DVBFE_TYPE_DVBS:
+ types = "DVB-S";
+ break;
+ case DVBFE_TYPE_DVBC:
+ types = "DVB-C";
+ break;
+ case DVBFE_TYPE_DVBT:
+ types = "DVB-T";
+ break;
+ case DVBFE_TYPE_ATSC:
+ types = "ATSC";
+ break;
+ default:
+ types = "Unknown";
+ }
+ fprintf(stderr, "Using frontend \"%s\", type %s\n", result.name, types);
+
+ // do we have a valid SEC configuration?
+ struct dvbsec_config *sec = NULL;
+ if (params->valid_sec)
+ sec = &params->sec;
+
+ // tune!
+ if (dvbsec_set(params->fe,
+ sec,
+ params->channel.polarization,
+ (params->channel.diseqc_switch & 0x01) ? DISEQC_SWITCH_B : DISEQC_SWITCH_A,
+ (params->channel.diseqc_switch & 0x02) ? DISEQC_SWITCH_B : DISEQC_SWITCH_A,
+ &params->channel.fe_params,
+ 0)) {
+ fprintf(stderr, "Failed to set frontend\n");
+ exit(1);
+ }
+
+ tune_state++;
+ } else if (tune_state == 1) {
+ struct dvbfe_info result;
+ memset(&result, 0, sizeof(result));
+ dvbfe_get_info(params->fe,
+ FE_STATUS_PARAMS,
+ &result,
+ DVBFE_INFO_QUERYTYPE_IMMEDIATE,
+ 0);
+
+ fprintf(stderr, "status %c%c%c%c%c | signal %04x | snr %04x | ber %08x | unc %08x | %s\r",
+ result.signal ? 'S' : ' ',
+ result.carrier ? 'C' : ' ',
+ result.viterbi ? 'V' : ' ',
+ result.sync ? 'Y' : ' ',
+ result.lock ? 'L' : ' ',
+ result.signal_strength,
+ result.snr,
+ result.ber,
+ result.ucblocks,
+ result.lock ? "FE_HAS_LOCK" : "");
+ fflush(stderr);
+
+ if (result.lock) {
+ tune_state++;
+ fprintf(stderr, "\n");
+ fflush(stderr);
+ } else {
+ usleep(500000);
+ }
+ }
+
+ // is there SI data?
+ int count = poll(pollfds, 3, 100);
+ if (count < 0) {
+ if (errno != EINTR)
+ fprintf(stderr, "Poll error: %m\n");
+ break;
+ }
+ if (count == 0) {
+ continue;
+ }
+
+ // PAT
+ if (pollfds[0].revents & (POLLIN|POLLPRI)) {
+ process_pat(pat_fd, params, &pmt_fd, &pollfds[2]);
+ }
+
+ // TDT
+ if (pollfds[1].revents & (POLLIN|POLLPRI)) {
+ process_tdt(tdt_fd);
+ }
+
+ // PMT
+ if (pollfds[2].revents & (POLLIN|POLLPRI)) {
+ process_pmt(pmt_fd, params);
+ }
+ }
+
+ // close demuxers
+ if (pat_fd != -1)
+ close(pat_fd);
+ if (pmt_fd != -1)
+ close(pmt_fd);
+ if (tdt_fd != -1)
+ close(tdt_fd);
+
+ return 0;
+}
+
+static void process_pat(int pat_fd, struct gnutv_dvb_params *params, int *pmt_fd, struct pollfd *pollfd)
+{
+ int size;
+ uint8_t sibuf[4096];
+
+ // read the section
+ if ((size = read(pat_fd, sibuf, sizeof(sibuf))) < 0) {
+ return;
+ }
+
+ // parse section
+ struct section *section = section_codec(sibuf, size);
+ if (section == NULL) {
+ return;
+ }
+
+ // parse section_ext
+ struct section_ext *section_ext = section_ext_decode(section, 0);
+ if (section_ext == NULL) {
+ return;
+ }
+ if (pat_version == section_ext->version_number) {
+ return;
+ }
+
+ // parse PAT
+ struct mpeg_pat_section *pat = mpeg_pat_section_codec(section_ext);
+ if (pat == NULL) {
+ return;
+ }
+
+ // try and find the requested program
+ struct mpeg_pat_program *cur_program;
+ mpeg_pat_section_programs_for_each(pat, cur_program) {
+ if (cur_program->program_number == params->channel.service_id) {
+ // close old PMT fd
+ if (*pmt_fd != -1)
+ close(*pmt_fd);
+
+ // create PMT filter
+ if ((*pmt_fd = create_section_filter(params->adapter_id, params->demux_id,
+ cur_program->pid, stag_mpeg_program_map)) < 0) {
+ return;
+ }
+ pollfd->fd = *pmt_fd;
+ pollfd->events = POLLIN|POLLPRI|POLLERR;
+
+ gnutv_data_new_pat(cur_program->pid);
+
+ // we have a new PMT pid
+ data_pmt_version = -1;
+ ca_pmt_version = -1;
+ break;
+ }
+ }
+
+ // remember the PAT version
+ pat_version = section_ext->version_number;
+}
+
+static void process_tdt(int tdt_fd)
+{
+ int size;
+ uint8_t sibuf[4096];
+
+ // read the section
+ if ((size = read(tdt_fd, sibuf, sizeof(sibuf))) < 0) {
+ return;
+ }
+
+ // parse section
+ struct section *section = section_codec(sibuf, size);
+ if (section == NULL) {
+ return;
+ }
+
+ // parse TDT
+ struct dvb_tdt_section *tdt = dvb_tdt_section_codec(section);
+ if (tdt == NULL) {
+ return;
+ }
+
+ // done
+ gnutv_ca_new_dvbtime(dvbdate_to_unixtime(tdt->utc_time));
+}
+
+static void process_pmt(int pmt_fd, struct gnutv_dvb_params *params)
+{
+ int size;
+ uint8_t sibuf[4096];
+
+ // read the section
+ if ((size = read(pmt_fd, sibuf, sizeof(sibuf))) < 0) {
+ return;
+ }
+
+ // parse section
+ struct section *section = section_codec(sibuf, size);
+ if (section == NULL) {
+ return;
+ }
+
+ // parse section_ext
+ struct section_ext *section_ext = section_ext_decode(section, 0);
+ if (section_ext == NULL) {
+ return;
+ }
+ if ((section_ext->table_id_ext != params->channel.service_id) ||
+ ((section_ext->version_number == data_pmt_version) &&
+ (section_ext->version_number == ca_pmt_version))) {
+ return;
+ }
+
+ // parse PMT
+ struct mpeg_pmt_section *pmt = mpeg_pmt_section_codec(section_ext);
+ if (pmt == NULL) {
+ return;
+ }
+
+ // do data handling
+ if (section_ext->version_number != data_pmt_version) {
+ if (gnutv_data_new_pmt(pmt) == 1)
+ data_pmt_version = pmt->head.version_number;
+ }
+
+ // do ca handling
+ if (section_ext->version_number != ca_pmt_version) {
+ if (gnutv_ca_new_pmt(pmt) == 1)
+ ca_pmt_version = pmt->head.version_number;
+ }
+}
+
+static int create_section_filter(int adapter, int demux, uint16_t pid, uint8_t table_id)
+{
+ int demux_fd = -1;
+ uint8_t filter[18];
+ uint8_t mask[18];
+
+ // open the demuxer
+ if ((demux_fd = dvbdemux_open_demux(adapter, demux, 0)) < 0) {
+ return -1;
+ }
+
+ // create a section filter
+ memset(filter, 0, sizeof(filter));
+ memset(mask, 0, sizeof(mask));
+ filter[0] = table_id;
+ mask[0] = 0xFF;
+ if (dvbdemux_set_section_filter(demux_fd, pid, filter, mask, 1, 1)) {
+ close(demux_fd);
+ return -1;
+ }
+
+ // done
+ return demux_fd;
+}
diff --git a/util/gnutv/gnutv_dvb.h b/util/gnutv/gnutv_dvb.h
new file mode 100644
index 0000000..83ec086
--- /dev/null
+++ b/util/gnutv/gnutv_dvb.h
@@ -0,0 +1,44 @@
+/*
+ gnutv utility
+
+ Copyright (C) 2004, 2005 Manu Abraham <abraham.manu@gmail.com>
+ Copyright (C) 2006 Andrew de Quincey (adq_dvb@lidskialf.net)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#ifndef gnutv_DVB_H
+#define gnutv_DVB_H 1
+
+#include <libdvbcfg/dvbcfg_zapchannel.h>
+#include <libdvbsec/dvbsec_api.h>
+
+struct gnutv_dvb_params {
+ int adapter_id;
+ int frontend_id;
+ int demux_id;
+ struct dvbcfg_zapchannel channel;
+ struct dvbsec_config sec;
+ int valid_sec;
+ int output_type;
+ struct dvbfe_handle *fe;
+};
+
+extern int gnutv_dvb_start(struct gnutv_dvb_params *params);
+extern void gnutv_dvb_stop(void);
+extern int gnutv_dvb_locked(void);
+
+#endif
diff --git a/util/lib/Makefile b/util/lib/Makefile
deleted file mode 100644
index 5f55636..0000000
--- a/util/lib/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-
-CC = gcc
-CFLAGS = -MD -g -Wall -O2 -I../../include -I.
-LFLAGS = -g -Wall
-
-OBJS = lnb.o
-SRCS = $(OBJS:.o=.c)
-
-TARGET = lnb.o
-
-$(TARGET): $(SRCS)
-
-.c.o:
- $(CC) $(CFLAGS) -c $< -o $@
-
-clean:
- $(RM) *.o *.d $(TARGET)
-
--include $(wildcard *.d) dummy
-
diff --git a/util/scan/Makefile b/util/scan/Makefile
index 4b29842..32d1f1c 100644
--- a/util/scan/Makefile
+++ b/util/scan/Makefile
@@ -1,21 +1,41 @@
+# Makefile for linuxtv.org dvb-apps/util/scan
-CC = gcc
-CFLAGS = -MD -g -Wall -O2 -I../../include
-LFLAGS = -g -Wall
+objects = atsc_psip_section.o \
+ diseqc.o \
+ dump-vdr.o \
+ dump-zap.o \
+ lnb.o \
+ scan.o \
+ section.o
-OBJS = diseqc.o dump-zap.o dump-vdr.o scan.o lnb.o section.o atsc_psip_section.o
-SRCS = $(OBJS:.o=.c)
+binaries = scan
-TARGET = scan
+inst_bin = $(binaries)
-$(TARGET): $(OBJS)
- $(CC) $(LFLAGS) -o $(TARGET) $(OBJS)
+removing = atsc_psip_section.c atsc_psip_section.h
-.c.o:
- $(CC) $(CFLAGS) -c $< -o $@
+CPPFLAGS += -DDATADIR=\"$(prefix)/share\"
-clean:
- $(RM) *.o *.d $(TARGET)
+.PHONY: all
--include $(wildcard *.d) dummy
+all: $(binaries)
+$(binaries): $(objects)
+
+$(objects): atsc_psip_section.c atsc_psip_section.h
+
+atsc_psip_section.c atsc_psip_section.h:
+ perl section_generate.pl atsc_psip_section.pl
+
+include ../../Make.rules
+
+install::
+ @echo installing scan files
+ @mkdir -p $(DESTDIR)$(sharedir)/dvb/atsc
+ @mkdir -p $(DESTDIR)$(sharedir)/dvb/dvb-c
+ @mkdir -p $(DESTDIR)$(sharedir)/dvb/dvb-s
+ @mkdir -p $(DESTDIR)$(sharedir)/dvb/dvb-t
+ @install -m 664 atsc/* $(DESTDIR)$(sharedir)/dvb/atsc/
+ @install -m 664 dvb-c/* $(DESTDIR)$(sharedir)/dvb/dvb-c/
+ @install -m 664 dvb-s/* $(DESTDIR)$(sharedir)/dvb/dvb-s/
+ @install -m 664 dvb-t/* $(DESTDIR)$(sharedir)/dvb/dvb-t/
diff --git a/util/scan/README b/util/scan/README
index a6c1767..1b3d13d 100644
--- a/util/scan/README
+++ b/util/scan/README
@@ -1,18 +1,20 @@
-Hi,
+This is a little channel scan utility to generate szap/tzap/czap/azap
+compatible channel lists. An atsc/dvbscan does not do a frequency scan, however,
+so you must manually provide the data for tuning to one or more start
+transponders. A number of initial-tuning-data files are provided for various
+dvb-c, dvb-s, dvb-t and atsc networks around the world. If you make a new one
+feel free to submit it to the linux-dvb mailing list
+http://www.linuxtv.org/lists.php.
-this is a little channel scan utility to generate szap/tzap/czap compatible
-channel lists. Scan does not do a frequency scan, however, so you must
-manually provide the data for tuning to one or more start transponders.
-A number of initial-tuning-data files are provided for various dvb-c, dvb-s
-and dvb-t networks around the world. If you make a new one feel free to
-submit it to the linux-dvb mailing list http://linuxtv.org/mailinglists.xml.
+Basic usage: ./dvbscan dvb-s/Astra-19.2E | tee mychannels.conf
+or ./atscscan atsc/us-NTSC-center-frequencies-8VSB
-Basic usage: ./scan dvb-s/Astra-19.2E | tee mychannels.conf
+If you want it to check a specific frequency, tune to that frequency
+(e.g. using szap/tzap/czap/azap) and then use './dvbscan -c' or './atscscan -c'.
-If you want it to check a specific frequency, tune to that frequency
-(e.g. using szap/tzap/czap) and then use './scan -c'.
+For more scan options see ./dvbscan -h or ./atscscan -h
-For more scan options see ./scan -h.
+atscscan is _just_ a copy of dvbscan to not confuse ATSC-user.
Good luck,
-Holger + Johannes
+Holger + Johannes + Patrick (beat me for ATSC)
diff --git a/util/scan/atsc/us-ATSC-center-frequencies-8VSB b/util/scan/atsc/us-ATSC-center-frequencies-8VSB
index ffd0b02..2e39de1 100644
--- a/util/scan/atsc/us-ATSC-center-frequencies-8VSB
+++ b/util/scan/atsc/us-ATSC-center-frequencies-8VSB
@@ -68,4 +68,3 @@ A 785028615 8VSB
A 791028615 8VSB
A 797028615 8VSB
A 803028615 8VSB
-
diff --git a/util/scan/atsc/us-NTSC-center-frequencies-8VSB b/util/scan/atsc/us-NTSC-center-frequencies-8VSB
index d21f9ae..6eb586c 100644
--- a/util/scan/atsc/us-NTSC-center-frequencies-8VSB
+++ b/util/scan/atsc/us-NTSC-center-frequencies-8VSB
@@ -68,4 +68,3 @@ A 785000000 8VSB
A 791000000 8VSB
A 797000000 8VSB
A 803000000 8VSB
-
diff --git a/util/scan/atsc/us-NY-TWC-NYC b/util/scan/atsc/us-NY-TWC-NYC
index 0ad6e48..932b377 100644
--- a/util/scan/atsc/us-NY-TWC-NYC
+++ b/util/scan/atsc/us-NY-TWC-NYC
@@ -1,53 +1,53 @@
-#initial tuning data for Time Warner Cable in New York City
-
-#80
-A 561000000 QAM256
-A 567000000 QAM256
-A 573000000 QAM256
-A 579000000 QAM256
-A 585000000 QAM256
-A 591000000 QAM256
-A 597000000 QAM256
-A 603000000 QAM256
-A 609000000 QAM256
-A 615000000 QAM256
-#90
-A 621000000 QAM256
-A 627000000 QAM256
-A 633000000 QAM256
-A 639000000 QAM256
-A 645000000 QAM256
-A 93000000 QAM256
-A 99000000 QAM256
-A 105000000 QAM256
-A 111025000 QAM256
-A 117025000 QAM256
-#100
-A 651000000 QAM256
-A 657000000 QAM256
-A 663000000 QAM256
-A 669000000 QAM256
-A 675000000 QAM256
-A 681000000 QAM256
-A 687000000 QAM256
-A 693000000 QAM256
-A 699000000 QAM256
-A 705000000 QAM256
-#110
-A 711000000 QAM256
-A 717000000 QAM256
-A 723000000 QAM256
-A 729000000 QAM256
-A 735000000 QAM256
-A 741000000 QAM256
-A 747000000 QAM256
-A 753000000 QAM256
-A 759000000 QAM256
-A 765000000 QAM256
-#120
-A 771000000 QAM256
-A 777000000 QAM256
-A 783000000 QAM256
-A 789000000 QAM256
-A 795000000 QAM256
-A 801000000 QAM256
+#initial tuning data for Time Warner Cable in New York City
+
+#80
+A 561000000 QAM256
+A 567000000 QAM256
+A 573000000 QAM256
+A 579000000 QAM256
+A 585000000 QAM256
+A 591000000 QAM256
+A 597000000 QAM256
+A 603000000 QAM256
+A 609000000 QAM256
+A 615000000 QAM256
+#90
+A 621000000 QAM256
+A 627000000 QAM256
+A 633000000 QAM256
+A 639000000 QAM256
+A 645000000 QAM256
+A 93000000 QAM256
+A 99000000 QAM256
+A 105000000 QAM256
+A 111025000 QAM256
+A 117025000 QAM256
+#100
+A 651000000 QAM256
+A 657000000 QAM256
+A 663000000 QAM256
+A 669000000 QAM256
+A 675000000 QAM256
+A 681000000 QAM256
+A 687000000 QAM256
+A 693000000 QAM256
+A 699000000 QAM256
+A 705000000 QAM256
+#110
+A 711000000 QAM256
+A 717000000 QAM256
+A 723000000 QAM256
+A 729000000 QAM256
+A 735000000 QAM256
+A 741000000 QAM256
+A 747000000 QAM256
+A 753000000 QAM256
+A 759000000 QAM256
+A 765000000 QAM256
+#120
+A 771000000 QAM256
+A 777000000 QAM256
+A 783000000 QAM256
+A 789000000 QAM256
+A 795000000 QAM256
+A 801000000 QAM256
diff --git a/util/scan/atsc_psip_section.c b/util/scan/atsc_psip_section.c
deleted file mode 100644
index 0c50014..0000000
--- a/util/scan/atsc_psip_section.c
+++ /dev/null
@@ -1,62 +0,0 @@
-#include "atsc_psip_section.h"
-
-struct ATSC_extended_channel_name_descriptor read_ATSC_extended_channel_name_descriptor(const u8 *b)
-{
- struct ATSC_extended_channel_name_descriptor v;
- v.descriptor_tag = getBits(b, 0, 8);
- v.descriptor_length = getBits(b, 8, 8);
- v.TODO = getBits(b, 16, 1);
- return v;
-}
-
-struct ATSC_service_location_descriptor read_ATSC_service_location_descriptor(const u8 *b)
-{
- struct ATSC_service_location_descriptor v;
- v.descriptor_tag = getBits(b, 0, 8);
- v.descriptor_length = getBits(b, 8, 8);
- v.reserved = getBits(b, 16, 3);
- v.PCR_PID = getBits(b, 19,13);
- v.number_elements = getBits(b, 32, 8);
- return v;
-}
-
-struct ATSC_service_location_element read_ATSC_service_location_element(const u8 *b)
-{
- struct ATSC_service_location_element v;
- v.stream_type = getBits(b, 0, 8);
- v.reserved = getBits(b, 8, 3);
- v.elementary_PID = getBits(b, 11,13);
- v.ISO_639_language_code = getBits(b, 24,24);
- return v;
-}
-
-struct tvct_channel read_tvct_channel(const u8 *b)
-{
- struct tvct_channel v;
- v.short_name0 = getBits(b, 0,16);
- v.short_name1 = getBits(b, 16,16);
- v.short_name2 = getBits(b, 32,16);
- v.short_name3 = getBits(b, 48,16);
- v.short_name4 = getBits(b, 64,16);
- v.short_name5 = getBits(b, 80,16);
- v.short_name6 = getBits(b, 96,16);
- v.reserved0 = getBits(b,112, 4);
- v.major_channel_number = getBits(b,116,10);
- v.minor_channel_number = getBits(b,126,10);
- v.modulation_mode = getBits(b,136, 8);
- v.carrier_frequency = getBits(b,144,32);
- v.channel_TSID = getBits(b,176,16);
- v.program_number = getBits(b,192,16);
- v.ETM_location = getBits(b,208, 2);
- v.access_controlled = getBits(b,210, 1);
- v.hidden = getBits(b,211, 1);
- v.reserved1 = getBits(b,212, 2);
- v.hide_guide = getBits(b,214, 1);
- v.reserved2 = getBits(b,215, 3);
- v.service_type = getBits(b,218, 6);
- v.source_id = getBits(b,224,16);
- v.reserved3 = getBits(b,240, 6);
- v.descriptors_length = getBits(b,246,10);
- return v;
-}
-
diff --git a/util/scan/atsc_psip_section.h b/util/scan/atsc_psip_section.h
deleted file mode 100644
index c76bce7..0000000
--- a/util/scan/atsc_psip_section.h
+++ /dev/null
@@ -1,60 +0,0 @@
-#ifndef __ATSC_PSIP_SECTION_H_
-#define __ATSC_PSIP_SECTION_H_
-
-#include "section.h"
-
-#define ATSC_EXTENDED_CHANNEL_NAME_DESCRIPTOR_ID 0xA0
-struct ATSC_extended_channel_name_descriptor {
- u8 descriptor_tag : 8;
- u8 descriptor_length : 8;
- u8 TODO : 1;
-} PACKED;
-struct ATSC_extended_channel_name_descriptor read_ATSC_extended_channel_name_descriptor(const u8 *);
-
-#define ATSC_SERVICE_LOCATION_DESCRIPTOR_ID 0xA1
-struct ATSC_service_location_descriptor {
- u8 descriptor_tag : 8;
- u8 descriptor_length : 8;
- u8 reserved : 3;
- u16 PCR_PID :13;
- u8 number_elements : 8;
-} PACKED;
-struct ATSC_service_location_descriptor read_ATSC_service_location_descriptor(const u8 *);
-
-struct ATSC_service_location_element {
- u8 stream_type : 8;
- u8 reserved : 3;
- u16 elementary_PID :13;
- u32 ISO_639_language_code :24;
-} PACKED;
-struct ATSC_service_location_element read_ATSC_service_location_element(const u8 *);
-
-struct tvct_channel {
- u16 short_name0 :16;
- u16 short_name1 :16;
- u16 short_name2 :16;
- u16 short_name3 :16;
- u16 short_name4 :16;
- u16 short_name5 :16;
- u16 short_name6 :16;
- u8 reserved0 : 4;
- u16 major_channel_number :10;
- u16 minor_channel_number :10;
- u8 modulation_mode : 8;
- u32 carrier_frequency :32;
- u16 channel_TSID :16;
- u16 program_number :16;
- u8 ETM_location : 2;
- u8 access_controlled : 1;
- u8 hidden : 1;
- u8 reserved1 : 2;
- u8 hide_guide : 1;
- u8 reserved2 : 3;
- u8 service_type : 6;
- u16 source_id :16;
- u8 reserved3 : 6;
- u16 descriptors_length :10;
-} PACKED;
-struct tvct_channel read_tvct_channel(const u8 *);
-
-#endif
diff --git a/util/scan/atsc_psip_section.pl b/util/scan/atsc_psip_section.pl
new file mode 100644
index 0000000..50548c6
--- /dev/null
+++ b/util/scan/atsc_psip_section.pl
@@ -0,0 +1,76 @@
+use strict;
+
+return {
+#{ 0x80, 0x80, "ATSC stuffing descriptor" },
+#{ 0x81, 0x81, "ATSC AC-3 audio descriptor" },
+#{ 0x82, 0x85, "ATSC TODO" },
+#{ 0x86, 0x86, "ATSC caption service descriptor" },
+#{ 0x87, 0x87, "ATSC content advisory descriptor" },
+#{ 0x88, 0x8F, "ATSC TODO" },
+#{ 0xA0, 0xA0, "ATSC extended channel name descriptor" },
+#{ 0xA1, 0xA1, "ATSC service location descriptor" },
+#{ 0xA2, 0xA2, "ATSC time-shifted service descriptor" },
+#{ 0xA3, 0xA3, "ATSC component name descriptor" },
+#{ 0xA4, 0xA7, "ATSC TODO" },
+#{ 0xA8, 0xA8, "ATSC DCC departing request descriptor" },
+#{ 0xA9, 0xA9, "ATSC DCC arriving request descriptor" },
+#{ 0xAA, 0xAA, "ATSC redistribution control descriptor" },
+ descriptors => [
+ { id => 0xa0,
+ name => "ATSC_extended_channel_name_descriptor",
+ elements => [
+ descriptor_tag => 8,
+ descriptor_length => 8,
+ TODO => 1,
+ ],
+ },
+ { id => 0xa1,
+ name => "ATSC_service_location_descriptor",
+ elements => [
+ descriptor_tag => 8,
+ descriptor_length => 8,
+ reserved => 3,
+ PCR_PID => 13,
+ number_elements => 8,
+ ],
+ }
+ ],
+ misc => [
+ { name => "ATSC_service_location_element",
+ elements => [
+ stream_type => 8,
+ reserved => 3,
+ elementary_PID => 13,
+ ISO_639_language_code => 24,
+ ],
+ },
+ { name => "tvct_channel",
+ elements => [
+ short_name0 => 16,
+ short_name1 => 16,
+ short_name2 => 16,
+ short_name3 => 16,
+ short_name4 => 16,
+ short_name5 => 16,
+ short_name6 => 16,
+ reserved0 => 4,
+ major_channel_number => 10,
+ minor_channel_number => 10,
+ modulation_mode => 8,
+ carrier_frequency => 32,
+ channel_TSID => 16,
+ program_number => 16,
+ ETM_location => 2,
+ access_controlled => 1,
+ hidden => 1,
+ reserved1 => 2,
+ hide_guide => 1,
+ reserved2 => 3,
+ service_type => 6,
+ source_id => 16,
+ reserved3 => 6,
+ descriptors_length => 10,
+ ],
+ },
+ ]
+};
diff --git a/util/scan/diseqc.c b/util/scan/diseqc.c
index a337e0a..c743fa5 100644
--- a/util/scan/diseqc.c
+++ b/util/scan/diseqc.c
@@ -37,9 +37,6 @@ void msleep(uint32_t msec)
;
}
-#define printf(x...)
-
-
int diseqc_send_msg (int fd, fe_sec_voltage_t v, struct diseqc_cmd **cmd,
fe_sec_tone_mode_t t, fe_sec_mini_cmd_t b)
{
@@ -104,5 +101,3 @@ int setup_switch (int frontend_fd, int switch_pos, int voltage_18, int hiband)
(i/2) % 2 ? SEC_TONE_ON : SEC_TONE_OFF,
(i/4) % 2 ? SEC_MINI_B : SEC_MINI_A);
}
-
-
diff --git a/util/scan/diseqc.h b/util/scan/diseqc.h
index d44d99b..ad12e34 100644
--- a/util/scan/diseqc.h
+++ b/util/scan/diseqc.h
@@ -22,4 +22,3 @@ extern int setup_switch (int frontend_fd, int switch_pos, int voltage_18, int fr
#endif
-
diff --git a/util/scan/dump-vdr.c b/util/scan/dump-vdr.c
index f030c93..ef4101e 100644
--- a/util/scan/dump-vdr.c
+++ b/util/scan/dump-vdr.c
@@ -138,7 +138,7 @@ void vdr_dump_service_parameter_set (FILE *f,
{
int i;
- if ((video_pid || audio_pid[0]) && ((ca_select > 0) || ((ca_select == 0) && (scrambled == 0)))) {
+ if (video_pid || audio_pid[0]) {
if (vdr_version <= 2) {
audio_lang = NULL;
network_id = 0;
@@ -174,10 +174,17 @@ void vdr_dump_service_parameter_set (FILE *f,
if (audio_lang && audio_lang[0][0])
fprintf (f, "=%.4s", audio_lang[0]);
}
- if (scrambled == 1) scrambled = ca_select;
+ if (scrambled == 1) {
+ if (ca_select == -1)
+ if (vdr_version <= 2)
+ scrambled = 1;
+ else
+ scrambled = 0;
+ else
+ scrambled = ca_select;
+ }
fprintf (f, ":%d:%d:%d:%d:%d:0", teletext_pid, scrambled,
service_id, network_id, transport_stream_id);
fprintf (f, "\n");
}
}
-
diff --git a/util/scan/dump-vdr.h b/util/scan/dump-vdr.h
index 13bd05a..f953b6e 100644
--- a/util/scan/dump-vdr.h
+++ b/util/scan/dump-vdr.h
@@ -36,4 +36,3 @@ void vdr_dump_service_parameter_set (FILE *f,
int channel_num);
#endif
-
diff --git a/util/scan/dump-zap.c b/util/scan/dump-zap.c
index 83505b9..3dcf71a 100644
--- a/util/scan/dump-zap.c
+++ b/util/scan/dump-zap.c
@@ -123,4 +123,3 @@ void zap_dump_service_parameter_set (FILE *f,
fprintf (f, ":%i:%i:%i", video_pid, audio_pid[0], service_id);
fprintf (f, "\n");
}
-
diff --git a/util/scan/dump-zap.h b/util/scan/dump-zap.h
index 6763dc2..e0aab6a 100644
--- a/util/scan/dump-zap.h
+++ b/util/scan/dump-zap.h
@@ -17,4 +17,3 @@ extern void zap_dump_service_parameter_set (FILE *f,
uint16_t service_id);
#endif
-
diff --git a/util/scan/dvb-c/at-Innsbruck b/util/scan/dvb-c/at-Innsbruck
new file mode 100644
index 0000000..ab920a3
--- /dev/null
+++ b/util/scan/dvb-c/at-Innsbruck
@@ -0,0 +1,8 @@
+# scan config for Innsbruck Telesystem cable provider
+# freq sr fec mod
+C 450000000 6875000 NONE QAM64
+C 490000000 6875000 NONE QAM64
+C 442000000 6875000 NONE QAM64
+C 546000000 6875000 NONE QAM64
+C 554000000 6875000 NONE QAM64
+C 562000000 6875000 NONE QAM64
diff --git a/util/scan/dvb-c/at-Liwest b/util/scan/dvb-c/at-Liwest
new file mode 100644
index 0000000..ad44f93
--- /dev/null
+++ b/util/scan/dvb-c/at-Liwest
@@ -0,0 +1,31 @@
+# Kabel Linz/AT Liwest
+# 2006-08-01
+# freq sr fec mod
+C 394000000 6900000 NONE QAM64
+C 402000000 6900000 NONE QAM64
+C 410000000 6875000 NONE QAM64
+C 418000000 6900000 NONE QAM64
+C 426000000 6900000 NONE QAM64
+C 434000000 6900000 NONE QAM64
+C 442000000 6900000 NONE QAM64
+C 506000000 6900000 NONE QAM64
+C 514000000 6900000 NONE QAM64
+C 522000000 6900000 NONE QAM64
+C 530000000 6900000 NONE QAM64
+C 538000000 6900000 NONE QAM64
+C 546000000 6900000 NONE QAM64
+C 554000000 6900000 NONE QAM64
+C 562000000 6900000 NONE QAM64
+C 570000000 6900000 NONE QAM64
+C 578000000 6900000 NONE QAM64
+C 586000000 6900000 NONE QAM64
+C 594000000 6900000 NONE QAM64
+C 666000000 6900000 NONE QAM64
+C 674000000 6900000 NONE QAM64
+C 682000000 6900000 NONE QAM64
+C 586000000 6900000 NONE QAM256
+C 634000000 6900000 NONE QAM256
+C 642000000 6900000 NONE QAM256
+C 650000000 6900000 NONE QAM256
+C 658000000 6900000 NONE QAM256
+C 690000000 6900000 NONE QAM256
diff --git a/util/scan/dvb-c/at-SalzburgAG b/util/scan/dvb-c/at-SalzburgAG
new file mode 100644
index 0000000..58fd3ce
--- /dev/null
+++ b/util/scan/dvb-c/at-SalzburgAG
@@ -0,0 +1,9 @@
+# scan config for Salzburg AG cable provider
+# freq sr fec mod
+C 306000000 6900000 NONE QAM64
+C 370000000 6900000 NONE QAM64
+C 410000000 6900000 NONE QAM64
+C 418000000 6900000 NONE QAM64
+C 426000000 6900000 NONE QAM64
+C 442000000 6900000 NONE QAM64
+C 306000000 6900000 NONE QAM64
diff --git a/util/scan/dvb-c/be-IN.DI-Integan b/util/scan/dvb-c/be-IN.DI-Integan
new file mode 100644
index 0000000..ca46717
--- /dev/null
+++ b/util/scan/dvb-c/be-IN.DI-Integan
@@ -0,0 +1,16 @@
+# Integan DVB-C (Belgium, IN.DI region)
+# freq sr fec mod
+C 330000000 6875000 NONE QAM256
+C 338000000 6875000 NONE QAM256
+C 346000000 6875000 NONE QAM256
+C 354000000 6875000 NONE QAM256
+C 362000000 6875000 NONE QAM64
+C 370000000 6875000 NONE QAM256
+C 378000000 6875000 NONE QAM256
+C 386000000 6875000 NONE QAM256
+C 394000000 6875000 NONE QAM256
+C 458000000 6875000 NONE QAM256
+C 466000000 6875000 NONE QAM256
+C 474000000 6875000 NONE QAM256
+C 482000000 6875000 NONE QAM256
+C 586000000 6875000 NONE QAM256
diff --git a/util/scan/dvb-c/ch-Video2000 b/util/scan/dvb-c/ch-Video2000
new file mode 100644
index 0000000..e3e47e5
--- /dev/null
+++ b/util/scan/dvb-c/ch-Video2000
@@ -0,0 +1,5 @@
+# Cable Video2000
+# Canton of Neuchatel, Switzerland
+
+# freq sr fec mod
+C 306000000 6900000 NONE QAM64
diff --git a/util/scan/dvb-c/ch-Zuerich-cablecom b/util/scan/dvb-c/ch-Zuerich-cablecom
new file mode 100644
index 0000000..41c2160
--- /dev/null
+++ b/util/scan/dvb-c/ch-Zuerich-cablecom
@@ -0,0 +1,3 @@
+# Kabel cablecom.ch Zuerich
+# freq sr fec mod
+C 410000000 6900000 NONE QAM64
diff --git a/util/scan/dvb-c/de-Berlin b/util/scan/dvb-c/de-Berlin
index 4a53b74..550ba76 100644
--- a/util/scan/dvb-c/de-Berlin
+++ b/util/scan/dvb-c/de-Berlin
@@ -2,3 +2,4 @@
# freq sr fec mod
C 394000000 6900000 NONE QAM64
C 113000000 6900000 NONE QAM64
+C 466000000 6900000 NONE QAM64
diff --git a/util/scan/dvb-c/de-Kabel_BW b/util/scan/dvb-c/de-Kabel_BW
new file mode 100644
index 0000000..437579f
--- /dev/null
+++ b/util/scan/dvb-c/de-Kabel_BW
@@ -0,0 +1,16 @@
+# Kabel-BW, Stand 04/2007
+#
+# Nur eine Anfangsfrequenz ist noetig, um den Ball ins
+# Rollen zu bringen. Quasi als Einstiegspunkt fuer eine
+# umfassende Suche. Es besteht kein Grund, sich um all die
+# vielen anderen Frequenzen und deren aktuell verwendete
+# Parameter zu kuemmern und diese dann womoeglich auch
+# noch auf einem aktuellen Stand halten zu wollen. Bei der
+# schieren Anzahl der innerhalb des Ausbaugebiets durch
+# Kabel BW genutzten Frequenzen waere das nur zeitraubend
+# und fehleranfaellig... ;-)
+#
+# Dirk Ritter <dirk@GNUmatic.de>
+#
+# freq sr fec mod
+C 113000000 6900000 NONE QAM64
diff --git a/util/scan/dvb-c/de-Muenchen b/util/scan/dvb-c/de-Muenchen
new file mode 100644
index 0000000..c963c88
--- /dev/null
+++ b/util/scan/dvb-c/de-Muenchen
@@ -0,0 +1,24 @@
+# 2008-04-28
+# Area: Muenchen City
+# Cable Provider: Kabel & Medien Service - http://www.atcable.de
+# Cable Content: Cablevista GmbH - http://www.cablevista.de
+#
+# freq sr fec mod
+C 113000000 6900000 AUTO QAM64
+C 121000000 6900000 AUTO QAM64
+C 346000000 6900000 AUTO QAM64
+C 354000000 6900000 AUTO QAM64
+C 362000000 6900000 AUTO QAM64
+C 370000000 6900000 AUTO QAM64
+C 378000000 6900000 AUTO QAM64
+C 386000000 6900000 AUTO QAM64
+C 394000000 6900000 AUTO QAM64
+C 402000000 6900000 AUTO QAM64
+C 410000000 6900000 AUTO QAM64
+C 418000000 6900000 AUTO QAM64
+C 426000000 6900000 AUTO QAM64
+C 434000000 6900000 AUTO QAM64
+C 442000000 6900000 AUTO QAM64
+C 450000000 6900000 AUTO QAM64
+C 466000000 6900000 AUTO QAM64
+C 458000000 6900000 AUTO QAM256
diff --git a/util/scan/dvb-c/de-Primacom b/util/scan/dvb-c/de-Primacom
new file mode 100644
index 0000000..3f93f75
--- /dev/null
+++ b/util/scan/dvb-c/de-Primacom
@@ -0,0 +1,29 @@
+# Primacom
+# freq sr fec mod
+C 306000000 6900000 AUTO QAM64
+C 314000000 6900000 AUTO QAM64
+C 322000000 6900000 AUTO QAM64
+C 330000000 6900000 AUTO QAM64
+C 338000000 6900000 AUTO QAM64
+C 346000000 6900000 AUTO QAM64
+C 354000000 6900000 AUTO QAM64
+C 362000000 6900000 AUTO QAM64
+C 370000000 6900000 AUTO QAM64
+C 378000000 6900000 AUTO QAM64
+C 386000000 6900000 AUTO QAM64
+C 394000000 6900000 AUTO QAM64
+C 402000000 6900000 AUTO QAM64
+C 410000000 6900000 AUTO QAM64
+C 418000000 6900000 AUTO QAM64
+C 426000000 6900000 AUTO QAM64
+C 434000000 6956000 AUTO QAM64
+C 610000000 6900000 AUTO QAM64
+C 746000000 6900000 AUTO QAM64
+C 754000000 6900000 AUTO QAM64
+C 762000000 6900000 AUTO QAM64
+C 802000000 6900000 AUTO QAM64
+C 810000000 6900000 AUTO QAM64
+C 818000000 6900000 AUTO QAM64
+C 826000000 6900000 AUTO QAM64
+C 834000000 6900000 AUTO QAM64
+C 634000000 6900000 AUTO QAM256
diff --git a/util/scan/dvb-c/de-Unitymedia b/util/scan/dvb-c/de-Unitymedia
new file mode 100644
index 0000000..96d1d38
--- /dev/null
+++ b/util/scan/dvb-c/de-Unitymedia
@@ -0,0 +1,35 @@
+# Unitymedia
+# Created from http://www.unitymedia.de/service/tv/frequenzen.html
+# and http://blob.unitymedia.de/Download/Unitymedia_Senderlineup_digital_2008-05-28.pdf
+# freq sr fec mod
+C 113000000 6900000 AUTO QAM256
+C 121000000 6900000 AUTO QAM256
+C 338000000 6900000 AUTO QAM256
+C 346000000 6900000 AUTO QAM256
+C 354000000 6900000 AUTO QAM64
+C 362000000 6900000 AUTO QAM64
+C 370000000 6900000 AUTO QAM64
+C 378000000 6900000 AUTO QAM64
+C 386000000 6900000 AUTO QAM64
+C 394000000 6900000 AUTO QAM256
+C 402000000 6900000 AUTO QAM256
+C 410000000 6900000 AUTO QAM256
+C 418000000 6900000 AUTO QAM256
+C 426000000 6900000 AUTO QAM256
+C 434000000 6900000 AUTO QAM256
+C 442000000 6900000 AUTO QAM64
+C 450000000 6900000 AUTO QAM64
+C 458000000 6900000 AUTO QAM256
+C 466000000 6900000 AUTO QAM256
+C 474000000 6900000 AUTO QAM64
+C 522000000 6900000 AUTO QAM256
+C 530000000 6900000 AUTO QAM256
+C 538000000 6900000 AUTO QAM256
+C 554000000 6900000 AUTO QAM256
+C 562000000 6900000 AUTO QAM256
+C 570000000 6900000 AUTO QAM256
+C 610000000 6900000 AUTO QAM64
+C 650000000 6900000 AUTO QAM256
+C 658000000 6900000 AUTO QAM256
+C 666000000 6900000 AUTO QAM256
+C 674000000 6900000 AUTO QAM256
diff --git a/util/scan/dvb-c/de-iesy b/util/scan/dvb-c/de-iesy
index a289951..6726bb7 100644
--- a/util/scan/dvb-c/de-iesy
+++ b/util/scan/dvb-c/de-iesy
@@ -1,3 +1,20 @@
-# Kabel iesy
+# Unity Media (iesy Hessen, ish Nordrhein-Westfalen)
# freq sr fec mod
+C 113000000 6900000 NONE QAM64
+C 121000000 6900000 NONE QAM64
+C 346000000 6900000 NONE QAM256
+C 354000000 6900000 NONE QAM64
+C 362000000 6900000 NONE QAM64
+C 370000000 6900000 NONE QAM64
+C 378000000 6900000 NONE QAM64
+C 386000000 6900000 NONE QAM64
+C 394000000 6900000 NONE QAM64
+C 402000000 6900000 NONE QAM256
C 410000000 6900000 NONE QAM64
+C 426000000 6900000 NONE QAM64
+C 434000000 6900000 NONE QAM256
+C 442000000 6900000 NONE QAM256
+C 450000000 6900000 NONE QAM64
+C 458000000 6900000 NONE QAM64
+C 466000000 6900000 NONE QAM64
+C 538000000 6900000 NONE QAM256
diff --git a/util/scan/dvb-c/de-neftv b/util/scan/dvb-c/de-neftv
new file mode 100644
index 0000000..59e7658
--- /dev/null
+++ b/util/scan/dvb-c/de-neftv
@@ -0,0 +1,23 @@
+# Cable conf for NEFtv
+# (Nuernberg, Erlangen, Fuerth and Herzogenaurach)
+
+# freq sr fec mod
+C 346000000 6875000 NONE QAM64
+C 354000000 6875000 NONE QAM64
+C 362000000 6875000 NONE QAM64
+C 370000000 6875000 NONE QAM64
+C 378000000 6875000 NONE QAM64
+C 386000000 6875000 NONE QAM64
+C 394000000 6875000 NONE QAM64
+C 402000000 6875000 NONE QAM64
+C 410000000 6875000 NONE QAM64
+C 418000000 6875000 NONE QAM64
+C 426000000 6875000 NONE QAM64
+C 434000000 6875000 NONE QAM64
+C 450000000 6875000 NONE QAM64
+C 458000000 6875000 NONE QAM64
+C 474000000 6875000 NONE QAM64
+C 490000000 6875000 NONE QAM64
+C 498000000 6875000 NONE QAM64
+C 514000000 6875000 NONE QAM64
+C 546000000 6875000 NONE QAM64
diff --git a/util/scan/dvb-c/dk-Odense b/util/scan/dvb-c/dk-Odense
new file mode 100644
index 0000000..132dd5a
--- /dev/null
+++ b/util/scan/dvb-c/dk-Odense
@@ -0,0 +1,10 @@
+# Glentevejs Antennelaug (Denmark / Odense)
+# freq sr fec mod
+C 442000000 6900000 NONE QAM64
+C 434000000 6875000 NONE QAM256
+C 255000000 5000000 2/3 QAM256
+C 506000000 6875000 2/3 QAM256
+C 562000000 6875000 2/3 QAM256
+C 610000000 6875000 2/3 QAM256
+C 754000000 6875000 2/3 QAM256
+C 770000000 6875000 2/3 QAM256
diff --git a/util/scan/dvb-c/es-Euskaltel b/util/scan/dvb-c/es-Euskaltel
new file mode 100644
index 0000000..7612425
--- /dev/null
+++ b/util/scan/dvb-c/es-Euskaltel
@@ -0,0 +1,19 @@
+# Scan config for Euskaltel (DVB-C)
+# Basque Country - Spain
+# file automatically generated by w_scan
+# (http://free.pages.at/wirbel4vdr/w_scan/index2.html)
+# freq sr fec mod
+C 714000000 6875000 3/4 QAM64
+C 722000000 6875000 3/4 QAM64
+C 730000000 6875000 3/4 QAM64
+C 738000000 6875000 3/4 QAM64
+C 746000000 6875000 3/4 QAM64
+C 754000000 6875000 3/4 QAM64
+C 762000000 6875000 3/4 QAM64
+C 770000000 6875000 3/4 QAM64
+C 778000000 6875000 3/4 QAM64
+C 786000000 6875000 3/4 QAM64
+C 794000000 6875000 3/4 QAM64
+C 802000000 6875000 3/4 QAM64
+C 810000000 6875000 3/4 QAM64
+C 818000000 6875000 3/4 QAM64
diff --git a/util/scan/dvb-c/fi-3ktv b/util/scan/dvb-c/fi-3ktv
index 55ccfd6..1ec2278 100644
--- a/util/scan/dvb-c/fi-3ktv
+++ b/util/scan/dvb-c/fi-3ktv
@@ -1,3 +1,20 @@
-# 3KTV
-# freq sr fec mod
-C 306000000 6875000 NONE QAM64
+# 3KTV network reference channels
+# freq sr fec mod
+C 154000000 6875000 NONE QAM128
+C 162000000 6875000 NONE QAM128
+C 170000000 6875000 NONE QAM128
+C 232000000 6875000 NONE QAM128
+C 298000000 6875000 NONE QAM128
+C 306000000 6875000 NONE QAM128
+C 314000000 6875000 NONE QAM128
+C 322000000 6875000 NONE QAM128
+C 330000000 6875000 NONE QAM128
+C 338000000 6875000 NONE QAM128
+C 346000000 6875000 NONE QAM128
+C 354000000 6875000 NONE QAM128
+C 362000000 6875000 NONE QAM128
+C 370000000 6875000 NONE QAM128
+C 378000000 6875000 NONE QAM128
+C 394000000 6875000 NONE QAM128
+C 402000000 6875000 NONE QAM128
+C 450000000 6875000 NONE QAM128
diff --git a/util/scan/dvb-c/fi-HTV b/util/scan/dvb-c/fi-HTV
new file mode 100644
index 0000000..ac00724
--- /dev/null
+++ b/util/scan/dvb-c/fi-HTV
@@ -0,0 +1,4 @@
+# HTV
+# freq sr fec mod
+C 283000000 5900000 NONE QAM128
+C 154000000 6900000 NONE QAM128
diff --git a/util/scan/dvb-c/fi-Joensuu-Tikka b/util/scan/dvb-c/fi-Joensuu-Tikka
new file mode 100644
index 0000000..d74462f
--- /dev/null
+++ b/util/scan/dvb-c/fi-Joensuu-Tikka
@@ -0,0 +1,13 @@
+# DVB-C, Tikka Media, Joensuu, Finland
+# freq sr fec mod
+C 154000000 6900000 NONE QAM128
+C 162000000 6900000 NONE QAM128
+C 170000000 6900000 NONE QAM128
+C 402000000 6900000 NONE QAM128
+C 410000000 6900000 NONE QAM128
+C 418000000 6900000 NONE QAM128
+C 426000000 6900000 NONE QAM128
+C 434000000 6900000 NONE QAM128
+C 458000000 6900000 NONE QAM128
+C 466000000 6900000 NONE QAM128
+C 474000000 6900000 NONE QAM128
diff --git a/util/scan/dvb-c/fi-TTV b/util/scan/dvb-c/fi-TTV
new file mode 100644
index 0000000..68cfbcd
--- /dev/null
+++ b/util/scan/dvb-c/fi-TTV
@@ -0,0 +1,4 @@
+# TTV
+# freq sr fec mod
+C 418000000 6900000 NONE QAM128
+C 346000000 6900000 NONE QAM128
diff --git a/util/scan/dvb-c/fi-Turku b/util/scan/dvb-c/fi-Turku
new file mode 100644
index 0000000..b6b435a
--- /dev/null
+++ b/util/scan/dvb-c/fi-Turku
@@ -0,0 +1,17 @@
+# Turun Kaapelitelevisio Oy (Turku)
+# freq sr fec mod
+C 146000000 6900000 NONE QAM128
+C 154000000 6900000 NONE QAM128
+C 162000000 6900000 NONE QAM128
+C 322000000 6900000 NONE QAM128
+C 330000000 6900000 NONE QAM128
+C 338000000 6900000 NONE QAM128
+C 362000000 6900000 NONE QAM128
+C 378000000 6900000 NONE QAM128
+C 386000000 6900000 NONE QAM128
+C 402000000 6900000 NONE QAM128
+C 410000000 6900000 NONE QAM128
+C 418000000 6900000 NONE QAM128
+C 426000000 6900000 NONE QAM128
+C 442000000 6900000 NONE QAM128
+C 354000000 6900000 NONE QAM256
diff --git a/util/scan/dvb-c/fi-jkl b/util/scan/dvb-c/fi-jkl
new file mode 100644
index 0000000..ad9811b
--- /dev/null
+++ b/util/scan/dvb-c/fi-jkl
@@ -0,0 +1,10 @@
+# OnCable (Finland / Jyväskylä)
+# freq sr fec mod
+C 514000000 6900000 NONE QAM128
+C 426000000 6900000 NONE QAM128
+C 162000000 6900000 NONE QAM128
+C 418000000 6900000 NONE QAM128
+C 490000000 6900000 NONE QAM128
+C 498000000 6900000 NONE QAM128
+C 402000000 6900000 NONE QAM128
+C 410000000 6900000 NONE QAM128
diff --git a/util/scan/dvb-c/fi-sonera b/util/scan/dvb-c/fi-sonera
new file mode 100644
index 0000000..54f3fe9
--- /dev/null
+++ b/util/scan/dvb-c/fi-sonera
@@ -0,0 +1,12 @@
+# Sonera kaapeli-tv (Finland)
+# Maksuttomat kanavat ovat 162 ja 170 MHz:n muxeissa
+#
+# freq      sr      fec  mod
+C 154000000 6900000 NONE QAM128
+C 162000000 6900000 NONE QAM128
+C 170000000 6900000 NONE QAM128
+C 314000000 6900000 NONE QAM128
+C 322000000 6900000 NONE QAM128
+C 338000000 6900000 NONE QAM128
+C 346000000 6900000 NONE QAM128
+C 354000000 6900000 NONE QAM128
diff --git a/util/scan/dvb-c/fr-noos-numericable b/util/scan/dvb-c/fr-noos-numericable
new file mode 100644
index 0000000..61e4b1e
--- /dev/null
+++ b/util/scan/dvb-c/fr-noos-numericable
@@ -0,0 +1,41 @@
+# Cable en France
+# freq sr fec mod
+C 123000000 6875000 NONE QAM64
+C 131000000 6875000 NONE QAM64
+C 139000000 6875000 NONE QAM64
+C 147000000 6875000 NONE QAM64
+C 155000000 6875000 NONE QAM64
+C 163000000 6875000 NONE QAM64
+C 171000000 6875000 NONE QAM64
+C 179000000 6875000 NONE QAM64
+C 187000000 6875000 NONE QAM64
+C 195000000 6875000 NONE QAM64
+C 203000000 6875000 NONE QAM64
+C 211000000 6875000 NONE QAM64
+C 219000000 6875000 NONE QAM64
+C 227000000 6875000 NONE QAM64
+C 235000000 6875000 NONE QAM64
+C 243000000 6875000 NONE QAM64
+C 251000000 6875000 NONE QAM64
+C 259000000 6875000 NONE QAM64
+C 267000000 6875000 NONE QAM64
+C 275000000 6875000 NONE QAM64
+C 283000000 6875000 NONE QAM64
+C 291000000 6875000 NONE QAM64
+C 299000000 6875000 NONE QAM64
+C 315000000 6875000 NONE QAM64
+C 323000000 6875000 NONE QAM64
+C 339000000 6875000 NONE QAM64
+C 347000000 6875000 NONE QAM64
+C 706000000 6875000 NONE QAM64
+C 714000000 6875000 NONE QAM64
+C 722000000 6875000 NONE QAM64
+C 730000000 6875000 NONE QAM64
+C 738000000 6875000 NONE QAM64
+C 746000000 6875000 NONE QAM64
+C 748000000 6875000 NONE QAM64
+C 754000000 6875000 NONE QAM64
+C 762000000 6875000 NONE QAM64
+C 834000000 6875000 NONE QAM64
+C 842000000 6875000 NONE QAM64
+C 850000000 6875000 NONE QAM64
diff --git a/util/scan/dvb-c/lu-Ettelbruck-ACE b/util/scan/dvb-c/lu-Ettelbruck-ACE
new file mode 100644
index 0000000..ba770c2
--- /dev/null
+++ b/util/scan/dvb-c/lu-Ettelbruck-ACE
@@ -0,0 +1,20 @@
+# Scan config for Antenne Collective Ettelbruck a.s.b.l.
+# (http://antenne-ettelbruck.lu)
+# Luxembourg - Ettelbruck
+# freq sr fec mod
+C 634000000 6900000 5/6 QAM64
+C 642000000 6900000 5/6 QAM64
+C 650000000 6900000 5/6 QAM64
+C 666000000 6900000 5/6 QAM64
+C 674000000 6900000 5/6 QAM64
+C 682000000 6900000 5/6 QAM64
+C 690000000 6900000 5/6 QAM64
+C 698000000 6900000 5/6 QAM64
+C 706000000 6900000 5/6 QAM64
+C 714000000 6900000 5/6 QAM64
+C 656000000 3450000 5/6 QAM64
+C 660000000 3450000 5/6 QAM64
+C 720000000 3450000 5/6 QAM64
+C 732000000 3450000 5/6 QAM64
+C 724000000 3450000 5/6 QAM64
+C 728000000 3450000 5/6 QAM64
diff --git a/util/scan/dvb-c/nl-Casema b/util/scan/dvb-c/nl-Casema
new file mode 100644
index 0000000..5c42d85
--- /dev/null
+++ b/util/scan/dvb-c/nl-Casema
@@ -0,0 +1,3 @@
+# Casema Netherlands
+# freq sr fec mod
+C 372000000 6875000 NONE QAM64
diff --git a/util/scan/dvb-c/no-Oslo-CanalDigital b/util/scan/dvb-c/no-Oslo-CanalDigital
new file mode 100644
index 0000000..96f454e
--- /dev/null
+++ b/util/scan/dvb-c/no-Oslo-CanalDigital
@@ -0,0 +1,13 @@
+# no-oslo-CanalDigital (cable)
+C 354000000 6950000 NONE QAM64
+C 362000000 6950000 NONE QAM64
+C 370000000 6950000 NONE QAM64
+C 378000000 6950000 NONE QAM64
+C 386000000 6950000 NONE QAM64
+C 394000000 6950000 NONE QAM64
+C 402000000 6950000 NONE QAM64
+C 410000000 6950000 NONE QAM64
+C 418000000 6950000 NONE QAM64
+C 426000000 6950000 NONE QAM64
+C 450000000 6950000 NONE QAM64
+C 474000000 6950000 NONE QAM64
diff --git a/util/scan/dvb-c/se-comhem b/util/scan/dvb-c/se-comhem
new file mode 100644
index 0000000..16bd7dd
--- /dev/null
+++ b/util/scan/dvb-c/se-comhem
@@ -0,0 +1,3 @@
+# com hem
+# freq sr fec mod
+C 362000000 6875000 NONE QAM64
diff --git a/util/scan/dvb-h/README b/util/scan/dvb-h/README
new file mode 100644
index 0000000..50e137d
--- /dev/null
+++ b/util/scan/dvb-h/README
@@ -0,0 +1,3 @@
+These files are mainly for informational and experimental purposes.
+The DVB-H file format hasn't been specified in any way; currently it's just
+a copy of the DVB-T format.
diff --git a/util/scan/dvb-h/fi-Helsinki b/util/scan/dvb-h/fi-Helsinki
new file mode 100644
index 0000000..c593929
--- /dev/null
+++ b/util/scan/dvb-h/fi-Helsinki
@@ -0,0 +1,2 @@
+# H freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+H 586000000 8MHz 1/2 NONE QAM16 8k 1/8 NONE
diff --git a/util/scan/dvb-h/fi-Oulu b/util/scan/dvb-h/fi-Oulu
new file mode 100644
index 0000000..7a6be88
--- /dev/null
+++ b/util/scan/dvb-h/fi-Oulu
@@ -0,0 +1,2 @@
+# H freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+H 498000000 8MHz 1/2 NONE QAM16 8k 1/8 NONE
diff --git a/util/scan/dvb-h/fi-Oulu-Nokia-devel b/util/scan/dvb-h/fi-Oulu-Nokia-devel
new file mode 100644
index 0000000..6213607
--- /dev/null
+++ b/util/scan/dvb-h/fi-Oulu-Nokia-devel
@@ -0,0 +1,4 @@
+# Nokia Oulu delelopment network
+# Network Name 'Nokia Oulu'
+# H freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+H 690000000 8MHz 1/2 NONE QPSK 8k 1/8 NONE
diff --git a/util/scan/dvb-h/fi-Turku b/util/scan/dvb-h/fi-Turku
new file mode 100644
index 0000000..7a6be88
--- /dev/null
+++ b/util/scan/dvb-h/fi-Turku
@@ -0,0 +1,2 @@
+# H freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+H 498000000 8MHz 1/2 NONE QAM16 8k 1/8 NONE
diff --git a/util/scan/dvb-s/ABS1-75.0E b/util/scan/dvb-s/ABS1-75.0E
new file mode 100644
index 0000000..26ea163
--- /dev/null
+++ b/util/scan/dvb-s/ABS1-75.0E
@@ -0,0 +1,10 @@
+# ABS-1 @ 75E
+# freq pol sr fec
+S 12518000 V 22000000 AUTO
+S 12548000 V 22000000 AUTO
+S 12579000 V 22000000 AUTO
+S 12640000 V 22000000 AUTO
+S 12670000 V 22000000 AUTO
+S 12693000 V 10000000 AUTO
+S 12704000 V 3900000 AUTO
+S 12740000 V 7408000 AUTO
diff --git a/util/scan/dvb-s/AMC1-103w b/util/scan/dvb-s/AMC1-103w
new file mode 100644
index 0000000..f09dc62
--- /dev/null
+++ b/util/scan/dvb-s/AMC1-103w
@@ -0,0 +1,5 @@
+# AMC 1 @ 103W
+# freq pol sr fec
+
+S 11942000 V 20000000 AUTO
+S 12100000 V 20000000 AUTO
diff --git a/util/scan/dvb-s/AMC2-85w b/util/scan/dvb-s/AMC2-85w
new file mode 100644
index 0000000..0cd0611
--- /dev/null
+++ b/util/scan/dvb-s/AMC2-85w
@@ -0,0 +1,6 @@
+# AMC 2 @ 85W
+# freq pol sr fec
+
+S 11731000 H 13021000 AUTO
+S 11744000 H 13021000 AUTO
+S 11771000 H 13021000 AUTO
diff --git a/util/scan/dvb-s/AMC3-87w b/util/scan/dvb-s/AMC3-87w
new file mode 100644
index 0000000..a081c57
--- /dev/null
+++ b/util/scan/dvb-s/AMC3-87w
@@ -0,0 +1,10 @@
+# AMC 3 @ 87.0W
+# freq pol sr fec
+
+S 11716000 H 04859000 AUTO
+S 12142000 V 30000000 AUTO
+S 12147000 H 04340000 AUTO
+S 12159000 H 04444000 AUTO
+S 12165000 H 04444000 AUTO
+S 12172000 H 04444000 AUTO
+S 12182000 V 30000000 AUTO
diff --git a/util/scan/dvb-s/AMC4-101w b/util/scan/dvb-s/AMC4-101w
new file mode 100644
index 0000000..dd732dd
--- /dev/null
+++ b/util/scan/dvb-s/AMC4-101w
@@ -0,0 +1,10 @@
+# AMC 4 @ 101.0W
+# freq pol sr fec
+
+S 11573000 V 07234000 AUTO
+S 11655000 V 30000000 AUTO
+S 11708000 V 02170000 AUTO
+S 11822000 H 05700000 AUTO
+S 11860000 H 28138000 AUTO
+S 12120000 V 30000000 AUTO
+S 12169000 H 03003000 AUTO
diff --git a/util/scan/dvb-s/AMC5-79w b/util/scan/dvb-s/AMC5-79w
new file mode 100644
index 0000000..0aeebc6
--- /dev/null
+++ b/util/scan/dvb-s/AMC5-79w
@@ -0,0 +1,5 @@
+# AMC 5 @ 79W
+# freq pol sr fec
+
+S 11742000 V 11110000 AUTO
+S 12182000 H 23000000 AUTO
diff --git a/util/scan/dvb-s/AMC6-72w b/util/scan/dvb-s/AMC6-72w
new file mode 100644
index 0000000..75307da
--- /dev/null
+++ b/util/scan/dvb-s/AMC6-72w
@@ -0,0 +1,44 @@
+# AMC 6 @ 72W
+# freq pol sr fec
+
+S 11482000 V 02656000 AUTO
+S 11494000 V 06560000 AUTO
+S 11499000 V 02964000 AUTO
+S 11505000 V 02963000 AUTO
+S 11546000 V 12000000 AUTO
+S 11548000 H 03002000 AUTO
+S 11552000 H 03002000 AUTO
+S 11557000 H 04392000 AUTO
+S 11563000 H 04392000 AUTO
+S 11570000 H 04392000 AUTO
+S 11576000 H 04392000 AUTO
+S 11586000 H 02652000 AUTO
+S 11603000 V 08500000 AUTO
+S 11605000 V 03600000 AUTO
+S 11611000 V 03400000 AUTO
+S 11628000 V 06560000 AUTO
+S 11637000 V 02800000 AUTO
+S 11641000 V 03702000 AUTO
+S 11648000 V 07500000 AUTO
+S 11667000 V 07400000 AUTO
+S 11674000 V 04000000 AUTO
+S 11680000 V 03255000 AUTO
+S 11703000 V 03979000 AUTO
+S 11709000 V 03979000 AUTO
+S 11715000 V 03979000 AUTO
+S 11746000 V 03979000 AUTO
+S 11748000 H 14015000 AUTO
+S 11752000 V 03979000 AUTO
+S 11763000 V 03979000 AUTO
+S 11817000 H 05000000 AUTO
+S 11874000 V 04000000 AUTO
+S 11986000 V 03979000 AUTO
+S 11995000 V 03979000 AUTO
+S 12004000 V 03979000 AUTO
+S 12013000 V 03979000 AUTO
+S 12025000 V 03979000 AUTO
+S 12031000 V 03979000 AUTO
+S 12046000 H 06111000 AUTO
+S 12055000 V 06890000 AUTO
+S 12144000 V 02573000 AUTO
+S 12188000 H 06511000 AUTO
diff --git a/util/scan/dvb-s/AMC9-83w b/util/scan/dvb-s/AMC9-83w
new file mode 100644
index 0000000..b7d0882
--- /dev/null
+++ b/util/scan/dvb-s/AMC9-83w
@@ -0,0 +1,18 @@
+# AMC 9 @ 83W
+# freq pol sr fec
+
+S 11745000 H 04232000 AUTO
+S 11751000 H 04232000 AUTO
+S 11757000 H 04232000 AUTO
+S 11763000 H 04232000 AUTO
+S 11769000 H 04232000 AUTO
+S 11775000 H 04232000 AUTO
+S 11826000 H 05632000 AUTO
+S 11864000 H 03979000 AUTO
+S 11871000 H 13000000 AUTO
+S 11889000 H 13025000 AUTO
+S 11926000 V 06511000 AUTO
+S 11953000 V 03979000 AUTO
+S 11960000 H 05000000 AUTO
+S 12002000 H 03979000 AUTO
+S 12011000 H 03979000 AUTO
diff --git a/util/scan/dvb-s/Amazonas-61.0W b/util/scan/dvb-s/Amazonas-61.0W
new file mode 100644
index 0000000..825b18a
--- /dev/null
+++ b/util/scan/dvb-s/Amazonas-61.0W
@@ -0,0 +1,54 @@
+# Amazonas @ 61.0W
+# freq pol sr fec
+
+S 3957000 H 06666000 AUTO
+S 3966000 H 06666000 AUTO
+S 3975000 H 06666000 AUTO
+S 3993000 H 06666000 AUTO
+S 4137000 H 03409000 AUTO
+S 3941000 V 03480000 AUTO
+S 12092000 V 30000000 AUTO
+S 12132000 V 30000000 AUTO
+S 4174000 H 03330000 AUTO
+S 11128000 V 06666000 AUTO
+S 11185000 V 11800000 AUTO
+S 11049000 V 02000000 AUTO
+S 12052000 V 27000000 AUTO
+S 10975000 V 27000000 AUTO
+S 3631000 H 02785000 AUTO
+S 10975000 H 26666000 AUTO
+S 3677000 H 04400000 AUTO
+S 3985000 H 04444000 AUTO
+S 11810000 V 06666000 AUTO
+S 11921000 V 21740000 AUTO
+S 11943000 V 04750000 AUTO
+S 4168000 H 07307000 AUTO
+S 12052000 H 26667000 AUTO
+S 12172000 H 27500000 AUTO
+S 12092000 H 27500000 AUTO
+S 11175000 H 28880000 AUTO
+S 4154000 H 09615000 AUTO
+S 11099000 V 07576000 AUTO
+S 11885000 H 04890000 AUTO
+S 11882000 V 11343000 AUTO
+S 11133000 V 03111000 AUTO
+S 11078000 V 01862000 AUTO
+S 11912000 H 02222000 AUTO
+S 11906000 H 02220000 AUTO
+S 11108000 V 02170000 AUTO
+S 12132000 H 27500000 AUTO
+S 11135000 H 26667000 AUTO
+S 4144000 V 04540000 AUTO
+S 11808000 H 11111000 AUTO
+S 11972000 H 26667000 AUTO
+S 4156000 V 04540000 AUTO
+S 4149000 V 04540000 AUTO
+S 3948000 H 13300000 AUTO
+S 4178000 H 03333000 AUTO
+S 11844000 V 16600000 AUTO
+S 11095000 H 30000000 AUTO
+S 11790000 H 03600000 AUTO
+S 12172000 V 30000000 AUTO
+S 11015000 H 26666000 AUTO
+S 11055000 H 27500000 AUTO
+S 12012000 H 27500000 AUTO
diff --git a/util/scan/dvb-s/Amos-4w b/util/scan/dvb-s/Amos-4w
new file mode 100644
index 0000000..3a80591
--- /dev/null
+++ b/util/scan/dvb-s/Amos-4w
@@ -0,0 +1,70 @@
+# Amos 6 @ 4W
+# freq pol sr fec
+
+S 11419000 H 2604000 AUTO
+S 11347000 H 2800000 AUTO
+S 11423000 H 2894000 AUTO
+S 11338000 H 2960000 AUTO
+S 11133000 H 2963000 AUTO
+S 11631000 H 3200000 AUTO
+S 11132000 V 3254000 AUTO
+S 11154000 V 3255000 AUTO
+S 11319000 H 3333000 AUTO
+S 11426000 H 3333000 AUTO
+S 11575000 H 3333000 AUTO
+S 11638000 H 3333000 AUTO
+S 11323000 H 3350000 AUTO
+S 11328000 H 3350000 AUTO
+S 11350000 H 3350000 AUTO
+S 11359000 H 3350000 AUTO
+S 11332000 H 3500000 AUTO
+S 11128000 V 3700000 AUTO
+S 11343000 H 3700000 AUTO
+S 11626000 H 4000000 AUTO
+S 11443000 H 4164000 AUTO
+S 11644000 V 4340000 AUTO
+S 11432000 V 4500000 AUTO
+S 10993000 H 4850000 AUTO
+S 11191000 H 6111000 AUTO
+S 11183000 H 6428000 AUTO
+S 10986000 H 6666000 AUTO
+S 11144000 H 6666000 AUTO
+S 11151000 H 6666000 AUTO
+S 11161000 H 6666000 AUTO
+S 11172000 H 6666000 AUTO
+S 11209000 H 6666000 AUTO
+S 11219000 H 6666000 AUTO
+S 11413000 H 6666000 AUTO
+S 11673000 H 6900000 AUTO
+S 11435000 H 7480000 AUTO
+S 11546000 H 8050000 AUTO
+S 11177000 V 8520000 AUTO
+S 11585000 H 8888000 AUTO
+S 11235000 H 10000000 AUTO
+S 11144000 V 11110000 AUTO
+S 11652000 V 11111000 AUTO
+S 11560000 H 13400000 AUTO
+S 11690000 H 15000000 AUTO
+S 11652000 H 16100000 AUTO
+S 11303000 H 19540000 AUTO
+S 11390000 H 24000000 AUTO
+S 10762000 H 26000000 AUTO
+S 10720000 V 27500000 AUTO
+S 10723000 H 27500000 AUTO
+S 10758000 V 27500000 AUTO
+S 10803000 V 27500000 AUTO
+S 10805000 H 27500000 AUTO
+S 10841000 V 27500000 AUTO
+S 10842000 H 27500000 AUTO
+S 10889000 H 27500000 AUTO
+S 10889000 V 27500000 AUTO
+S 10924000 H 27500000 AUTO
+S 10924000 V 27500000 AUTO
+S 10972000 V 27500000 AUTO
+S 11008000 V 27500000 AUTO
+S 11260000 H 27500000 AUTO
+S 11474000 V 27500000 AUTO
+S 11510000 V 27500000 AUTO
+S 11558000 V 27500000 AUTO
+S 11592000 V 27500000 AUTO
+S 11677000 V 27500000 AUTO
diff --git a/util/scan/dvb-s/Anik-F1-107.3W b/util/scan/dvb-s/Anik-F1-107.3W
new file mode 100644
index 0000000..2cf82aa
--- /dev/null
+++ b/util/scan/dvb-s/Anik-F1-107.3W
@@ -0,0 +1,7 @@
+# Anik F1 @ 107.3W
+# freq pol sr fec
+
+S 12002000 H 19980000 AUTO
+S 12063000 H 19980000 AUTO
+S 12155000 H 22500000 AUTO
+S 12185000 H 19980000 AUTO
diff --git a/util/scan/dvb-s/AsiaSat3S_C-105.5E b/util/scan/dvb-s/AsiaSat3S_C-105.5E
new file mode 100644
index 0000000..8e98a5d
--- /dev/null
+++ b/util/scan/dvb-s/AsiaSat3S_C-105.5E
@@ -0,0 +1,122 @@
+# AsiaSat 3S 105.5E C-BAND
+# Generated by Xingbo Wang
+# Apr 2, 2005
+
+# MPEG-2 QPSK
+# freq pol sr fec
+
+# [encrypted] ZEE English, ZEE TV International, ZEE Movies, MX, ZEE TV SE Asia, ZEE TV Asia, Trendz
+S 3700000 V 27500000 3/4
+
+# BTV World
+S 3725000 V 4450000 3/4
+
+# SAB TV
+S 3743000 V 3300000 3/4
+
+# AAJ TV
+S 3750000 V 2820000 3/4
+
+# Arirang TV
+S 3755150 V 4417900 7/8
+
+# [encrypted] STAR Plus India, STAR Movies India, STAR News India, National Geographic India, STAR Gold, STAR Movies (Middle East)
+# STAR Utsav
+S 3780000 V 28100000 3/4
+
+# Chinese Provincial TV: Guangxi, Shanxi, Anhui, Jiangsu, Heilongjiang
+S 3806000 V 4420000 3/4
+S 3813000 V 4420000 3/4
+S 3820000 V 4420000 3/4
+S 3827000 V 4420000 3/4
+S 3834000 V 4420000 3/4
+
+# [encrypted] ESPN Taiwan, STAR Sports Taiwan, ESPN Asia, STAR Sports South East Asia, STAR Sports India, ESPN India, ESPN Philippines
+S 3860000 V 27500000 3/4
+
+# Dragon TV
+S 3886000 V 4800000 3/4
+
+# Shandong TV
+S 3895000 V 6813000 3/4
+
+# CCTV-1(comprehensive), China National Radio Channel 1
+S 3904000 V 4420000 7/8
+
+# Jilin Provincial TV
+S 3914500 V 4420000 3/4
+
+# [encrypted] A1, History, STAR Movies SEA/China, STAR World India, STAR Plus Pakistan, Channel[V] India, STAR Chinese Movies, CNBC India, STAR One, STAR Vijay
+S 3980000 V 28100000 3/4
+
+# Sahara One, Sahara Samay National, Sahara Samay Mumbai, Sahara Samay Uttar Pradesh, Sahara Samay Bihar, Sahara Samay Madhya Pradesh
+S 4020000 V 27250000 3/4
+
+# Tianjin TV
+S 4046000 V 5950000 3/4
+
+# PTV-1, PTV World, PTV Channel 3, AVT Khyber
+S 4091000 V 13333000 3/4
+
+# PTV National
+S 4106000 V 3333300 3/4
+
+# Indus News
+S 4115750 V 3333000 3/4
+
+# [encrypted] ZEE Biz, ZEE News, ZEE Cinema, ZEE Music, Alpha TV Punjabi, Alpha TV Gujarati, Alpha TV Bangla, Alpha TV Marathi, Smile TV
+S 4140000 V 27500000 3/4
+
+# Chinese Provincial TV: Henan, Fujian, Jiangxi, Liaoning
+S 4166000 V 4420000 3/4
+S 4180000 V 4420000 3/4
+S 4187000 V 4420000 3/4
+S 4194000 V 4420000 3/4
+
+# CETV
+S 3680000 H 26670000 3/4
+
+# Channel NewsAsia
+S 3706000 H 6000000 3/4
+
+# Asia Plus
+S 3715500 H 7000000 3/4
+
+# TVB 8, CETV
+S 3729000 H 13650000 3/4
+
+# Network of the World, Bloomberg TV Asia, Indus Vision, Indus Music, Muslim TV Ahmadiyya, Living Asia Channel
+# [encrypted] Filmazia
+S 3760000 H 26000000 7/8
+
+# [encrypted] Fox News, Sky News, STAR Movies Int'l Taiwan, National Geographic Taiwan, STAR Chinese Channel, STAR Movies mandarin, Channel[V] Taiwan
+S 3840000 H 26850000 7/8
+
+# STAR Sports Asia
+# [encrypted] ESPN China, STAR Sports Hong Kong, ESPN Hong Kong
+S 3920000 H 26750000 7/8
+
+# [encrypted] CNN International Asia, CNN Newsource, Cartoon Network Asia, Cartoon Network Taiwan, Cartoon Network Philippines, Cartoon Network Australia/New Zealand, TCM Australia, Boomerang
+S 3960000 H 27500000 3/4
+
+# [encrypted] Phoenix Movies, star World Asia, Star Movies Int'l, Channel[V] International, National Geographic Regional
+# Phoenix Chinese Channel, Phoenix Info News Channel, Xiong Kong Int'l, Xing Kong Regional, Channel[V](Greater China)
+S 4000000 H 26850000 7/8
+
+# Chinese Provincial TV: Hubei, Sichuan
+S 4034600 H 4420000 3/4
+S 4051000 H 4420000 3/4
+
+# Chinese Provincial TV: Qinghai, Hunan
+S 4067000 H 4420000 3/4
+S 4082000 H 4420000 3/4
+
+# Sun TV
+S 4094000 H 5555000 3/4
+
+# MATV, Horizon Channel
+# [encrypted] Tian Ying Movies Channel, TVB Xing He Channel
+S 4111000 H 13650000 3/4
+
+# CCTV Channel 4 (International), Channel 9 (English language), CCTV E&F
+S 4129000 H 13240000 3/4
diff --git a/util/scan/dvb-s/Astra-28.2E b/util/scan/dvb-s/Astra-28.2E
new file mode 100644
index 0000000..908e428
--- /dev/null
+++ b/util/scan/dvb-s/Astra-28.2E
@@ -0,0 +1,186 @@
+# Astra 28.2E SDT info service transponder
+# freq pol sr fec
+
+## Astra 2A
+# Transponder 1
+S 11720000 H 29500000 3/4
+# Transponder 2
+S 11740000 V 27500000 2/3
+# Transponder 3
+S 11758000 H 27500000 2/3
+# Transponder 4
+S 11778000 V 27500000 2/3
+# Transponder 5
+S 11798000 H 29500000 3/4
+# Transponder 6
+S 11817000 V 27500000 2/3
+# Transponder 7
+S 11836000 H 27500000 2/3
+# Transponder 8
+S 11856000 V 27500000 2/3
+# Transponder 9
+S 11876000 H 27500000 2/3
+# Transponder 10
+S 11895000 V 27500000 2/3
+# Transponder 11
+S 11914000 H 27500000 2/3
+# Transponder 12
+S 11934000 V 27500000 2/3
+# Transponder 13
+S 11954000 H 27500000 2/3
+# Transponder 18
+S 12051000 V 27500000 2/3
+# Transponder 22
+S 12129000 V 27500000 2/3
+# Transponder 23
+S 12148000 H 27500000 2/3
+# Transponder 24
+S 12168000 V 27500000 2/3
+# Transponder 27
+S 12226000 H 27500000 2/3
+# Transponder 28
+S 12246000 V 27500000 2/3
+# Transponder 37
+S 12422000 H 27500000 2/3
+# Transponder 40
+S 12480000 V 27500000 2/3
+
+## Astra 2B
+# Transponder 14
+S 11973000 V 27500000 2/3
+# Transponder 15
+S 11992000 H 27500000 2/3
+# Transponder 16
+S 12012000 V 27500000 2/3
+# Transponder 17
+S 12032000 H 27500000 2/3
+# Transponder 19
+S 12070000 H 27500000 2/3
+# Transponder 20
+S 12090000 V 27500000 2/3
+# Transponder 21
+S 12110000 H 27500000 2/3
+# Transponder 25
+S 12188000 H 27500000 2/3
+# Transponder 26
+S 12207000 V 27500000 2/3
+# Transponder 29
+S 12266000 H 27500000 2/3
+# Transponder 30
+S 12285000 V 27500000 2/3
+# Transponder 31
+S 12304000 H 27500000 2/3
+# Transponder 32
+S 12324000 V 29500000 3/4
+# Transponder 33
+S 12344000 H 29500000 3/4
+# Transponder 34
+S 12363000 V 29500000 3/4
+# Transponder 35
+S 12382000 H 27500000 2/3
+# Transponder 36
+S 12402000 V 27500000 2/3
+# Transponder 38
+S 12441000 V 27500000 2/3
+# Transponder 39
+S 12460000 H 27500000 2/3
+
+## Astra 2D
+# Transponder 41
+S 10714000 H 22000000 5/6
+# Transponder 42
+S 10729000 V 22000000 5/6
+# Transponder 43
+S 10744000 H 22000000 5/6
+# Transponder 44
+S 10758000 V 22000000 5/6
+# Transponder 45
+S 10773000 H 22000000 5/6
+# Transponder 46
+S 10788000 V 22000000 5/6
+# Transponder 47
+S 10803000 H 22000000 5/6
+# Transponder 48
+S 10818000 V 22000000 5/6
+# Transponder 49
+S 10832000 H 22000000 5/6
+# Transponder 50
+S 10847000 V 22000000 5/6
+# Transponder 51
+S 10862000 H 22000000 5/6
+# Transponder 52
+S 10876000 V 22000000 5/6
+# Transponder 53
+S 10891000 H 22000000 5/6
+# Transponder 54
+S 10906000 V 22000000 5/6
+# Transponder 55
+S 10921000 H 22000000 5/6
+# Transponder 56
+S 10936000 V 22000000 5/6
+
+## Eurobird 1
+# Transponder C1
+S 11222170 H 27500000 2/3
+# Transponder C2
+S 11223670 V 27500000 2/3
+# Transponder C2
+S 11259000 V 27500000 2/3
+# Transponder C1
+S 11261000 H 27500000 2/3
+# Transponder C3
+S 11307000 H 27500000 2/3
+# Transponder C4
+S 11307000 V 27500000 2/3
+# Transponder C4
+S 11343000 V 27500000 2/3
+# Transponder C3
+S 11344000 H 27500000 2/3
+# Transponder C5
+S 11390000 H 27500000 2/3
+# Transponder C6
+S 11390000 V 27500000 2/3
+# Transponder C5
+S 11426000 H 27500000 2/3
+# Transponder C6
+S 11426000 V 27500000 2/3
+# Transponder D1
+S 11469000 H 27500000 2/3
+# Transponder D2S
+S 11488000 V 27500000 2/3
+# Transponder D3S
+S 11508000 H 27500000 2/3
+# Transponder D4S
+S 11527000 V 27500000 2/3
+# Transponder D5
+S 11546000 H 27500000 2/3
+# Transponder D6
+S 11565000 V 27500000 2/3
+# Transponder D7
+S 11585000 H 27500000 2/3
+# Transponder D8
+S 11603850 V 27500000 2/3
+# Transponder D9
+S 11623000 H 27500000 2/3
+# Transponder D10
+S 11642000 V 27500000 2/3
+# Transponder D11
+S 11661540 H 27500000 2/3
+# Transponder D12
+S 11680770 V 27500000 2/3
+# Transponder F1
+S 12524000 H 27500000 2/3
+# Transponder F2
+S 12524000 V 27500000 2/3
+# Transponder F1
+S 12560000 H 27500000 2/3
+# Transponder F2
+S 12560000 V 27500000 2/3
+# Transponder F4
+S 12596000 V 27500000 2/3
+# Transponder F3
+S 12607000 H 27500000 3/4
+# Transponder F4
+S 12629000 V 6111000 3/4
+# Transponder F5
+S 12692000 V 19532000 1/2
diff --git a/util/scan/dvb-s/Atlantic-Bird-1-12.5W b/util/scan/dvb-s/Atlantic-Bird-1-12.5W
new file mode 100644
index 0000000..5c38433
--- /dev/null
+++ b/util/scan/dvb-s/Atlantic-Bird-1-12.5W
@@ -0,0 +1,20 @@
+# Atlantic Bird 1 @ 12.5W
+# freq pol sr fec
+
+S 11682000 H 05632000 AUTO
+S 11673000 H 06111000 AUTO
+S 11664000 H 06111000 AUTO
+S 11655000 H 06666000 AUTO
+S 11690000 H 05700000 AUTO
+S 11596000 V 27500000 AUTO
+S 11618000 H 02324000 AUTO
+S 11590000 H 06111000 AUTO
+S 11597000 H 03184000 AUTO
+S 11629000 H 06507000 AUTO
+S 11622000 H 03255000 AUTO
+S 11585000 H 05632000 AUTO
+S 11643000 H 02398000 AUTO
+S 11647000 H 03990000 AUTO
+S 11647000 V 03990000 AUTO
+S 11693000 V 04800000 AUTO
+S 11644000 V 04800000 AUTO
diff --git a/util/scan/dvb-s/BrasilSat-B1-75.0W b/util/scan/dvb-s/BrasilSat-B1-75.0W
new file mode 100644
index 0000000..9349d93
--- /dev/null
+++ b/util/scan/dvb-s/BrasilSat-B1-75.0W
@@ -0,0 +1,11 @@
+# Brasilsat B1 @ 75.0W
+# freq pol sr fec
+
+S 3648000 V 04285000 AUTO
+S 3657000 V 06620000 AUTO
+S 3653000 V 04710000 AUTO
+S 3655000 H 06620000 AUTO
+S 3629000 H 06620000 AUTO
+S 3711000 H 03200000 AUTO
+S 3644000 V 04440000 AUTO
+S 3638000 H 04440000 AUTO
diff --git a/util/scan/dvb-s/BrasilSat-B2-65.0W b/util/scan/dvb-s/BrasilSat-B2-65.0W
new file mode 100644
index 0000000..383c223
--- /dev/null
+++ b/util/scan/dvb-s/BrasilSat-B2-65.0W
@@ -0,0 +1,34 @@
+# Brasilsat B2 @ 65.0W
+# freq pol sr fec
+
+S 3745000 H 03540000 AUTO
+S 4008000 H 03333000 AUTO
+S 4011000 V 05000000 AUTO
+S 3792000 V 03393000 AUTO
+S 4104000 V 03214000 AUTO
+S 4097000 V 06667000 AUTO
+S 3905000 H 06666000 AUTO
+S 3935000 H 06666000 AUTO
+S 3890000 H 06666000 AUTO
+S 3925000 H 06666000 AUTO
+S 4112000 V 04285000 AUTO
+S 3650000 V 04440000 AUTO
+S 3736000 H 01808000 AUTO
+S 3787000 H 06666000 AUTO
+S 3876000 V 02740000 AUTO
+S 4117000 V 02963000 AUTO
+S 3815000 H 06666000 AUTO
+S 3793000 H 06666000 AUTO
+S 3721000 H 02963000 AUTO
+S 3684000 H 06666000 AUTO
+S 3915000 H 06666000 AUTO
+S 3766000 H 03336000 AUTO
+S 3847000 H 04444000 AUTO
+S 3706000 H 02462000 AUTO
+S 3667000 H 07236000 AUTO
+S 3771000 V 01480000 AUTO
+S 3734000 V 02852000 AUTO
+S 3810000 H 13333000 AUTO
+S 3762000 H 02222000 AUTO
+S 3834000 H 03572000 AUTO
+S 3850000 H 01570000 AUTO
diff --git a/util/scan/dvb-s/BrasilSat-B3-84.0W b/util/scan/dvb-s/BrasilSat-B3-84.0W
new file mode 100644
index 0000000..5ad005e
--- /dev/null
+++ b/util/scan/dvb-s/BrasilSat-B3-84.0W
@@ -0,0 +1,85 @@
+# Brasilsat B3 @ 84.0W
+# freq pol sr fec
+
+S 3728000 H 04340000 AUTO
+S 3698000 V 03333000 AUTO
+S 4054000 V 01287000 AUTO
+S 3745000 H 04300000 AUTO
+S 3738000 V 04708000 AUTO
+S 3923000 V 01808000 AUTO
+S 3768000 V 08000000 AUTO
+S 3955000 V 04340000 AUTO
+S 4167000 H 03255000 AUTO
+S 3791000 V 03330000 AUTO
+S 3866000 H 04425000 AUTO
+S 3932000 V 03255000 AUTO
+S 4132000 V 02532000 AUTO
+S 3906000 H 03928000 AUTO
+S 3858000 V 04288000 AUTO
+S 3665000 V 03177000 AUTO
+S 3732000 V 03214000 AUTO
+S 3774000 H 03330000 AUTO
+S 3927000 V 03255000 AUTO
+S 3710000 H 03261000 AUTO
+S 3883000 H 04278000 AUTO
+S 3770000 H 03333000 AUTO
+S 3754000 V 05000000 AUTO
+S 3764000 H 04285000 AUTO
+S 3910000 H 03616000 AUTO
+S 3705000 H 04280000 AUTO
+S 3852000 V 03806000 AUTO
+S 3845000 H 10127000 AUTO
+S 3936000 V 03255000 AUTO
+S 3653000 V 03807000 AUTO
+S 3751000 H 03565000 AUTO
+S 3871000 H 04435000 AUTO
+S 3895000 H 04430000 AUTO
+S 3936000 H 03255000 AUTO
+S 3800000 H 03255000 AUTO
+S 3855000 H 04000000 AUTO
+S 4171000 H 02170000 AUTO
+S 3716000 H 04800000 AUTO
+S 4068000 H 02600000 AUTO
+S 4070000 V 02964000 AUTO
+S 3949000 V 04340000 AUTO
+S 3684000 V 03200000 AUTO
+S 4169000 V 08140000 AUTO
+S 4144000 H 02734000 AUTO
+S 3736000 H 04285000 AUTO
+S 3790000 H 10444000 AUTO
+S 3724000 V 02075000 AUTO
+S 4121000 H 02500000 AUTO
+S 3629000 H 06666000 AUTO
+S 3970000 V 04445000 AUTO
+S 3985000 V 03300000 AUTO
+S 3916000 H 03255000 AUTO
+S 4155000 V 03255000 AUTO
+S 3692000 V 03330000 AUTO
+S 3644000 V 04687000 AUTO
+S 4087000 H 17200000 AUTO
+S 3889000 H 04440000 AUTO
+S 4176000 V 03515000 AUTO
+S 3829000 V 04340000 AUTO
+S 3805000 V 02662000 AUTO
+S 3943000 V 02460000 AUTO
+S 3757000 H 03565000 AUTO
+S 3696000 H 01808000 AUTO
+S 3989000 V 02666000 AUTO
+S 3690000 V 03200000 AUTO
+S 3657000 V 03600000 AUTO
+S 3996000 V 02300000 AUTO
+S 3926000 H 04000000 AUTO
+S 4126000 H 04000000 AUTO
+S 4136000 H 02142000 AUTO
+S 3675000 V 04285000 AUTO
+S 3931000 H 04000000 AUTO
+S 3786000 V 04286000 AUTO
+S 3688000 V 02308000 AUTO
+S 4075000 V 04444000 AUTO
+S 3911000 V 03255000 AUTO
+S 3824000 H 03002000 AUTO
+S 3778000 V 06850000 AUTO
+S 3710000 V 12960000 AUTO
+S 3877000 H 04450000 AUTO
+S 3940000 V 03255000 AUTO
+S 4064000 H 03300000 AUTO
diff --git a/util/scan/dvb-s/BrasilSat-B4-70.0W b/util/scan/dvb-s/BrasilSat-B4-70.0W
new file mode 100644
index 0000000..9ff8c1b
--- /dev/null
+++ b/util/scan/dvb-s/BrasilSat-B4-70.0W
@@ -0,0 +1,39 @@
+# Brasilsat B4 @ 70.0W
+# freq pol sr fec
+
+S 3951000 H 03214000 AUTO
+S 3714000 V 04400000 AUTO
+S 3672000 H 04713000 AUTO
+S 3955000 H 04400000 AUTO
+S 3965000 V 02930000 AUTO
+S 3628000 H 03000000 AUTO
+S 3644000 V 03214000 AUTO
+S 3650000 H 04285000 AUTO
+S 3688000 H 06000000 AUTO
+S 3680000 H 06000000 AUTO
+S 3662000 V 04606000 AUTO
+S 3945000 H 03214000 AUTO
+S 3640000 H 03263000 AUTO
+S 3979000 V 03617000 AUTO
+S 3752000 V 06220000 AUTO
+S 3685000 V 04500000 AUTO
+S 3650000 V 04400000 AUTO
+S 3985000 H 02170000 AUTO
+S 4010000 H 13021000 AUTO
+S 3665000 H 04700000 AUTO
+S 3637000 H 02228000 AUTO
+S 3708000 V 03928000 AUTO
+S 4047000 V 07143000 AUTO
+S 3672000 V 08454000 AUTO
+S 3820000 V 27500000 AUTO
+S 3940000 V 27500000 AUTO
+S 3964000 H 01875000 AUTO
+S 3695000 H 03598000 AUTO
+S 3900000 V 27500000 AUTO
+S 3645000 H 03520000 AUTO
+S 3983000 V 01630000 AUTO
+S 3631000 H 04687000 AUTO
+S 3874000 V 05926000 AUTO
+S 3700000 V 09123000 AUTO
+S 3997000 V 02300000 AUTO
+S 3973000 V 04338000 AUTO
diff --git a/util/scan/dvb-s/Estrela-do-Sul-63.0W b/util/scan/dvb-s/Estrela-do-Sul-63.0W
new file mode 100644
index 0000000..fc3cfa0
--- /dev/null
+++ b/util/scan/dvb-s/Estrela-do-Sul-63.0W
@@ -0,0 +1,27 @@
+# Estrela do Sul @ 63.0W
+# freq pol sr fec
+
+S 11892000 V 02964000 AUTO
+S 11987000 H 03330000 AUTO
+S 12054000 H 26660000 AUTO
+S 11830000 V 06000000 AUTO
+S 11603000 V 03124000 AUTO
+S 11598000 V 03124000 AUTO
+S 11803000 V 04444000 AUTO
+S 11958000 H 04444000 AUTO
+S 11610000 V 03124000 AUTO
+S 11861000 V 02964000 AUTO
+S 11879000 V 02964000 AUTO
+S 11903000 V 02362000 AUTO
+S 11817000 V 06666000 AUTO
+S 11577000 V 03124000 AUTO
+S 11582000 V 03124000 AUTO
+S 11982000 H 08888000 AUTO
+S 11888000 V 02392000 AUTO
+S 11898000 V 02480000 AUTO
+S 11871000 V 02000000 AUTO
+S 11795000 V 04444000 AUTO
+S 11845000 V 04444000 AUTO
+S 11640000 V 18100000 AUTO
+S 11875000 V 03333000 AUTO
+S 11543000 V 10410000 AUTO
diff --git a/util/scan/dvb-s/Eurobird1-28.5E b/util/scan/dvb-s/Eurobird1-28.5E
new file mode 100644
index 0000000..5fd4a90
--- /dev/null
+++ b/util/scan/dvb-s/Eurobird1-28.5E
@@ -0,0 +1,5 @@
+# Eurobird 28.5E SDT info service transponder
+# freq pol sr fec
+S 11623000 H 27500000 2/3
+S 11224000 V 27500000 2/3
+S 11527000 V 27500000 2/3
diff --git a/util/scan/dvb-s/EutelsatW2-16E b/util/scan/dvb-s/EutelsatW2-16E
new file mode 100644
index 0000000..40023a8
--- /dev/null
+++ b/util/scan/dvb-s/EutelsatW2-16E
@@ -0,0 +1,59 @@
+# Eutelsat W2 @ 16E
+# freq pol sr fec
+
+S 10957000 H 2821000 AUTO
+S 10968000 H 6400000 AUTO
+S 10972000 V 27500000 AUTO
+S 10976000 H 6400000 AUTO
+S 10989000 H 6400000 AUTO
+S 10997000 H 6400000 AUTO
+S 11005000 H 6400000 AUTO
+S 11011000 V 27500000 AUTO
+S 11015000 H 6400000 AUTO
+S 11025000 H 2894000 AUTO
+S 11046000 H 10555000 AUTO
+S 11057000 H 3327000 AUTO
+S 11061000 H 5722000 AUTO
+S 11078000 H 5208000 AUTO
+S 11092000 V 32000000 AUTO
+S 11094000 H 2734000 AUTO
+S 11132000 V 14185000 AUTO
+S 11178000 V 27500000 AUTO
+S 11192000 H 2667000 AUTO
+S 11267000 H 2170000 AUTO
+S 11276000 H 11100000 AUTO
+S 11294000 H 13333000 AUTO
+S 11304000 V 30000000 AUTO
+S 11324000 H 27500000 AUTO
+S 11428000 V 30000000 AUTO
+S 11449000 H 27500000 AUTO
+S 11471000 V 29950000 AUTO
+S 11492000 H 29950000 AUTO
+S 11513000 V 29950000 AUTO
+S 11534000 H 30000000 AUTO
+S 11554000 V 30000000 AUTO
+S 11575000 H 30000000 AUTO
+S 11594000 V 28800000 AUTO
+S 11617000 H 29950000 AUTO
+S 11634000 V 17578000 AUTO
+S 11658000 H 30000000 AUTO
+S 11659000 V 17578000 AUTO
+S 11682000 V 14468000 AUTO
+S 12538000 V 4340000 AUTO
+S 12549000 V 2894000 AUTO
+S 12555000 H 5632000 AUTO
+S 12557000 V 2156000 AUTO
+S 12562000 H 5632000 AUTO
+S 12563000 V 2222000 AUTO
+S 12568000 H 3703000 AUTO
+S 12625000 V 4444000 AUTO
+S 12633000 V 4883000 AUTO
+S 12642000 V 3418000 AUTO
+S 12650000 H 15000000 AUTO
+S 12656000 V 4883000 AUTO
+S 12677000 V 6111000 AUTO
+S 12683000 H 2894000 AUTO
+S 12703000 H 2748000 AUTO
+S 12716000 H 6000000 AUTO
+S 12723000 H 3000000 AUTO
+S 12733000 V 16277000 AUTO
diff --git a/util/scan/dvb-s/Express-3A-11.0W b/util/scan/dvb-s/Express-3A-11.0W
new file mode 100644
index 0000000..1deef03
--- /dev/null
+++ b/util/scan/dvb-s/Express-3A-11.0W
@@ -0,0 +1,4 @@
+# Express 3A @ 11.0W
+# freq pol sr fec
+
+S 3675000 V 29623000 AUTO
diff --git a/util/scan/dvb-s/ExpressAM1-40.0E b/util/scan/dvb-s/ExpressAM1-40.0E
new file mode 100644
index 0000000..3ffbf01
--- /dev/null
+++ b/util/scan/dvb-s/ExpressAM1-40.0E
@@ -0,0 +1,5 @@
+# Express AM1 @ 40E
+# freq pol sr fec
+S 10967000 V 20000000 AUTO
+S 10995000 V 20000000 AUTO
+S 11097000 H 4000000 AUTO
diff --git a/util/scan/dvb-s/ExpressAM2-80.0E b/util/scan/dvb-s/ExpressAM2-80.0E
new file mode 100644
index 0000000..0a9a990
--- /dev/null
+++ b/util/scan/dvb-s/ExpressAM2-80.0E
@@ -0,0 +1,35 @@
+# Express AM2 @ 80E
+# freq pol sr fec
+S 10973000 V 4444000 AUTO
+S 10991000 V 4444000 AUTO
+S 11044000 H 44948000 AUTO
+S 11081000 V 5064000 AUTO
+S 11088000 V 4548000 AUTO
+S 11191000 H 3255000 AUTO
+S 11462000 V 3200000 AUTO
+S 11478000 H 4400000 AUTO
+S 11544000 V 44950000 AUTO
+S 11606000 V 44948000 AUTO
+S 11650000 V 3500000 AUTO
+
+# Express AM2 @ 80E C-BAND
+# Generated by Roman Kashcheev
+# Mar 30, 2008
+# freq pol sr fec
+
+# RSCC
+S 3525000 V 31106000 3/4
+# TRK Sever
+S 3558000 V 3215000 3/4
+# TRV Muji
+S 3562000 V 3225000 3/4
+# OTV Sakhalin
+S 3625000 V 3000000 3/4
+# RSCC
+S 3675000 V 33483000 7/8
+# 5 Kanal
+S 3929000 H 8705000 3/4
+# TV Centr
+S 4147000 V 27500000 3/4
+# Blagovest Telekanal
+S 4175000 V 6510000 3/4
diff --git a/util/scan/dvb-s/ExpressAM22-53.0E b/util/scan/dvb-s/ExpressAM22-53.0E
new file mode 100644
index 0000000..3749e7f
--- /dev/null
+++ b/util/scan/dvb-s/ExpressAM22-53.0E
@@ -0,0 +1,9 @@
+# Express AM 22 @ 53E
+# freq pol sr fec
+S 11044000 V 44950000 3/4
+S 10974000 H 8150000 3/4
+#S 10974000 V 32223000 7/8
+S 11031000 H 3750000 3/4
+S 11096000 V 6400000 3/4
+S 11124000 V 7593000 3/4
+S 11161000 V 5785000 3/4
diff --git a/util/scan/dvb-s/Galaxy10R-123w b/util/scan/dvb-s/Galaxy10R-123w
new file mode 100644
index 0000000..bd915f7
--- /dev/null
+++ b/util/scan/dvb-s/Galaxy10R-123w
@@ -0,0 +1,10 @@
+# Galaxy 10R @ 123W
+# freq pol sr fec
+
+S 11720000 V 27692000 AUTO
+S 11732000 H 13240000 AUTO
+S 11800000 V 26657000 AUTO
+S 11805000 H 04580000 AUTO
+S 11966000 V 13021000 AUTO
+S 12104000 V 02222000 AUTO
+S 12114000 V 04444000 AUTO
diff --git a/util/scan/dvb-s/Galaxy11-91w b/util/scan/dvb-s/Galaxy11-91w
new file mode 100644
index 0000000..81aa25b
--- /dev/null
+++ b/util/scan/dvb-s/Galaxy11-91w
@@ -0,0 +1,49 @@
+# Galaxy 11 @ 91W
+# freq pol sr fec
+
+S 10964000 V 19850000 AUTO
+S 10994000 V 20000000 AUTO
+S 11024000 V 20000000 AUTO
+S 11806000 V 03979000 AUTO
+S 11815000 V 03979000 AUTO
+S 11825000 V 06111000 AUTO
+S 11925000 V 03979000 AUTO
+S 11930000 V 03979000 AUTO
+S 11935000 V 03979000 AUTO
+S 11940000 V 03979000 AUTO
+S 11945000 V 03979000 AUTO
+S 11950000 H 03979000 AUTO
+S 11950000 V 03979000 AUTO
+S 11955000 H 03979000 AUTO
+S 11955000 V 03979000 AUTO
+S 11960000 H 03979000 AUTO
+S 11965000 V 03979000 AUTO
+S 11965000 H 03979000 AUTO
+S 11970000 V 03979000 AUTO
+S 11970000 H 03979000 AUTO
+S 11975000 V 03979000 AUTO
+S 11975000 H 03979000 AUTO
+S 11980000 V 03979000 AUTO
+S 11985000 H 03979000 AUTO
+S 11985000 V 03979000 AUTO
+S 11990000 H 03979000 AUTO
+S 11990000 V 03979000 AUTO
+S 11995000 H 03979000 AUTO
+S 11995000 V 03979000 AUTO
+S 12000000 H 03979000 AUTO
+S 12005000 V 03979000 AUTO
+S 12010000 H 03979000 AUTO
+S 12010000 V 03979000 AUTO
+S 12015000 H 03979000 AUTO
+S 12015000 V 03979000 AUTO
+S 12020000 V 03979000 AUTO
+S 12025000 V 03979000 AUTO
+S 12030000 V 03979000 AUTO
+S 12035000 V 03979000 AUTO
+S 12066000 H 05632000 AUTO
+S 12075000 H 03979000 AUTO
+S 12083000 H 05632000 AUTO
+S 12086000 V 06144000 AUTO
+S 12096000 V 06144000 AUTO
+S 12104000 V 06144000 AUTO
+S 12114000 V 06144000 AUTO
diff --git a/util/scan/dvb-s/Galaxy25-97w b/util/scan/dvb-s/Galaxy25-97w
new file mode 100644
index 0000000..be6e7cc
--- /dev/null
+++ b/util/scan/dvb-s/Galaxy25-97w
@@ -0,0 +1,19 @@
+# Galaxy 25 @ 97W
+# freq pol sr fec
+
+S 11789000 V 28125000 AUTO
+S 11836000 V 20770000 AUTO
+S 11867000 V 22000000 AUTO
+S 11874000 H 22000000 AUTO
+S 11898000 V 22000000 AUTO
+S 11936000 H 20000000 AUTO
+S 11966000 H 22000000 AUTO
+S 11991000 V 22000000 AUTO
+S 11999000 H 20000000 AUTO
+S 12053000 V 22000000 AUTO
+S 12084000 V 22000000 AUTO
+S 12090000 H 20000000 AUTO
+S 12115000 V 22425000 AUTO
+S 12146000 V 22000000 AUTO
+S 12152000 H 20000000 AUTO
+S 12177000 V 23000000 AUTO
diff --git a/util/scan/dvb-s/Galaxy26-93w b/util/scan/dvb-s/Galaxy26-93w
new file mode 100644
index 0000000..9388a1a
--- /dev/null
+++ b/util/scan/dvb-s/Galaxy26-93w
@@ -0,0 +1,58 @@
+# Galaxy 26 @ 93W
+# freq pol sr fec
+
+S 11711000 V 14312000 AUTO
+S 11721000 V 03979000 AUTO
+S 11727000 V 03979000 AUTO
+S 11732000 V 03979000 AUTO
+S 11737000 V 03979000 AUTO
+S 11737000 H 03979000 AUTO
+S 11742000 V 03979000 AUTO
+S 11748000 V 03979000 AUTO
+S 11753000 V 03979000 AUTO
+S 11767000 V 03979000 AUTO
+S 11772000 V 03979000 AUTO
+S 11772000 H 03979000 AUTO
+S 11777000 V 03979000 AUTO
+S 11782000 V 03979000 AUTO
+S 11788000 V 03979000 AUTO
+S 11793000 V 03979000 AUTO
+S 11809000 V 03979000 AUTO
+S 11814000 V 03979000 AUTO
+S 11841000 H 04000000 AUTO
+S 11887000 V 03979000 AUTO
+S 11893000 V 03979000 AUTO
+S 11904000 H 03010000 AUTO
+S 11919000 V 03979000 AUTO
+S 11924000 V 03979000 AUTO
+S 11926000 H 08848000 AUTO
+S 11929000 V 03979000 AUTO
+S 11935000 V 03979000 AUTO
+S 11936000 H 08848000 AUTO
+S 11944000 H 08848000 AUTO
+S 11949000 V 03979000 AUTO
+S 11954000 V 03979000 AUTO
+S 11956000 H 03979000 AUTO
+S 11960000 V 03979000 AUTO
+S 11961000 H 03979000 AUTO
+S 11965000 V 03979000 AUTO
+S 11967000 H 03979000 AUTO
+S 11970000 V 03979000 AUTO
+S 11972000 H 03979000 AUTO
+S 11977000 H 03979000 AUTO
+S 12047000 V 03979000 AUTO
+S 12048000 H 03979000 AUTO
+S 12054000 H 03979000 AUTO
+S 12058000 V 03979000 AUTO
+S 12059000 H 03979000 AUTO
+S 12063000 V 03979000 AUTO
+S 12064000 H 03979000 AUTO
+S 12069000 H 03979000 AUTO
+S 12076000 V 08681000 AUTO
+S 12089000 V 06511000 AUTO
+S 12110000 H 04104000 AUTO
+S 12116000 H 03979000 AUTO
+S 12121000 H 03979000 AUTO
+S 12126000 H 03979000 AUTO
+S 12132000 H 03979000 AUTO
+S 12175000 V 05147000 AUTO
diff --git a/util/scan/dvb-s/Galaxy27-129w b/util/scan/dvb-s/Galaxy27-129w
new file mode 100644
index 0000000..9f8eb78
--- /dev/null
+++ b/util/scan/dvb-s/Galaxy27-129w
@@ -0,0 +1,4 @@
+# Galaxy 27 @ 129W
+# freq pol sr fec
+
+S 11964000 H 02920000 AUTO
diff --git a/util/scan/dvb-s/Galaxy28-89w b/util/scan/dvb-s/Galaxy28-89w
new file mode 100644
index 0000000..15a6e54
--- /dev/null
+++ b/util/scan/dvb-s/Galaxy28-89w
@@ -0,0 +1,41 @@
+# Galaxy 28 @ 89W
+# freq pol sr fec
+
+S 11717000 H 04411000 AUTO
+S 11747000 H 06620000 AUTO
+S 11756000 H 06620000 AUTO
+S 11780000 H 29000000 AUTO
+S 11800000 H 27500000 AUTO
+S 11825000 H 04552000 AUTO
+S 11865000 H 03700000 AUTO
+S 11882000 H 04883000 AUTO
+S 11925000 H 03979000 AUTO
+S 11930000 H 03979000 AUTO
+S 11935000 H 03979000 AUTO
+S 11936000 H 06000000 AUTO
+S 11940000 H 03979000 AUTO
+S 11945000 H 03979000 AUTO
+S 11950000 H 03979000 AUTO
+S 11955000 V 19532000 AUTO
+S 11960000 H 28800000 AUTO
+S 11965000 H 03979000 AUTO
+S 11970000 H 03979000 AUTO
+S 11975000 V 03979000 AUTO
+S 11980000 H 03979000 AUTO
+S 11985000 H 03979000 AUTO
+S 11989000 V 06111000 AUTO
+S 11990000 H 03979000 AUTO
+S 11995000 H 03979000 AUTO
+S 12000000 H 28800000 AUTO
+S 12009000 V 06111000 AUTO
+S 12032000 H 06666000 AUTO
+S 12092000 H 02314000 AUTO
+S 12114000 H 14398000 AUTO
+S 12134000 H 04000000 AUTO
+S 12164000 H 03979000 AUTO
+S 12170000 H 03979000 AUTO
+S 12175000 H 03979000 AUTO
+S 12180000 H 03979000 AUTO
+S 12185000 H 03979000 AUTO
+S 12191000 H 03979000 AUTO
+S 12196000 H 03979000 AUTO
diff --git a/util/scan/dvb-s/Galaxy3C-95w b/util/scan/dvb-s/Galaxy3C-95w
new file mode 100644
index 0000000..9d1e0d6
--- /dev/null
+++ b/util/scan/dvb-s/Galaxy3C-95w
@@ -0,0 +1,4 @@
+# Galaxy 3C @ 95W
+# freq pol sr fec
+
+S 11780000 H 20760000 AUTO
diff --git a/util/scan/dvb-s/Hispasat-30.0W b/util/scan/dvb-s/Hispasat-30.0W
index 2c200b5..a21592b 100644
--- a/util/scan/dvb-s/Hispasat-30.0W
+++ b/util/scan/dvb-s/Hispasat-30.0W
@@ -1,6 +1,43 @@
# Hispasat 30.0W
# freq pol sr fec
+
S 11539000 V 24500000 5/6
+S 11749000 V 03520000 AUTO
+S 11760000 V 03260000 AUTO
+S 11766000 V 04500000 AUTO
+S 11776000 V 02387000 AUTO
+S 11783000 V 01200000 AUTO
+S 11787000 V 02500000 AUTO
+S 11807000 V 06510000 AUTO
+S 11823000 V 02387000 AUTO
+S 11884000 V 27500000 AUTO
+S 11907000 V 02592000 AUTO
+S 11917000 V 05681000 AUTO
S 11931000 H 27500000 3/4
+S 11931000 V 02220000 AUTO
+S 11936000 V 05185000 AUTO
+S 11940000 V 01481000 AUTO
+S 11972000 H 27500000 AUTO
+S 11997000 H 04422000 AUTO
+S 12003000 H 05632000 AUTO
+S 12008000 H 06111000 AUTO
+S 12015000 H 03492000 AUTO
S 12015000 V 27500000 3/4
+S 12040000 H 05632000 AUTO
+S 12052000 V 27500000 AUTO
+S 12085000 H 05632000 AUTO
+S 12131000 H 27500000 AUTO
+S 12135000 V 04444000 AUTO
+S 12137000 V 03030000 AUTO
+S 12141000 V 03255000 AUTO
+S 12146000 V 04200000 AUTO
+S 12156000 V 02222000 AUTO
+S 12158000 V 02348000 AUTO
+S 12163000 V 03030000 AUTO
+S 12168000 V 05240000 AUTO
+S 12172000 H 27500000 AUTO
+S 12175000 V 04500000 AUTO
+S 12182000 V 03340000 AUTO
+S 12188000 V 02583000 AUTO
+S 12192000 V 02593000 AUTO
S 12567000 H 19850000 3/4
diff --git a/util/scan/dvb-s/Hotbird-13.0E b/util/scan/dvb-s/Hotbird-13.0E
index f2168da..7c916a8 100644
--- a/util/scan/dvb-s/Hotbird-13.0E
+++ b/util/scan/dvb-s/Hotbird-13.0E
@@ -1,3 +1,96 @@
# EUTELSAT SkyPlex, Hotbird 13E
# freq pol sr fec
S 12539000 H 27500000 3/4
+S 10719000 V 27500000 3/4
+S 10723000 H 29900000 3/4
+S 10757000 V 27500000 3/4
+S 10775000 H 28000000 3/4
+S 10795000 V 27500000 3/4
+S 10834000 V 27500000 3/4
+S 10853000 H 27500000 3/4
+S 10872000 V 27500000 3/4
+S 10892000 H 27500000 3/4
+S 10910000 V 27500000 3/4
+S 10930000 H 27500000 3/4
+S 10949000 V 27500000 3/4
+S 10971000 H 27500000 3/4
+S 10992000 V 27500000 2/3
+S 11013000 H 27500000 3/4
+S 11034000 V 27500000 3/4
+S 11054000 H 27500000 5/6
+S 11075000 V 27500000 3/4
+S 11095000 H 28000000 3/4
+S 11117000 V 27500000 3/4
+S 11137000 H 27500000 3/4
+S 11158000 V 27500000 3/4
+S 11178000 H 27500000 3/4
+S 11200000 V 27500000 5/6
+S 11219000 H 27500000 3/4
+S 11242000 V 27500000 3/4
+S 11278000 V 27500000 3/4
+S 11295000 H 27500000 3/4
+S 11334000 H 27500000 2/3
+S 11355000 V 27500000 3/4
+S 11373000 H 27500000 2/3
+S 11393000 V 27500000 3/4
+S 11411000 H 27500000 5/6
+S 11432000 V 27500000 2/3
+S 11470000 V 27500000 5/6
+S 11488000 H 27500000 3/4
+S 11526000 H 27500000 3/4
+S 11541000 V 22000000 5/6
+S 11565000 H 27500000 3/4
+S 11585000 V 27500000 3/4
+S 11604000 H 27500000 5/6
+S 11623000 V 27500000 3/4
+S 11645000 H 27500000 3/4
+S 11662000 V 27500000 3/4
+S 11677000 H 27500000 3/4
+S 11727000 V 27500000 3/4
+S 11747000 H 27500000 3/4
+S 11765000 V 27500000 2/3
+S 11785000 H 27500000 3/4
+S 11804000 V 27500000 2/3
+S 11823000 H 27500000 3/4
+S 11842000 V 27500000 3/4
+S 11861000 H 27500000 3/4
+S 11880000 V 27500000 3/4
+S 11900000 H 27500000 3/4
+S 11919000 V 27500000 2/3
+S 11938000 H 27500000 3/4
+S 11958000 V 27500000 3/4
+S 11976000 H 27500000 3/4
+S 12015000 H 27500000 3/4
+S 12034000 V 27500000 3/4
+S 12054000 H 27500000 3/4
+S 12072000 V 27500000 3/4
+S 12092000 H 27500000 3/4
+S 12111000 V 27500000 3/4
+S 12149000 V 27500000 3/4
+S 12169000 H 27500000 3/4
+S 12188000 V 27500000 3/4
+S 12207000 H 27500000 3/4
+S 12226000 V 27500000 3/4
+S 12245000 H 27500000 3/4
+S 12264000 V 27500000 3/4
+S 12284000 H 27500000 3/4
+S 12302000 V 27500000 3/4
+S 12322000 H 27500000 3/4
+S 12341000 V 27500000 3/4
+S 12360000 H 27500000 3/4
+S 12379000 V 27500000 3/4
+S 12398000 H 27500000 3/4
+S 12418000 V 27500000 3/4
+S 12437000 H 27500000 3/4
+S 12475000 H 27500000 3/4
+S 12519000 V 27500000 3/4
+S 12558000 V 27500000 3/4
+S 12577000 H 27500000 3/4
+S 12596000 V 27500000 3/4
+S 12616000 H 27500000 3/4
+S 12635000 V 27500000 3/4
+S 12654000 H 27500000 3/4
+S 12673000 V 27500000 3/4
+S 12692000 H 27500000 3/4
+S 12713000 V 27500000 3/4
+S 12731000 H 27500000 3/4
diff --git a/util/scan/dvb-s/IA5-97w b/util/scan/dvb-s/IA5-97w
new file mode 100644
index 0000000..76c3297
--- /dev/null
+++ b/util/scan/dvb-s/IA5-97w
@@ -0,0 +1,18 @@
+# Intelsat Americas 5 @ 97W
+# freq pol sr fec
+
+S 11789000 V 25000000 AUTO
+S 11836000 V 20765000 AUTO
+S 11867000 V 22000000 AUTO
+S 11874000 H 22000000 AUTO
+S 11898000 V 22000000 AUTO
+S 11966000 H 22000000 AUTO
+S 11991000 V 22000000 AUTO
+S 12053000 V 22000000 AUTO
+S 12084000 V 22000000 AUTO
+S 12090000 H 20000000 AUTO
+S 12115000 V 22425000 AUTO
+S 12122000 H 22000000 AUTO
+S 12146000 V 22000000 AUTO
+S 12152000 H 20000000 AUTO
+S 12177000 V 23000000 AUTO
diff --git a/util/scan/dvb-s/IA6-93w b/util/scan/dvb-s/IA6-93w
new file mode 100644
index 0000000..eb5d93a
--- /dev/null
+++ b/util/scan/dvb-s/IA6-93w
@@ -0,0 +1,61 @@
+# Intelsat Americas 6 @ 93W
+# freq pol sr fec
+
+S 11711000 V 14312000 AUTO
+S 11721000 V 03979000 AUTO
+S 11727000 V 03979000 AUTO
+S 11732000 V 03979000 AUTO
+S 11737000 V 03979000 AUTO
+S 11737000 H 03979000 AUTO
+S 11742000 V 03979000 AUTO
+S 11748000 V 03979000 AUTO
+S 11753000 V 03979000 AUTO
+S 11767000 V 03979000 AUTO
+S 11772000 V 03979000 AUTO
+S 11772000 H 03979000 AUTO
+S 11777000 V 03979000 AUTO
+S 11782000 V 03979000 AUTO
+S 11788000 V 03979000 AUTO
+S 11793000 V 03979000 AUTO
+S 11809000 V 03979000 AUTO
+S 11814000 V 03979000 AUTO
+S 11827000 V 08429000 AUTO
+S 11836000 H 07179000 AUTO
+S 11841000 H 04000000 AUTO
+S 11865000 V 03516000 AUTO
+S 11887000 V 03979000 AUTO
+S 11893000 V 03979000 AUTO
+S 11904000 V 05000000 AUTO
+S 11919000 V 03979000 AUTO
+S 11924000 V 03979000 AUTO
+S 11926000 H 08848000 AUTO
+S 11929000 V 03979000 AUTO
+S 11935000 V 03979000 AUTO
+S 11936000 H 08848000 AUTO
+S 11944000 H 08848000 AUTO
+S 11949000 V 03979000 AUTO
+S 11954000 V 03979000 AUTO
+S 11956000 H 03979000 AUTO
+S 11960000 V 03979000 AUTO
+S 11961000 H 03979000 AUTO
+S 11965000 V 03979000 AUTO
+S 11967000 H 03979000 AUTO
+S 11970000 V 03979000 AUTO
+S 11972000 H 03979000 AUTO
+S 11977000 H 03979000 AUTO
+S 12047000 V 03979000 AUTO
+S 12048000 H 03979000 AUTO
+S 12054000 H 03979000 AUTO
+S 12058000 V 03979000 AUTO
+S 12059000 H 03979000 AUTO
+S 12063000 V 03979000 AUTO
+S 12064000 H 03979000 AUTO
+S 12069000 H 03979000 AUTO
+S 12076000 V 08679000 AUTO
+S 12089000 V 06511000 AUTO
+S 12110000 H 04104000 AUTO
+S 12116000 H 03979000 AUTO
+S 12121000 H 03979000 AUTO
+S 12126000 H 03979000 AUTO
+S 12132000 H 03979000 AUTO
+S 12175000 V 05147000 AUTO
diff --git a/util/scan/dvb-s/IA7-129w b/util/scan/dvb-s/IA7-129w
new file mode 100644
index 0000000..0be1d6e
--- /dev/null
+++ b/util/scan/dvb-s/IA7-129w
@@ -0,0 +1,4 @@
+# Intelsat Americas 7 @ 129W
+# freq pol sr fec
+
+S 11989000 H 02821000 AUTO
diff --git a/util/scan/dvb-s/IA8-89w b/util/scan/dvb-s/IA8-89w
new file mode 100644
index 0000000..ba1dd84
--- /dev/null
+++ b/util/scan/dvb-s/IA8-89w
@@ -0,0 +1,34 @@
+# Intelsat Americas 8 @ 89W
+# freq pol sr fec
+
+S 11780000 H 29000000 AUTO
+S 11925000 H 03979000 AUTO
+S 11930000 H 03979000 AUTO
+S 11935000 H 03979000 AUTO
+S 11940000 H 03979000 AUTO
+S 11945000 H 03979000 AUTO
+S 11945000 V 03979000 AUTO
+S 11950000 H 03979000 AUTO
+S 11950000 V 03979000 AUTO
+S 11955000 H 03979000 AUTO
+S 11955000 V 03979000 AUTO
+S 11960000 V 03979000 AUTO
+S 11965000 V 03979000 AUTO
+S 11965000 H 03979000 AUTO
+S 11970000 V 03979000 AUTO
+S 11970000 H 03979000 AUTO
+S 11975000 V 03979000 AUTO
+S 11975000 H 03979000 AUTO
+S 11980000 H 03979000 AUTO
+S 11985000 H 03979000 AUTO
+S 11989000 V 06111000 AUTO
+S 11990000 H 03979000 AUTO
+S 11995000 H 03979000 AUTO
+S 12009000 V 06111000 AUTO
+S 12164000 H 03979000 AUTO
+S 12170000 H 03979000 AUTO
+S 12175000 H 03979000 AUTO
+S 12180000 H 03979000 AUTO
+S 12185000 H 03979000 AUTO
+S 12191000 H 03979000 AUTO
+S 12196000 H 03979000 AUTO
diff --git a/util/scan/dvb-s/Intel4-72.0E b/util/scan/dvb-s/Intel4-72.0E
new file mode 100644
index 0000000..3a7b640
--- /dev/null
+++ b/util/scan/dvb-s/Intel4-72.0E
@@ -0,0 +1,6 @@
+# Intel4 @ 72E
+# freq pol sr fec
+S 11533000 V 4220000 AUTO
+S 11638000 H 5632000 AUTO
+S 12518000 V 8232000 AUTO
+S 12526000 V 3266000 AUTO
diff --git a/util/scan/dvb-s/Intel904-60.0E b/util/scan/dvb-s/Intel904-60.0E
new file mode 100644
index 0000000..d39362c
--- /dev/null
+++ b/util/scan/dvb-s/Intel904-60.0E
@@ -0,0 +1,13 @@
+# Intel904 @ 60E
+# freq pol sr fec
+S 11003000 H 2975000 AUTO
+S 11011000 H 2975000 AUTO
+S 11015000 H 2975000 AUTO
+S 11093000 V 3980000 AUTO
+S 11101000 V 4105000 AUTO
+S 11142000 H 2963000 AUTO
+S 11152000 H 2963000 AUTO
+S 11157000 H 2963000 AUTO
+S 11515000 V 7300000 AUTO
+S 11635000 V 29700000 AUTO
+S 11675000 V 29700000 AUTO
diff --git a/util/scan/dvb-s/Intelsat-1002-1.0W b/util/scan/dvb-s/Intelsat-1002-1.0W
new file mode 100644
index 0000000..09d82ca
--- /dev/null
+++ b/util/scan/dvb-s/Intelsat-1002-1.0W
@@ -0,0 +1,5 @@
+# Intelsat 1002 @ 1.0W
+# freq pol sr fec
+
+S 4175000 V 28000000 AUTO
+S 4180000 H 21050000 AUTO
diff --git a/util/scan/dvb-s/Intelsat-11-43.0W b/util/scan/dvb-s/Intelsat-11-43.0W
new file mode 100644
index 0000000..424f78a
--- /dev/null
+++ b/util/scan/dvb-s/Intelsat-11-43.0W
@@ -0,0 +1,4 @@
+# Intelsat 11 @ 43.0W
+# freq pol sr fec
+
+S 3944000 H 05945000 AUTO
diff --git a/util/scan/dvb-s/Intelsat-1R-45.0W b/util/scan/dvb-s/Intelsat-1R-45.0W
new file mode 100644
index 0000000..15f6574
--- /dev/null
+++ b/util/scan/dvb-s/Intelsat-1R-45.0W
@@ -0,0 +1,44 @@
+# Intelsat 1R @ 45.0W
+# freq pol sr fec
+
+S 4104000 V 14450000 AUTO
+S 3854000 H 02370000 AUTO
+S 11893000 H 06620000 AUTO
+S 3869000 H 03515000 AUTO
+S 4186000 V 02000000 AUTO
+S 4040000 V 04347000 AUTO
+S 4071000 V 02615000 AUTO
+S 3991000 V 04044000 AUTO
+S 3882000 V 04410000 AUTO
+S 11788000 V 10000000 AUTO
+S 11728000 V 05057000 AUTO
+S 11737000 V 05057000 AUTO
+S 11722000 V 03000000 AUTO
+S 11718000 H 24667000 AUTO
+S 11833000 H 17360000 AUTO
+S 11930000 V 11790000 AUTO
+S 11808000 H 04779000 AUTO
+S 4132000 H 05749000 AUTO
+S 3780000 V 02941000 AUTO
+S 11705000 V 04440000 AUTO
+S 3759000 V 02941000 AUTO
+S 4171000 V 04410000 AUTO
+S 3899000 V 06611000 AUTO
+S 4192000 H 02075000 AUTO
+S 4096000 H 08102000 AUTO
+S 11873000 H 06000000 AUTO
+S 11856000 V 03000000 AUTO
+S 11746000 V 06900000 AUTO
+S 11715000 V 05500000 AUTO
+S 3985000 V 03310000 AUTO
+S 3892000 V 06110000 AUTO
+S 4135000 H 26600000 AUTO
+S 4121000 H 03510000 AUTO
+S 3742000 V 04444000 AUTO
+S 3910000 V 04292000 AUTO
+S 3975000 V 03310000 AUTO
+S 4133000 V 03255000 AUTO
+S 3785000 V 04409000 AUTO
+S 3868000 V 10075000 AUTO
+S 3774000 V 08820000 AUTO
+S 4128000 V 03310000 AUTO
diff --git a/util/scan/dvb-s/Intelsat-3R-43.0W b/util/scan/dvb-s/Intelsat-3R-43.0W
new file mode 100644
index 0000000..d64bc5b
--- /dev/null
+++ b/util/scan/dvb-s/Intelsat-3R-43.0W
@@ -0,0 +1,35 @@
+# Intelsat 3R @ 43.0W
+# freq pol sr fec
+
+S 3936000 H 03310000 AUTO
+S 3901000 V 06620000 AUTO
+S 3891000 V 06111000 AUTO
+S 3935000 V 17360000 AUTO
+S 3872000 H 06620000 AUTO
+S 3736000 H 29270000 AUTO
+S 4106000 V 26470000 AUTO
+S 3910000 V 05632000 AUTO
+S 3919000 V 06620000 AUTO
+S 4083000 V 06599000 AUTO
+S 4106000 H 29270000 AUTO
+S 3994000 H 21090000 AUTO
+S 3867000 V 06429000 AUTO
+S 3958000 V 06500000 AUTO
+S 3980000 V 03500000 AUTO
+S 3828000 V 04350000 AUTO
+S 3888000 H 07813000 AUTO
+S 3785000 H 30800000 AUTO
+S 3942000 V 01200000 AUTO
+S 3946000 V 02592000 AUTO
+S 3988000 V 04070000 AUTO
+S 3845000 H 30800000 AUTO
+S 4040000 H 30800000 AUTO
+S 3865000 V 06900000 AUTO
+S 3850000 V 28800000 AUTO
+S 11705000 H 03700000 AUTO
+S 11745000 H 03111000 AUTO
+S 11711000 H 04687000 AUTO
+S 11754000 H 03109000 AUTO
+S 3746000 V 21261000 AUTO
+S 4150000 H 24570000 AUTO
+S 3930000 H 02812000 AUTO
diff --git a/util/scan/dvb-s/Intelsat-6B-43.0W b/util/scan/dvb-s/Intelsat-6B-43.0W
new file mode 100644
index 0000000..a8b4d7a
--- /dev/null
+++ b/util/scan/dvb-s/Intelsat-6B-43.0W
@@ -0,0 +1,17 @@
+# Intelsat 6B @ 43.0W
+# freq pol sr fec
+
+S 10882000 H 30000000 AUTO
+S 10882000 V 30000000 AUTO
+S 10970000 H 30000000 AUTO
+S 10970000 V 30000000 AUTO
+S 11050000 H 30000000 AUTO
+S 11130000 H 30000000 AUTO
+S 11382000 V 30000000 AUTO
+S 11130000 V 30000000 AUTO
+S 10720000 H 30000000 AUTO
+S 10720000 V 30000000 AUTO
+S 11050000 V 30000000 AUTO
+S 11382000 H 30000000 AUTO
+S 10800000 H 30000000 AUTO
+S 10800000 V 30000000 AUTO
diff --git a/util/scan/dvb-s/Intelsat-705-50.0W b/util/scan/dvb-s/Intelsat-705-50.0W
new file mode 100644
index 0000000..48aeec0
--- /dev/null
+++ b/util/scan/dvb-s/Intelsat-705-50.0W
@@ -0,0 +1,7 @@
+# Intelsat 705 @ 50.0W
+# freq pol sr fec
+
+S 3911000 V 03617000 AUTO
+S 3917000 V 04087000 AUTO
+S 3838000 H 07053000 AUTO
+S 4126000 H 06111000 AUTO
diff --git a/util/scan/dvb-s/Intelsat-707-53.0W b/util/scan/dvb-s/Intelsat-707-53.0W
new file mode 100644
index 0000000..56dd65f
--- /dev/null
+++ b/util/scan/dvb-s/Intelsat-707-53.0W
@@ -0,0 +1,5 @@
+# Intelsat 707 @ 53.0W
+# freq pol sr fec
+
+S 3820000 V 03255000 AUTO
+S 11483000 V 05333000 AUTO
diff --git a/util/scan/dvb-s/Intelsat-805-55.5W b/util/scan/dvb-s/Intelsat-805-55.5W
new file mode 100644
index 0000000..3d4cff5
--- /dev/null
+++ b/util/scan/dvb-s/Intelsat-805-55.5W
@@ -0,0 +1,67 @@
+# Intelsat 805 @ 55.5W
+# freq pol sr fec
+
+S 4171000 H 06111000 AUTO
+S 4147000 H 06111000 AUTO
+S 3914000 V 01809000 AUTO
+S 3572000 V 11800000 AUTO
+S 4135000 H 06111000 AUTO
+S 3737000 H 01809000 AUTO
+S 3932000 V 03255000 AUTO
+S 3759000 V 04167000 AUTO
+S 3750000 V 05632000 AUTO
+S 3850000 H 20000000 AUTO
+S 4010000 V 06111000 AUTO
+S 3715000 H 08890000 AUTO
+S 3670000 H 01374000 AUTO
+S 4158000 H 01447000 AUTO
+S 3549000 V 06510000 AUTO
+S 3451000 H 04444000 AUTO
+S 3667000 H 03300000 AUTO
+S 3522000 H 30000000 AUTO
+S 4055000 V 21703000 AUTO
+S 3698000 V 03600000 AUTO
+S 4119000 V 01631000 AUTO
+S 3446000 H 03200000 AUTO
+S 3675000 V 02660000 AUTO
+S 3717000 V 11574000 AUTO
+S 4030000 V 06111000 AUTO
+S 3767000 H 04427000 AUTO
+S 4027000 V 02000000 AUTO
+S 4089000 V 05540000 AUTO
+S 3685000 V 05632000 AUTO
+S 3751000 H 05632000 AUTO
+S 4127000 V 02000000 AUTO
+S 3980000 V 19510000 AUTO
+S 3590000 V 10127000 AUTO
+S 4000000 V 05200000 AUTO
+S 3762000 H 03662000 AUTO
+S 3936000 H 03255000 AUTO
+S 3727000 H 03000000 AUTO
+S 4104000 H 05062000 AUTO
+S 3777000 H 07400000 AUTO
+S 3431000 H 03500000 AUTO
+S 3478000 V 05632000 AUTO
+S 4093000 H 02540000 AUTO
+S 3929000 H 02941000 AUTO
+S 4195000 H 04444000 AUTO
+S 4140000 V 04700000 AUTO
+S 4096000 H 05247000 AUTO
+S 3467000 V 04340000 AUTO
+S 3442000 H 03000000 AUTO
+S 4080000 V 04340000 AUTO
+S 4084000 H 10317000 AUTO
+S 3723000 H 03000000 AUTO
+S 3815000 H 26667000 AUTO
+S 4006000 V 03690000 AUTO
+S 3918000 V 04400000 AUTO
+S 3735000 V 08680000 AUTO
+S 3727000 V 03000000 AUTO
+S 3940000 H 02575000 AUTO
+S 3792000 H 02244000 AUTO
+S 3900000 H 03612000 AUTO
+S 3677000 H 04232000 AUTO
+S 4127000 H 02532000 AUTO
+S 4152000 V 03600000 AUTO
+S 4177000 V 27690000 AUTO
+S 4111000 H 03333000 AUTO
diff --git a/util/scan/dvb-s/Intelsat-9-58.0W b/util/scan/dvb-s/Intelsat-9-58.0W
new file mode 100644
index 0000000..e8605a9
--- /dev/null
+++ b/util/scan/dvb-s/Intelsat-9-58.0W
@@ -0,0 +1,58 @@
+# Intelsat 9 @ 58.0W
+# freq pol sr fec
+
+S 4122000 H 02222000 AUTO
+S 4146000 H 06620000 AUTO
+S 4157000 H 06620000 AUTO
+S 4160000 V 03000000 AUTO
+S 3960000 V 29270000 AUTO
+S 3960000 H 29270000 AUTO
+S 4080000 H 27684000 AUTO
+S 3720000 H 19510000 AUTO
+S 4131000 H 04444000 AUTO
+S 4155000 H 06111000 AUTO
+S 4173000 H 06620000 AUTO
+S 3995000 H 05632000 AUTO
+S 3986000 H 06111000 AUTO
+S 4175000 H 04410000 AUTO
+S 4107000 H 08850000 AUTO
+S 3925000 H 06666000 AUTO
+S 3905000 H 06620000 AUTO
+S 3915000 H 06620000 AUTO
+S 3925000 H 06620000 AUTO
+S 4005000 H 06620000 AUTO
+S 4015000 H 06620000 AUTO
+S 3720000 V 27700000 AUTO
+S 4166000 H 06200000 AUTO
+S 3794000 H 03332000 AUTO
+S 3807000 H 03428000 AUTO
+S 3880000 V 27690000 AUTO
+S 3800000 V 26470000 AUTO
+S 3760000 V 27690000 AUTO
+S 3996000 H 03330000 AUTO
+S 3935000 H 05632000 AUTO
+S 11852000 V 30000000 AUTO
+S 11895000 V 20000000 AUTO
+S 11913000 V 10000000 AUTO
+S 4155000 V 03310000 AUTO
+S 3934000 V 07000000 AUTO
+S 3787000 H 07407000 AUTO
+S 3924000 V 06620000 AUTO
+S 3800000 H 04444000 AUTO
+S 3911000 V 13330000 AUTO
+S 4040000 H 16180000 AUTO
+S 4080000 V 27690000 AUTO
+S 4144000 V 02205000 AUTO
+S 4151000 V 02890000 AUTO
+S 4147000 V 02941000 AUTO
+S 4170000 V 02941000 AUTO
+S 3760000 H 28500000 AUTO
+S 4120000 V 27500000 AUTO
+S 11670000 V 16470000 AUTO
+S 4125000 H 02941000 AUTO
+S 4137000 H 02941000 AUTO
+S 3880000 H 27690000 AUTO
+S 4174000 V 02941000 AUTO
+S 3840000 V 27690000 AUTO
+S 3840000 H 27690000 AUTO
+S 3815000 H 06250000 AUTO
diff --git a/util/scan/dvb-s/Intelsat-903-34.5W b/util/scan/dvb-s/Intelsat-903-34.5W
new file mode 100644
index 0000000..141c42c
--- /dev/null
+++ b/util/scan/dvb-s/Intelsat-903-34.5W
@@ -0,0 +1,7 @@
+# Intelsat 903 @ 34.5W
+# freq pol sr fec
+
+S 4178000 V 32555000 AUTO
+S 4045000 H 04960000 AUTO
+S 3895000 H 13021000 AUTO
+S 4004000 V 02170000 AUTO
diff --git a/util/scan/dvb-s/Intelsat-905-24.5W b/util/scan/dvb-s/Intelsat-905-24.5W
new file mode 100644
index 0000000..c5b1c21
--- /dev/null
+++ b/util/scan/dvb-s/Intelsat-905-24.5W
@@ -0,0 +1,9 @@
+# Intelsat 905 @ 24.5W
+# freq pol sr fec
+
+S 4171000 V 06111000 AUTO
+S 4181000 V 06111000 AUTO
+S 4194000 V 05193000 AUTO
+S 4162000 V 06111000 AUTO
+S 4060000 V 06111000 AUTO
+S 4070000 V 06111000 AUTO
diff --git a/util/scan/dvb-s/Intelsat-907-27.5W b/util/scan/dvb-s/Intelsat-907-27.5W
new file mode 100644
index 0000000..c12f549
--- /dev/null
+++ b/util/scan/dvb-s/Intelsat-907-27.5W
@@ -0,0 +1,9 @@
+# Intelsat 907 @ 27.5W
+# freq pol sr fec
+
+S 3873000 H 04687000 AUTO
+S 3935000 H 04687000 AUTO
+S 3743000 V 02900000 AUTO
+S 3732000 V 14000000 AUTO
+S 3943000 H 01808000 AUTO
+S 3938000 H 03544000 AUTO
diff --git a/util/scan/dvb-s/NSS-10-37.5W b/util/scan/dvb-s/NSS-10-37.5W
new file mode 100644
index 0000000..3ebaa71
--- /dev/null
+++ b/util/scan/dvb-s/NSS-10-37.5W
@@ -0,0 +1,12 @@
+# NSS 10 @ 37.5W
+# freq pol sr fec
+
+S 4055000 V 02700000 AUTO
+S 3824000 H 01808000 AUTO
+S 4059000 V 03214000 AUTO
+S 3828000 H 02532000 AUTO
+S 3844000 H 04340000 AUTO
+S 4071000 V 03150000 AUTO
+S 4051000 V 04440000 AUTO
+S 4044000 V 03250000 AUTO
+S 4077000 V 03200000 AUTO
diff --git a/util/scan/dvb-s/NSS-7-22.0W b/util/scan/dvb-s/NSS-7-22.0W
new file mode 100644
index 0000000..e1eefaf
--- /dev/null
+++ b/util/scan/dvb-s/NSS-7-22.0W
@@ -0,0 +1,25 @@
+# NSS 7 @ 22.0W
+# freq pol sr fec
+
+S 3926000 H 03715000 AUTO
+S 3920000 H 03715000 AUTO
+S 3954000 V 05632000 AUTO
+S 3929000 V 05632000 AUTO
+S 3915000 H 03715000 AUTO
+S 3761000 V 22650000 AUTO
+S 11825000 H 05904000 AUTO
+S 12162000 H 06510000 AUTO
+S 11777000 H 04000000 AUTO
+S 11860000 H 35000000 AUTO
+S 12049000 H 06500000 AUTO
+S 11921000 H 35000000 AUTO
+S 4003000 H 06667000 AUTO
+S 4011000 H 06667000 AUTO
+S 4126000 H 03680000 AUTO
+S 3969000 H 01808000 AUTO
+S 3976000 H 01842000 AUTO
+S 11814000 H 05630000 AUTO
+S 4038000 V 03690000 AUTO
+S 3674000 V 02222000 AUTO
+S 4033000 V 03689000 AUTO
+S 4016000 H 03663000 AUTO
diff --git a/util/scan/dvb-s/NSS-806-40.5W b/util/scan/dvb-s/NSS-806-40.5W
new file mode 100644
index 0000000..8bea0a8
--- /dev/null
+++ b/util/scan/dvb-s/NSS-806-40.5W
@@ -0,0 +1,108 @@
+# NSS 806 @ 40.5W
+# freq pol sr fec
+
+S 11921000 H 35000000 AUTO
+S 3660000 H 04350000 AUTO
+S 3986000 H 03179000 AUTO
+S 3859000 H 02600000 AUTO
+S 4120000 V 02960000 AUTO
+S 4016000 V 05712000 AUTO
+S 3978000 H 03978000 AUTO
+S 4100000 V 06111000 AUTO
+S 3965000 V 02540000 AUTO
+S 3774000 H 06670000 AUTO
+S 3725000 V 26667000 AUTO
+S 3600000 V 25185000 AUTO
+S 3758000 V 26667000 AUTO
+S 3982000 V 17800000 AUTO
+S 4090000 V 02515000 AUTO
+S 4042000 H 08680000 AUTO
+S 4009000 V 06666000 AUTO
+S 4003000 H 06666000 AUTO
+S 3648000 H 02000000 AUTO
+S 3664000 V 02170000 AUTO
+S 3644000 H 02534000 AUTO
+S 3695000 H 02963000 AUTO
+S 4082000 H 06666000 AUTO
+S 4143000 V 04800000 AUTO
+S 3641000 V 02666000 AUTO
+S 3991000 H 03578000 AUTO
+S 4000000 H 02450000 AUTO
+S 4009000 H 02450000 AUTO
+S 3960000 V 03170000 AUTO
+S 3755000 H 20000000 AUTO
+S 4135000 V 02000000 AUTO
+S 4005000 H 02450000 AUTO
+S 4003000 H 02450000 AUTO
+S 3600000 H 29185000 AUTO
+S 3868000 V 02100000 AUTO
+S 3685000 H 06500000 AUTO
+S 3688000 V 06666000 AUTO
+S 3679000 V 02220000 AUTO
+S 3961000 H 01481000 AUTO
+S 4130000 V 02000000 AUTO
+S 3923000 H 27500000 AUTO
+S 4052000 V 02459000 AUTO
+S 4071000 V 03333000 AUTO
+S 4146000 H 02571000 AUTO
+S 3646000 V 03978000 AUTO
+S 3837000 H 19510000 AUTO
+S 4132000 H 02480000 AUTO
+S 3653000 V 05924000 AUTO
+S 4055000 H 07233000 AUTO
+S 3938000 V 04785000 AUTO
+S 4152000 V 03280000 AUTO
+S 3832000 V 13310000 AUTO
+S 4090000 H 06620000 AUTO
+S 4082000 V 06510000 AUTO
+S 4107000 V 02100000 AUTO
+S 3500000 H 06666000 AUTO
+S 4126000 V 02531000 AUTO
+S 3860000 V 02713000 AUTO
+S 3983000 H 02222000 AUTO
+S 4065000 H 08400000 AUTO
+S 4063000 V 08500000 AUTO
+S 3972000 H 03330000 AUTO
+S 4024000 H 16030000 AUTO
+S 3803000 V 26860000 AUTO
+S 3920000 V 20000000 AUTO
+S 4053000 V 06666000 AUTO
+S 3676000 V 03000000 AUTO
+S 3637000 H 02963000 AUTO
+S 3516000 V 05632000 AUTO
+S 3516000 H 05632000 AUTO
+S 4093000 V 02887000 AUTO
+S 4177000 H 04391000 AUTO
+S 4124000 H 03480000 AUTO
+S 4139000 V 02220000 AUTO
+S 3693000 V 04441000 AUTO
+S 4194000 H 06660000 AUTO
+S 3803000 H 27500000 AUTO
+S 4112000 V 02000000 AUTO
+S 3676000 H 05900000 AUTO
+S 3652000 H 04000000 AUTO
+S 3725000 H 26669000 AUTO
+S 3898000 V 04195000 AUTO
+S 4162000 H 07200000 AUTO
+S 4168000 H 02400000 AUTO
+S 3965000 H 03332000 AUTO
+S 4100000 H 06654000 AUTO
+S 4127000 H 03000000 AUTO
+S 4109000 H 06654000 AUTO
+S 3670000 H 02960000 AUTO
+S 3853000 H 05900000 AUTO
+S 3660000 V 02540000 AUTO
+S 4170000 H 02222000 AUTO
+S 3630000 H 05632000 AUTO
+S 3695000 V 02220000 AUTO
+S 4184000 H 06142000 AUTO
+S 4122000 V 01860000 AUTO
+S 4022000 V 03800000 AUTO
+S 4137000 H 04400000 AUTO
+S 3878000 V 22117000 AUTO
+S 4132000 V 02800000 AUTO
+S 4043000 V 07440000 AUTO
+S 4142000 H 02222000 AUTO
+S 3990000 V 04195000 AUTO
+S 3667000 V 03340000 AUTO
+S 3673000 V 03000000 AUTO
diff --git a/util/scan/dvb-s/Nahuel-1-71.8W b/util/scan/dvb-s/Nahuel-1-71.8W
new file mode 100644
index 0000000..82845bb
--- /dev/null
+++ b/util/scan/dvb-s/Nahuel-1-71.8W
@@ -0,0 +1,11 @@
+# Nahuel 1 @ 71.8W
+# freq pol sr fec
+
+S 11673000 V 04000000 AUTO
+S 11680000 V 03335000 AUTO
+S 11654000 V 04170000 AUTO
+S 11874000 V 04000000 AUTO
+S 12136000 V 02960000 AUTO
+S 11873000 H 08000000 AUTO
+S 12116000 H 14396000 AUTO
+S 11997000 V 08500000 AUTO
diff --git a/util/scan/dvb-s/Nilesat101+102-7.0W b/util/scan/dvb-s/Nilesat101+102-7.0W
new file mode 100644
index 0000000..64c1921
--- /dev/null
+++ b/util/scan/dvb-s/Nilesat101+102-7.0W
@@ -0,0 +1,36 @@
+# Nilesat 101/102 & Atlantic Bird @ 7W
+# freq pol sr fec
+S 10758000 V 27500000 AUTO
+S 10796000 V 27500000 AUTO
+S 10853000 H 27500000 AUTO
+S 10873000 V 27500000 AUTO
+S 10892000 H 27500000 AUTO
+S 10911000 V 27500000 AUTO
+S 10930000 H 27500000 AUTO
+S 11747000 V 27500000 AUTO
+S 11766000 H 27500000 AUTO
+S 11785000 V 27500000 AUTO
+S 11804000 H 27500000 AUTO
+S 11823000 V 27500000 AUTO
+S 11843000 H 27500000 AUTO
+S 11862000 V 27500000 AUTO
+S 11881000 H 27500000 AUTO
+S 11900000 V 27500000 AUTO
+S 11919000 H 27500000 AUTO
+S 11938000 V 27500000 AUTO
+S 11958000 H 27500000 AUTO
+S 11977000 V 27500000 AUTO
+S 11996000 H 27500000 AUTO
+S 12015000 V 27500000 AUTO
+S 12034000 H 27500000 AUTO
+S 12054000 V 27500000 AUTO
+S 12073000 H 27500000 AUTO
+S 12130000 V 27500000 AUTO
+S 12149000 H 27500000 AUTO
+S 12207000 V 27500000 AUTO
+S 12226000 H 27500000 AUTO
+S 12284000 V 27500000 AUTO
+S 12303000 H 27500000 AUTO
+S 12341000 V 27500000 AUTO
+S 12360000 H 27500000 AUTO
+S 12399000 H 27500000 AUTO
diff --git a/util/scan/dvb-s/OptusC1-156E b/util/scan/dvb-s/OptusC1-156E
new file mode 100644
index 0000000..0e3e73b
--- /dev/null
+++ b/util/scan/dvb-s/OptusC1-156E
@@ -0,0 +1,20 @@
+# Optus C1 satellite 156E
+# freq pol sr fec
+S 12278000 H 30000000 2/3
+S 12305000 H 30000000 2/3
+S 12358000 H 27000000 2/3
+S 12398000 H 27800000 3/4
+S 12407000 V 30000000 2/3
+S 12438000 H 27800000 3/4
+S 12487000 V 27800000 3/4
+S 12501000 H 29473000 3/4
+S 12518000 H 27800000 3/4
+S 12527000 V 30000000 3/4
+S 12558000 H 27800000 3/4
+S 12564000 H 29473000 3/4
+S 12567000 V 27800000 2/3
+S 12598000 H 27800000 3/4
+S 12607000 V 29473000 3/4
+S 12638000 H 27800000 3/4
+S 12689000 H 27800000 3/4
+S 12720000 V 30000000 3/4
diff --git a/util/scan/dvb-s/SBS6-74w b/util/scan/dvb-s/SBS6-74w
new file mode 100644
index 0000000..f99e311
--- /dev/null
+++ b/util/scan/dvb-s/SBS6-74w
@@ -0,0 +1,4 @@
+# SBS 6 @ 74W
+# freq pol sr fec
+
+S 11744000 H 06616000 AUTO
diff --git a/util/scan/dvb-s/Satmex-5-116.8W b/util/scan/dvb-s/Satmex-5-116.8W
new file mode 100644
index 0000000..f0522bf
--- /dev/null
+++ b/util/scan/dvb-s/Satmex-5-116.8W
@@ -0,0 +1,72 @@
+# Satmex 5 @ 116.8W
+# freq pol sr fec
+
+S 12034000 H 02532000 AUTO
+S 12175000 H 04232000 AUTO
+S 4060000 H 19510000 AUTO
+S 3905000 V 02963000 AUTO
+S 4084000 H 03162000 AUTO
+S 3767000 H 01620000 AUTO
+S 11975000 H 05000000 AUTO
+S 11960000 H 02000000 AUTO
+S 4180000 H 19510000 AUTO
+S 4115000 H 03253000 AUTO
+S 3840000 V 29270000 AUTO
+S 4160000 V 29270000 AUTO
+S 3940000 H 28125000 AUTO
+S 4052000 V 04307000 AUTO
+S 12024000 H 03000000 AUTO
+S 4134000 H 03617000 AUTO
+S 12028000 H 03255000 AUTO
+S 12060000 V 03078000 AUTO
+S 4012000 V 03131000 AUTO
+S 3949000 V 03255000 AUTO
+S 4076000 H 02962000 AUTO
+S 3749000 H 04070000 AUTO
+S 3744000 H 04480000 AUTO
+S 3755000 H 04000000 AUTO
+S 3869000 H 03000000 AUTO
+S 3876000 H 02170000 AUTO
+S 3879000 H 01984000 AUTO
+S 3957000 V 02600000 AUTO
+S 3975000 V 03131000 AUTO
+S 3982000 H 02531000 AUTO
+S 3832000 H 02500000 AUTO
+S 3953000 V 02597000 AUTO
+S 3987000 V 08860000 AUTO
+S 3996000 V 02170000 AUTO
+S 3748000 V 02100000 AUTO
+S 3932000 V 02500000 AUTO
+S 3914000 V 03223000 AUTO
+S 3888000 H 05351000 AUTO
+S 3805000 V 04679000 AUTO
+S 4001000 V 04100000 AUTO
+S 4023000 H 06400000 AUTO
+S 12176000 H 03985000 AUTO
+S 4108000 H 02666000 AUTO
+S 4038000 V 07675000 AUTO
+S 3809000 V 03100000 AUTO
+S 4080000 V 29270000 AUTO
+S 3910000 H 02500000 AUTO
+S 4164000 H 01733000 AUTO
+S 12193000 V 07885000 AUTO
+S 12164000 V 02000000 AUTO
+S 12044000 V 04340000 AUTO
+S 3720000 V 27000000 AUTO
+S 3922000 V 09760000 AUTO
+S 3797000 V 03200000 AUTO
+S 3968000 V 07500000 AUTO
+S 4037000 H 02222000 AUTO
+S 4046000 H 02441000 AUTO
+S 4080000 H 02441000 AUTO
+S 3773000 V 02892000 AUTO
+S 3767000 V 02893000 AUTO
+S 3935000 V 04440000 AUTO
+S 3972000 H 03364000 AUTO
+S 3905000 H 02400000 AUTO
+S 4007000 V 05582000 AUTO
+S 3885000 H 03000000 AUTO
+S 3826000 H 02712000 AUTO
+S 3944000 V 03410000 AUTO
+S 3915000 H 01520000 AUTO
+S 3876000 V 02920000 AUTO
diff --git a/util/scan/dvb-s/Satmex-6-113.0W b/util/scan/dvb-s/Satmex-6-113.0W
new file mode 100644
index 0000000..8ff01b8
--- /dev/null
+++ b/util/scan/dvb-s/Satmex-6-113.0W
@@ -0,0 +1,19 @@
+# Satmex 6 @ 113.0W
+# freq pol sr fec
+
+S 4078000 H 03609000 AUTO
+S 4080000 V 03255000 AUTO
+S 12145000 V 03255000 AUTO
+S 4085000 V 02821000 AUTO
+S 12126000 V 06022000 AUTO
+S 12166000 H 17500000 AUTO
+S 4075000 V 03782000 AUTO
+S 4091000 V 03720000 AUTO
+S 3985000 V 02300000 AUTO
+S 12126000 H 02170000 AUTO
+S 12157000 V 03038000 AUTO
+S 12091000 V 03337000 AUTO
+S 3947000 V 03700000 AUTO
+S 3761000 V 02120000 AUTO
+S 12107000 V 02222000 AUTO
+S 12080000 H 25635000 AUTO
diff --git a/util/scan/dvb-s/Telstar-12-15.0W b/util/scan/dvb-s/Telstar-12-15.0W
new file mode 100644
index 0000000..fb902ab
--- /dev/null
+++ b/util/scan/dvb-s/Telstar-12-15.0W
@@ -0,0 +1,32 @@
+# Telstar 12 @ 15.0W
+# freq pol sr fec
+
+S 12180000 H 03255000 AUTO
+S 11895000 V 05000000 AUTO
+S 11974000 V 03400000 AUTO
+S 12185000 H 04214000 AUTO
+S 12081000 H 03935000 AUTO
+S 12050000 V 03198000 AUTO
+S 11756000 H 06666000 AUTO
+S 12093000 V 02000000 AUTO
+S 11916000 H 06111000 AUTO
+S 11707000 H 03198000 AUTO
+S 11718000 V 05632000 AUTO
+S 11740000 V 03255000 AUTO
+S 12000000 H 06666000 AUTO
+S 12116000 H 02062000 AUTO
+S 12111000 H 02062000 AUTO
+S 12175000 H 03504000 AUTO
+S 12167000 H 03502000 AUTO
+S 12129000 V 02000000 AUTO
+S 12110000 V 06620000 AUTO
+S 11724000 H 13225000 AUTO
+S 11984000 H 13570000 AUTO
+S 12125000 H 03800000 AUTO
+S 11713000 V 09626000 AUTO
+S 11804000 V 07595000 AUTO
+S 11965000 H 14714000 AUTO
+S 12039000 V 05632000 AUTO
+S 12082000 V 06396000 AUTO
+S 12087000 V 03198000 AUTO
+S 12097000 V 03198000 AUTO
diff --git a/util/scan/dvb-s/Turksat-42.0E b/util/scan/dvb-s/Turksat-42.0E
index 1ac7fd8..2364673 100644
--- a/util/scan/dvb-s/Turksat-42.0E
+++ b/util/scan/dvb-s/Turksat-42.0E
@@ -2,3 +2,4 @@
# freq pol sr fec
S 11594000 H 4557000 5/6
S 10978000 V 2344000 3/4
+S 11734000 H 3291000 3/4
diff --git a/util/scan/dvb-s/Yamal201-90.0E b/util/scan/dvb-s/Yamal201-90.0E
new file mode 100644
index 0000000..d0817c5
--- /dev/null
+++ b/util/scan/dvb-s/Yamal201-90.0E
@@ -0,0 +1,48 @@
+# Yamal201 @ 90E
+# freq pol sr fec
+S 10990000 V 2170000 AUTO
+S 10995000 V 4285000 AUTO
+S 11057000 V 26470000 AUTO
+S 11092000 V 26470000 AUTO
+S 11145000 V 22222000 AUTO
+S 11671000 V 18200000 AUTO
+
+# Yamal201 @ 90E C-BAND
+# Generated by Roman Kashcheev
+# Mar 30, 2008
+# freq pol sr fec
+
+# NauTV
+S 3536000 H 2532000 3/4
+# Turkmenistan
+S 3553000 H 20000000 3/4
+# CNL
+S 3577000 H 2626000 3/4
+# Nord TV
+S 3588000 H 4285000 3/4
+# Telekompanija OTV
+S 3600000 H 4285000 3/4
+# Oblastnoe Televidenie
+S 3603000 V 4285000 3/4
+# CNL
+S 3605000 H 2626000 3/4
+# Gascom
+S 3645000 H 28000000 3/4
+# Spas
+S 3674000 H 17500000 3/4
+# TV Gubernia
+S 3725000 H 3200000 3/4
+# Yuzhniy Region
+S 3900000 H 4285000 3/4
+# Rostov TV
+S 3907000 H 4265000 3/4
+# ORTRK 12 Kanal
+S 3912000 H 4295000 3/4
+# O2
+S 3944000 H 15550000 3/4
+# Klub Puteshestviy
+S 3980000 H 38000000 3/4
+# Music Box
+S 4042000 V 8681000 3/4
+# NetService
+S 4084000 V 2500000 3/4
diff --git a/util/scan/dvb-t/at-Offical b/util/scan/dvb-t/at-Offical
new file mode 100644
index 0000000..4a9caf8
--- /dev/null
+++ b/util/scan/dvb-t/at-Offical
@@ -0,0 +1,25 @@
+# Austria, all DVB-T transmitters run by ORS
+# Created from http://www.ors.at/view/ors.php?mid=29
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 474000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 490000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 498000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 514000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 522000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 530000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 538000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 546000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 554000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 562000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 578000000 8MHz 3/4 NONE QAM16 8k 1/8 NONE
+T 586000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 594000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 602000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 626000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 634000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 650000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 698000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 722000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 754000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 802000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 858000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
diff --git a/util/scan/dvb-t/au-sydney_north_shore b/util/scan/dvb-t/au-Adelaide
index 0bb6dd4..3bd3a0f 100644
--- a/util/scan/dvb-t/au-sydney_north_shore
+++ b/util/scan/dvb-t/au-Adelaide
@@ -1,12 +1,12 @@
-# Australia / Sydney / North Shore (aka Artarmon/Gore Hill)
+# Australia / Adelaide / Mt Lofty
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
# ABC
T 226500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
# Seven
-T 177500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 177500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
# Nine
T 191625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
# Ten
T 219500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
# SBS
-T 571500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 564500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/au-Brisbane b/util/scan/dvb-t/au-Brisbane
new file mode 100644
index 0000000..abf9913
--- /dev/null
+++ b/util/scan/dvb-t/au-Brisbane
@@ -0,0 +1,12 @@
+# Australia / Brisbane (Mt Coot-tha transmitters)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# ABC
+T 226500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Seven
+T 177500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Nine
+T 191625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Ten
+T 219500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# SBS
+T 585625000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/au-Cairns b/util/scan/dvb-t/au-Cairns
new file mode 100644
index 0000000..d9c6208
--- /dev/null
+++ b/util/scan/dvb-t/au-Cairns
@@ -0,0 +1,12 @@
+# Australia / Cairns (Mt Bellenden-Ker transmitters)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# ABC VHF 8
+T 191500000 7MHz 3/4 3/4 QAM64 8k 1/16 NONE
+# SEVEN VHF 11
+T 219500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# WIN VHF 12
+T 226500000 7MHz 3/4 3/4 QAM64 8k 1/16 NONE
+# TEN VHF 6 (Expected Start Date Dec 2006)
+T 177500000 7MHz 3/4 1/2 QAM64 8k 1/16 NONE
+# SBS UHF 29
+T 536500000 7MHz 2/3 2/3 QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/au-Canberra-Black-Mt b/util/scan/dvb-t/au-Canberra-Black-Mt
new file mode 100644
index 0000000..a675100
--- /dev/null
+++ b/util/scan/dvb-t/au-Canberra-Black-Mt
@@ -0,0 +1,12 @@
+# Australia / Canberra / Black Mt
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# ABC
+T 205500000 7MHz 3/4 3/4 QAM64 8k 1/16 NONE
+# Prime
+T 226500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# WIN
+T 219500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Ten
+T 177500000 7MHz 3/4 1/2 QAM64 8k 1/16 NONE
+# SBS
+T 543500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/au-Darwin b/util/scan/dvb-t/au-Darwin
index 522bb1d..236d049 100644
--- a/util/scan/dvb-t/au-Darwin
+++ b/util/scan/dvb-t/au-Darwin
@@ -1,5 +1,9 @@
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# ABC (UHF 30)
T 543625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
-T 550500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
+# Nine (UHF 31)
+T 550500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# SBS (UHF 29)
T 536625000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
-T 557625000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
+# Southern Cross (UHF 32)
+T 557625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
diff --git a/util/scan/dvb-t/au-GoldCoast b/util/scan/dvb-t/au-GoldCoast
new file mode 100644
index 0000000..64b3969
--- /dev/null
+++ b/util/scan/dvb-t/au-GoldCoast
@@ -0,0 +1,21 @@
+# DVB-T frequencies & modulation for the Gold Coast, Australia (Mt Tamborine)
+# See http://www.dba.org.au/index.asp?sectionID=22&recLocation=Gold+Coast
+# and http://www.dba.org.au/index.asp?sectionID=120
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# ABC (UHF 62)
+T 767500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# SBS (UHF 36)
+T 585500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
+# Seven (UHF 53)
+T 704500000 7MHz 3/4 NONE QAM64 8k 1/8 NONE
+# NBN (UHF 68)
+T 809500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Prime (UHF 65)
+T 788500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Southern Cross Ten (UHF 43)
+T 634500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Nine (UHF 59)
+T 746500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Ten (UHF 56)
+T 725500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
diff --git a/util/scan/dvb-t/au-Hobart b/util/scan/dvb-t/au-Hobart
new file mode 100644
index 0000000..0dac4aa
--- /dev/null
+++ b/util/scan/dvb-t/au-Hobart
@@ -0,0 +1,12 @@
+# Australia / Tasmania / Hobart
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# ABC VHF 8
+T 191625000 7MHz 3/4 3/4 QAM64 8k 1/16 NONE
+# SBS VHF 9a
+T 205500000 7MHz 2/3 2/3 QAM64 8k 1/8 NONE
+# SCT VHF 10
+T 212500000 7MHz 3/4 3/4 QAM64 8k 1/16 NONE
+# WIN VHF 7
+T 184500000 7MHz 3/4 3/4 QAM64 8k 1/8 NONE
+# TDT VHF 11
+T 219500000 7MHz 3/4 3/4 QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/au-Mackay b/util/scan/dvb-t/au-Mackay
new file mode 100644
index 0000000..e7fbfc0
--- /dev/null
+++ b/util/scan/dvb-t/au-Mackay
@@ -0,0 +1,14 @@
+# Australia / Mackay (Mt Blackwood transmitters)
+# aufreq=((UHF channel number)*8+306)
+
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# ABC
+T 212500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Seven Network
+T 205500000 7MHz 3/4 NONE QAM64 8k 1/8 NONE
+# WIN Digital
+T 578500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Southern Cross Ten
+T 557500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# SBS
+T 536500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/au-Melbourne b/util/scan/dvb-t/au-Melbourne
new file mode 100644
index 0000000..6fefbea
--- /dev/null
+++ b/util/scan/dvb-t/au-Melbourne
@@ -0,0 +1,12 @@
+# Australia / Melbourne (Mt Dandenong transmitters)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# ABC
+T 226500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Seven
+T 177500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Nine
+T 191625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Ten
+T 219500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# SBS
+T 536625000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/au-Melbourne-Upwey b/util/scan/dvb-t/au-Melbourne-Upwey
new file mode 100644
index 0000000..2171845
--- /dev/null
+++ b/util/scan/dvb-t/au-Melbourne-Upwey
@@ -0,0 +1,12 @@
+# Australia / Melbourne (Upwey Repeater)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# ABC
+T 662500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Seven
+T 620500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Nine
+T 641500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Ten
+T 711500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# SBS
+T 683500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/au-MidNorthCoast b/util/scan/dvb-t/au-MidNorthCoast
new file mode 100644
index 0000000..baf3ba5
--- /dev/null
+++ b/util/scan/dvb-t/au-MidNorthCoast
@@ -0,0 +1,22 @@
+# Australia ABC Mid North Coast
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# ABC middle brother
+T 184625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Prime Middle Brother
+T 198500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# NBN Middle Brother
+T 226500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Ten Middle Brother
+T 641500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# SBS middle brother
+T 205500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
+# ABC Moombil
+T 585500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Prime Moombil
+T 543500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# NBN Moombil
+T 564500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Ten Moombil
+T 599500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# SBS Moombil
+T 606500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/au-Newcastle b/util/scan/dvb-t/au-Newcastle
new file mode 100644
index 0000000..8fc4552
--- /dev/null
+++ b/util/scan/dvb-t/au-Newcastle
@@ -0,0 +1,12 @@
+# Australia / Newcastle
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# SBS
+T 599500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
+# NBN
+T 585500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Prime
+T 704500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# ABC
+T 592500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# SC10
+T 690500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
diff --git a/util/scan/dvb-t/au-Perth b/util/scan/dvb-t/au-Perth
new file mode 100644
index 0000000..1d6778d
--- /dev/null
+++ b/util/scan/dvb-t/au-Perth
@@ -0,0 +1,12 @@
+# Australia / Perth
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# ABC
+T 226500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Seven Network
+T 177500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Nine Network
+T 191625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Network TEN
+T 219500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# SBS
+T 536500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/au-Perth_Roleystone b/util/scan/dvb-t/au-Perth_Roleystone
new file mode 100644
index 0000000..496a750
--- /dev/null
+++ b/util/scan/dvb-t/au-Perth_Roleystone
@@ -0,0 +1,12 @@
+# Australia / Perth (Roleystone transmitter)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# SBS
+T 704500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
+# ABC
+T 725500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Seven
+T 746500000 7MHz 2/3 NONE QAM64 8k 1/16 NONE
+# Nine
+T 767500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Ten
+T 788500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
diff --git a/util/scan/dvb-t/au-SpencerGulf b/util/scan/dvb-t/au-SpencerGulf
new file mode 100644
index 0000000..474d66a
--- /dev/null
+++ b/util/scan/dvb-t/au-SpencerGulf
@@ -0,0 +1,8 @@
+# Australia / South Australia / Pt Pirie (THE BLUFF)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# ABC
+T 599500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Southern Cross
+T 641500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# SBS
+T 620500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/au-SunshineCoast b/util/scan/dvb-t/au-SunshineCoast
new file mode 100755
index 0000000..32e72e0
--- /dev/null
+++ b/util/scan/dvb-t/au-SunshineCoast
@@ -0,0 +1,12 @@
+# Australia / Sunshine Coast
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# SBS
+T 585500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
+# ABC
+T 767500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Seven
+T 788500000 7MHz 3/4 NONE QAM64 8k 1/8 NONE
+# Nine
+T 809500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Ten
+T 662625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
diff --git a/util/scan/dvb-t/au-Sydney_Kings_Cross b/util/scan/dvb-t/au-Sydney_Kings_Cross
new file mode 100644
index 0000000..ef77870
--- /dev/null
+++ b/util/scan/dvb-t/au-Sydney_Kings_Cross
@@ -0,0 +1,14 @@
+# Australia / Sydney / Kings Cross and North Head
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#
+# ABC UHF30
+T 543500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Seven UHF48
+T 669500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Nine UHF33
+T 564500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Ten UHF45
+T 648500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# SBS UHF34
+T 571500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/au-Sydney_North_Shore b/util/scan/dvb-t/au-Sydney_North_Shore
new file mode 100644
index 0000000..e175490
--- /dev/null
+++ b/util/scan/dvb-t/au-Sydney_North_Shore
@@ -0,0 +1,16 @@
+# Australia / Sydney / North Shore (aka Artarmon/Gore Hill/Willoughby)
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#
+# ABC VHF12
+T 226500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Seven VHF6
+T 177500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Nine VHF8
+T 191625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Ten VHF11
+T 219500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# SBS UHF34
+T 571500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
+# D44 UHF35
+T 578500000 7MHz 2/3 NONE QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/au-Tamworth b/util/scan/dvb-t/au-Tamworth
new file mode 100644
index 0000000..8d28c42
--- /dev/null
+++ b/util/scan/dvb-t/au-Tamworth
@@ -0,0 +1,38 @@
+# Australia / NSW / New England / Tamworth / Mt.Soma
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# SBS
+T 690500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
+# NBN
+T 753500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Prime
+T 732500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# ABC
+T 711500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# SC10
+T 774500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+
+# Australia / NSW / New England / Upper Namoi / Mt.Dowe
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# SBS
+T 585500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
+# NBN
+T 592500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Prime
+T 205625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# ABC
+T 191625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# SC10
+T 613500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+
+# Australia / NSW / Western Districts / Central Western Slopes / Mt. Cenn Cruaich
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# SBS
+T 641500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
+# WIN
+T 648500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Prime
+T 620500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# ABC
+T 226625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# SC10
+T 641500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
diff --git a/util/scan/dvb-t/au-Townsville b/util/scan/dvb-t/au-Townsville
new file mode 100644
index 0000000..e411cd4
--- /dev/null
+++ b/util/scan/dvb-t/au-Townsville
@@ -0,0 +1,12 @@
+# Australia / Brisbane (Mt Coot-tha transmitters)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# SBS
+T 592500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
+# ABC
+T 550500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Seven
+T 599500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Nine
+T 620500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Ten
+T 585500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
diff --git a/util/scan/dvb-t/au-WaggaWagga b/util/scan/dvb-t/au-WaggaWagga
new file mode 100644
index 0000000..cc38f88
--- /dev/null
+++ b/util/scan/dvb-t/au-WaggaWagga
@@ -0,0 +1,12 @@
+# Australia / Wagga Wagga (Mt Ulundra)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# ABC
+T 655500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# SBS
+T 669500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
+# Prime
+T 662500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Southern Cross Ten
+T 690500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# WIN
+T 683500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
diff --git a/util/scan/dvb-t/au-Wollongong b/util/scan/dvb-t/au-Wollongong
new file mode 100644
index 0000000..6fbf7bf
--- /dev/null
+++ b/util/scan/dvb-t/au-Wollongong
@@ -0,0 +1,40 @@
+# Australia / Wollongong
+#
+# Australia modulation params:
+# - http://www.dba.org.au/index.asp?sectionID=120
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#
+# North (Broadcast Site Escarpment Road BROKERS NOSE)
+# - http://www.dba.org.au/index.asp?query=true&sectionID=22&recLocation=Wollongong+%2D+North
+#
+# ABC UHF52
+T 697500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Prime UHF46
+T 655500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# WIN UHF40
+T 613500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Ten UHF43
+T 634500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# SBS UHF54
+T 711625000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
+#
+# Illawarra (Broadcast Australia Digital Television Tower KNIGHTS HILL)
+# - http://www.dba.org.au/index.asp?query=true&sectionID=22&recLocation=Wollongong+%2D+Illawarra
+#
+# ABC UHF51
+T 690500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Prime UHF38
+T 599500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# WIN UHF36
+T 585500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# Ten UHF37
+T 592500000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# SBS - same as North
+#
+# Stanwell Park (Bald Hill STANWELL TOPS)
+# - http://www.dba.org.au/index.asp?query=true&sectionID=22&recLocation=Wollongong+%2D+Stanwell%20Park
+#
+# ABC, Prime, WIN, Ten are identical to Wollongong / North
+# SBS UHF49
+T 676500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/au-canberra b/util/scan/dvb-t/au-canberra
index 5e71b07..18c0fda 100644
--- a/util/scan/dvb-t/au-canberra
+++ b/util/scan/dvb-t/au-canberra
@@ -3,7 +3,7 @@
# ABC
T 205625000 7MHz 3/4 3/4 QAM64 8k 1/16 NONE
# Seven
-T 177500000 7MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 177500000 7MHz 3/4 NONE QAM64 8k 1/8 NONE
# Nine
T 191625000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
# Ten
diff --git a/util/scan/dvb-t/be-Libramont b/util/scan/dvb-t/be-Libramont
new file mode 100644
index 0000000..fb2ae0c
--- /dev/null
+++ b/util/scan/dvb-t/be-Libramont
@@ -0,0 +1,10 @@
+# Libramont - Belgique
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# Canal 7 191.5 MHz M6
+# Canal 24 498.0 MHz RTL-TVI Club-RTL Plug-TV RTL 4,5,7
+# Canal 27 522.0 MHz RTL Lux, den 2ten RTL
+# Canal 56 834.0 MHz RTBF 1,2,3 + radio
+T 191500000 7MHz 1/2 NONE QAM64 8k 1/8 NONE
+T 498000000 8MHz 1/2 NONE QAM64 8k 1/16 NONE
+T 522000000 8MHz 1/2 NONE QAM64 8k 1/16 NONE
+T 834000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/be-Schoten b/util/scan/dvb-t/be-Schoten
new file mode 100644
index 0000000..d973def
--- /dev/null
+++ b/util/scan/dvb-t/be-Schoten
@@ -0,0 +1,3 @@
+# Schoten-Antwerpen - Belgie
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 778000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/be-St_Pieters_Leeuw b/util/scan/dvb-t/be-St_Pieters_Leeuw
new file mode 100644
index 0000000..5e44c3f
--- /dev/null
+++ b/util/scan/dvb-t/be-St_Pieters_Leeuw
@@ -0,0 +1,3 @@
+# St.-Pieters-Leeuw - Belgie
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/be-Tournai b/util/scan/dvb-t/be-Tournai
new file mode 100644
index 0000000..0ed3ca8
--- /dev/null
+++ b/util/scan/dvb-t/be-Tournai
@@ -0,0 +1,3 @@
+# Tournai - Belgique
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/ch-All b/util/scan/dvb-t/ch-All
new file mode 100644
index 0000000..f3f23c3
--- /dev/null
+++ b/util/scan/dvb-t/ch-All
@@ -0,0 +1,29 @@
+# Switzerland, whole country
+# Created from http://www.broadcast.ch/portal.aspx?pid=705
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 514000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 522000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 538000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 554000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 562000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 578000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 594000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 602000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 618000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 626000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 642000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 658000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 666000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 674000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 682000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 690000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 698000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 714000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 722000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 738000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 754000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 762000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 786000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 802000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
+T 826000000 8MHz 5/6 NONE QAM16 8k 1/4 NONE
diff --git a/util/scan/dvb-t/ch-Citycable b/util/scan/dvb-t/ch-Citycable
new file mode 100644
index 0000000..3de688e
--- /dev/null
+++ b/util/scan/dvb-t/ch-Citycable
@@ -0,0 +1,14 @@
+# Lausanne - Switzerland (DVB-T on CityCable cable network)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 498000000 8MHz 7/8 7/8 QAM64 8k 1/32 NONE
+T 522000000 8MHz 7/8 7/8 QAM64 8k 1/32 NONE
+T 554000000 8MHz 7/8 7/8 QAM64 8k 1/32 NONE
+T 570000000 8MHz 7/8 7/8 QAM64 8k 1/32 NONE
+T 578000000 8MHz 7/8 7/8 QAM64 8k 1/32 NONE
+T 586000000 8MHz 7/8 7/8 QAM64 8k 1/32 NONE
+T 610000000 8MHz 7/8 7/8 QAM64 8k 1/32 NONE
+T 618000000 8MHz 7/8 7/8 QAM64 8k 1/32 NONE
+T 626000000 8MHz 7/8 7/8 QAM64 8k 1/32 NONE
+T 658000000 8MHz 7/8 7/8 QAM64 8k 1/32 NONE
+T 730000000 8MHz 7/8 7/8 QAM64 8k 1/32 NONE
+T 746000000 8MHz 7/8 7/8 QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/cz-Brno b/util/scan/dvb-t/cz-Brno
new file mode 100644
index 0000000..9bc07f9
--- /dev/null
+++ b/util/scan/dvb-t/cz-Brno
@@ -0,0 +1,4 @@
+# DVB-T Brno (Brno, Czech Republic)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# CRa - Ceske radiokomunikace, TX Barvicova/Hady
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/cz-Domazlice b/util/scan/dvb-t/cz-Domazlice
new file mode 100644
index 0000000..c20f70a
--- /dev/null
+++ b/util/scan/dvb-t/cz-Domazlice
@@ -0,0 +1,3 @@
+# DVB-T Domažlice (Domažlice, Czech Republic)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/cz-Ostrava b/util/scan/dvb-t/cz-Ostrava
new file mode 100644
index 0000000..d2ea69f
--- /dev/null
+++ b/util/scan/dvb-t/cz-Ostrava
@@ -0,0 +1,3 @@
+# DVB-T Ostrava (Ostrava, Czech Republic)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/cz-Praha b/util/scan/dvb-t/cz-Praha
new file mode 100644
index 0000000..d12a8cf
--- /dev/null
+++ b/util/scan/dvb-t/cz-Praha
@@ -0,0 +1,5 @@
+# DVB-T Praha (Prague, Czech Republic)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/16 NONE
+T 818000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/de-Aachen_Stadt b/util/scan/dvb-t/de-Aachen_Stadt
new file mode 100644
index 0000000..d076b08
--- /dev/null
+++ b/util/scan/dvb-t/de-Aachen_Stadt
@@ -0,0 +1,6 @@
+# DVB-T Aachen-Stadt
+# info from http://www.nrw.ueberallfernsehen.de/fileadmin/downloads/2007-09-14_Programmbelegung_Aachen.pdf
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 514000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # ZDF
+T 602000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE # WDR AC
+T 706000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # ARD NRW
diff --git a/util/scan/dvb-t/de-Berlin b/util/scan/dvb-t/de-Berlin
index 416bd11..c975008 100644
--- a/util/scan/dvb-t/de-Berlin
+++ b/util/scan/dvb-t/de-Berlin
@@ -1,5 +1,11 @@
# DVB-T Berlin
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 522000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # ard / rbb
-T 570000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # zdf
-T 658000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # t-systems
+T 177500000 7MHz 3/4 NONE QAM16 8k 1/8 NONE # K5 WDR, SW, BBC, FAB
+T 191500000 7MHz 2/3 NONE QAM16 8k 1/8 NONE # K7 MDR, arte, NDR, ARD-Online-Kanal, ARD-MHP-Data
+T 506000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # K25 RTL, RTL2, Super RTL, VOX
+T 522000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # K27 ARD, RBB, RBB Brd., Phoenix, EinsExtra, ARD-MHP-Data
+T 570000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # K33 ZDF, 3sat, Doku/KiKa
+T 658000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # K44 Sat1, N24, Pro7, Kabel1
+T 754000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # K56 Eurosport, DSF, 9Live, TV.Berlin
+T 778000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # K59 n-tv, Euronews, 33x Radio
+T 618000000 8MHz 1/2 NONE QAM16 8k 1/8 NONE # DVBH Test INT/Service
diff --git a/util/scan/dvb-t/de-Bielefeld b/util/scan/dvb-t/de-Bielefeld
new file mode 100644
index 0000000..ee12dfe
--- /dev/null
+++ b/util/scan/dvb-t/de-Bielefeld
@@ -0,0 +1,7 @@
+# DVB-T Ostwestfalen
+# http://www.nrw.ueberallfernsehen.de/fileadmin/downloads/DVB-T_P3.1_OWL.pdf
+
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 514000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 554000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+T 570000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
diff --git a/util/scan/dvb-t/de-Braunschweig b/util/scan/dvb-t/de-Braunschweig
new file mode 100644
index 0000000..8dd39e2
--- /dev/null
+++ b/util/scan/dvb-t/de-Braunschweig
@@ -0,0 +1,7 @@
+# DVB-T Braunschweig -- info from http://www.skyplus.seyen.de/DVB-T.html
+T 198500000 7MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 490000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 498000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 594000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 658000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 786000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
diff --git a/util/scan/dvb-t/de-Bremen b/util/scan/dvb-t/de-Bremen
new file mode 100644
index 0000000..bc05505
--- /dev/null
+++ b/util/scan/dvb-t/de-Bremen
@@ -0,0 +1,9 @@
+# DVB-T Bremen/Unterweser
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 2/3 AUTO QAM16 8k 1/4 NONE
+T 538000000 8MHz 2/3 1/2 QAM16 8k 1/4 NONE
+T 562000000 8MHz 2/3 2/3 QAM16 8k 1/4 NONE
+T 642000000 8MHz 2/3 2/3 QAM16 8k 1/4 NONE
+T 666000000 8MHz 2/3 2/3 QAM16 8k 1/4 NONE
+T 698000000 8MHz 2/3 2/3 QAM16 8k 1/4 NONE
+T 746000000 8MHz 2/3 2/3 QAM16 8k 1/4 NONE
diff --git a/util/scan/dvb-t/de-Brocken_Magdeburg b/util/scan/dvb-t/de-Brocken_Magdeburg
new file mode 100644
index 0000000..e17988b
--- /dev/null
+++ b/util/scan/dvb-t/de-Brocken_Magdeburg
@@ -0,0 +1,7 @@
+# DVB-T Brocken/Magdeburg (Germany)
+# Generated by Tobias Stoeber <mail@tobias-stoeber.de>
+# info from: http://www.dvbt-mitteldeutschland.de/index.php?content=Programme&menu=Technische&region=MD
+
+T 538000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH29: ARD Das Erste, EinsFestival, arte, Phoenix (TSMB/MDR1.1)
+T 546000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH30: 3sat, ZDFDoku/KIKA, ZDF, ZDFInfo (ZDF)
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CH34: MDR S-ANHALT, rbb Brandenburg, WDR Koeln, NDR FS NDS (TSMB/MDR2.2)
diff --git a/util/scan/dvb-t/de-Chemnitz b/util/scan/dvb-t/de-Chemnitz
new file mode 100644
index 0000000..c5ea0f8
--- /dev/null
+++ b/util/scan/dvb-t/de-Chemnitz
@@ -0,0 +1,5 @@
+# DVB-T Chemnitz
+# T freq bw fec_hi fec lo mod transmission-mode guard-interval hierarchy
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # ard, arte, phoenix, einsfest
+T 482000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # zdf, 3sat, zdf-doku,/kika
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # mdr, rbb, wdr, br
diff --git a/util/scan/dvb-t/de-Dresden b/util/scan/dvb-t/de-Dresden
new file mode 100644
index 0000000..2945846
--- /dev/null
+++ b/util/scan/dvb-t/de-Dresden
@@ -0,0 +1,5 @@
+# DVB-T Dresden
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 538000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Kanal 29, mdr, rbb, wdr, br
+T 594000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # Kanal 36, zdf, 3sat, kika, none
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Kanal 39, ard, arte, phoenix, 1festival
diff --git a/util/scan/dvb-t/de-Erfurt-Weimar b/util/scan/dvb-t/de-Erfurt-Weimar
new file mode 100644
index 0000000..f266ac6
--- /dev/null
+++ b/util/scan/dvb-t/de-Erfurt-Weimar
@@ -0,0 +1,5 @@
+# DVB-T Erfurt-Weimar
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 474000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # Kanal 21, ARD, arte, Phoenix, Eins festival
+T 522000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # Kanal 27, MDR Thüringen, rbb, WDR, hr
+T 706000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # Kanal 50, ZDF, ZDF info / 3sat, KiKA / ZDF doku, MHP
diff --git a/util/scan/dvb-t/de-Frankfurt b/util/scan/dvb-t/de-Frankfurt
new file mode 100644
index 0000000..5dc3418
--- /dev/null
+++ b/util/scan/dvb-t/de-Frankfurt
@@ -0,0 +1,41 @@
+###########################################
+# DVB-T, Deutschland, Rhein-Main Gebiet
+###########################################
+
+# Start der Ausstrahlung: ARD Multiplex 2 und ZDF Multiplex ab 04.10.2004.
+# ARD Multiplex 1 sowie Private Multiplex 1 bis 3 am 06.12.2004.
+
+# ARD Multiplex 2 Kanal 57 wurde am 03.12.2007 auf Kanal 37 verschoben
+
+# Alle DVB-T Sender im Rhein-Main Gebiet senden vertikal polarisiert
+
+# Sender auf dem grossen Feldberg und FFM-Fernmeldeturm sind Rundstrahler,
+# Hohe Wurzel ist Richtstrahler
+
+# Kanaele 5 bis 10 liegen im "VHF"-Band, 21 bis 69 im "UHF"-Band, d.h.,
+# nur ARD Multiplex 1 wird im VHF-Band gesendet.
+
+# Nettodatenrate 13.06 MBit/s fuer ARD Multiplex 1, 13.27 MBit/s fuer alle anderen
+
+
+##################################################################################
+#T freq bw coderate_HP coderate_LP modulation transmode guard-int hierarchy
+#--------------------------------------------------------------------------------
+
+# Kanal 8, ARD Multiplex 1, Grosser Feldberg 10kW, Hohe Wurzel 20kW, FFM-Turm 10kW
+T 198500000 7MHz 2/3 NONE QAM16 8k 1/4 NONE
+
+# Kanal 22, ZDF Multiplex, Grosser Feldberg 50kW, Hohe Wurzel 100kW, FFM-Turm 50kW
+T 482000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+
+# Kanal 34, Private Multiplex 1, Grosser Feldberg 50kW, Hohe Wurzel 100kW, FFM-Turm 50kW
+T 578000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+
+# Kanal 37, ARD Multiplex 2, Grosser Feldberg 50kW, Hohe Wurzel 100kW, FFM-Turm 50kW
+T 602000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+
+# Kanal 54, Private Multiplex 2, Grosser Feldberg 50kW, Hohe Wurzel 100kW, FFM-Turm 50kW
+T 738000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+
+# Kanal 64, Private Multiplex 3, Grosser Feldberg 50kW, Hohe Wurzel 100kW, FFM-Turm 50kW
+T 818000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
diff --git a/util/scan/dvb-t/de-Freiburg b/util/scan/dvb-t/de-Freiburg
new file mode 100644
index 0000000..5066a21
--- /dev/null
+++ b/util/scan/dvb-t/de-Freiburg
@@ -0,0 +1,5 @@
+# DVB-T Freiburg M/V
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 570000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 618000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 722000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
diff --git a/util/scan/dvb-t/de-HalleSaale b/util/scan/dvb-t/de-HalleSaale
new file mode 100644
index 0000000..19b94e7
--- /dev/null
+++ b/util/scan/dvb-t/de-HalleSaale
@@ -0,0 +1,6 @@
+# DVB-T Halle/Saale (Germany)
+# Generated by Albrecht Lohoefener <albrechtloh@gmx.de> http://www.albrechtloh.de
+
+T 642000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH1:ZDF CH2:ZDFinfo/3sat CH3:ZDFDoku/KiKa
+T 586000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH1:BR CH2:MDR CH3:rbb CH4:NDR
+T 482000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH1:arte CH2:Phoenix CH3:EinsFestival CH4:ARD
diff --git a/util/scan/dvb-t/de-Hamburg b/util/scan/dvb-t/de-Hamburg
new file mode 100644
index 0000000..a3658e5
--- /dev/null
+++ b/util/scan/dvb-t/de-Hamburg
@@ -0,0 +1,15 @@
+# DVB-T Hamburg
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 205500000 7MHz 3/4 NONE QAM16 8k 1/8 NONE # CH09: NDR, WDR, MDR, Bayrisches Fernsehen
+T 490000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH23: ZDF, Info/3sat, Doku/KiKa
+T 498000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 514000000 8MHz 3/4 AUTO QAM16 8k 1/4 NONE #ARD, MDR S-Anhalt, NDR MV, NDR SH, rbb Berlin
+T 530000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 546000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH30: Sat.1, N24, ProSieben, KABEL1
+T 570000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH33: Das Erste Hamburg, Eins Extra, arte, Phoenix
+T 602000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 626000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH40: RTL Television, RTL2, Super RTL, VOX
+T 674000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH53: HH1, Eurosport, Terra Nova, Neun Live
+T 738000000 8MHz 3/4 AUTO QAM16 8k 1/4 NONE #ZDF, Doku/KiKa, Info/3sat
+T 754000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # CH56: NDR, MDR, WDR, hr
+T 786000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
diff --git a/util/scan/dvb-t/de-Hannover b/util/scan/dvb-t/de-Hannover
new file mode 100644
index 0000000..af838a0
--- /dev/null
+++ b/util/scan/dvb-t/de-Hannover
@@ -0,0 +1,7 @@
+# DVB-T Hannover -- info from http://www.skyplus.seyen.de/DVB-T.html
+T 198500000 7MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 490000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 498000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 530000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 594000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 658000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
diff --git a/util/scan/dvb-t/de-Kassel b/util/scan/dvb-t/de-Kassel
new file mode 100644
index 0000000..09958ab
--- /dev/null
+++ b/util/scan/dvb-t/de-Kassel
@@ -0,0 +1,31 @@
+# DVB-T, Germany, Nordhessen, Region Kassel
+###########################################
+
+# broadcasting started 29.06.2006
+
+# broadcasting on 3 frequencies: 562KHz, 642KHz, 746KHz
+
+# broacasting stations: Hoher Meissner, Habichtswald
+
+# available programs:-------------
+# ARD
+# ZDF
+# arte/EinsFestival
+# 3sat
+# HR
+# NDR
+# MDR
+# WDR
+# Phoenix
+# Doku/KiKa
+
+##################################################################################
+
+# ARD, HR, arte/EinsFestival
+T 562000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
+
+# ZDF, 3sat, Doku/KiKa
+T 642000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+
+# Phoenix, NDR, MDR, WDR
+T 746000000 8MHz 3/4 NONE QAM16 8k 1/4 NONE
diff --git a/util/scan/dvb-t/de-Kiel b/util/scan/dvb-t/de-Kiel
new file mode 100644
index 0000000..da13fb4
--- /dev/null
+++ b/util/scan/dvb-t/de-Kiel
@@ -0,0 +1,8 @@
+# DVB-T Kiel
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 474000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # Kanal 21, ZDF, ZDFInfokanal/3Sat, KI.KA/ ZDFdokukanal, MHP: ZDFdigitext
+T 586000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # Kanal 35, Kabel 1, N24, ProSieben, SAT.1 Fernsehen
+T 618000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # Kanal 39, NDR, WDR, mdr, Bayerisches Fernsehen
+T 666000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # Kanal 45, RTL Television, RTL II, Super RTL, VOX
+T 682000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # Kanal 47, ARD, Phoenix, arte, Eins Extra
+T 762000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # Kanal 57, EuroSport, 9Live, TELE 5
diff --git a/util/scan/dvb-t/de-Koeln-Bonn b/util/scan/dvb-t/de-Koeln-Bonn
new file mode 100644
index 0000000..78aa56a
--- /dev/null
+++ b/util/scan/dvb-t/de-Koeln-Bonn
@@ -0,0 +1,9 @@
+# DVB-T NRW/Bonn
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 514000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 538000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 594000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 650000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 698000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 706000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 826000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
diff --git a/util/scan/dvb-t/de-Leipzig b/util/scan/dvb-t/de-Leipzig
new file mode 100644
index 0000000..870ae15
--- /dev/null
+++ b/util/scan/dvb-t/de-Leipzig
@@ -0,0 +1,5 @@
+# DVB-T Leipzig (Germany)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 205500000 7MHz 2/3 NONE QAM64 8k 1/16 NONE # mdr rbb wdr brs
+T 482000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # zdf kika 3sat
+T 498000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # ard einsfestival arte phoenix
diff --git a/util/scan/dvb-t/de-Loerrach b/util/scan/dvb-t/de-Loerrach
new file mode 100644
index 0000000..705a71f
--- /dev/null
+++ b/util/scan/dvb-t/de-Loerrach
@@ -0,0 +1,19 @@
+# DVB-T transmitter of Lörrach - Germany
+# signal DVB-T transmis depuis l'émetteur de Lörrach - Allemagne
+#
+# Fichier réalisé par :
+# IUT COLMAR DEPARTEMENT RESEAUX ET TELECOMMUNICATIONS
+# Novembre 2007
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+
+# Chaînes allemandes
+
+# ch 33 : 3sat, Doku/KiKa, ZDF, ZDFinfokanal
+T 570000000 8MHz AUTO NONE QAM16 8k AUTO NONE
+
+# ch 39 : SWR Fernsehen BW, hr-fernsehen, WDR Fernsehen et Bayerisches FS
+T 618000000 8MHz AUTO NONE QAM16 8k AUTO NONE
+
+# ch 52 : Das Erste, arte (Allemagne), Phoenix et EinsPlus
+T 722000000 8MHz AUTO NONE QAM16 8k AUTO NONE
diff --git a/util/scan/dvb-t/de-Luebeck b/util/scan/dvb-t/de-Luebeck
new file mode 100644
index 0000000..5779502
--- /dev/null
+++ b/util/scan/dvb-t/de-Luebeck
@@ -0,0 +1,7 @@
+# DVB-T Lübeck
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 490000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
+T 530000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
+T 546000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
+T 570000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
+T 626000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
diff --git a/util/scan/dvb-t/de-Muenchen b/util/scan/dvb-t/de-Muenchen
new file mode 100644
index 0000000..9fee24b
--- /dev/null
+++ b/util/scan/dvb-t/de-Muenchen
@@ -0,0 +1,10 @@
+# DVB-T Muenchen/Bayern
+# by Christoph Anton Mitterer (cam@mathematica.scientia.net)
+# http://christoph.anton.mitterer.name/
+
+T 212500000 7MHz 3/4 NONE QAM16 8k 1/4 NONE
+T 578000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 586000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 690000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 754000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 834000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
diff --git a/util/scan/dvb-t/de-Nuernberg b/util/scan/dvb-t/de-Nuernberg
new file mode 100644
index 0000000..39eb56f
--- /dev/null
+++ b/util/scan/dvb-t/de-Nuernberg
@@ -0,0 +1,8 @@
+# DVB-T Nuernberg
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 184500000 7MHz 3/4 NONE QAM16 8k 1/4 NONE # ard
+T 578000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # zdf
+T 626000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # prosieben
+T 778000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # br
+T 786000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # franken
+T 834000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # rtl
diff --git a/util/scan/dvb-t/de-Osnabrueck b/util/scan/dvb-t/de-Osnabrueck
new file mode 100644
index 0000000..9bbb58e
--- /dev/null
+++ b/util/scan/dvb-t/de-Osnabrueck
@@ -0,0 +1,5 @@
+# DVB-T Osnabrueck/Lingen
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 634000000 8MHz 2/3 AUTO QAM16 8k 1/4 NONE
+T 778000000 8MHz 2/3 AUTO QAM16 8k 1/4 NONE
+T 602000000 8MHz 2/3 AUTO QAM16 8k 1/4 NONE
diff --git a/util/scan/dvb-t/de-Ostbayern b/util/scan/dvb-t/de-Ostbayern
new file mode 100644
index 0000000..2c5bdf5
--- /dev/null
+++ b/util/scan/dvb-t/de-Ostbayern
@@ -0,0 +1,11 @@
+# DVB-T Ostbayern/Bayern
+# for the Region around Regensburg, Straubing, Cham, Zwiesel, Freyung, Passau, Pfarrkirchen
+# Thorsten Pinz (tom_p at gmx.de)
+
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 191500000 7MHz 3/4 NONE QAM16 8k 1/4 NONE #K07, ARD (Hohe Linie, Hoher Bogen, Brotjackelriegel)
+T 522000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE #K27, BR (Pfarrkirchen, Brotjackelriegel)
+T 530000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE #K28, BR (Hohe Linie, Hoher Bogen)
+T 570000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE #K33, ZDF (Hoher Bogen, Brotjackelriegel, Pfarrkirchen)
+T 626000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE #K40, ARD (Pfarrkirchen)
+T 730000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE #K53, ZDF (Hohe Linie)
diff --git a/util/scan/dvb-t/de-Ravensburg b/util/scan/dvb-t/de-Ravensburg
new file mode 100644
index 0000000..9482448
--- /dev/null
+++ b/util/scan/dvb-t/de-Ravensburg
@@ -0,0 +1,8 @@
+# DVB-T Ravensburg/Bodensee
+# T freq bw fec_hi fec_lo mod transmission-mode guard-i
+T 474000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 498000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 578000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 482000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 626000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 650000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
diff --git a/util/scan/dvb-t/de-Rostock b/util/scan/dvb-t/de-Rostock
new file mode 100644
index 0000000..8e2dc75
--- /dev/null
+++ b/util/scan/dvb-t/de-Rostock
@@ -0,0 +1,4 @@
+# DVB-T Rostock
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 538000000 8MHz 2/3 1/2 QAM16 8k 1/4 NONE # ARD / NDR
+T 674000000 8MHz 2/3 1/2 QAM16 8k 1/4 NONE # ZDF
diff --git a/util/scan/dvb-t/de-Ruhrgebiet b/util/scan/dvb-t/de-Ruhrgebiet
new file mode 100644
index 0000000..0f3821c
--- /dev/null
+++ b/util/scan/dvb-t/de-Ruhrgebiet
@@ -0,0 +1,19 @@
+# DVB-T Düsseldorf/Ruhrgebiet
+# Not everyone in this area will be able to tune on the last
+# 3 frequencies, as they are not broadcasted in the whole area.
+# See http://nrw.ueberallfernsehen.de/fileadmin/images/programmbelegung_ddrf.gif
+# for details on regional availability.
+#
+# Updated to the new settings, I do not know how long this file has not been updatet,
+# but now it's done and I hope everyone will now be able to recieve ARD, arte, Phoenix
+# and Eins-Festival out of the box now.
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 538000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # Düsseldorf, Wesel, Essen, Langenberg, Dortmund
+T 586000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # Düsseldorf, Wesel, Essen, Langenberg, Dortmund
+T 722000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # Düsseldorf, Wesel, Essen, Langenberg, Dortmund
+T 746000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # Düsseldorf, Wesel, Essen, Langenberg, Dortmund
+T 690000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # Düsseldorf, Wesel, Essen, Langenberg, Dortmund, Kleve
+T 506000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # Langenberg, Dortmund
+T 674000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE # Düsseldorf, Wesel, Langenberg
+T 778000000 8MHz 2/3 NONE QAM16 8k 1/8 NONE # Essen, Gelsenkirchen, Scholven
diff --git a/util/scan/dvb-t/de-Schwerin b/util/scan/dvb-t/de-Schwerin
new file mode 100644
index 0000000..9f0ffd8
--- /dev/null
+++ b/util/scan/dvb-t/de-Schwerin
@@ -0,0 +1,4 @@
+# DVB-T Schwerin M/V
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 514000000 8MHz 3/4 AUTO QAM16 8k 1/4 NONE #ARD, MDR S-Anhalt, NDR MV, NDR SH, rbb Berlin
+T 738000000 8MHz 3/4 AUTO QAM16 8k 1/4 NONE #ZDF, Doku/KiKa, Info/3sat
diff --git a/util/scan/dvb-t/de-Stuttgart b/util/scan/dvb-t/de-Stuttgart
new file mode 100644
index 0000000..ea2676b
--- /dev/null
+++ b/util/scan/dvb-t/de-Stuttgart
@@ -0,0 +1,6 @@
+# DVB-T Stuttgart
+# by Joerg Marhenke (joerg.marhenke@uni-ulm.de)
+
+T 522000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 706000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 730000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE
diff --git a/util/scan/dvb-t/de-Wuerzburg b/util/scan/dvb-t/de-Wuerzburg
new file mode 100644
index 0000000..ff7e77b
--- /dev/null
+++ b/util/scan/dvb-t/de-Wuerzburg
@@ -0,0 +1,7 @@
+# DVB-T Wuerzburg/Bayern
+#Thorsten Becker (thorsten.becker@cloupage.de)
+
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 212500000 7MHz 3/4 NONE QAM16 8k 1/4 NONE #K10, ARD
+T 506000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE #K25, ZDF
+T 666000000 8MHz 2/3 NONE QAM16 8k 1/4 NONE #K45, BR
diff --git a/util/scan/dvb-t/dk-All b/util/scan/dvb-t/dk-All
new file mode 100644
index 0000000..135c043
--- /dev/null
+++ b/util/scan/dvb-t/dk-All
@@ -0,0 +1,16 @@
+# Denmark, whole country
+# Created from http://www.digi-tv.dk/Indhold_og_tilbud/frekvenser.asp
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 538000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 738000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 826000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/es-Albacete b/util/scan/dvb-t/es-Albacete
new file mode 100644
index 0000000..ea67c6f
--- /dev/null
+++ b/util/scan/dvb-t/es-Albacete
@@ -0,0 +1,8 @@
+# Spain, Albacete
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 778000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 59: La Primera, La 2, Canal 24H, Clan/TVE 50, RNE1, RNE Clásica, RNE 3
+T 810000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 63: CLMTV
+T 834000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 66: Veo, Veo 2, Net TV, Teledeporte
+T 842000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 67: Cuatro, CNN+, 40 Latino, La Sexta 1
+T 850000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 68: Telecinco, Telecinco Sport, Telecinco Estrellas, Fly Music
+T 858000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 69: Antena 3, Antena Neox, Antena Nova, La Sexta 2
diff --git a/util/scan/dvb-t/es-Alfabia b/util/scan/dvb-t/es-Alfabia
new file mode 100644
index 0000000..dc2956c
--- /dev/null
+++ b/util/scan/dvb-t/es-Alfabia
@@ -0,0 +1,8 @@
+# DVB-T Alfabia, Mallorca, Balearic Islands, Spain.
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 810000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C.63: 24h, 50 aniv., ClanTV, La 2, TVE1; RNE 1, RNE 3, RNE C; Digitext, EPG, Lanzadera.
+T 826000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C.65: IB3, Aprenda Ingles TV
+T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C.66: NetTV, Teledeporte, VeoTV1, VeoTV2.
+T 842000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C.67: 40 Latino TV, CNN+, Cuatro, La Sexta 1.
+T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C.68: Fly Music, Tele 5, Tele 5 Estrellas, Tele 5 Sport.
+T 858000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C.69: Antena 3, La Sexta 2, Neox, Nova.
diff --git a/util/scan/dvb-t/es-Alicante b/util/scan/dvb-t/es-Alicante
new file mode 100644
index 0000000..a804b38
--- /dev/null
+++ b/util/scan/dvb-t/es-Alicante
@@ -0,0 +1,9 @@
+# DVB-T Alicante, Spain
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 746000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 55: TV3, K33/33, 3/24, Canal 300
+T 770000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 58: La Primera, La 2, Canal 24H, Clan/TVE 50, RNE1, RNE Clásica, RNE 3
+T 810000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 63: Telemadrid, La Otra, Onda 6
+T 834000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 66: Veo, Veo 2, Net TV, Teledeporte
+T 842000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 67: Cuatro, CNN+, 40 Latino, La Sexta 1
+T 850000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 68: Telecinco, Telecinco Sport, Telecinco Estrellas, Fly Music
+T 858000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 69: Antena 3, Antena Neox, Antena Nova, La Sexta 2
diff --git a/util/scan/dvb-t/es-Alpicat b/util/scan/dvb-t/es-Alpicat
new file mode 100644
index 0000000..ffdf7a3
--- /dev/null
+++ b/util/scan/dvb-t/es-Alpicat
@@ -0,0 +1,8 @@
+# DVB-T Alpicat (Lleida)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # c58: TV3, K3/33, 3/24, 300, 3i
+T 818000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # c64: TVE1, TVE2, Teledeporte, C24h
+T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # c66: TVE ClanTV, TVE 50a, Veo1, Veo2, Net
+T 842000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # c67: Cuatro, 40Latino, CNN+, LaSexta 1
+T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # c68: T5, T5 Sports, T5 Estrellas, Net Fly Music
+T 858000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # c69: Antena3, Antena.Neox, Antena.Nova, La Sexta 2
diff --git a/util/scan/dvb-t/es-Asturias b/util/scan/dvb-t/es-Asturias
new file mode 100644
index 0000000..f5069df
--- /dev/null
+++ b/util/scan/dvb-t/es-Asturias
@@ -0,0 +1,8 @@
+# DVB-T Asturias
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # TPA TPA2
+T 818000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # TVE 1, TVE 2, 24H TVE, CLAN/50 TVE, RNE1, RNE CLASICA, RNE3
+T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # TELEDEPORTE, VEO TV, VEO 2, NET TV
+T 842000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CUATRO, CNN+, 40 LATINO, LA SEXTA 1
+T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # TELECINCO, T5 ESTRELLAS, T5 SPORT, FLYMUSIC
+T 858000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # ANTENA 3, ANTENA.NEOX, ANTENA.NOVA, LA SEXTA 2
diff --git a/util/scan/dvb-t/es-Bilbao b/util/scan/dvb-t/es-Bilbao
new file mode 100644
index 0000000..6d1b18a
--- /dev/null
+++ b/util/scan/dvb-t/es-Bilbao
@@ -0,0 +1,6 @@
+T 842000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 67: CNN+. Cuatro, La Sexta, 40 latino TV
+T 858000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 69: Antena 3, La Sexta 2, Neo, Nova, Telehit, Onda Cero, Europa FM, Onda Melodia
+T 810000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 63: La Primera, La 2, Canal 24H, Clan/TVE 50, RNE1, RNE Clásica, RNE 3
+T 834000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 66: Veo, Veo 2, Net TV, Teledeporte
+T 850000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 68: Telecinco, Telecinco Sport, Telecinco Estrellas, Fly Music
+T 794000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 61: ETB1, ETB2, ETB-Sat, Canal Vasco, Euskadi Irratia, Radio Euskadi, Euskadi Gastea, Radio EITB
diff --git a/util/scan/dvb-t/es-Carceres b/util/scan/dvb-t/es-Carceres
new file mode 100644
index 0000000..6755954
--- /dev/null
+++ b/util/scan/dvb-t/es-Carceres
@@ -0,0 +1,10 @@
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 618000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 39: 8Madrid, TMT-Popular TV, Kiss TV, Intereconomía TV
+T 706000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 50: EsMadrid TV, Ver-t, EM2, Libertad Digital TV
+T 770000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 58: La Primera, La 2, Canal 24H, Clan/TVE 50, RNE1, RNE Clásica, RNE 3
+T 810000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 63: Telemadrid, La Otra, Onda 6
+T 834000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 66: Veo, Veo 2, Net TV, Teledeporte
+T 842000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 67: Cuatro, CNN+, 40 Latino, La Sexta 1
+T 850000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 68: Telecinco, Telecinco Sport, Telecinco Estrellas, Fly Music
+T 858000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 69: Antena 3, Antena Neox, Antena Nova, La Sexta 2
+T 794000000 8Mhz 2/3 1/2 QAM64 8K 1/4 NONE # Canal 61: Canal Extremadura, Extremadura Television
diff --git a/util/scan/dvb-t/es-Collserola b/util/scan/dvb-t/es-Collserola
index 04ffe54..bec8c8b 100644
--- a/util/scan/dvb-t/es-Collserola
+++ b/util/scan/dvb-t/es-Collserola
@@ -1,6 +1,10 @@
# DVB-T Collserola (Barcelona)
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 650000000 8MHz 2/3 2/3 QAM64 8k 1/32 NONE # C43: tvc
-T 794000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C61: tve, t5, a3, c+
-T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C66: veotv, nettv
-
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c26: BTV
+T 570000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c33: CityTV
+T 794000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c61: TV3, K3/33, 3/24, 300
+T 818000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c64: TVE1, TVE2, TVE 24H, Clan/TVE 50 Años, RNE1, RNEC, RNE3
+T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c66: Veo TV, Veo2, Net TV, Teledeporte
+T 842000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c67: Cuatro, CNN+, 40 Latino, La Sexta1
+T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c68: Telecino, T5 Sport, T5 Estrellas, Fly Music
+T 858000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #c69: Antena 3, Antena.Neox, Antena.Nova, La Sexta2
diff --git a/util/scan/dvb-t/es-Donostia b/util/scan/dvb-t/es-Donostia
new file mode 100644
index 0000000..7ea5f50
--- /dev/null
+++ b/util/scan/dvb-t/es-Donostia
@@ -0,0 +1,14 @@
+# The channels with 1/32 guard-interval are French and should be perfectly visible
+# here. However I have only managed to get a lock for the channel 57 of the French ones.
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 562000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 32: CNN+, Cuatro, La Sexta 1, 40 Latino TV, EPG Soge V2 5
+T 626000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 40: Antena 3, Antena.Neox, Antena.Nova, Telehit, Onda Cero, Europa FM, Onda Melodia, A3Lanzadera, A3Portal, EPGA3, A3Ticker
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # Canal 42: Direct8, TMC, BFM, iTele, Europe2TV, Gulli
+T 698000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # Canal 49: M6, W9, NT1
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # Canal 51: Canal+, Canal+ Cinema, Canal+ Sport
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # Canal 57: TF1, NRJ12, Eurosport, TPS Star, LCI
+T 786000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 60: ETB1, ETB2, ETB-Sat, Canal Vasco, Euskadi Irratia, Radio Euskadi, Euskadi Gaztea, Radio Etb, TGov, Eguraldi
+T 810000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 63: TVE1, TVE2, 24H TVE, Clan/TVE 50 anos, RNE, RNEC, RNE3, Lanzadera, EPG, Digitext, Meteo, Bolsa, Trafico, Empleat
+T 826000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE # Canal 65: France 2, France 3, France 4, France 5, Arte, LCP
+T 834000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 66: Net TV, Teledeporte, Veo TV1, Veo TV2, Lanzadera, EPG, Digitext, Meteo, Bolsa, Trafico, Empleat
+T 850000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 68: Fly Music, Tele 5, Tele 5 Estrellas, Tele 5 Sport
diff --git a/util/scan/dvb-t/es-Las_Palmas b/util/scan/dvb-t/es-Las_Palmas
new file mode 100644
index 0000000..0475937
--- /dev/null
+++ b/util/scan/dvb-t/es-Las_Palmas
@@ -0,0 +1,8 @@
+# Funciona correctamente en Las Palmas de Gran Canaria (24-4-2007)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 786000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 60: TVE1, TVE2, 24H TVE, Clan/TVE, RNE, RNEC, RNE3, Lanzadera, EPG, Digitext, Meteo, Bolsa, Trafico, Empleat
+T 826000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # Canal 65: TV C, TV C2
+T 834000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 66: Net TV, Teledeporte, Veo TV1, SETenVeo, Radio Intereconomía Lanzadera, EPG, Digitext, Meteo, Bolsa, Trafico, Empleat
+T 842000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 67: CNN+, Cuatro, La Sexta 1, 40 Latino TV, EPG Soge V2 5
+T 850000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 68: Fly Music, Punto Radio, Tele 5, Tele 5 Estrellas, Tele 5 Sport
+T 858000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 69: Antena 3, Antena.Neox, Antena.Nova, Telehit, Onda Cero, Europa FM, Onda Melodia, A3Lanzadera, A3Portal, EPGA3, A3Ticker
diff --git a/util/scan/dvb-t/es-Lugo b/util/scan/dvb-t/es-Lugo
new file mode 100644
index 0000000..7b76544
--- /dev/null
+++ b/util/scan/dvb-t/es-Lugo
@@ -0,0 +1,9 @@
+# DVB-T Lugo (Centro emisor Paramo) - Rev. 1.2 - 11.12.05
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # TVE 1, TVE 2, 24H TVE, CLAN/50 TVE, RNE1, RNE CLASICA, RNE3
+T 810000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # TVG, GALICIA TV AMERICA, RADIO GALEGA, R.GALEGA MUSICA, SON GALICIA RADIO, PROBAS RETEGAL
+T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # TELEDEPORTE, VEO TV, VEO 2, NET TV
+T 842000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # CUATRO, CNN+, 40 LATINO, LA SEXTA 1
+T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # TELECINCO, T5 ESTRELLAS, T5 SPORT, FLYMUSIC
+T 858000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # ANTENA 3, ANTENA.NEOX, ANTENA.NOVA, LA SEXTA 2
diff --git a/util/scan/dvb-t/es-Madrid b/util/scan/dvb-t/es-Madrid
new file mode 100644
index 0000000..5834bd1
--- /dev/null
+++ b/util/scan/dvb-t/es-Madrid
@@ -0,0 +1,8 @@
+T 618000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 39: 8Madrid, TMT-Popular TV, Kiss TV, Intereconomía TV
+T 706000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 50: EsMadrid TV, Ver-t, EM2, Libertad Digital TV
+T 770000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 58: La Primera, La 2, Canal 24H, Clan/TVE 50, RNE1, RNE Clásica, RNE 3
+T 810000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 63: Telemadrid, La Otra, Onda 6
+T 834000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 66: Veo, Veo 2, Net TV, Teledeporte
+T 842000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 67: Cuatro, CNN+, 40 Latino, La Sexta 1
+T 850000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 68: Telecinco, Telecinco Sport, Telecinco Estrellas, Fly Music
+T 858000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 69: Antena 3, Antena Neox, Antena Nova, La Sexta 2
diff --git a/util/scan/dvb-t/es-Malaga b/util/scan/dvb-t/es-Malaga
new file mode 100644
index 0000000..7da1610
--- /dev/null
+++ b/util/scan/dvb-t/es-Malaga
@@ -0,0 +1,9 @@
+# DVB-T Malaga (Andalucia) by Pedro Leon 4 Mayo 2007
+# T freq bw fec_hi fec_lo mod transm-mode guard-interval hierarchy
+T 762000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # C57 La Primera, La 2, Canal 24H, Clan/TVE 50, RNE1, RNE Clásica, RNE 3
+T 810000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # C63 Canal Sur, Canal 2 Andalucia
+T 834000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # C66 TELEDEPORTE, VEO, *Canal Ingenieria, SETenVEO, Tienda en VEO, NET TV, Radio Intereconomia
+T 842000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # C67 CUATRO, CNN+, 40 LATINO, laSexta
+T 850000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # C68 Telecinco, T5 Estrellas, T5 Sport, FLYMUSIC, PUNTO RADIO
+T 858000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # C69 ANTENA 3, ANTENA.NEOX, ANTENA.NOVA, *tvtv DIGITAL, ONDA CERO, EUROPA FM, ONDA MELODIA, Telehit
+# * Canales de datos o MHT
diff --git a/util/scan/dvb-t/es-Mussara b/util/scan/dvb-t/es-Mussara
new file mode 100644
index 0000000..9feb073
--- /dev/null
+++ b/util/scan/dvb-t/es-Mussara
@@ -0,0 +1,8 @@
+# DVB-T La Mussara (Reus-Tarragona)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # c59: TV3, K3/33, 3/24, 300, 3i
+T 818000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # c64: TVE1, TVE2, Teledeporte, C24h
+T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # c66: TVE ClanTV, TVE 50a, Veo1, Veo2, Net
+T 842000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # c67: Cuatro, 40Latino, CNN+, LaSexta 1
+T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # c68: T5, T5 Sports, T5 Estrellas, Net Fly Music
+T 858000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # c69: Antena3, Antena.Neox, Antena.Nova, La Sexta 2
diff --git a/util/scan/dvb-t/es-Rocacorba b/util/scan/dvb-t/es-Rocacorba
new file mode 100644
index 0000000..8eebbbf
--- /dev/null
+++ b/util/scan/dvb-t/es-Rocacorba
@@ -0,0 +1,6 @@
+# DVB-T Rocacorba (Girona)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # TVE 1, TVE 2, ANTENA 3, TELECINCO, CUATRO
+T 818000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # TV3, K3/33, 3XL.NET, 3/24, CANAL PILOT
+T 842000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # SERVICIO PRUEBAS CANAL 67
+T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE #
diff --git a/util/scan/dvb-t/es-Santander b/util/scan/dvb-t/es-Santander
new file mode 100644
index 0000000..94326d4
--- /dev/null
+++ b/util/scan/dvb-t/es-Santander
@@ -0,0 +1,7 @@
+# file automatically generated by w_scan
+# (http://wirbel.htpc-forum.de/w_scan/index2.html)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 770000000 8MHz 2/3 2/3 QAM64 8k 1/4 NONE
+T 834000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE
+T 842000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE
+T 850000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/es-Sevilla b/util/scan/dvb-t/es-Sevilla
new file mode 100644
index 0000000..1011dec
--- /dev/null
+++ b/util/scan/dvb-t/es-Sevilla
@@ -0,0 +1,8 @@
+# DVB-T Sevilla (Andalucia) by x2 15 Agosto 2006
+# T freq bw fec_hi fec_lo mod transm-mode guard-interval hierarchy
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C57
+T 794000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C61
+T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C66
+T 842000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C67
+T 850000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C68
+T 858000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C69
diff --git a/util/scan/dvb-t/es-Valladolid b/util/scan/dvb-t/es-Valladolid
new file mode 100644
index 0000000..25cb74a
--- /dev/null
+++ b/util/scan/dvb-t/es-Valladolid
@@ -0,0 +1,7 @@
+# DVB-T Valladolid
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 762000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 57: Clan TVE, 24H TVE, La 2, TVE 1, RNE1, RNE3, RNC
+T 834000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 66: Veo, Veo 2, Net TV, Teledeporte
+T 842000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 67: Cuatro, CNN+, 40 Latino, La Sexta 1
+T 850000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 68: Telecinco, Telecinco Sport, Telecinco Estrellas, Fly Music
+T 858000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 69: Antena 3, Antena Neox, Antena Nova, La Sexta 2
diff --git a/util/scan/dvb-t/es-Vilamarxant b/util/scan/dvb-t/es-Vilamarxant
new file mode 100644
index 0000000..a3867c1
--- /dev/null
+++ b/util/scan/dvb-t/es-Vilamarxant
@@ -0,0 +1,4 @@
+# DVB-T Vilamarxant, Valencia, C. Valenciana, Spain.
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/es-Zaragoza b/util/scan/dvb-t/es-Zaragoza
new file mode 100644
index 0000000..95588b6
--- /dev/null
+++ b/util/scan/dvb-t/es-Zaragoza
@@ -0,0 +1,7 @@
+# DVB-T Zaragoza (Aragón) [Spain] [es-Zaragoza]
+# Generated by Víctor Martínez Romanos <vmromanos@gmail.com>
+T 794000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 63: TVE 1, TVE 2, 24H, CLAN/50, RNE1, RNEC, RNE3
+T 834000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 66: TELEDEPORTE, VEO TV, VEO 2, NET TV
+T 842000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 67: CUATRO, CNN+, 40 LATINO, LA SEXTA 1
+T 850000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 68: T5 ESTRELLAS, T5 SPORT, TELECINCO, FLYMUSIC
+T 858000000 8MHz 2/3 1/2 QAM64 8k 1/4 NONE # Canal 69: ANTENA 3, ANTENA.NEOX, ANTENA.NOVA, LA SEXTA 2
diff --git a/util/scan/dvb-t/fi-Aanekoski b/util/scan/dvb-t/fi-Aanekoski
new file mode 100644
index 0000000..e1513fe
--- /dev/null
+++ b/util/scan/dvb-t/fi-Aanekoski
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 730000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 826000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Aanekoski_Konginkangas b/util/scan/dvb-t/fi-Aanekoski_Konginkangas
new file mode 100644
index 0000000..af7c892
--- /dev/null
+++ b/util/scan/dvb-t/fi-Aanekoski_Konginkangas
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Ahtari b/util/scan/dvb-t/fi-Ahtari
new file mode 100644
index 0000000..12a4150
--- /dev/null
+++ b/util/scan/dvb-t/fi-Ahtari
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 722000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Ala-Vuokki b/util/scan/dvb-t/fi-Ala-Vuokki
new file mode 100644
index 0000000..1e3b99f
--- /dev/null
+++ b/util/scan/dvb-t/fi-Ala-Vuokki
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 698000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Alajarvi b/util/scan/dvb-t/fi-Alajarvi
new file mode 100644
index 0000000..9704ea5
--- /dev/null
+++ b/util/scan/dvb-t/fi-Alajarvi
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 730000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Ammansaari b/util/scan/dvb-t/fi-Ammansaari
new file mode 100644
index 0000000..80c1607
--- /dev/null
+++ b/util/scan/dvb-t/fi-Ammansaari
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Anjalankoski b/util/scan/dvb-t/fi-Anjalankoski
new file mode 100644
index 0000000..273bc92
--- /dev/null
+++ b/util/scan/dvb-t/fi-Anjalankoski
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 730000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Enontekio_Ahovaara_Raattama b/util/scan/dvb-t/fi-Enontekio_Ahovaara_Raattama
new file mode 100644
index 0000000..0985bcc
--- /dev/null
+++ b/util/scan/dvb-t/fi-Enontekio_Ahovaara_Raattama
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 570000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Espoo b/util/scan/dvb-t/fi-Espoo
index dd0619b..2764c44 100644
--- a/util/scan/dvb-t/fi-Espoo
+++ b/util/scan/dvb-t/fi-Espoo
@@ -1,3 +1,6 @@
-# Espoo A-mux (Digita Finland)
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
T 562000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 730000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Eurajoki b/util/scan/dvb-t/fi-Eurajoki
new file mode 100644
index 0000000..6ed4e1b
--- /dev/null
+++ b/util/scan/dvb-t/fi-Eurajoki
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 722000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 746000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Fiskars b/util/scan/dvb-t/fi-Fiskars
new file mode 100644
index 0000000..8e85e63
--- /dev/null
+++ b/util/scan/dvb-t/fi-Fiskars
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Haapavesi b/util/scan/dvb-t/fi-Haapavesi
new file mode 100644
index 0000000..6d8956b
--- /dev/null
+++ b/util/scan/dvb-t/fi-Haapavesi
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 730000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Hameenkyro_Kyroskoski b/util/scan/dvb-t/fi-Hameenkyro_Kyroskoski
new file mode 100644
index 0000000..91c5c53
--- /dev/null
+++ b/util/scan/dvb-t/fi-Hameenkyro_Kyroskoski
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 490000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Hameenlinna_Painokangas b/util/scan/dvb-t/fi-Hameenlinna_Painokangas
new file mode 100644
index 0000000..75278af
--- /dev/null
+++ b/util/scan/dvb-t/fi-Hameenlinna_Painokangas
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Hanko b/util/scan/dvb-t/fi-Hanko
new file mode 100644
index 0000000..a4430f5
--- /dev/null
+++ b/util/scan/dvb-t/fi-Hanko
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 746000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Hartola b/util/scan/dvb-t/fi-Hartola
new file mode 100644
index 0000000..817b1d4
--- /dev/null
+++ b/util/scan/dvb-t/fi-Hartola
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Heinavesi b/util/scan/dvb-t/fi-Heinavesi
new file mode 100644
index 0000000..1e26e70
--- /dev/null
+++ b/util/scan/dvb-t/fi-Heinavesi
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Heinola b/util/scan/dvb-t/fi-Heinola
new file mode 100644
index 0000000..a2e7f14
--- /dev/null
+++ b/util/scan/dvb-t/fi-Heinola
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 826000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Hetta b/util/scan/dvb-t/fi-Hetta
new file mode 100644
index 0000000..c9ccb85
--- /dev/null
+++ b/util/scan/dvb-t/fi-Hetta
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Houtskari b/util/scan/dvb-t/fi-Houtskari
new file mode 100644
index 0000000..78f636a
--- /dev/null
+++ b/util/scan/dvb-t/fi-Houtskari
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Hyrynsalmi b/util/scan/dvb-t/fi-Hyrynsalmi
new file mode 100644
index 0000000..cae406a
--- /dev/null
+++ b/util/scan/dvb-t/fi-Hyrynsalmi
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Hyrynsalmi_Kyparavaara b/util/scan/dvb-t/fi-Hyrynsalmi_Kyparavaara
new file mode 100644
index 0000000..cae406a
--- /dev/null
+++ b/util/scan/dvb-t/fi-Hyrynsalmi_Kyparavaara
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Hyrynsalmi_Paljakka b/util/scan/dvb-t/fi-Hyrynsalmi_Paljakka
new file mode 100644
index 0000000..afca845
--- /dev/null
+++ b/util/scan/dvb-t/fi-Hyrynsalmi_Paljakka
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Hyvinkaa_Musta-Mannisto b/util/scan/dvb-t/fi-Hyvinkaa_Musta-Mannisto
new file mode 100644
index 0000000..8776147
--- /dev/null
+++ b/util/scan/dvb-t/fi-Hyvinkaa_Musta-Mannisto
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 538000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 698000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Ii_Raiskio b/util/scan/dvb-t/fi-Ii_Raiskio
new file mode 100644
index 0000000..7b31831
--- /dev/null
+++ b/util/scan/dvb-t/fi-Ii_Raiskio
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Iisalmi b/util/scan/dvb-t/fi-Iisalmi
new file mode 100644
index 0000000..a6d3546
--- /dev/null
+++ b/util/scan/dvb-t/fi-Iisalmi
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Ikaalinen b/util/scan/dvb-t/fi-Ikaalinen
new file mode 100644
index 0000000..af90345
--- /dev/null
+++ b/util/scan/dvb-t/fi-Ikaalinen
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 538000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Ikaalinen_Riitiala b/util/scan/dvb-t/fi-Ikaalinen_Riitiala
new file mode 100644
index 0000000..320ef92
--- /dev/null
+++ b/util/scan/dvb-t/fi-Ikaalinen_Riitiala
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 738000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Inari b/util/scan/dvb-t/fi-Inari
new file mode 100644
index 0000000..39c9c0d
--- /dev/null
+++ b/util/scan/dvb-t/fi-Inari
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Ivalo_Saarineitamovaara b/util/scan/dvb-t/fi-Ivalo_Saarineitamovaara
new file mode 100644
index 0000000..53e2382
--- /dev/null
+++ b/util/scan/dvb-t/fi-Ivalo_Saarineitamovaara
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 490000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Jalasjarvi b/util/scan/dvb-t/fi-Jalasjarvi
new file mode 100644
index 0000000..0aa1215
--- /dev/null
+++ b/util/scan/dvb-t/fi-Jalasjarvi
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Jamsa_Kaipola b/util/scan/dvb-t/fi-Jamsa_Kaipola
new file mode 100644
index 0000000..7e4cb3b
--- /dev/null
+++ b/util/scan/dvb-t/fi-Jamsa_Kaipola
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 538000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Jamsa_Kuorevesi_Halli b/util/scan/dvb-t/fi-Jamsa_Kuorevesi_Halli
new file mode 100644
index 0000000..0a59e26
--- /dev/null
+++ b/util/scan/dvb-t/fi-Jamsa_Kuorevesi_Halli
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 570000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Jamsa_Matkosvuori b/util/scan/dvb-t/fi-Jamsa_Matkosvuori
new file mode 100644
index 0000000..03e1dd9
--- /dev/null
+++ b/util/scan/dvb-t/fi-Jamsa_Matkosvuori
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 538000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Jamsa_Ouninpohja b/util/scan/dvb-t/fi-Jamsa_Ouninpohja
new file mode 100644
index 0000000..b976550
--- /dev/null
+++ b/util/scan/dvb-t/fi-Jamsa_Ouninpohja
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 498000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Jamsankoski b/util/scan/dvb-t/fi-Jamsankoski
new file mode 100644
index 0000000..dfb94fb
--- /dev/null
+++ b/util/scan/dvb-t/fi-Jamsankoski
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Joensuu_Vestinkallio b/util/scan/dvb-t/fi-Joensuu_Vestinkallio
new file mode 100644
index 0000000..886380e
--- /dev/null
+++ b/util/scan/dvb-t/fi-Joensuu_Vestinkallio
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Joroinen_Puukkola b/util/scan/dvb-t/fi-Joroinen_Puukkola
new file mode 100644
index 0000000..f600e4b
--- /dev/null
+++ b/util/scan/dvb-t/fi-Joroinen_Puukkola
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Joutsa_Lankia b/util/scan/dvb-t/fi-Joutsa_Lankia
new file mode 100644
index 0000000..e0c7169
--- /dev/null
+++ b/util/scan/dvb-t/fi-Joutsa_Lankia
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Joutseno b/util/scan/dvb-t/fi-Joutseno
new file mode 100644
index 0000000..3e8d231
--- /dev/null
+++ b/util/scan/dvb-t/fi-Joutseno
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 586000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Juntusranta b/util/scan/dvb-t/fi-Juntusranta
new file mode 100644
index 0000000..80c1607
--- /dev/null
+++ b/util/scan/dvb-t/fi-Juntusranta
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Juupajoki_Kopsamo b/util/scan/dvb-t/fi-Juupajoki_Kopsamo
new file mode 100644
index 0000000..095a726
--- /dev/null
+++ b/util/scan/dvb-t/fi-Juupajoki_Kopsamo
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 490000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Jyvaskyla b/util/scan/dvb-t/fi-Jyvaskyla
new file mode 100644
index 0000000..a85ec1e
--- /dev/null
+++ b/util/scan/dvb-t/fi-Jyvaskyla
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 746000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Jyvaskylan_mlk_Vaajakoski b/util/scan/dvb-t/fi-Jyvaskylan_mlk_Vaajakoski
new file mode 100644
index 0000000..632acb4
--- /dev/null
+++ b/util/scan/dvb-t/fi-Jyvaskylan_mlk_Vaajakoski
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kaavi_Sivakkavaara_Luikonlahti b/util/scan/dvb-t/fi-Kaavi_Sivakkavaara_Luikonlahti
new file mode 100644
index 0000000..3c00447
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kaavi_Sivakkavaara_Luikonlahti
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kajaani_Pollyvaara b/util/scan/dvb-t/fi-Kajaani_Pollyvaara
new file mode 100644
index 0000000..c560b8c
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kajaani_Pollyvaara
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 722000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kalajoki b/util/scan/dvb-t/fi-Kalajoki
new file mode 100644
index 0000000..2dfe85a
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kalajoki
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kangaslampi b/util/scan/dvb-t/fi-Kangaslampi
new file mode 100644
index 0000000..343beb0
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kangaslampi
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kangasniemi_Turkinmaki b/util/scan/dvb-t/fi-Kangasniemi_Turkinmaki
new file mode 100644
index 0000000..6541b8d
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kangasniemi_Turkinmaki
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kankaanpaa b/util/scan/dvb-t/fi-Kankaanpaa
new file mode 100644
index 0000000..00813d2
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kankaanpaa
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Karigasniemi b/util/scan/dvb-t/fi-Karigasniemi
new file mode 100644
index 0000000..76dece6
--- /dev/null
+++ b/util/scan/dvb-t/fi-Karigasniemi
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 698000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Karkkila b/util/scan/dvb-t/fi-Karkkila
new file mode 100644
index 0000000..de76a2c
--- /dev/null
+++ b/util/scan/dvb-t/fi-Karkkila
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 698000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Karstula b/util/scan/dvb-t/fi-Karstula
new file mode 100644
index 0000000..2ad386e
--- /dev/null
+++ b/util/scan/dvb-t/fi-Karstula
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 722000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Karvia b/util/scan/dvb-t/fi-Karvia
new file mode 100644
index 0000000..6d325cf
--- /dev/null
+++ b/util/scan/dvb-t/fi-Karvia
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kaunispaa b/util/scan/dvb-t/fi-Kaunispaa
new file mode 100644
index 0000000..39c9c0d
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kaunispaa
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kemijarvi_Suomutunturi b/util/scan/dvb-t/fi-Kemijarvi_Suomutunturi
new file mode 100644
index 0000000..e3d091e
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kemijarvi_Suomutunturi
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kerimaki b/util/scan/dvb-t/fi-Kerimaki
new file mode 100644
index 0000000..b049818
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kerimaki
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 570000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Keuruu b/util/scan/dvb-t/fi-Keuruu
new file mode 100644
index 0000000..987e99b
--- /dev/null
+++ b/util/scan/dvb-t/fi-Keuruu
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 826000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Keuruu_Haapamaki b/util/scan/dvb-t/fi-Keuruu_Haapamaki
new file mode 100644
index 0000000..904aaf1
--- /dev/null
+++ b/util/scan/dvb-t/fi-Keuruu_Haapamaki
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kihnio b/util/scan/dvb-t/fi-Kihnio
new file mode 100644
index 0000000..bd1c15f
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kihnio
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 738000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kiihtelysvaara b/util/scan/dvb-t/fi-Kiihtelysvaara
new file mode 100644
index 0000000..b5c5126
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kiihtelysvaara
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kilpisjarvi b/util/scan/dvb-t/fi-Kilpisjarvi
new file mode 100644
index 0000000..083137a
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kilpisjarvi
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kittila_Sirkka_Levitunturi b/util/scan/dvb-t/fi-Kittila_Sirkka_Levitunturi
new file mode 100644
index 0000000..f35911f
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kittila_Sirkka_Levitunturi
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kolari_Vuolittaja b/util/scan/dvb-t/fi-Kolari_Vuolittaja
new file mode 100644
index 0000000..fd29f57
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kolari_Vuolittaja
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Koli b/util/scan/dvb-t/fi-Koli
new file mode 100644
index 0000000..8da50ba
--- /dev/null
+++ b/util/scan/dvb-t/fi-Koli
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Korpilahti_Vaarunvuori b/util/scan/dvb-t/fi-Korpilahti_Vaarunvuori
new file mode 100644
index 0000000..dfb94fb
--- /dev/null
+++ b/util/scan/dvb-t/fi-Korpilahti_Vaarunvuori
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Korppoo b/util/scan/dvb-t/fi-Korppoo
new file mode 100644
index 0000000..78f636a
--- /dev/null
+++ b/util/scan/dvb-t/fi-Korppoo
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kruunupyy b/util/scan/dvb-t/fi-Kruunupyy
new file mode 100644
index 0000000..d4b7164
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kruunupyy
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kuhmo_Iivantiira b/util/scan/dvb-t/fi-Kuhmo_Iivantiira
new file mode 100644
index 0000000..1fe56f2
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kuhmo_Iivantiira
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 490000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Gavle b/util/scan/dvb-t/fi-Kuhmo_Lentiira
index 04fe333..8396dd6 100644
--- a/util/scan/dvb-t/se-Gavle
+++ b/util/scan/dvb-t/fi-Kuhmo_Lentiira
@@ -1,6 +1,4 @@
-# Gavle (Senda/Boxer Sweden)
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
T 498000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
T 562000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
-T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kuhmoinen b/util/scan/dvb-t/fi-Kuhmoinen
new file mode 100644
index 0000000..da26764
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kuhmoinen
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kuhmoinen_Harjunsalmi b/util/scan/dvb-t/fi-Kuhmoinen_Harjunsalmi
new file mode 100644
index 0000000..2d8f5a0
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kuhmoinen_Harjunsalmi
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kuhmoinen_Puukkoinen b/util/scan/dvb-t/fi-Kuhmoinen_Puukkoinen
new file mode 100644
index 0000000..f62c9b7
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kuhmoinen_Puukkoinen
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kuopio b/util/scan/dvb-t/fi-Kuopio
new file mode 100644
index 0000000..a1b1259
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kuopio
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 498000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 722000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kustavi_Viherlahti b/util/scan/dvb-t/fi-Kustavi_Viherlahti
new file mode 100644
index 0000000..fc51088
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kustavi_Viherlahti
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 738000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kuttanen b/util/scan/dvb-t/fi-Kuttanen
new file mode 100644
index 0000000..09a14ca
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kuttanen
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 730000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Kyyjarvi_Noposenaho b/util/scan/dvb-t/fi-Kyyjarvi_Noposenaho
new file mode 100644
index 0000000..e3f877e
--- /dev/null
+++ b/util/scan/dvb-t/fi-Kyyjarvi_Noposenaho
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 586000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Lahti b/util/scan/dvb-t/fi-Lahti
new file mode 100644
index 0000000..23f3b29
--- /dev/null
+++ b/util/scan/dvb-t/fi-Lahti
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 570000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Lapua b/util/scan/dvb-t/fi-Lapua
new file mode 100644
index 0000000..77adecc
--- /dev/null
+++ b/util/scan/dvb-t/fi-Lapua
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 746000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Laukaa b/util/scan/dvb-t/fi-Laukaa
new file mode 100644
index 0000000..dfb94fb
--- /dev/null
+++ b/util/scan/dvb-t/fi-Laukaa
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Laukaa_Vihtavuori b/util/scan/dvb-t/fi-Laukaa_Vihtavuori
new file mode 100644
index 0000000..dfb94fb
--- /dev/null
+++ b/util/scan/dvb-t/fi-Laukaa_Vihtavuori
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Lavia_Lavianjarvi b/util/scan/dvb-t/fi-Lavia_Lavianjarvi
new file mode 100644
index 0000000..928b425
--- /dev/null
+++ b/util/scan/dvb-t/fi-Lavia_Lavianjarvi
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 498000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Lieksa_Vieki b/util/scan/dvb-t/fi-Lieksa_Vieki
new file mode 100644
index 0000000..1efc9d6
--- /dev/null
+++ b/util/scan/dvb-t/fi-Lieksa_Vieki
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 698000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Lohja b/util/scan/dvb-t/fi-Lohja
new file mode 100644
index 0000000..68287ee
--- /dev/null
+++ b/util/scan/dvb-t/fi-Lohja
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 746000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Loimaa b/util/scan/dvb-t/fi-Loimaa
new file mode 100644
index 0000000..c33efc8
--- /dev/null
+++ b/util/scan/dvb-t/fi-Loimaa
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 722000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Luhanka b/util/scan/dvb-t/fi-Luhanka
new file mode 100644
index 0000000..da39467
--- /dev/null
+++ b/util/scan/dvb-t/fi-Luhanka
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 490000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Luopioinen b/util/scan/dvb-t/fi-Luopioinen
new file mode 100644
index 0000000..486d21e
--- /dev/null
+++ b/util/scan/dvb-t/fi-Luopioinen
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Mantta b/util/scan/dvb-t/fi-Mantta
new file mode 100644
index 0000000..98a821b
--- /dev/null
+++ b/util/scan/dvb-t/fi-Mantta
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 722000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Mantyharju b/util/scan/dvb-t/fi-Mantyharju
new file mode 100644
index 0000000..adf0234
--- /dev/null
+++ b/util/scan/dvb-t/fi-Mantyharju
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 490000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Mikkeli b/util/scan/dvb-t/fi-Mikkeli
new file mode 100644
index 0000000..c3a9f91
--- /dev/null
+++ b/util/scan/dvb-t/fi-Mikkeli
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 538000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Muonio_Olostunturi b/util/scan/dvb-t/fi-Muonio_Olostunturi
new file mode 100644
index 0000000..5750553
--- /dev/null
+++ b/util/scan/dvb-t/fi-Muonio_Olostunturi
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Nilsia b/util/scan/dvb-t/fi-Nilsia
new file mode 100644
index 0000000..49fb2b9
--- /dev/null
+++ b/util/scan/dvb-t/fi-Nilsia
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Nilsia_Keski-Siikajarvi b/util/scan/dvb-t/fi-Nilsia_Keski-Siikajarvi
new file mode 100644
index 0000000..c48b094
--- /dev/null
+++ b/util/scan/dvb-t/fi-Nilsia_Keski-Siikajarvi
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 730000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Nilsia_Pisa b/util/scan/dvb-t/fi-Nilsia_Pisa
new file mode 100644
index 0000000..928b425
--- /dev/null
+++ b/util/scan/dvb-t/fi-Nilsia_Pisa
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 498000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Nokia b/util/scan/dvb-t/fi-Nokia
new file mode 100644
index 0000000..fa4e03d
--- /dev/null
+++ b/util/scan/dvb-t/fi-Nokia
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 746000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 826000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Nokia_Siuro_Linnavuori b/util/scan/dvb-t/fi-Nokia_Siuro_Linnavuori
new file mode 100644
index 0000000..448e837
--- /dev/null
+++ b/util/scan/dvb-t/fi-Nokia_Siuro_Linnavuori
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 746000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Nummi-Pusula_Hyonola b/util/scan/dvb-t/fi-Nummi-Pusula_Hyonola
new file mode 100644
index 0000000..db4ea87
--- /dev/null
+++ b/util/scan/dvb-t/fi-Nummi-Pusula_Hyonola
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Nurmes_Porokyla b/util/scan/dvb-t/fi-Nurmes_Porokyla
new file mode 100644
index 0000000..0585576
--- /dev/null
+++ b/util/scan/dvb-t/fi-Nurmes_Porokyla
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Orivesi_Langelmaki_Talviainen b/util/scan/dvb-t/fi-Orivesi_Langelmaki_Talviainen
new file mode 100644
index 0000000..86f4254
--- /dev/null
+++ b/util/scan/dvb-t/fi-Orivesi_Langelmaki_Talviainen
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 698000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Oulu b/util/scan/dvb-t/fi-Oulu
new file mode 100644
index 0000000..e0b88da
--- /dev/null
+++ b/util/scan/dvb-t/fi-Oulu
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 738000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Padasjoki b/util/scan/dvb-t/fi-Padasjoki
new file mode 100644
index 0000000..a0da8ab
--- /dev/null
+++ b/util/scan/dvb-t/fi-Padasjoki
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 570000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Padasjoki_Arrakoski b/util/scan/dvb-t/fi-Padasjoki_Arrakoski
new file mode 100644
index 0000000..de939c4
--- /dev/null
+++ b/util/scan/dvb-t/fi-Padasjoki_Arrakoski
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 498000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 746000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Paltamo_Kivesvaara b/util/scan/dvb-t/fi-Paltamo_Kivesvaara
new file mode 100644
index 0000000..ff6a17a
--- /dev/null
+++ b/util/scan/dvb-t/fi-Paltamo_Kivesvaara
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Parikkala b/util/scan/dvb-t/fi-Parikkala
new file mode 100644
index 0000000..3ae4451
--- /dev/null
+++ b/util/scan/dvb-t/fi-Parikkala
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Parkano b/util/scan/dvb-t/fi-Parkano
new file mode 100644
index 0000000..9bcd629
--- /dev/null
+++ b/util/scan/dvb-t/fi-Parkano
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Pello b/util/scan/dvb-t/fi-Pello
new file mode 100644
index 0000000..834dc84
--- /dev/null
+++ b/util/scan/dvb-t/fi-Pello
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Pello_Ratasvaara b/util/scan/dvb-t/fi-Pello_Ratasvaara
new file mode 100644
index 0000000..6255911
--- /dev/null
+++ b/util/scan/dvb-t/fi-Pello_Ratasvaara
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 698000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 730000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Perho b/util/scan/dvb-t/fi-Perho
new file mode 100644
index 0000000..de89309
--- /dev/null
+++ b/util/scan/dvb-t/fi-Perho
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Pernaja b/util/scan/dvb-t/fi-Pernaja
new file mode 100644
index 0000000..d63da78
--- /dev/null
+++ b/util/scan/dvb-t/fi-Pernaja
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 490000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Pieksamaki_Halkokumpu b/util/scan/dvb-t/fi-Pieksamaki_Halkokumpu
new file mode 100644
index 0000000..de3fed1
--- /dev/null
+++ b/util/scan/dvb-t/fi-Pieksamaki_Halkokumpu
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Pihtipudas b/util/scan/dvb-t/fi-Pihtipudas
new file mode 100644
index 0000000..30baf95
--- /dev/null
+++ b/util/scan/dvb-t/fi-Pihtipudas
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Porvoo_Suomenkyla b/util/scan/dvb-t/fi-Porvoo_Suomenkyla
new file mode 100644
index 0000000..d63da78
--- /dev/null
+++ b/util/scan/dvb-t/fi-Porvoo_Suomenkyla
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 490000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Posio b/util/scan/dvb-t/fi-Posio
new file mode 100644
index 0000000..8066848
--- /dev/null
+++ b/util/scan/dvb-t/fi-Posio
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Pudasjarvi b/util/scan/dvb-t/fi-Pudasjarvi
new file mode 100644
index 0000000..5ff8ecf
--- /dev/null
+++ b/util/scan/dvb-t/fi-Pudasjarvi
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Pudasjarvi_Iso-Syote b/util/scan/dvb-t/fi-Pudasjarvi_Iso-Syote
new file mode 100644
index 0000000..7281f29
--- /dev/null
+++ b/util/scan/dvb-t/fi-Pudasjarvi_Iso-Syote
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Pudasjarvi_Kangasvaara b/util/scan/dvb-t/fi-Pudasjarvi_Kangasvaara
new file mode 100644
index 0000000..a550248
--- /dev/null
+++ b/util/scan/dvb-t/fi-Pudasjarvi_Kangasvaara
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 538000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Puolanka b/util/scan/dvb-t/fi-Puolanka
new file mode 100644
index 0000000..5b611d5
--- /dev/null
+++ b/util/scan/dvb-t/fi-Puolanka
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Pyhatunturi b/util/scan/dvb-t/fi-Pyhatunturi
new file mode 100644
index 0000000..54c59f2
--- /dev/null
+++ b/util/scan/dvb-t/fi-Pyhatunturi
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Pyhavuori b/util/scan/dvb-t/fi-Pyhavuori
new file mode 100644
index 0000000..3d7adb9
--- /dev/null
+++ b/util/scan/dvb-t/fi-Pyhavuori
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 586000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Pylkonmaki_Karankajarvi b/util/scan/dvb-t/fi-Pylkonmaki_Karankajarvi
new file mode 100644
index 0000000..9577e38
--- /dev/null
+++ b/util/scan/dvb-t/fi-Pylkonmaki_Karankajarvi
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Raahe_Mestauskallio b/util/scan/dvb-t/fi-Raahe_Mestauskallio
new file mode 100644
index 0000000..30f86c6
--- /dev/null
+++ b/util/scan/dvb-t/fi-Raahe_Mestauskallio
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Raahe_Piehinki b/util/scan/dvb-t/fi-Raahe_Piehinki
new file mode 100644
index 0000000..2dfe85a
--- /dev/null
+++ b/util/scan/dvb-t/fi-Raahe_Piehinki
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Ranua_Haasionmaa b/util/scan/dvb-t/fi-Ranua_Haasionmaa
new file mode 100644
index 0000000..a74bca7
--- /dev/null
+++ b/util/scan/dvb-t/fi-Ranua_Haasionmaa
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Ranua_Leppiaho b/util/scan/dvb-t/fi-Ranua_Leppiaho
new file mode 100644
index 0000000..ad2e920
--- /dev/null
+++ b/util/scan/dvb-t/fi-Ranua_Leppiaho
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Rautavaara_Angervikko b/util/scan/dvb-t/fi-Rautavaara_Angervikko
new file mode 100644
index 0000000..b2e176e
--- /dev/null
+++ b/util/scan/dvb-t/fi-Rautavaara_Angervikko
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 738000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Rautjarvi_Simpele b/util/scan/dvb-t/fi-Rautjarvi_Simpele
new file mode 100644
index 0000000..34be33d
--- /dev/null
+++ b/util/scan/dvb-t/fi-Rautjarvi_Simpele
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Ristijarvi b/util/scan/dvb-t/fi-Ristijarvi
new file mode 100644
index 0000000..f0aa969
--- /dev/null
+++ b/util/scan/dvb-t/fi-Ristijarvi
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Rovaniemi b/util/scan/dvb-t/fi-Rovaniemi
new file mode 100644
index 0000000..e3b96b3
--- /dev/null
+++ b/util/scan/dvb-t/fi-Rovaniemi
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 730000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Rovaniemi_Ala-Nampa_Yli-Nampa_Rantalaki b/util/scan/dvb-t/fi-Rovaniemi_Ala-Nampa_Yli-Nampa_Rantalaki
new file mode 100644
index 0000000..43dd796
--- /dev/null
+++ b/util/scan/dvb-t/fi-Rovaniemi_Ala-Nampa_Yli-Nampa_Rantalaki
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Rovaniemi_Kaihuanvaara b/util/scan/dvb-t/fi-Rovaniemi_Kaihuanvaara
new file mode 100644
index 0000000..a0567ed
--- /dev/null
+++ b/util/scan/dvb-t/fi-Rovaniemi_Kaihuanvaara
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Rovaniemi_Karhuvaara_Marrasjarvi b/util/scan/dvb-t/fi-Rovaniemi_Karhuvaara_Marrasjarvi
new file mode 100644
index 0000000..fd29f57
--- /dev/null
+++ b/util/scan/dvb-t/fi-Rovaniemi_Karhuvaara_Marrasjarvi
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Rovaniemi_Marasenkallio b/util/scan/dvb-t/fi-Rovaniemi_Marasenkallio
new file mode 100644
index 0000000..9dbb40d
--- /dev/null
+++ b/util/scan/dvb-t/fi-Rovaniemi_Marasenkallio
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Rovaniemi_Meltaus_Sorviselka b/util/scan/dvb-t/fi-Rovaniemi_Meltaus_Sorviselka
new file mode 100644
index 0000000..43dd796
--- /dev/null
+++ b/util/scan/dvb-t/fi-Rovaniemi_Meltaus_Sorviselka
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Rovaniemi_Sonka b/util/scan/dvb-t/fi-Rovaniemi_Sonka
new file mode 100644
index 0000000..9dbb40d
--- /dev/null
+++ b/util/scan/dvb-t/fi-Rovaniemi_Sonka
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Ruka b/util/scan/dvb-t/fi-Ruka
new file mode 100644
index 0000000..f036154
--- /dev/null
+++ b/util/scan/dvb-t/fi-Ruka
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 570000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Ruovesi_Storminiemi b/util/scan/dvb-t/fi-Ruovesi_Storminiemi
new file mode 100644
index 0000000..91c5c53
--- /dev/null
+++ b/util/scan/dvb-t/fi-Ruovesi_Storminiemi
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 490000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Saarijarvi b/util/scan/dvb-t/fi-Saarijarvi
new file mode 100644
index 0000000..5096705
--- /dev/null
+++ b/util/scan/dvb-t/fi-Saarijarvi
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 722000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Saarijarvi_Kalmari b/util/scan/dvb-t/fi-Saarijarvi_Kalmari
new file mode 100644
index 0000000..9577e38
--- /dev/null
+++ b/util/scan/dvb-t/fi-Saarijarvi_Kalmari
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Saarijarvi_Mahlu b/util/scan/dvb-t/fi-Saarijarvi_Mahlu
new file mode 100644
index 0000000..afca845
--- /dev/null
+++ b/util/scan/dvb-t/fi-Saarijarvi_Mahlu
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Salla_Hirvasvaara b/util/scan/dvb-t/fi-Salla_Hirvasvaara
new file mode 100644
index 0000000..cae406a
--- /dev/null
+++ b/util/scan/dvb-t/fi-Salla_Hirvasvaara
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Salla_Ihistysjanka b/util/scan/dvb-t/fi-Salla_Ihistysjanka
new file mode 100644
index 0000000..8466760
--- /dev/null
+++ b/util/scan/dvb-t/fi-Salla_Ihistysjanka
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Salla_Naruska b/util/scan/dvb-t/fi-Salla_Naruska
new file mode 100644
index 0000000..c07f596
--- /dev/null
+++ b/util/scan/dvb-t/fi-Salla_Naruska
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Salla_Saija b/util/scan/dvb-t/fi-Salla_Saija
new file mode 100644
index 0000000..817b1d4
--- /dev/null
+++ b/util/scan/dvb-t/fi-Salla_Saija
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Salla_Sallatunturi b/util/scan/dvb-t/fi-Salla_Sallatunturi
new file mode 100644
index 0000000..a6d3546
--- /dev/null
+++ b/util/scan/dvb-t/fi-Salla_Sallatunturi
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Salo_Isokyla b/util/scan/dvb-t/fi-Salo_Isokyla
new file mode 100644
index 0000000..95320d3
--- /dev/null
+++ b/util/scan/dvb-t/fi-Salo_Isokyla
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 570000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Savukoski_Martti_Haarahonganmaa b/util/scan/dvb-t/fi-Savukoski_Martti_Haarahonganmaa
new file mode 100644
index 0000000..8af05b6
--- /dev/null
+++ b/util/scan/dvb-t/fi-Savukoski_Martti_Haarahonganmaa
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Savukoski_Tanhua b/util/scan/dvb-t/fi-Savukoski_Tanhua
new file mode 100644
index 0000000..817b1d4
--- /dev/null
+++ b/util/scan/dvb-t/fi-Savukoski_Tanhua
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Siilinjarvi b/util/scan/dvb-t/fi-Siilinjarvi
new file mode 100644
index 0000000..0d81662
--- /dev/null
+++ b/util/scan/dvb-t/fi-Siilinjarvi
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Sipoo_Galthagen b/util/scan/dvb-t/fi-Sipoo_Galthagen
new file mode 100644
index 0000000..01746cd
--- /dev/null
+++ b/util/scan/dvb-t/fi-Sipoo_Galthagen
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 698000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 730000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Sodankyla_Pittiovaara b/util/scan/dvb-t/fi-Sodankyla_Pittiovaara
new file mode 100644
index 0000000..cb87094
--- /dev/null
+++ b/util/scan/dvb-t/fi-Sodankyla_Pittiovaara
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Sulkava_Vaatalanmaki b/util/scan/dvb-t/fi-Sulkava_Vaatalanmaki
new file mode 100644
index 0000000..a232b78
--- /dev/null
+++ b/util/scan/dvb-t/fi-Sulkava_Vaatalanmaki
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Sysma_Liikola b/util/scan/dvb-t/fi-Sysma_Liikola
new file mode 100644
index 0000000..17dead4
--- /dev/null
+++ b/util/scan/dvb-t/fi-Sysma_Liikola
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 498000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Taivalkoski b/util/scan/dvb-t/fi-Taivalkoski
new file mode 100644
index 0000000..f62c9b7
--- /dev/null
+++ b/util/scan/dvb-t/fi-Taivalkoski
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Taivalkoski_Taivalvaara b/util/scan/dvb-t/fi-Taivalkoski_Taivalvaara
new file mode 100644
index 0000000..d166ea6
--- /dev/null
+++ b/util/scan/dvb-t/fi-Taivalkoski_Taivalvaara
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Tammela b/util/scan/dvb-t/fi-Tammela
new file mode 100644
index 0000000..b1711a6
--- /dev/null
+++ b/util/scan/dvb-t/fi-Tammela
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Tammisaari b/util/scan/dvb-t/fi-Tammisaari
new file mode 100644
index 0000000..000c034
--- /dev/null
+++ b/util/scan/dvb-t/fi-Tammisaari
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Tampere b/util/scan/dvb-t/fi-Tampere
index 7e59894..408e9d4 100644
--- a/util/scan/dvb-t/fi-Tampere
+++ b/util/scan/dvb-t/fi-Tampere
@@ -1,6 +1,6 @@
-# Tampere DVB-T (Digita Finland)
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
T 490000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
-
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Tampere_Pyynikki b/util/scan/dvb-t/fi-Tampere_Pyynikki
new file mode 100644
index 0000000..c627058
--- /dev/null
+++ b/util/scan/dvb-t/fi-Tampere_Pyynikki
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 586000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Tervola b/util/scan/dvb-t/fi-Tervola
new file mode 100644
index 0000000..a57e255
--- /dev/null
+++ b/util/scan/dvb-t/fi-Tervola
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Turku b/util/scan/dvb-t/fi-Turku
index 5f2d9b4..187d618 100644
--- a/util/scan/dvb-t/fi-Turku
+++ b/util/scan/dvb-t/fi-Turku
@@ -1,3 +1,6 @@
-# Turku A-mux (Digita Finland)
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 738000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Utsjoki b/util/scan/dvb-t/fi-Utsjoki
new file mode 100644
index 0000000..e216a81
--- /dev/null
+++ b/util/scan/dvb-t/fi-Utsjoki
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Utsjoki_Nuorgam_Njallavaara b/util/scan/dvb-t/fi-Utsjoki_Nuorgam_Njallavaara
new file mode 100644
index 0000000..7615f11
--- /dev/null
+++ b/util/scan/dvb-t/fi-Utsjoki_Nuorgam_Njallavaara
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Utsjoki_Nuorgam_raja b/util/scan/dvb-t/fi-Utsjoki_Nuorgam_raja
new file mode 100644
index 0000000..7615f11
--- /dev/null
+++ b/util/scan/dvb-t/fi-Utsjoki_Nuorgam_raja
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Utsjoki_Outakoski b/util/scan/dvb-t/fi-Utsjoki_Outakoski
new file mode 100644
index 0000000..76dece6
--- /dev/null
+++ b/util/scan/dvb-t/fi-Utsjoki_Outakoski
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 698000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Utsjoki_Polvarniemi b/util/scan/dvb-t/fi-Utsjoki_Polvarniemi
new file mode 100644
index 0000000..76dece6
--- /dev/null
+++ b/util/scan/dvb-t/fi-Utsjoki_Polvarniemi
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 698000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Utsjoki_Rovisuvanto b/util/scan/dvb-t/fi-Utsjoki_Rovisuvanto
new file mode 100644
index 0000000..f3f2e81
--- /dev/null
+++ b/util/scan/dvb-t/fi-Utsjoki_Rovisuvanto
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Utsjoki_Tenola b/util/scan/dvb-t/fi-Utsjoki_Tenola
new file mode 100644
index 0000000..7dfd61a
--- /dev/null
+++ b/util/scan/dvb-t/fi-Utsjoki_Tenola
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Uusikaupunki_Orivo b/util/scan/dvb-t/fi-Uusikaupunki_Orivo
new file mode 100644
index 0000000..1bf70a6
--- /dev/null
+++ b/util/scan/dvb-t/fi-Uusikaupunki_Orivo
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Vaala b/util/scan/dvb-t/fi-Vaala
new file mode 100644
index 0000000..19faff0
--- /dev/null
+++ b/util/scan/dvb-t/fi-Vaala
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Vaasa b/util/scan/dvb-t/fi-Vaasa
new file mode 100644
index 0000000..1e878fd
--- /dev/null
+++ b/util/scan/dvb-t/fi-Vaasa
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Valtimo b/util/scan/dvb-t/fi-Valtimo
new file mode 100644
index 0000000..a2f2df0
--- /dev/null
+++ b/util/scan/dvb-t/fi-Valtimo
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 586000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Vammala_Jyranvuori b/util/scan/dvb-t/fi-Vammala_Jyranvuori
new file mode 100644
index 0000000..de944ae
--- /dev/null
+++ b/util/scan/dvb-t/fi-Vammala_Jyranvuori
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Vammala_Roismala b/util/scan/dvb-t/fi-Vammala_Roismala
new file mode 100644
index 0000000..80fcc91
--- /dev/null
+++ b/util/scan/dvb-t/fi-Vammala_Roismala
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Vammala_Savi b/util/scan/dvb-t/fi-Vammala_Savi
new file mode 100644
index 0000000..5ae4303
--- /dev/null
+++ b/util/scan/dvb-t/fi-Vammala_Savi
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 698000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Vantaa_Hakunila b/util/scan/dvb-t/fi-Vantaa_Hakunila
new file mode 100644
index 0000000..2764c44
--- /dev/null
+++ b/util/scan/dvb-t/fi-Vantaa_Hakunila
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 730000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Varpaisjarvi_Honkamaki b/util/scan/dvb-t/fi-Varpaisjarvi_Honkamaki
new file mode 100644
index 0000000..c060467
--- /dev/null
+++ b/util/scan/dvb-t/fi-Varpaisjarvi_Honkamaki
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Virrat_Lappavuori b/util/scan/dvb-t/fi-Virrat_Lappavuori
new file mode 100644
index 0000000..d661fde
--- /dev/null
+++ b/util/scan/dvb-t/fi-Virrat_Lappavuori
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Vuokatti b/util/scan/dvb-t/fi-Vuokatti
new file mode 100644
index 0000000..382b91e
--- /dev/null
+++ b/util/scan/dvb-t/fi-Vuokatti
@@ -0,0 +1,6 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 722000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Vuotso b/util/scan/dvb-t/fi-Vuotso
new file mode 100644
index 0000000..111d043
--- /dev/null
+++ b/util/scan/dvb-t/fi-Vuotso
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Ylitornio_Ainiovaara b/util/scan/dvb-t/fi-Ylitornio_Ainiovaara
new file mode 100644
index 0000000..9edae15
--- /dev/null
+++ b/util/scan/dvb-t/fi-Ylitornio_Ainiovaara
@@ -0,0 +1,5 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Ylitornio_Raanujarvi b/util/scan/dvb-t/fi-Ylitornio_Raanujarvi
new file mode 100644
index 0000000..7380a74
--- /dev/null
+++ b/util/scan/dvb-t/fi-Ylitornio_Raanujarvi
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 570000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fi-Yllas b/util/scan/dvb-t/fi-Yllas
new file mode 100644
index 0000000..834dc84
--- /dev/null
+++ b/util/scan/dvb-t/fi-Yllas
@@ -0,0 +1,4 @@
+# automatically generated from http://www.digitv.fi/sivu.asp?path=1;8224;9519
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fr-Abbeville b/util/scan/dvb-t/fr-Abbeville
new file mode 100644
index 0000000..d4de766
--- /dev/null
+++ b/util/scan/dvb-t/fr-Abbeville
@@ -0,0 +1,25 @@
+# Abbeville - France (DVB-T transmitter of Abbeville ( LaMotte ) )
+# Abbeville - France (signal DVB-T transmis depuis l'émetteur de LaMotte )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Abbeville - LaMotte ####
+#R1
+T 506000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 538000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 570000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 618000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 770000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Agen b/util/scan/dvb-t/fr-Agen
new file mode 100644
index 0000000..3a5798a
--- /dev/null
+++ b/util/scan/dvb-t/fr-Agen
@@ -0,0 +1,25 @@
+# Agen - France (DVB-T transmitter of Agen ( Agglomération ) )
+# Agen - France (signal DVB-T transmis depuis l'émetteur de Agglomération )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Agen - Agglomération ####
+#R1
+T 666000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 746000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 698000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 714000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 642000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 722000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Ajaccio b/util/scan/dvb-t/fr-Ajaccio
new file mode 100644
index 0000000..d179961
--- /dev/null
+++ b/util/scan/dvb-t/fr-Ajaccio
@@ -0,0 +1,25 @@
+# Ajaccio - France (DVB-T transmitter of Ajaccio ( Baied'Ajaccio ) )
+# Ajaccio - France (signal DVB-T transmis depuis l'émetteur de Baied'Ajaccio )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Ajaccio - Baied'Ajaccio ####
+#R1
+T 538000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 514000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 642000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 610000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 778000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 730000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Albi b/util/scan/dvb-t/fr-Albi
new file mode 100644
index 0000000..e847d24
--- /dev/null
+++ b/util/scan/dvb-t/fr-Albi
@@ -0,0 +1,25 @@
+# Albi - France (DVB-T transmitter of Albi ( Agglomération ) )
+# Albi - France (signal DVB-T transmis depuis l'émetteur de Agglomération )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Albi - Agglomération ####
+#R1
+T 730000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 754000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 698000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 746000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 818000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Alençon b/util/scan/dvb-t/fr-Alençon
new file mode 100644
index 0000000..73747f7
--- /dev/null
+++ b/util/scan/dvb-t/fr-Alençon
@@ -0,0 +1,25 @@
+# Alençon - France (DVB-T transmitter of Alençon ( Montsd'Amain ) )
+# Alençon - France (signal DVB-T transmis depuis l'émetteur de Montsd'Amain )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Alençon - Montsd'Amain ####
+#R1
+T 618000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 826000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 698000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 634000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 770000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Ales b/util/scan/dvb-t/fr-Ales
new file mode 100644
index 0000000..d467996
--- /dev/null
+++ b/util/scan/dvb-t/fr-Ales
@@ -0,0 +1,25 @@
+# Alès - France (DVB-T transmitter of Alès ( Agglomération ) )
+# Alès - France (signal DVB-T transmis depuis l'émetteur de Agglomération )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Alès - Agglomération ####
+#R1
+T 626000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 778000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 762000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 650000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 738000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 674000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Ales-Bouquet b/util/scan/dvb-t/fr-Ales-Bouquet
new file mode 100644
index 0000000..d5c176f
--- /dev/null
+++ b/util/scan/dvb-t/fr-Ales-Bouquet
@@ -0,0 +1,25 @@
+# Alès - France (DVB-T transmitter of Alès ( MontBouquet ) )
+# Alès - France (signal DVB-T transmis depuis l'émetteur de MontBouquet )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Alès - MontBouquet ####
+#R1
+T 554000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 778000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 810000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 634000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 738000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Amiens b/util/scan/dvb-t/fr-Amiens
new file mode 100644
index 0000000..b4e06b4
--- /dev/null
+++ b/util/scan/dvb-t/fr-Amiens
@@ -0,0 +1,25 @@
+# Amiens - France (DVB-T transmitter of Amiens ( LesSaintJust ) )
+# Amiens - France (signal DVB-T transmis depuis l'émetteur de LesSaintJust )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Amiens - LesSaintJust ####
+#R1
+T 594000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 706000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 650000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 674000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 730000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 626000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Angers b/util/scan/dvb-t/fr-Angers
new file mode 100644
index 0000000..18abe02
--- /dev/null
+++ b/util/scan/dvb-t/fr-Angers
@@ -0,0 +1,25 @@
+# Angers - France (DVB-T transmitter of Angers ( RochefortsurLoire ) )
+# Angers - France (signal DVB-T transmis depuis l'émetteur de RochefortsurLoire )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Angers - RochefortsurLoire ####
+#R1
+T 690000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 626000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 754000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 650000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 674000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 714000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Annecy b/util/scan/dvb-t/fr-Annecy
new file mode 100644
index 0000000..02da6a3
--- /dev/null
+++ b/util/scan/dvb-t/fr-Annecy
@@ -0,0 +1,25 @@
+# Annecy - France (DVB-T transmitter of Annecy ( Agglomération ) )
+# Annecy - France (signal DVB-T transmis depuis l'émetteur de Agglomération )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Annecy - Agglomération ####
+#R1
+T 642000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 482000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 530000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 666000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 506000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 834000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Arcachon b/util/scan/dvb-t/fr-Arcachon
new file mode 100644
index 0000000..1e7f959
--- /dev/null
+++ b/util/scan/dvb-t/fr-Arcachon
@@ -0,0 +1,25 @@
+# Arcachon - France (DVB-T transmitter of Arcachon ( Agglomération ) )
+# Arcachon - France (signal DVB-T transmis depuis l'émetteur de Agglomération )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Arcachon - Agglomération ####
+#R1
+T 490000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 674000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 554000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 578000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 546000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Argenton b/util/scan/dvb-t/fr-Argenton
new file mode 100644
index 0000000..f9db8b6
--- /dev/null
+++ b/util/scan/dvb-t/fr-Argenton
@@ -0,0 +1,25 @@
+# Argenton - France (DVB-T transmitter of Argenton ( Malicornay ) )
+# Argenton - France (signal DVB-T transmis depuis l'émetteur de Malicornay )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Argenton - Malicornay ####
+#R1
+T 618000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 666000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 810000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 594000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 786000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 642000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Aubenas b/util/scan/dvb-t/fr-Aubenas
new file mode 100644
index 0000000..0ac067e
--- /dev/null
+++ b/util/scan/dvb-t/fr-Aubenas
@@ -0,0 +1,25 @@
+# Aubenas - France (DVB-T transmitter of Aubenas ( Nord ) )
+# Aubenas - France (signal DVB-T transmis depuis l'émetteur de Nord )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Aubenas - Nord ####
+#R1
+T 610000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 586000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 626000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 650000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 738000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 674000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Aurillac b/util/scan/dvb-t/fr-Aurillac
new file mode 100644
index 0000000..9537c43
--- /dev/null
+++ b/util/scan/dvb-t/fr-Aurillac
@@ -0,0 +1,25 @@
+# Aurillac - France (DVB-T transmitter of Aurillac ( Agglomération ) )
+# Aurillac - France (signal DVB-T transmis depuis l'émetteur de Agglomération )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Aurillac - Agglomération ####
+#R1
+T 642000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 578000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 618000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 706000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 666000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Autun b/util/scan/dvb-t/fr-Autun
new file mode 100644
index 0000000..83baa2c
--- /dev/null
+++ b/util/scan/dvb-t/fr-Autun
@@ -0,0 +1,25 @@
+# Autun - France (DVB-T transmitter of Autun ( BoisduRoi ) )
+# Autun - France (signal DVB-T transmis depuis l'émetteur de BoisduRoi )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Autun - BoisduRoi ####
+#R1
+T 682000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 618000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 810000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 834000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 722000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 850000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Auxerre b/util/scan/dvb-t/fr-Auxerre
new file mode 100644
index 0000000..4436ca9
--- /dev/null
+++ b/util/scan/dvb-t/fr-Auxerre
@@ -0,0 +1,25 @@
+# Auxerre - France (DVB-T transmitter of Auxerre ( Molesmes ) )
+# Auxerre - France (signal DVB-T transmis depuis l'émetteur de Molesmes )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Auxerre - Molesmes ####
+#R1
+T 570000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 794000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 770000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 546000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 586000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 562000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Avignon b/util/scan/dvb-t/fr-Avignon
new file mode 100644
index 0000000..32aeeaf
--- /dev/null
+++ b/util/scan/dvb-t/fr-Avignon
@@ -0,0 +1,25 @@
+# Avignon - France (DVB-T transmitter of Avignon ( MontVentoux ) )
+# Avignon - France (signal DVB-T transmis depuis l'émetteur de MontVentoux )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Avignon - MontVentoux ####
+#R1
+T 650000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 778000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 714000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 634000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 738000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 674000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-BarleDuc b/util/scan/dvb-t/fr-BarleDuc
new file mode 100644
index 0000000..47b7c0a
--- /dev/null
+++ b/util/scan/dvb-t/fr-BarleDuc
@@ -0,0 +1,25 @@
+# BarleDuc - France (DVB-T transmitter of BarleDuc ( Willeroncourt ) )
+# BarleDuc - France (signal DVB-T transmis depuis l'émetteur de Willeroncourt )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### BarleDuc - Willeroncourt ####
+#R1
+T 698000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 682000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 634000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 658000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 666000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 722000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Bastia b/util/scan/dvb-t/fr-Bastia
new file mode 100644
index 0000000..36dec27
--- /dev/null
+++ b/util/scan/dvb-t/fr-Bastia
@@ -0,0 +1,25 @@
+# Bastia - France (DVB-T transmitter of Bastia ( SerradiPigno ) )
+# Bastia - France (signal DVB-T transmis depuis l'émetteur de SerradiPigno )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Bastia - SerradiPigno ####
+#R1
+T 490000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 626000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 578000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 666000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 538000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Bayonne b/util/scan/dvb-t/fr-Bayonne
new file mode 100644
index 0000000..ada99fc
--- /dev/null
+++ b/util/scan/dvb-t/fr-Bayonne
@@ -0,0 +1,25 @@
+# Bayonne - France (DVB-T transmitter of Bayonne ( LaRhune ) )
+# Bayonne - France (signal DVB-T transmis depuis l'émetteur de LaRhune )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Bayonne - LaRhune ####
+#R1
+T 826000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 642000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 714000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 698000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 802000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 762000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Bergerac b/util/scan/dvb-t/fr-Bergerac
new file mode 100644
index 0000000..5cbaf85
--- /dev/null
+++ b/util/scan/dvb-t/fr-Bergerac
@@ -0,0 +1,25 @@
+# Bergerac - France (DVB-T transmitter of Bergerac ( Audrix ) )
+# Bergerac - France (signal DVB-T transmis depuis l'émetteur de Audrix )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Bergerac - Audrix ####
+#R1
+T 618000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 642000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 666000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 482000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 570000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 546000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Besançon b/util/scan/dvb-t/fr-Besançon
new file mode 100644
index 0000000..08d1a68
--- /dev/null
+++ b/util/scan/dvb-t/fr-Besançon
@@ -0,0 +1,25 @@
+# Besançon - France (DVB-T transmitter of Besançon ( Brégille ) )
+# Besançon - France (signal DVB-T transmis depuis l'émetteur de Brégille )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Besançon - Brégille ####
+#R1
+T 586000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 690000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 770000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 714000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 786000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 810000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Bordeaux b/util/scan/dvb-t/fr-Bordeaux
new file mode 100644
index 0000000..5efba4e
--- /dev/null
+++ b/util/scan/dvb-t/fr-Bordeaux
@@ -0,0 +1,9 @@
+# Bordeaux - France (DVB-T transmitter of Bouliac or Cauderan)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 490000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/fr-Bordeaux-Bouliac b/util/scan/dvb-t/fr-Bordeaux-Bouliac
new file mode 100644
index 0000000..8017d4e
--- /dev/null
+++ b/util/scan/dvb-t/fr-Bordeaux-Bouliac
@@ -0,0 +1,25 @@
+# Bordeaux - France (DVB-T transmitter of Bordeaux ( BordeauxEst ) )
+# Bordeaux - France (signal DVB-T transmis depuis l'émetteur de BordeauxEst )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Bordeaux - BordeauxEst ####
+#R1
+T 490000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 778000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 802000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 658000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 634000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 546000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Bordeaux-Cauderan b/util/scan/dvb-t/fr-Bordeaux-Cauderan
new file mode 100644
index 0000000..3733231
--- /dev/null
+++ b/util/scan/dvb-t/fr-Bordeaux-Cauderan
@@ -0,0 +1,25 @@
+# Bordeaux - France (DVB-T transmitter of Bordeaux ( Caudéran ) )
+# Bordeaux - France (signal DVB-T transmis depuis l'émetteur de Caudéran )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Bordeaux - Caudéran ####
+#R1
+T 490000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 514000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 482000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 562000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 594000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 546000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Boulogne b/util/scan/dvb-t/fr-Boulogne
new file mode 100644
index 0000000..644172b
--- /dev/null
+++ b/util/scan/dvb-t/fr-Boulogne
@@ -0,0 +1,25 @@
+# Boulogne - France (DVB-T transmitter of Boulogne ( MontLambert ) )
+# Boulogne - France (signal DVB-T transmis depuis l'émetteur de MontLambert )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Boulogne - MontLambert ####
+#R1
+T 586000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 626000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 666000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 690000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 698000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 714000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Bourges b/util/scan/dvb-t/fr-Bourges
new file mode 100644
index 0000000..a99105b
--- /dev/null
+++ b/util/scan/dvb-t/fr-Bourges
@@ -0,0 +1,25 @@
+# Bourges - France (DVB-T transmitter of Bourges ( CollinesduSancerrois ) )
+# Bourges - France (signal DVB-T transmis depuis l'émetteur de CollinesduSancerrois )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Bourges - CollinesduSancerrois ####
+#R1
+T 586000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 498000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 810000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 522000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 786000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 562000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Brest b/util/scan/dvb-t/fr-Brest
new file mode 100644
index 0000000..e16fe38
--- /dev/null
+++ b/util/scan/dvb-t/fr-Brest
@@ -0,0 +1,9 @@
+# Brest - France
+# Emetteur du Roch Tredudon
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
+T 482000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
+T 506000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
+T 490000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
+T 530000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
+T 514000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
diff --git a/util/scan/dvb-t/fr-Brive b/util/scan/dvb-t/fr-Brive
new file mode 100644
index 0000000..7b3ce53
--- /dev/null
+++ b/util/scan/dvb-t/fr-Brive
@@ -0,0 +1,25 @@
+# Brive - France (DVB-T transmitter of Brive ( Lissac ) )
+# Brive - France (signal DVB-T transmis depuis l'émetteur de Lissac )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Brive - Lissac ####
+#R1
+T 530000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 634000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 610000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 714000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 658000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 682000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Caen b/util/scan/dvb-t/fr-Caen
new file mode 100644
index 0000000..d82bd89
--- /dev/null
+++ b/util/scan/dvb-t/fr-Caen
@@ -0,0 +1,25 @@
+# Caen - France (DVB-T transmitter of Caen ( CaenNord ) )
+# Caen - France (signal DVB-T transmis depuis l'émetteur de CaenNord )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Caen - CaenNord ####
+#R1
+T 554000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 546000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 562000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 570000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 706000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 770000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Caen-Pincon b/util/scan/dvb-t/fr-Caen-Pincon
new file mode 100644
index 0000000..a749b05
--- /dev/null
+++ b/util/scan/dvb-t/fr-Caen-Pincon
@@ -0,0 +1,25 @@
+# Caen - France (DVB-T transmitter of Caen ( MontPinçon ) )
+# Caen - France (signal DVB-T transmis depuis l'émetteur de MontPinçon )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Caen - MontPinçon ####
+#R1
+T 514000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 578000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 698000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 490000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 538000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 770000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Cannes b/util/scan/dvb-t/fr-Cannes
new file mode 100644
index 0000000..2f841af
--- /dev/null
+++ b/util/scan/dvb-t/fr-Cannes
@@ -0,0 +1,25 @@
+# Cannes - France (DVB-T transmitter of Cannes ( Vallauris ) )
+# Cannes - France (signal DVB-T transmis depuis l'émetteur de Vallauris )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Cannes - Vallauris ####
+#R1
+T 490000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 514000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 578000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 730000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 690000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 642000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Carcassonne b/util/scan/dvb-t/fr-Carcassonne
new file mode 100644
index 0000000..f5545b8
--- /dev/null
+++ b/util/scan/dvb-t/fr-Carcassonne
@@ -0,0 +1,25 @@
+# Carcassonne - France (DVB-T transmitter of Carcassonne ( MontagneNoire ) )
+# Carcassonne - France (signal DVB-T transmis depuis l'émetteur de MontagneNoire )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Carcassonne - MontagneNoire ####
+#R1
+T 586000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 554000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 778000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 762000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 802000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 786000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Chambery b/util/scan/dvb-t/fr-Chambery
new file mode 100644
index 0000000..caf0eee
--- /dev/null
+++ b/util/scan/dvb-t/fr-Chambery
@@ -0,0 +1,30 @@
+# Chambéry - France (DVB-T transmitter of Chambéry ( Nondéfini ) )
+# Chambéry - France (signal DVB-T transmis depuis l'émetteur de Nondéfini )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Chambéry - Nondéfini ####
+#R1
+#T FREQ1 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+#T FREQ2 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+#T FREQ3 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+#T FREQ4 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+#T FREQ5 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+#T FREQ6 8MHz AUTO NONE QAM64 8k AUTO NONE
+##############################################################
+# en Avril 2006, l'emetteur pour Chambéry n'etait pas defini
+# Vous devez donc modifier les frequences manuellement.
+# SVP Renvoyez le fichier mis a jour aux contacts ci-dessus.
+##############################################################
diff --git a/util/scan/dvb-t/fr-Chartres b/util/scan/dvb-t/fr-Chartres
new file mode 100644
index 0000000..0207b84
--- /dev/null
+++ b/util/scan/dvb-t/fr-Chartres
@@ -0,0 +1,25 @@
+# Chartres - France (DVB-T transmitter of Chartres ( Montlandon ) )
+# Chartres - France (signal DVB-T transmis depuis l'émetteur de Montlandon )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Chartres - Montlandon ####
+#R1
+T 698000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 610000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 754000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 554000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 634000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Chennevieres b/util/scan/dvb-t/fr-Chennevieres
new file mode 100644
index 0000000..253f5bf
--- /dev/null
+++ b/util/scan/dvb-t/fr-Chennevieres
@@ -0,0 +1,25 @@
+# ParisEst - France (DVB-T transmitter of ParisEst ( Chennevières ) )
+# ParisEst - France (signal DVB-T transmis depuis l'émetteur de Chennevières )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### ParisEst - Chennevières ####
+#R1
+T 586000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 738000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 786000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 810000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 714000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 762000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Cherbourg b/util/scan/dvb-t/fr-Cherbourg
new file mode 100644
index 0000000..21be7f5
--- /dev/null
+++ b/util/scan/dvb-t/fr-Cherbourg
@@ -0,0 +1,25 @@
+# Cherbourg - France (DVB-T transmitter of Cherbourg ( Digosville ) )
+# Cherbourg - France (signal DVB-T transmis depuis l'émetteur de Digosville )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Cherbourg - Digosville ####
+#R1
+T 810000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 578000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 698000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 730000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 762000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 562000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-ClermontFerrand b/util/scan/dvb-t/fr-ClermontFerrand
new file mode 100644
index 0000000..4610b61
--- /dev/null
+++ b/util/scan/dvb-t/fr-ClermontFerrand
@@ -0,0 +1,25 @@
+# Clermont-Ferrand - France (DVB-T transmitter of Clermont-Ferrand ( PuydeDôme ) )
+# Clermont-Ferrand - France (signal DVB-T transmis depuis l'émetteur de PuydeDôme )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Clermont-Ferrand - PuydeDôme ####
+#R1
+T 706000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 554000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 730000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 578000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 562000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Cluses b/util/scan/dvb-t/fr-Cluses
new file mode 100644
index 0000000..e40863c
--- /dev/null
+++ b/util/scan/dvb-t/fr-Cluses
@@ -0,0 +1,30 @@
+# Cluses - France (DVB-T transmitter of Cluses ( Nondéfini ) )
+# Cluses - France (signal DVB-T transmis depuis l'émetteur de Nondéfini )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Cluses - Nondéfini ####
+#R1
+#T FREQ1 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+#T FREQ2 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+#T FREQ3 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+#T FREQ4 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+#T FREQ5 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+#T FREQ6 8MHz AUTO NONE QAM64 8k AUTO NONE
+##############################################################
+# en Avril 2006, l'emetteur pour Cluses n'etait pas defini
+# Vous devez donc modifier les frequences manuellement.
+# SVP Renvoyez le fichier mis a jour aux contacts ci-dessus.
+##############################################################
diff --git a/util/scan/dvb-t/fr-Dieppe b/util/scan/dvb-t/fr-Dieppe
new file mode 100644
index 0000000..b059bae
--- /dev/null
+++ b/util/scan/dvb-t/fr-Dieppe
@@ -0,0 +1,25 @@
+# Dieppe - France (DVB-T transmitter of Dieppe ( Neuville ) )
+# Dieppe - France (signal DVB-T transmis depuis l'émetteur de Neuville )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Dieppe - Neuville ####
+#R1
+T 762000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 642000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 666000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 618000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 786000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 810000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Dijon b/util/scan/dvb-t/fr-Dijon
new file mode 100644
index 0000000..a077ad1
--- /dev/null
+++ b/util/scan/dvb-t/fr-Dijon
@@ -0,0 +1,30 @@
+# Dijon - France (DVB-T transmitter of Dijon ( Nondéfini ) )
+# Dijon - France (signal DVB-T transmis depuis l'émetteur de Nondéfini )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Dijon - Nondéfini ####
+#R1
+#T FREQ1 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+#T FREQ2 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+#T FREQ3 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+#T FREQ4 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+#T FREQ5 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+#T FREQ6 8MHz AUTO NONE QAM64 8k AUTO NONE
+##############################################################
+# en Avril 2006, l'emetteur pour Dijon n'etait pas defini
+# Vous devez donc modifier les frequences manuellement.
+# SVP Renvoyez le fichier mis a jour aux contacts ci-dessus.
+##############################################################
diff --git a/util/scan/dvb-t/fr-Dunkerque b/util/scan/dvb-t/fr-Dunkerque
new file mode 100644
index 0000000..58ad7b6
--- /dev/null
+++ b/util/scan/dvb-t/fr-Dunkerque
@@ -0,0 +1,30 @@
+# Dunkerque - France (DVB-T transmitter of Dunkerque ( Nondéfini ) )
+# Dunkerque - France (signal DVB-T transmis depuis l'émetteur de Nondéfini )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Dunkerque - Nondéfini ####
+#R1
+#T FREQ1 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+#T FREQ2 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+#T FREQ3 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+#T FREQ4 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+#T FREQ5 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+#T FREQ6 8MHz AUTO NONE QAM64 8k AUTO NONE
+##############################################################
+# en Avril 2006, l'emetteur pour Dunkerque n'etait pas defini
+# Vous devez donc modifier les frequences manuellement.
+# SVP Renvoyez le fichier mis a jour aux contacts ci-dessus.
+##############################################################
diff --git a/util/scan/dvb-t/fr-Epinal b/util/scan/dvb-t/fr-Epinal
new file mode 100644
index 0000000..b3cf1e3
--- /dev/null
+++ b/util/scan/dvb-t/fr-Epinal
@@ -0,0 +1,25 @@
+# Epinal - France (DVB-T transmitter of Epinal ( BoisdelaVierge ) )
+# Epinal - France (signal DVB-T transmis depuis l'émetteur de BoisdelaVierge )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Epinal - BoisdelaVierge ####
+#R1
+T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 682000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 698000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 754000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 802000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 778000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Evreux b/util/scan/dvb-t/fr-Evreux
new file mode 100644
index 0000000..64da79f
--- /dev/null
+++ b/util/scan/dvb-t/fr-Evreux
@@ -0,0 +1,25 @@
+# Evreux - France (DVB-T transmitter of Evreux ( Netreville ) )
+# Evreux - France (signal DVB-T transmis depuis l'émetteur de Netreville )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Evreux - Netreville ####
+#R1
+T 722000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 674000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 698000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 626000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 690000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 650000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Forbach b/util/scan/dvb-t/fr-Forbach
new file mode 100644
index 0000000..8ed748a
--- /dev/null
+++ b/util/scan/dvb-t/fr-Forbach
@@ -0,0 +1,30 @@
+# Forbach - France (DVB-T transmitter of Forbach ( Nondéfini ) )
+# Forbach - France (signal DVB-T transmis depuis l'émetteur de Nondéfini )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Forbach - Nondéfini ####
+#R1
+#T FREQ1 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+#T FREQ2 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+#T FREQ3 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+#T FREQ4 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+#T FREQ5 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+#T FREQ6 8MHz AUTO NONE QAM64 8k AUTO NONE
+##############################################################
+# en Avril 2006, l'emetteur pour Forbach n'etait pas defini
+# Vous devez donc modifier les frequences manuellement.
+# SVP Renvoyez le fichier mis a jour aux contacts ci-dessus.
+##############################################################
diff --git a/util/scan/dvb-t/fr-Gex b/util/scan/dvb-t/fr-Gex
new file mode 100644
index 0000000..1d5f0dd
--- /dev/null
+++ b/util/scan/dvb-t/fr-Gex
@@ -0,0 +1,30 @@
+# Gex - France (DVB-T transmitter of Gex ( Nondéfini ) )
+# Gex - France (signal DVB-T transmis depuis l'émetteur de Nondéfini )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Gex - Nondéfini ####
+#R1
+#T FREQ1 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+#T FREQ2 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+#T FREQ3 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+#T FREQ4 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+#T FREQ5 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+#T FREQ6 8MHz AUTO NONE QAM64 8k AUTO NONE
+##############################################################
+# en Avril 2006, l'emetteur pour Gex n'etait pas defini
+# Vous devez donc modifier les frequences manuellement.
+# SVP Renvoyez le fichier mis a jour aux contacts ci-dessus.
+##############################################################
diff --git a/util/scan/dvb-t/fr-Grenoble b/util/scan/dvb-t/fr-Grenoble
new file mode 100644
index 0000000..94103f0
--- /dev/null
+++ b/util/scan/dvb-t/fr-Grenoble
@@ -0,0 +1,25 @@
+# Grenoble - France (DVB-T transmitter of Grenoble ( ToursansVenin ) )
+# Grenoble - France (signal DVB-T transmis depuis l'émetteur de ToursansVenin )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Grenoble - ToursansVenin ####
+#R1
+T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 474000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 498000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 554000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 522000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 578000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Gueret b/util/scan/dvb-t/fr-Gueret
new file mode 100644
index 0000000..0704ef6
--- /dev/null
+++ b/util/scan/dvb-t/fr-Gueret
@@ -0,0 +1,25 @@
+# Guéret - France (DVB-T transmitter of Guéret ( StLégerleGueretois ) )
+# Guéret - France (signal DVB-T transmis depuis l'émetteur de StLégerleGueretois )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Guéret - StLégerleGueretois ####
+#R1
+T 698000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 554000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 722000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 746000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 578000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 562000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Hirson b/util/scan/dvb-t/fr-Hirson
new file mode 100644
index 0000000..a3c244d
--- /dev/null
+++ b/util/scan/dvb-t/fr-Hirson
@@ -0,0 +1,30 @@
+# Hirson - France (DVB-T transmitter of Hirson ( Nondéfini ) )
+# Hirson - France (signal DVB-T transmis depuis l'émetteur de Nondéfini )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Hirson - Nondéfini ####
+#R1
+#T FREQ1 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+#T FREQ2 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+#T FREQ3 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+#T FREQ4 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+#T FREQ5 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+#T FREQ6 8MHz AUTO NONE QAM64 8k AUTO NONE
+##############################################################
+# en Avril 2006, l'emetteur pour Hirson n'etait pas defini
+# Vous devez donc modifier les frequences manuellement.
+# SVP Renvoyez le fichier mis a jour aux contacts ci-dessus.
+##############################################################
diff --git a/util/scan/dvb-t/fr-Hyeres b/util/scan/dvb-t/fr-Hyeres
new file mode 100644
index 0000000..6dbb93d
--- /dev/null
+++ b/util/scan/dvb-t/fr-Hyeres
@@ -0,0 +1,25 @@
+# Hyères - France (DVB-T transmitter of Hyères ( CapBenat ) )
+# Hyères - France (signal DVB-T transmis depuis l'émetteur de CapBenat )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Hyères - CapBenat ####
+#R1
+T 490000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 666000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 562000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 810000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 514000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 538000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-LaRochelle b/util/scan/dvb-t/fr-LaRochelle
new file mode 100644
index 0000000..309f4a9
--- /dev/null
+++ b/util/scan/dvb-t/fr-LaRochelle
@@ -0,0 +1,25 @@
+# Rochelle(La) - France (DVB-T transmitter of Rochelle(La) ( Mireuil ) )
+# Rochelle(La) - France (signal DVB-T transmis depuis l'émetteur de Mireuil )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Rochelle(La) - Mireuil ####
+#R1
+T 730000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 778000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 802000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 738000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 706000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 754000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Laval b/util/scan/dvb-t/fr-Laval
new file mode 100644
index 0000000..61c0aa0
--- /dev/null
+++ b/util/scan/dvb-t/fr-Laval
@@ -0,0 +1,25 @@
+# Laval - France (DVB-T transmitter of Laval ( MontRochard ) )
+# Laval - France (signal DVB-T transmis depuis l'émetteur de MontRochard )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Laval - MontRochard ####
+#R1
+T 778000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 610000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 754000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 794000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 802000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-LeCreusot b/util/scan/dvb-t/fr-LeCreusot
new file mode 100644
index 0000000..ff4cb0b
--- /dev/null
+++ b/util/scan/dvb-t/fr-LeCreusot
@@ -0,0 +1,25 @@
+# Creusot(Le) - France (DVB-T transmitter of Creusot(Le) ( MontStVincent ) )
+# Creusot(Le) - France (signal DVB-T transmis depuis l'émetteur de MontStVincent )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Creusot(Le) - MontStVincent ####
+#R1
+T 770000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 618000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 498000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 794000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 818000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 594000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-LeHavre b/util/scan/dvb-t/fr-LeHavre
new file mode 100644
index 0000000..bf3bb0e
--- /dev/null
+++ b/util/scan/dvb-t/fr-LeHavre
@@ -0,0 +1,25 @@
+# Havre(Le) - France (DVB-T transmitter of Havre(Le) ( Harfleur ) )
+# Havre(Le) - France (signal DVB-T transmis depuis l'émetteur de Harfleur )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Havre(Le) - Harfleur ####
+#R1
+T 690000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 642000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 762000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 810000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 738000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 770000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-LeMans b/util/scan/dvb-t/fr-LeMans
new file mode 100644
index 0000000..323018f
--- /dev/null
+++ b/util/scan/dvb-t/fr-LeMans
@@ -0,0 +1,21 @@
+# Le Mans - France (DVB-T transmitter of Mayet)
+# Le Mans - France (signal DVB-T transmis depuis l'émetteur de Mayet )
+# Pour plus d'informations vous pouvez consulter :
+# - le topic sur l'émetteur de Mayet sur le forum du site tvnt.net :
+# http://www.tvnt.net/forum/viewtopic.php?t=48
+# - le site de TDF : http://tnt.niv2.com/72100-LE-MANS.html
+# contact : Matthieu Duchemin <alkahan@free.fr>
+
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# R1 : Canal 26
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+# R2 : Canal 23
+T 490000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+# R3 : Canal 56
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+# R4 : Canal 31
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+# R5 : Canal 37
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+# R6 : Canal 36
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/fr-LePuyEnVelay b/util/scan/dvb-t/fr-LePuyEnVelay
new file mode 100644
index 0000000..e1a95e9
--- /dev/null
+++ b/util/scan/dvb-t/fr-LePuyEnVelay
@@ -0,0 +1,25 @@
+# PuyenVelay(Le) - France (DVB-T transmitter of PuyenVelay(Le) ( Agglomération ) )
+# PuyenVelay(Le) - France (signal DVB-T transmis depuis l'émetteur de Agglomération )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### PuyenVelay(Le) - Agglomération ####
+#R1
+T 666000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 642000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 714000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 690000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 738000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 514000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Lille b/util/scan/dvb-t/fr-Lille
new file mode 100644
index 0000000..c30c520
--- /dev/null
+++ b/util/scan/dvb-t/fr-Lille
@@ -0,0 +1,30 @@
+# Lille - France (DVB-T transmitter of Lille ( Nondéfini ) )
+# Lille - France (signal DVB-T transmis depuis l'émetteur de Nondéfini )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Lille - Nondéfini ####
+#R1
+#T FREQ1 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+#T FREQ2 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+#T FREQ3 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+#T FREQ4 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+#T FREQ5 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+#T FREQ6 8MHz AUTO NONE QAM64 8k AUTO NONE
+##############################################################
+# en Avril 2006, l'emetteur pour Lille n'etait pas defini
+# Vous devez donc modifier les frequences manuellement.
+# SVP Renvoyez le fichier mis a jour aux contacts ci-dessus.
+##############################################################
diff --git a/util/scan/dvb-t/fr-Lille-Lambersart b/util/scan/dvb-t/fr-Lille-Lambersart
new file mode 100644
index 0000000..6a7c377
--- /dev/null
+++ b/util/scan/dvb-t/fr-Lille-Lambersart
@@ -0,0 +1,25 @@
+# Lille - France (DVB-T transmitter of Lille ( Lambersart ) )
+# Lille - France (signal DVB-T transmis depuis l'émetteur de Lambersart )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Lille - Lambersart ####
+#R1
+T 594000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 538000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 562000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 546000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 570000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 586000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-LilleT2 b/util/scan/dvb-t/fr-LilleT2
new file mode 100644
index 0000000..b629f70
--- /dev/null
+++ b/util/scan/dvb-t/fr-LilleT2
@@ -0,0 +1,13 @@
+# Lille - France (DVB-T transmitter of Lambersart)
+#offset of 167000 for Cinergy T2. Other type of card users need to replace 167 by 000
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#R2
+T 538167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+#R4
+T 546167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+#R3
+T 562167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+#R6
+T 586167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+#R1
+T 594167000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/fr-Limoges b/util/scan/dvb-t/fr-Limoges
new file mode 100644
index 0000000..1581bcf
--- /dev/null
+++ b/util/scan/dvb-t/fr-Limoges
@@ -0,0 +1,25 @@
+# Limoges - France (DVB-T transmitter of Limoges ( Agglomération ) )
+# Limoges - France (signal DVB-T transmis depuis l'émetteur de Agglomération )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Limoges - Agglomération ####
+#R1
+T 826000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 778000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 802000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 578000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 674000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Longwy b/util/scan/dvb-t/fr-Longwy
new file mode 100644
index 0000000..9881bfc
--- /dev/null
+++ b/util/scan/dvb-t/fr-Longwy
@@ -0,0 +1,30 @@
+# Longwy - France (DVB-T transmitter of Longwy ( Nondéfini ) )
+# Longwy - France (signal DVB-T transmis depuis l'émetteur de Nondéfini )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Longwy - Nondéfini ####
+#R1
+#T FREQ1 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+#T FREQ2 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+#T FREQ3 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+#T FREQ4 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+#T FREQ5 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+#T FREQ6 8MHz AUTO NONE QAM64 8k AUTO NONE
+##############################################################
+# en Avril 2006, l'emetteur pour Longwy n'etait pas defini
+# Vous devez donc modifier les frequences manuellement.
+# SVP Renvoyez le fichier mis a jour aux contacts ci-dessus.
+##############################################################
diff --git a/util/scan/dvb-t/fr-Lorient b/util/scan/dvb-t/fr-Lorient
new file mode 100644
index 0000000..0b3e307
--- /dev/null
+++ b/util/scan/dvb-t/fr-Lorient
@@ -0,0 +1,25 @@
+# Lorient - France (DVB-T transmitter of Lorient ( Ploemer ) )
+# Lorient - France (signal DVB-T transmis depuis l'émetteur de Ploemer )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Lorient - Ploemer ####
+#R1
+T 554000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 586000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 818000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 570000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 794000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 562000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Lyon-Fourviere b/util/scan/dvb-t/fr-Lyon-Fourviere
new file mode 100644
index 0000000..17ca1f7
--- /dev/null
+++ b/util/scan/dvb-t/fr-Lyon-Fourviere
@@ -0,0 +1,19 @@
+# Lyon - France (DVB-T transmitter of Fourvière)
+# Lyon - France (signal DVB-T transmis depuis l'émetteur de Fourvière)
+# see : http://tnt.niv2.com/69000-LYON.html
+# contact : Nicolas Estre <n_estre@yahoo.fr>
+
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval
+hierarchy
+# R1 : Canal 56
+T 754167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+# R2 : Canal 36
+T 594167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+# R3 : Canal 21
+T 474167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+# R4 : Canal 54
+T 738167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+# R5 : Canal 27
+T 522167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+# R6 : Canal 24
+T 498167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/fr-Lyon-Pilat b/util/scan/dvb-t/fr-Lyon-Pilat
new file mode 100644
index 0000000..71cd3a5
--- /dev/null
+++ b/util/scan/dvb-t/fr-Lyon-Pilat
@@ -0,0 +1,17 @@
+# Lyon - France (DVB-T transmitter of Mt Pilat)
+# Lyon - France (signal DVB-T transmis depuis l'émetteur du Mont Pilat)
+# see : http://tnt.niv2.com/69000-LYON.html
+# contact : Nicolas Estre <n_estre@yahoo.fr>
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# R1 : Canal 45
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+# R2 : Canal 36
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+# R3 : Canal 39
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+# R4 : Canal 54
+T 738000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+# R5 : Canal 42
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+# R6 : Canal 47
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/fr-Macon b/util/scan/dvb-t/fr-Macon
new file mode 100644
index 0000000..dddebc5
--- /dev/null
+++ b/util/scan/dvb-t/fr-Macon
@@ -0,0 +1,30 @@
+# Mâcon - France (DVB-T transmitter of Mâcon ( Nondéfini ) )
+# Mâcon - France (signal DVB-T transmis depuis l'émetteur de Nondéfini )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Mâcon - Nondéfini ####
+#R1
+#T FREQ1 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+#T FREQ2 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+#T FREQ3 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+#T FREQ4 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+#T FREQ5 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+#T FREQ6 8MHz AUTO NONE QAM64 8k AUTO NONE
+##############################################################
+# en Avril 2006, l'emetteur pour Mâcon n'etait pas defini
+# Vous devez donc modifier les frequences manuellement.
+# SVP Renvoyez le fichier mis a jour aux contacts ci-dessus.
+##############################################################
diff --git a/util/scan/dvb-t/fr-Mantes b/util/scan/dvb-t/fr-Mantes
new file mode 100644
index 0000000..d9a1b7e
--- /dev/null
+++ b/util/scan/dvb-t/fr-Mantes
@@ -0,0 +1,25 @@
+# Mantes - France (DVB-T transmitter of Mantes ( MaudétourenVexin ) )
+# Mantes - France (signal DVB-T transmis depuis l'émetteur de MaudétourenVexin )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Mantes - MaudétourenVexin ####
+#R1
+T 690000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 610000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 650000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 674000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 714000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 626000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Marseille b/util/scan/dvb-t/fr-Marseille
new file mode 100644
index 0000000..7a57003
--- /dev/null
+++ b/util/scan/dvb-t/fr-Marseille
@@ -0,0 +1,6 @@
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 802000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/fr-Maubeuge b/util/scan/dvb-t/fr-Maubeuge
new file mode 100644
index 0000000..e865c02
--- /dev/null
+++ b/util/scan/dvb-t/fr-Maubeuge
@@ -0,0 +1,30 @@
+# Maubeuge - France (DVB-T transmitter of Maubeuge ( Nondéfini ) )
+# Maubeuge - France (signal DVB-T transmis depuis l'émetteur de Nondéfini )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Maubeuge - Nondéfini ####
+#R1
+#T FREQ1 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+#T FREQ2 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+#T FREQ3 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+#T FREQ4 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+#T FREQ5 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+#T FREQ6 8MHz AUTO NONE QAM64 8k AUTO NONE
+##############################################################
+# en Avril 2006, l'emetteur pour Maubeuge n'etait pas defini
+# Vous devez donc modifier les frequences manuellement.
+# SVP Renvoyez le fichier mis a jour aux contacts ci-dessus.
+##############################################################
diff --git a/util/scan/dvb-t/fr-Meaux b/util/scan/dvb-t/fr-Meaux
new file mode 100644
index 0000000..4837bf4
--- /dev/null
+++ b/util/scan/dvb-t/fr-Meaux
@@ -0,0 +1,25 @@
+# Meaux - France (DVB-T transmitter of Meaux ( Mareuil ) )
+# Meaux - France (signal DVB-T transmis depuis l'émetteur de Mareuil )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Meaux - Mareuil ####
+#R1
+T 746000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 810000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 818000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 786000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 666000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 642000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Mende b/util/scan/dvb-t/fr-Mende
new file mode 100644
index 0000000..39bd41e
--- /dev/null
+++ b/util/scan/dvb-t/fr-Mende
@@ -0,0 +1,25 @@
+# Mende - France (DVB-T transmitter of Mende ( TrucdeFortunio ) )
+# Mende - France (signal DVB-T transmis depuis l'émetteur de TrucdeFortunio )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Mende - TrucdeFortunio ####
+#R1
+T 522000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 474000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 498000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 690000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 562000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 610000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Menton b/util/scan/dvb-t/fr-Menton
new file mode 100644
index 0000000..f48fd72
--- /dev/null
+++ b/util/scan/dvb-t/fr-Menton
@@ -0,0 +1,25 @@
+# Menton - France (DVB-T transmitter of Menton ( CapMartin ) )
+# Menton - France (signal DVB-T transmis depuis l'émetteur de CapMartin )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Menton - CapMartin ####
+#R1
+T 682000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 554000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 842000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 634000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 658000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 810000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Metz b/util/scan/dvb-t/fr-Metz
new file mode 100644
index 0000000..e018031
--- /dev/null
+++ b/util/scan/dvb-t/fr-Metz
@@ -0,0 +1,30 @@
+# Metz - France (DVB-T transmitter of Metz ( Nondéfini ) )
+# Metz - France (signal DVB-T transmis depuis l'émetteur de Nondéfini )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Metz - Nondéfini ####
+#R1
+#T FREQ1 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+#T FREQ2 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+#T FREQ3 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+#T FREQ4 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+#T FREQ5 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+#T FREQ6 8MHz AUTO NONE QAM64 8k AUTO NONE
+##############################################################
+# en Avril 2006, l'emetteur pour Metz n'etait pas defini
+# Vous devez donc modifier les frequences manuellement.
+# SVP Renvoyez le fichier mis a jour aux contacts ci-dessus.
+##############################################################
diff --git a/util/scan/dvb-t/fr-Mezieres b/util/scan/dvb-t/fr-Mezieres
new file mode 100644
index 0000000..62dd087
--- /dev/null
+++ b/util/scan/dvb-t/fr-Mezieres
@@ -0,0 +1,30 @@
+# Mézières - France (DVB-T transmitter of Mézières ( Nondéfini ) )
+# Mézières - France (signal DVB-T transmis depuis l'émetteur de Nondéfini )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Mézières - Nondéfini ####
+#R1
+#T FREQ1 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+#T FREQ2 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+#T FREQ3 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+#T FREQ4 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+#T FREQ5 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+#T FREQ6 8MHz AUTO NONE QAM64 8k AUTO NONE
+##############################################################
+# en Avril 2006, l'emetteur pour Mézières n'etait pas defini
+# Vous devez donc modifier les frequences manuellement.
+# SVP Renvoyez le fichier mis a jour aux contacts ci-dessus.
+##############################################################
diff --git a/util/scan/dvb-t/fr-Montlucon b/util/scan/dvb-t/fr-Montlucon
new file mode 100644
index 0000000..64cd64a
--- /dev/null
+++ b/util/scan/dvb-t/fr-Montlucon
@@ -0,0 +1,25 @@
+# Montluçon - France (DVB-T transmitter of Montluçon ( Agglomération ) )
+# Montluçon - France (signal DVB-T transmis depuis l'émetteur de Agglomération )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Montluçon - Agglomération ####
+#R1
+T 618000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 738000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 730000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 746000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 826000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Montpellier b/util/scan/dvb-t/fr-Montpellier
new file mode 100644
index 0000000..c17bb8e
--- /dev/null
+++ b/util/scan/dvb-t/fr-Montpellier
@@ -0,0 +1,25 @@
+# Montpellier - France (DVB-T transmitter of Montpellier ( SaintBaudille ) )
+# Montpellier - France (signal DVB-T transmis depuis l'émetteur de SaintBaudille )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Montpellier - SaintBaudille ####
+#R1
+T 698000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 746000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 714000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 722000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 738000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Mulhouse b/util/scan/dvb-t/fr-Mulhouse
new file mode 100644
index 0000000..da420fd
--- /dev/null
+++ b/util/scan/dvb-t/fr-Mulhouse
@@ -0,0 +1,26 @@
+# Mulhouse - France (DVB-T transmitter of Mulhouse ( Belvédère ) )
+# Mulhouse - France (signal DVB-T transmis depuis l'émetteur du Belvédère )
+#
+# Fichier réalisé par :
+# IUT COLMAR DEPARTEMENT RESEAUX ET TELECOMMUNICATIONS
+# Novembre 2007
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+
+# R1 - ch 53 : France 2, 3 (Alsace), 5, LCP et Arte (France)
+T 730000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+
+# R2 - ch 55 : I-TELE, BFM TV, Direct 8, Gulli, Virgin 17 (ex-Europe 2 TV) et France 4
+T 746000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+
+# R3 - ch 54 : TV payante : CANAL+, CANAL+ CINEMA, CANAL+ SPORT, PLANETE, CANAL J et TPS STAR
+T 738000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+
+# R4 - ch 37 : M6, W9 et NT1 + TV payante : PARIS PREMIERE, TF6 et AB1
+T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+
+# R5
+# ch 66, candidat a la TVHD
+
+# R6 - ch 65 : TF 1, NRJ 12 et TMC + TV payante : Eurosport France et LCI
+T 826000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Nancy b/util/scan/dvb-t/fr-Nancy
new file mode 100644
index 0000000..f4ff7b8
--- /dev/null
+++ b/util/scan/dvb-t/fr-Nancy
@@ -0,0 +1,25 @@
+# Nancy - France (DVB-T transmitter of Nancy ( Nondéfini ) )
+# Nancy - France (signal DVB-T transmis depuis l'émetteur de Nondéfini )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Nancy - Nondéfini ####
+#R1
+T 522166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+#R2
+T 682166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+#R3
+T 794166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+#R4
+T 770166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+#R5
+T 498166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+#R6
+T 826166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/fr-Nantes b/util/scan/dvb-t/fr-Nantes
new file mode 100644
index 0000000..22d9e21
--- /dev/null
+++ b/util/scan/dvb-t/fr-Nantes
@@ -0,0 +1,8 @@
+# Nantes - France
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 498000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 802000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/fr-NeufchatelEnBray b/util/scan/dvb-t/fr-NeufchatelEnBray
new file mode 100644
index 0000000..1eeb5ea
--- /dev/null
+++ b/util/scan/dvb-t/fr-NeufchatelEnBray
@@ -0,0 +1,25 @@
+# Neufchatel-en-Bray - France (DVB-T transmitter of Neufchatel-en-Bray ( Croixdalle ) )
+# Neufchatel-en-Bray - France (signal DVB-T transmis depuis l'émetteur de Croixdalle )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Neufchatel-en-Bray - Croixdalle ####
+#R1
+T 746000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 722000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 522000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 498000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 770000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Nice b/util/scan/dvb-t/fr-Nice
new file mode 100644
index 0000000..c122ab7
--- /dev/null
+++ b/util/scan/dvb-t/fr-Nice
@@ -0,0 +1,25 @@
+# Nice - France (DVB-T transmitter of Nice ( MontAlban ) )
+# Nice - France (signal DVB-T transmis depuis l'émetteur de MontAlban )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Nice - MontAlban ####
+#R1
+T 610000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 554000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 578000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 698000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 690000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 642000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Niort b/util/scan/dvb-t/fr-Niort
new file mode 100644
index 0000000..396489a
--- /dev/null
+++ b/util/scan/dvb-t/fr-Niort
@@ -0,0 +1,7 @@
+# Niort - France (DVB-T transmitter of Niort-Maisonnay)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 498000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
+T 602000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
+T 738000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
+T 778000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
+T 802000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
diff --git a/util/scan/dvb-t/fr-Orleans b/util/scan/dvb-t/fr-Orleans
new file mode 100644
index 0000000..c42ccc5
--- /dev/null
+++ b/util/scan/dvb-t/fr-Orleans
@@ -0,0 +1,17 @@
+# Orléans / France
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#
+# R2: canal 38 : direct8 TMC Gulli europe2 bfm itélé
+T 610166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+
+# R1: canal 46 : F2 F3 F4 F5 arte LCP
+T 674166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+
+# R4: canal 48 : M6 W9 NT1
+T 690166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+
+# R6: canal 51 : TF1 NRJ12
+T 714166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+
+# R3: canal 63 : canalplus
+T 810166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/fr-Paris b/util/scan/dvb-t/fr-Paris
new file mode 100644
index 0000000..bfb93a8
--- /dev/null
+++ b/util/scan/dvb-t/fr-Paris
@@ -0,0 +1,19 @@
+# Paris - France - various DVB-T transmitters
+# contributed by Alexis de Lattre <alexis@via.ecp.fr>
+# Paris - Tour Eiffel : 21 24 27 29 32 35
+# Paris Est - Chennevières : 35 51 54 57 60 63
+# Paris Nord - Sannois : 35 51 54 57 60 63
+# Paris Sud - Villebon : 35 51 56 57 60 63
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 474166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 498166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 522166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 538166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 562166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 586166000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
+T 714166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 738166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 754166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 762166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 786166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 810166000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/fr-Parthenay b/util/scan/dvb-t/fr-Parthenay
new file mode 100644
index 0000000..567ebe1
--- /dev/null
+++ b/util/scan/dvb-t/fr-Parthenay
@@ -0,0 +1,25 @@
+# Parthenay - France (DVB-T transmitter of Parthenay ( Amailloux ) )
+# Parthenay - France (signal DVB-T transmis depuis l'émetteur de Amailloux )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Parthenay - Amailloux ####
+#R1
+T 594000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 778000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 802000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 738000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 762000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 690000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Perpignan b/util/scan/dvb-t/fr-Perpignan
new file mode 100644
index 0000000..d0b74ce
--- /dev/null
+++ b/util/scan/dvb-t/fr-Perpignan
@@ -0,0 +1,25 @@
+# Perpignan - France (DVB-T transmitter of Perpignan ( PicdeNeulos ) )
+# Perpignan - France (signal DVB-T transmis depuis l'émetteur de PicdeNeulos )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Perpignan - PicdeNeulos ####
+#R1
+T 490000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 474000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 498000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 514000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 522000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 618000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Poitiers b/util/scan/dvb-t/fr-Poitiers
new file mode 100644
index 0000000..2a0ed31
--- /dev/null
+++ b/util/scan/dvb-t/fr-Poitiers
@@ -0,0 +1,25 @@
+# Poitiers - France (DVB-T transmitter of Poitiers ( Agglomération ) )
+# Poitiers - France (signal DVB-T transmis depuis l'émetteur de Agglomération )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Poitiers - Agglomération ####
+#R1
+T 706000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 778000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 802000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 730000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 754000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 794000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Privas b/util/scan/dvb-t/fr-Privas
new file mode 100644
index 0000000..cd27631
--- /dev/null
+++ b/util/scan/dvb-t/fr-Privas
@@ -0,0 +1,25 @@
+# Privas - France (DVB-T transmitter of Privas ( Sud ) )
+# Privas - France (signal DVB-T transmis depuis l'émetteur de Sud )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Privas - Sud ####
+#R1
+T 658000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 698000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 706000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 634000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 546000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 570000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Reims b/util/scan/dvb-t/fr-Reims
new file mode 100644
index 0000000..ab7c4e8
--- /dev/null
+++ b/util/scan/dvb-t/fr-Reims
@@ -0,0 +1,25 @@
+# Reims - France (DVB-T transmitter of Reims ( Hautvillers ) )
+# Reims - France (signal DVB-T transmis depuis l'émetteur de Hautvillers )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Reims - Hautvillers ####
+#R1
+T 562000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 554000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 578000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 666000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 642000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Rennes b/util/scan/dvb-t/fr-Rennes
new file mode 100644
index 0000000..3287413
--- /dev/null
+++ b/util/scan/dvb-t/fr-Rennes
@@ -0,0 +1,7 @@
+# Rennes - France
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 562000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
+T 586000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
+T 650000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
+T 674000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
+T 626000000 8MHz 1/2 NONE QAM16 8k 1/32 NONE
diff --git a/util/scan/dvb-t/fr-Roanne b/util/scan/dvb-t/fr-Roanne
new file mode 100644
index 0000000..224ca9f
--- /dev/null
+++ b/util/scan/dvb-t/fr-Roanne
@@ -0,0 +1,25 @@
+# Roanne - France (DVB-T transmitter of Roanne ( Perreux ) )
+# Roanne - France (signal DVB-T transmis depuis l'émetteur de Perreux )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Roanne - Perreux ####
+#R1
+T 474000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 786000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 810000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 498000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 522000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Rouen b/util/scan/dvb-t/fr-Rouen
new file mode 100644
index 0000000..5808155
--- /dev/null
+++ b/util/scan/dvb-t/fr-Rouen
@@ -0,0 +1,8 @@
+# Rouen - France
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 538000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 474000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 498000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/fr-SaintEtienne b/util/scan/dvb-t/fr-SaintEtienne
new file mode 100644
index 0000000..740f223
--- /dev/null
+++ b/util/scan/dvb-t/fr-SaintEtienne
@@ -0,0 +1,25 @@
+# Saint-Etienne - France (DVB-T transmitter of Saint-Etienne ( CroixduGuisay ) )
+# Saint-Etienne - France (signal DVB-T transmis depuis l'émetteur de CroixduGuisay )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Saint-Etienne - CroixduGuisay ####
+#R1
+T 706000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 490000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 618000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 738000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 538000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 514000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-SaintRaphael b/util/scan/dvb-t/fr-SaintRaphael
new file mode 100644
index 0000000..da3a503
--- /dev/null
+++ b/util/scan/dvb-t/fr-SaintRaphael
@@ -0,0 +1,25 @@
+# Saint-Raphaël - France (DVB-T transmitter of Saint-Raphaël ( Picdel'Ours ) )
+# Saint-Raphaël - France (signal DVB-T transmis depuis l'émetteur de Picdel'Ours )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Saint-Raphaël - Picdel'Ours ####
+#R1
+T 490000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 514000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 578000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 730000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 690000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 642000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Sannois b/util/scan/dvb-t/fr-Sannois
new file mode 100644
index 0000000..c3e99e1
--- /dev/null
+++ b/util/scan/dvb-t/fr-Sannois
@@ -0,0 +1,25 @@
+# ParisNord - France (DVB-T transmitter of ParisNord ( Sannois ) )
+# ParisNord - France (signal DVB-T transmis depuis l'émetteur de Sannois )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### ParisNord - Sannois ####
+#R1
+T 586000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 738000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 786000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 810000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 714000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 762000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Sarrebourg b/util/scan/dvb-t/fr-Sarrebourg
new file mode 100644
index 0000000..f6b8d57
--- /dev/null
+++ b/util/scan/dvb-t/fr-Sarrebourg
@@ -0,0 +1,30 @@
+# Sarrebourg - France (DVB-T transmitter of Sarrebourg ( Nondéfini ) )
+# Sarrebourg - France (signal DVB-T transmis depuis l'émetteur de Nondéfini )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Sarrebourg - Nondéfini ####
+#R1
+#T FREQ1 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+#T FREQ2 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+#T FREQ3 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+#T FREQ4 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+#T FREQ5 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+#T FREQ6 8MHz AUTO NONE QAM64 8k AUTO NONE
+##############################################################
+# en Avril 2006, l'emetteur pour Sarrebourg n'etait pas defini
+# Vous devez donc modifier les frequences manuellement.
+# SVP Renvoyez le fichier mis a jour aux contacts ci-dessus.
+##############################################################
diff --git a/util/scan/dvb-t/fr-Sens b/util/scan/dvb-t/fr-Sens
new file mode 100644
index 0000000..3de1a26
--- /dev/null
+++ b/util/scan/dvb-t/fr-Sens
@@ -0,0 +1,25 @@
+# Sens - France (DVB-T transmitter of Sens ( GisylesNobles ) )
+# Sens - France (signal DVB-T transmis depuis l'émetteur de GisylesNobles )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Sens - GisylesNobles ####
+#R1
+T 778000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 794000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 770000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 690000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 802000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 738000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Strasbourg b/util/scan/dvb-t/fr-Strasbourg
new file mode 100644
index 0000000..dbbf546
--- /dev/null
+++ b/util/scan/dvb-t/fr-Strasbourg
@@ -0,0 +1,30 @@
+# Strasbourg - France (DVB-T transmitter of Strasbourg ( Nondéfini ) )
+# Strasbourg - France (signal DVB-T transmis depuis l'émetteur de Nondéfini )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Strasbourg - Nondéfini ####
+#R1
+#T FREQ1 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+#T FREQ2 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+#T FREQ3 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+#T FREQ4 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+#T FREQ5 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+#T FREQ6 8MHz AUTO NONE QAM64 8k AUTO NONE
+##############################################################
+# en Avril 2006, l'emetteur pour Strasbourg n'etait pas defini
+# Vous devez donc modifier les frequences manuellement.
+# SVP Renvoyez le fichier mis a jour aux contacts ci-dessus.
+##############################################################
diff --git a/util/scan/dvb-t/fr-Toulon b/util/scan/dvb-t/fr-Toulon
new file mode 100644
index 0000000..2fc9e9a
--- /dev/null
+++ b/util/scan/dvb-t/fr-Toulon
@@ -0,0 +1,25 @@
+# Toulon - France (DVB-T transmitter of Toulon ( CapSicié ) )
+# Toulon - France (signal DVB-T transmis depuis l'émetteur de CapSicié )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Toulon - CapSicié ####
+#R1
+T 746000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 682000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 706000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 698000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 730000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 722000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Toulouse b/util/scan/dvb-t/fr-Toulouse
new file mode 100644
index 0000000..4c0ba20
--- /dev/null
+++ b/util/scan/dvb-t/fr-Toulouse
@@ -0,0 +1,8 @@
+# Toulouse - France (DVB-T transmitter of Bohnoure)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 754167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 698167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 722167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 714167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 746167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 730167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/fr-Toulouse-Midi b/util/scan/dvb-t/fr-Toulouse-Midi
new file mode 100644
index 0000000..df51107
--- /dev/null
+++ b/util/scan/dvb-t/fr-Toulouse-Midi
@@ -0,0 +1,25 @@
+# Toulouse - France (DVB-T transmitter of Toulouse ( PicduMidi ) )
+# Toulouse - France (signal DVB-T transmis depuis l'émetteur de PicduMidi )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Toulouse - PicduMidi ####
+#R1
+T 738000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 690000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 706000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 482000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 514000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 594000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Tours b/util/scan/dvb-t/fr-Tours
new file mode 100644
index 0000000..9ad9f71
--- /dev/null
+++ b/util/scan/dvb-t/fr-Tours
@@ -0,0 +1,25 @@
+# Tours - France (DVB-T transmitter of Tours ( Chissay ) )
+# Tours - France (signal DVB-T transmis depuis l'émetteur de Chissay )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Tours - Chissay ####
+#R1
+T 578000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 610000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 810000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 690000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 602000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 714000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Troyes b/util/scan/dvb-t/fr-Troyes
new file mode 100644
index 0000000..bcafe8b
--- /dev/null
+++ b/util/scan/dvb-t/fr-Troyes
@@ -0,0 +1,25 @@
+# Troyes - France (DVB-T transmitter of Troyes ( LesRiceys ) )
+# Troyes - France (signal DVB-T transmis depuis l'émetteur de LesRiceys )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Troyes - LesRiceys ####
+#R1
+T 482000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 594000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 634000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 514000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 506000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 530000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Ussel b/util/scan/dvb-t/fr-Ussel
new file mode 100644
index 0000000..de2a58c
--- /dev/null
+++ b/util/scan/dvb-t/fr-Ussel
@@ -0,0 +1,25 @@
+# Ussel - France (DVB-T transmitter of Ussel ( Meymac ) )
+# Ussel - France (signal DVB-T transmis depuis l'émetteur de Meymac )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Ussel - Meymac ####
+#R1
+T 698000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 634000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 722000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 746000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 658000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 682000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Valence b/util/scan/dvb-t/fr-Valence
new file mode 100644
index 0000000..4b74003
--- /dev/null
+++ b/util/scan/dvb-t/fr-Valence
@@ -0,0 +1,25 @@
+# Valence - France (DVB-T transmitter of Valence ( StRomaindeLerps ) )
+# Valence - France (signal DVB-T transmis depuis l'émetteur de StRomaindeLerps )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Valence - StRomaindeLerps ####
+#R1
+T 706000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+T 698000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+T 722000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+T 746000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+T 546000000 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+T 570000000 8MHz AUTO NONE QAM64 8k AUTO NONE
diff --git a/util/scan/dvb-t/fr-Valenciennes b/util/scan/dvb-t/fr-Valenciennes
new file mode 100644
index 0000000..36d0642
--- /dev/null
+++ b/util/scan/dvb-t/fr-Valenciennes
@@ -0,0 +1,30 @@
+# Valenciennes - France (DVB-T transmitter of Valenciennes ( Nondéfini ) )
+# Valenciennes - France (signal DVB-T transmis depuis l'émetteur de Nondéfini )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Valenciennes - Nondéfini ####
+#R1
+#T FREQ1 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+#T FREQ2 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+#T FREQ3 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+#T FREQ4 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+#T FREQ5 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+#T FREQ6 8MHz AUTO NONE QAM64 8k AUTO NONE
+##############################################################
+# en Avril 2006, l'emetteur pour Valenciennes n'etait pas defini
+# Vous devez donc modifier les frequences manuellement.
+# SVP Renvoyez le fichier mis a jour aux contacts ci-dessus.
+##############################################################
diff --git a/util/scan/dvb-t/fr-Vannes b/util/scan/dvb-t/fr-Vannes
new file mode 100644
index 0000000..06439cb
--- /dev/null
+++ b/util/scan/dvb-t/fr-Vannes
@@ -0,0 +1,7 @@
+# Vannes / France
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 674167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 698167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 762167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 778167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 818167000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/fr-Villebon b/util/scan/dvb-t/fr-Villebon
new file mode 100644
index 0000000..ec173d7
--- /dev/null
+++ b/util/scan/dvb-t/fr-Villebon
@@ -0,0 +1,22 @@
+# Paris - France (DVB-T transmitter of Villebon )
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+
+# Villebon - France (DVB-T transmitter of Villebon (South of Paris))
+# Villebon - France (signal DVB-T transmis depuis l'émetteur de Villebon (Sud de Paris))
+# see : http://tnt.niv2.com/91140-VILLEBON-SUR-YVETTE.html
+# contact : Nicolas Estre <n_estre@yahoo.fr>
+
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### VILLEBON SUR YVETTE ####
+#R1 35
+T 586000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
+#R2 56
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+#R3 60
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+#R4 63
+T 810000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+#R5 51
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+#R6 57
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/fr-Vittel b/util/scan/dvb-t/fr-Vittel
new file mode 100644
index 0000000..8c55b23
--- /dev/null
+++ b/util/scan/dvb-t/fr-Vittel
@@ -0,0 +1,30 @@
+# Vittel - France (DVB-T transmitter of Vittel ( Nondéfini ) )
+# Vittel - France (signal DVB-T transmis depuis l'émetteur de Nondéfini )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Vittel - Nondéfini ####
+#R1
+#T FREQ1 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+#T FREQ2 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+#T FREQ3 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+#T FREQ4 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+#T FREQ5 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+#T FREQ6 8MHz AUTO NONE QAM64 8k AUTO NONE
+##############################################################
+# en Avril 2006, l'emetteur pour Vittel n'etait pas defini
+# Vous devez donc modifier les frequences manuellement.
+# SVP Renvoyez le fichier mis a jour aux contacts ci-dessus.
+##############################################################
diff --git a/util/scan/dvb-t/fr-Voiron b/util/scan/dvb-t/fr-Voiron
new file mode 100644
index 0000000..04405c6
--- /dev/null
+++ b/util/scan/dvb-t/fr-Voiron
@@ -0,0 +1,30 @@
+# Voiron - France (DVB-T transmitter of Voiron ( Nondéfini ) )
+# Voiron - France (signal DVB-T transmis depuis l'émetteur de Nondéfini )
+#
+# ATTENTION ! Ce fichier a ete construit automatiquement a partir
+# des frequences obtenues sur : http://www.tvnt.net/multiplex_frequences.htm
+# en Avril 2006. Si vous constatez des problemes et voulez apporter des
+# modifications au fichier, envoyez le fichier modifie a
+# l'adresse linux-dvb@linuxtv.org (depot des fichiers d'init dvb)
+# ou a l'auteur du fichier :
+# Nicolas Estre <n_estre@yahoo.fr>
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#### Voiron - Nondéfini ####
+#R1
+#T FREQ1 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R2
+#T FREQ2 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R3
+#T FREQ3 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R4
+#T FREQ4 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R5
+#T FREQ5 8MHz AUTO NONE QAM64 8k AUTO NONE
+#R6
+#T FREQ6 8MHz AUTO NONE QAM64 8k AUTO NONE
+##############################################################
+# en Avril 2006, l'emetteur pour Voiron n'etait pas defini
+# Vous devez donc modifier les frequences manuellement.
+# SVP Renvoyez le fichier mis a jour aux contacts ci-dessus.
+##############################################################
diff --git a/util/scan/dvb-t/gr-Athens b/util/scan/dvb-t/gr-Athens
new file mode 100644
index 0000000..85cf6d7
--- /dev/null
+++ b/util/scan/dvb-t/gr-Athens
@@ -0,0 +1,3 @@
+# Initial scan config for Digital DVB-T (Ert) in Athens Greece
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 690000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/hr-Zagreb b/util/scan/dvb-t/hr-Zagreb
new file mode 100644
index 0000000..b385c87
--- /dev/null
+++ b/util/scan/dvb-t/hr-Zagreb
@@ -0,0 +1,3 @@
+# DVB-T Hamburg
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 522000000 8MHz 3/4 NONE AUTO 8k 1/32 NONE # CH27:
diff --git a/util/scan/dvb-t/is-Reykjavik b/util/scan/dvb-t/is-Reykjavik
new file mode 100644
index 0000000..da5e3c6
--- /dev/null
+++ b/util/scan/dvb-t/is-Reykjavik
@@ -0,0 +1,13 @@
+# Initial scan config for Digital Ãsland in Iceland
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 698000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 738000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 794000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
+T 818000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/it-Aosta b/util/scan/dvb-t/it-Aosta
new file mode 100644
index 0000000..486407d
--- /dev/null
+++ b/util/scan/dvb-t/it-Aosta
@@ -0,0 +1,21 @@
+# Italia / Aosta (it-Aosta) -- mailto: Marco <lovebuzz@email.it>
+#
+# A me funziona solo il Mux Mediaset 2 non riesco a capire come mai...
+# (magari colpa della mia pinnacle pctv 301i saa7133)
+# Gli altri Mux inseriti li ho inseriti come da sito http://www.digitv.it...
+#
+# Chi avesse news o riuscisse a venirne a capo usando anche gli altri mux potrebbe scrivermi
+# inviare una maila kaffeine-user@lists.sf.net per aggiornare/correggere questo file...
+#
+# MUX-A RAI
+T 226500000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX MEDIASET 1
+T 474000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MBONE
+T 746000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX DFREE
+T 762000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX MEDIASET 2
+T 770000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# TIMB1
+T 786000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/it-Bari b/util/scan/dvb-t/it-Bari
new file mode 100644
index 0000000..5be8ac4
--- /dev/null
+++ b/util/scan/dvb-t/it-Bari
@@ -0,0 +1,18 @@
+# Italy, Bari
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# MUX-A RAI
+T 219500000 7MHz 2/3 AUTO QAM64 8k 1/32 NONE
+# MUX-B RAI
+T 546000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX MEDIASET 1
+T 514000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX DFREE
+T 226500000 7MHz 2/3 AUTO QAM64 8k 1/32 NONE
+# MUX MEDIASET 2
+T 826000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MBONE
+T 498000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# TIMB1
+T 530000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# TeleNorba, TelePuglia, altro...
+T 794000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/it-Bologna b/util/scan/dvb-t/it-Bologna
new file mode 100644
index 0000000..dcd8e35
--- /dev/null
+++ b/util/scan/dvb-t/it-Bologna
@@ -0,0 +1,28 @@
+# DVB-T Collserola (Barcelona)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#TeleSanterno
+T 186000000 7MHz 2/3 2/3 QAM64 8k 1/32 NONE
+#RaiA
+T 203500000 7MHz 2/3 2/3 QAM64 8k 1/32 NONE
+#Sestarete / Rete 7
+T 212500000 7MHz 2/3 2/3 QAM64 8k 1/32 NONE
+#Modena
+T 219500000 7MHz 2/3 2/3 QAM64 8k 1/32 NONE
+#ReteA, Camera e Senato
+T 594000000 8MHz 2/3 2/3 QAM64 8k 1/32 NONE
+#Sestarete / Rete 7
+T 610000000 8MHz 2/3 2/3 QAM64 8k 1/32 NONE
+#DFree
+T 634000000 8MHz 2/3 2/3 QAM64 8k 1/32 NONE
+#Mediaset Mux-B
+T 698000000 8MHz 2/3 2/3 QAM64 8k 1/32 NONE
+#La7
+T 714000000 8MHz 2/3 2/3 QAM64 8k 1/32 NONE
+#RaiB
+T 722000000 8MHz 2/3 2/3 QAM64 8k 1/32 NONE
+#Mediaset Mux-A
+T 794000000 8MHz 2/3 2/3 QAM64 8k 1/32 NONE
+#TeleSanterno
+T 802000000 8MHz 2/3 2/3 QAM64 8k 1/32 NONE
+#LA7-2
+T 842000000 8MHz 2/3 2/3 QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/it-Bolzano b/util/scan/dvb-t/it-Bolzano
new file mode 100644
index 0000000..de50c1e
--- /dev/null
+++ b/util/scan/dvb-t/it-Bolzano
@@ -0,0 +1,5 @@
+# DVB-T Bolzano
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+
+#RAS DVB-t NETWORK
+T 698000000 8MHz 2/3 2/3 QAM16 8k 1/4 NONE
diff --git a/util/scan/dvb-t/it-Cagliari b/util/scan/dvb-t/it-Cagliari
new file mode 100644
index 0000000..9dcaf53
--- /dev/null
+++ b/util/scan/dvb-t/it-Cagliari
@@ -0,0 +1,31 @@
+# DVB-T Cagliari
+# MUX DFREE
+T 730000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX LA7/MTV
+T 474000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX MEDIASET1
+T 826000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX MEDIASET2
+T 562000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX-A RAI
+T 546000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+T 530000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX-B RAI
+T 842000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+T 858000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# TCS
+T 658000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# VIDEOLINA
+T 610000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# TIMEDIA MUX A
+T 818000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+T 650000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+T 850000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# T 474000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+T 810000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# TIMEDIA MUX B
+T 177500000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+T 602000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# T 177500000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# SUPER TV
+# T 650000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/it-Caivano b/util/scan/dvb-t/it-Caivano
new file mode 100644
index 0000000..c823a6f
--- /dev/null
+++ b/util/scan/dvb-t/it-Caivano
@@ -0,0 +1,14 @@
+#################################
+# DVB-T Caivano(NA) 80023 Italy #
+# update: 25/05/2007 #
+# by Nicola Costanzo #
+#################################
+
+# MUX LA7/MTV
+T 834000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX MEDIASET 1
+T 810000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX MEDIASET 2
+T 706000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX-A RAI
+T 722000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/it-Catania b/util/scan/dvb-t/it-Catania
new file mode 100644
index 0000000..c4d0849
--- /dev/null
+++ b/util/scan/dvb-t/it-Catania
@@ -0,0 +1,27 @@
+# it-Catania
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+
+# MUX DFREE (Canale 5,Italia1,SportItalia,LCI,RadioItalia Tv)
+T 810000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+T 690000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+T 618000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+
+# MUX LA7/MTV (La 7,MTV ITALIA,Canale D,Music Box)
+#T 586000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+
+# MUX RTI (Rete 4,Class News,Sole 24 Ore TV,BBC World)
+T 586000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+
+# MUX MEDIASET 1
+T 226500000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+T 834000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+
+# MUX MEDIASET 2
+T 818000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+T 650000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+
+# MUX-A RAI (Rai Utile,Rai Doc,RaiSportSAT,RaiNews24,Rai EDU1)
+T 610000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+
+# MUX-B RAI (Rai Utile,Rai Doc,RaiSportSAT,RaiNews24,Rai EDU1)
+T 482000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/it-Conero b/util/scan/dvb-t/it-Conero
new file mode 100644
index 0000000..318775f
--- /dev/null
+++ b/util/scan/dvb-t/it-Conero
@@ -0,0 +1,8 @@
+# Italia / Conero (it-Conero) -- mailto: simon <f.simon@email.it>
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# C50
+T 706000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# C46
+T 674000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# C21
+T 474000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/it-Firenze b/util/scan/dvb-t/it-Firenze
new file mode 100644
index 0000000..2ebe9e6
--- /dev/null
+++ b/util/scan/dvb-t/it-Firenze
@@ -0,0 +1,20 @@
+# This channel list is made by Michele Ficarra
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# MUX-A RAI
+T 554000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX-B RAI
+T 842000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX MEDIASET 1
+T 682000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX MEDIASET 2
+T 826000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX La7/MTV
+T 618000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX DFREE
+T 738000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX MBON
+T 778000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX Digitoscana
+T 219500000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX Tele37
+T 786000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/it-Genova b/util/scan/dvb-t/it-Genova
new file mode 100644
index 0000000..5b5c670
--- /dev/null
+++ b/util/scan/dvb-t/it-Genova
@@ -0,0 +1,12 @@
+# Italia / Genova (it-Genova) - Angelo Conforti <angeloxx@angeloxx.it>
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# MUX-A RAI
+T 498000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX-B RAI
+T 219500000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX La7/MTV
+T 682000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX DFREE
+T 770000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX Mediaset
+T 850000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/it-Livorno b/util/scan/dvb-t/it-Livorno
new file mode 100644
index 0000000..bf83a4a
--- /dev/null
+++ b/util/scan/dvb-t/it-Livorno
@@ -0,0 +1,15 @@
+# This channel list is made by G.U.L.LI. LIvorno's Linux Users Group
+# Thanks to: Alessandro Guarguaglini, Stefano Lenzi
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# MUX-A RAI
+T 698000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX-B RAI
+T 658000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX MEDIASET 1
+T 618000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX MEDIASET 2
+T 754000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX La7/MTV
+T 818000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX DFREE
+T 586000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/it-Milano b/util/scan/dvb-t/it-Milano
new file mode 100644
index 0000000..2b70cd1
--- /dev/null
+++ b/util/scan/dvb-t/it-Milano
@@ -0,0 +1,15 @@
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# MUX-A RAI
+T 818000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX-B RAI
+T 482000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX-A MEDIASET
+T 842000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX-A MEDIASET-2
+T 618000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX La7/MTV
+T 506000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX DFREE
+T 706000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX DFREE 2
+T 538000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/it-Pagnacco b/util/scan/dvb-t/it-Pagnacco
new file mode 100644
index 0000000..c6f482d
--- /dev/null
+++ b/util/scan/dvb-t/it-Pagnacco
@@ -0,0 +1,27 @@
+# Italia / Pagnacco (it-Pagnacco)
+# DVB-T Pagnacco (Italia)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+
+# MUX-A RAI
+
+T 602000000 8MHz 3/4 NONE QAM64 8k 1/32 NONE
+
+# MUX-B RAI
+
+T 490000000 8MHz 3/4 NONE QAM64 8k 1/32 NONE
+T 226500000 8MHz 3/4 NONE QAM64 8k 1/32 NONE
+
+# MUX-Dfree
+
+T 634000000 8MHz 3/4 NONE QAM64 8k 1/32 NONE
+T 594000000 8MHz 3/4 NONE QAM64 8k 1/32 NONE
+
+# MUX-LA7/MTV
+
+T 522000000 8MHz 3/4 NONE QAM64 8k 1/32 NONE
+
+# Mediaset
+
+T 818000000 8MHz 3/4 NONE QAM64 8k 1/32 NONE
+
+# Europa
diff --git a/util/scan/dvb-t/it-Palermo b/util/scan/dvb-t/it-Palermo
new file mode 100644
index 0000000..8043acd
--- /dev/null
+++ b/util/scan/dvb-t/it-Palermo
@@ -0,0 +1,23 @@
+# Palermo, Italy
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+
+# MUX DFREE (Canale 5,Italia1,SportItalia,LCI,RadioItalia Tv)
+T 754000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+T 602000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+T 850000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+
+# MUX LA7/MTV (La 7,MTV ITALIA,Canale D,Music Box)
+#T 730000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+
+# MUX RTI (Rete 4,Class News,Sole 24 Ore TV,BBC World)
+T 842000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+
+# MUX MEDIASET 2
+T 682000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+T 650000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+
+# MUX-A RAI (Rai Utile,Rai Doc,RaiSportSAT,RaiNews24,Rai EDU1)
+T 610000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+
+# MUX-B RAI (Rai Utile,Rai Doc,RaiSportSAT,RaiNews24,Rai EDU1)
+T 482000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/it-Pisa b/util/scan/dvb-t/it-Pisa
new file mode 100644
index 0000000..5990402
--- /dev/null
+++ b/util/scan/dvb-t/it-Pisa
@@ -0,0 +1,18 @@
+# This channel list is made by G.U.L.LI. LIvorno's Linux Users Group
+# Thanks to: Alessandro Guarguaglini, Stefano Lenzi
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# MUX-A RAI
+T 698000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX-B RAI
+T 658000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX MEDIASET 1
+T 634000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+T 618000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX DFREE
+T 746000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX MEDIASET 2
+T 754000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX MBONE
+T 818000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX TIMB1
+T 762000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/it-Roma b/util/scan/dvb-t/it-Roma
new file mode 100644
index 0000000..4463074
--- /dev/null
+++ b/util/scan/dvb-t/it-Roma
@@ -0,0 +1,16 @@
+# DVB-T Roma
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# MUX DFREE
+T 810000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX La7/MTV
+T 730000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX MEDIASET 1
+T 626000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX MEDIASET 2
+T 762000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX-A RAI
+T 698000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX-B RAI
+T 186000000 7MHz 2/3 2/3 QAM64 8k 1/32 NONE
+# SUPER 3
+T 538000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/it-Sassari b/util/scan/dvb-t/it-Sassari
new file mode 100644
index 0000000..c81254e
--- /dev/null
+++ b/util/scan/dvb-t/it-Sassari
@@ -0,0 +1,33 @@
+# DVB-T Sassari Channels List by frippertronics@alice.it ;)
+# MUX DFREE
+T 746000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX LA7/MTV
+T 826000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX MEDIASET1
+T 802000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX MEDIASET2
+T 634000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX-A RAI
+T 786000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+T 530000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX-B RAI
+T 842000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+T 858000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MBONE
+T 738000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# TCS
+T 658000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# VIDEOLINA
+T 610000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# TIMEDIA MUX A
+T 818000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+T 650000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+T 850000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# T 474000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+T 810000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# TIMEDIA MUX B
+T 177500000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+T 602000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# T 177500000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# SUPER TV
+# T 650000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/it-Torino b/util/scan/dvb-t/it-Torino
new file mode 100644
index 0000000..4587a21
--- /dev/null
+++ b/util/scan/dvb-t/it-Torino
@@ -0,0 +1,13 @@
+# DVB-T Torino (Italia)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#MUX-A RAI
+T 834000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+#MUX-B RAI
+T 514000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+#MUX RTI
+T 474000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+#MUX LA7
+T 850000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+T 602000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+#MUX DFREE
+T 650000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/it-Trieste b/util/scan/dvb-t/it-Trieste
new file mode 100644
index 0000000..1839cdf
--- /dev/null
+++ b/util/scan/dvb-t/it-Trieste
@@ -0,0 +1,23 @@
+# Trieste, Italy
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# MUX MEDIASET 1 (Class News, 24Ore TV, Coming soon, BBC World, Boing, Mediaset Premium)
+T 778000000 8MHz 2/3 1/1 QAM64 8k 1/32 NONE
+T 474000000 8MHz 2/3 1/1 QAM64 8k 1/32 NONE
+#
+# MUX-B RAI (Rai Doc-Futura, RaiSportSAT, RaiNotizie24, Rai EDU1, Sat2000, Radio1, Radio2, Radio3, FDAuditorium)
+T 682000000 8MHz 2/3 1/1 QAM64 8k 1/32 NONE
+#
+# MUX-A RAI (Rai Uno, Rai Due, Rai Tre, Rai Utile)
+T 602000000 8MHz 2/3 1/1 QAM64 8k 1/32 NONE
+#
+# MUX DFREE (Rete 4, Italia 1, Sportitalia, LCI / Prima, Si Live24)
+T 754000000 8MHz 2/3 1/1 QAM64 8k 1/32 NONE
+#
+# MUX (All Music)
+T 666000000 8MHz 2/3 1/1 QAM64 8k 1/32 NONE
+#
+# MUX (Triveneta)
+T 698000000 8MHz 2/3 1/1 QAM64 8k 1/32 NONE
+#
+# MUX (La7 Telemarket Retecapri MTv italia Sitcom Uno)
+T 674000000 8MHz 2/3 1/1 QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/it-Varese b/util/scan/dvb-t/it-Varese
new file mode 100644
index 0000000..045b56c
--- /dev/null
+++ b/util/scan/dvb-t/it-Varese
@@ -0,0 +1,16 @@
+# Italia / Varese -- mailto: b.gabriele <gb.dvbch@dveprojects.com>
+#
+# From: http://www.dgtvi.it/copertura.aspx
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#
+# MUX-A RAI VHF H2 226,5 O CAMPO DEI FIORI
+T 226500000 7MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX DFREE UHF C50 706 V CAMPO DEI FIORI
+T 706000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX LA7-MTV UHF C37 602 V CAMPO DEI FIORI
+T 602000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX RTI UHF C26 514 O CAMPO DEI FIORI PRIMA CAPPELLA
+T 514000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# MUX RTI UHF C38 514 V CAMPO DEI FIORI ALBERGO
+T 610000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/it-Venezia b/util/scan/dvb-t/it-Venezia
new file mode 100644
index 0000000..be454e4
--- /dev/null
+++ b/util/scan/dvb-t/it-Venezia
@@ -0,0 +1,19 @@
+# Italia / Venzia (it-Venezia) -- mailto: Rob <rob.davis@libero.it>
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+#
+# According to Eurosat 1/2006
+#
+# C50 - MediaSet
+T 706000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# C37 - Rai A - Doesn't work in Mestre though
+T 602000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# C23 -Rai B
+T 490000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# C64 DFree
+T 818000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# C65 La 7
+T 826000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# C58 Mediaset 2
+T 770000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
+# C36 DFree
+T 594000000 8MHz 2/3 1/2 QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/lu-All b/util/scan/dvb-t/lu-All
new file mode 100644
index 0000000..aa30d7c
--- /dev/null
+++ b/util/scan/dvb-t/lu-All
@@ -0,0 +1,5 @@
+# DVB-T Luxembourg [2007-11-18]
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 191500000 7MHz 2/3 NONE QAM16 8k 1/8 NONE # Kanal 7 M6, RTL 8, LUXE.TV
+T 498000000 8MHz 2/3 NONE QAM64 8k 1/16 NONE # Kanal 24 club RTL, RTL TVI, plug TV, RTL 4, RTL 5, RTL 7
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/16 NONE # Kanal 27 RTL TeleLetz, 2 ten RTL
diff --git a/util/scan/dvb-t/lv-Riga b/util/scan/dvb-t/lv-Riga
new file mode 100644
index 0000000..0fb9b9a
--- /dev/null
+++ b/util/scan/dvb-t/lv-Riga
@@ -0,0 +1,25 @@
+# Latvia - Riga (lv-Riga)
+# Generated by Raimonds Cicans
+# UTF8 encoding
+
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+
+# DLRTC
+T 610000000 8MHz 3/4 NONE QAM64 8k 1/8 NONE # Weak signal! VÄjÅ¡ signÄls! Слабый Ñигнал!
+
+# Baltkom TV
+T 650000000 8MHz 3/4 3/4 QAM64 8k 1/16 NONE
+T 658000000 8MHz 1/2 1/2 QPSK 8k 1/4 NONE
+T 666000000 8MHz 3/4 3/4 QAM64 8k 1/16 NONE
+T 690000000 8MHz 3/4 3/4 QAM64 8k 1/16 NONE
+T 778000000 8MHz 3/4 3/4 QAM64 8k 1/16 NONE
+T 834000000 8MHz 3/4 3/4 QAM64 8k 1/16 NONE
+
+# WARNING!
+# Some applications detect incorrect guard-interval.
+
+# UZMANĪBU!
+# Dažas programmas nekorekti nosaka "guard-interval" parametru.
+
+# Ð’ÐИМÐÐИЕ!
+# Ðекоторые программы некорректно определÑÑŽÑ‚ параметр "guard-interval"
diff --git a/util/scan/dvb-t/nl-All b/util/scan/dvb-t/nl-All
new file mode 100644
index 0000000..f01a086
--- /dev/null
+++ b/util/scan/dvb-t/nl-All
@@ -0,0 +1,38 @@
+# The Netherlands, whole country
+# Created from http://home.planet.nl/~ploe2070/fmtv/dvbt/digitenne-kpntv.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 474000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+T 474000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 482000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+T 490000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 498000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 514000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+T 538000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 546000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 562000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 570000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 578000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 586000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 618000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+T 642000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+T 666000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 690000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+T 706000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+T 722000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+T 738000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+T 738000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 746000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 786000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+T 818000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+T 818000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
+T 826000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+T 834000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
+T 834000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/nl-AlphenaandenRijn b/util/scan/dvb-t/nl-AlphenaandenRijn
deleted file mode 100644
index f95d3a4..0000000
--- a/util/scan/dvb-t/nl-AlphenaandenRijn
+++ /dev/null
@@ -1,7 +0,0 @@
-# Digitenne (Alphen aan den Rijn, The Netherlands)
-# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 474000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
-T 578000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
-T 722000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
-T 762000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
-T 818000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/nl-Randstad b/util/scan/dvb-t/nl-Randstad
deleted file mode 100644
index da1a74d..0000000
--- a/util/scan/dvb-t/nl-Randstad
+++ /dev/null
@@ -1,7 +0,0 @@
-# Digitenne (Randstad, The Netherlands)
-# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 474000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
-T 490000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
-T 578000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
-T 762000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
-T 818000000 8MHz 1/2 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/nz-Waiatarua b/util/scan/dvb-t/nz-Waiatarua
new file mode 100644
index 0000000..2fbea4f
--- /dev/null
+++ b/util/scan/dvb-t/nz-Waiatarua
@@ -0,0 +1,13 @@
+# Waiatarua, Auckland NZ
+#
+# Channel allocation details for NZ can be found at
+# http://www.rsm.govt.nz/cms/policy-and-planning/current-projects/broadcasting/digital-television-2007-frequency-plan
+#
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+
+# Multiplex DA
+T 538000000 8MHz 3/4 3/4 QAM64 8k 1/16 NONE
+# Multiplex DB
+T 570000000 8MHz 3/4 3/4 QAM64 8k 1/16 NONE
+# Multiplex DC
+T 666000000 8MHz 3/4 3/4 QAM64 8k 1/16 NONE
diff --git a/util/scan/dvb-t/pl-Wroclaw b/util/scan/dvb-t/pl-Wroclaw
new file mode 100644
index 0000000..d6b0f9b
--- /dev/null
+++ b/util/scan/dvb-t/pl-Wroclaw
@@ -0,0 +1,3 @@
+# Wroclaw / Zorawina, South-West Poland
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/32 NONE
diff --git a/util/scan/dvb-t/se-Alvdalen_Brunnsberg b/util/scan/dvb-t/se-Alvdalen_Brunnsberg
new file mode 100644
index 0000000..d9e5427
--- /dev/null
+++ b/util/scan/dvb-t/se-Alvdalen_Brunnsberg
@@ -0,0 +1,3 @@
+# Sweden - Älvdalen/Brunnsberg
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Alvdalsasen b/util/scan/dvb-t/se-Alvdalsasen
new file mode 100644
index 0000000..d291cf6
--- /dev/null
+++ b/util/scan/dvb-t/se-Alvdalsasen
@@ -0,0 +1,3 @@
+# Sweden - Älvdalsåsen
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 570000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Alvsbyn b/util/scan/dvb-t/se-Alvsbyn
new file mode 100644
index 0000000..214928d
--- /dev/null
+++ b/util/scan/dvb-t/se-Alvsbyn
@@ -0,0 +1,7 @@
+# Sweden - Älvsbyn
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Amot b/util/scan/dvb-t/se-Amot
new file mode 100644
index 0000000..f93453c
--- /dev/null
+++ b/util/scan/dvb-t/se-Amot
@@ -0,0 +1,3 @@
+# Sweden - Ã…mot
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Ange_Snoberg b/util/scan/dvb-t/se-Ange_Snoberg
new file mode 100644
index 0000000..661ec98
--- /dev/null
+++ b/util/scan/dvb-t/se-Ange_Snoberg
@@ -0,0 +1,6 @@
+# Sweden - Ånge/Snöberg
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 746000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Angebo b/util/scan/dvb-t/se-Angebo
new file mode 100644
index 0000000..ee67956
--- /dev/null
+++ b/util/scan/dvb-t/se-Angebo
@@ -0,0 +1,3 @@
+# Sweden - Ängebo
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 802000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Angelholm_Vegeholm b/util/scan/dvb-t/se-Angelholm_Vegeholm
new file mode 100644
index 0000000..fd79bf7
--- /dev/null
+++ b/util/scan/dvb-t/se-Angelholm_Vegeholm
@@ -0,0 +1,7 @@
+# Sweden - Ängelholm/Vegeholm
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 506000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 634000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 818000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 794000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/se-Arvidsjaur_Jultrask b/util/scan/dvb-t/se-Arvidsjaur_Jultrask
new file mode 100644
index 0000000..4b559b8
--- /dev/null
+++ b/util/scan/dvb-t/se-Arvidsjaur_Jultrask
@@ -0,0 +1,6 @@
+# Sweden - Arvidsjaur/Julträsk
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Aspeboda b/util/scan/dvb-t/se-Aspeboda
new file mode 100644
index 0000000..825b96b
--- /dev/null
+++ b/util/scan/dvb-t/se-Aspeboda
@@ -0,0 +1,3 @@
+# Sweden - Aspeboda
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Atvidaberg b/util/scan/dvb-t/se-Atvidaberg
new file mode 100644
index 0000000..37a7fad
--- /dev/null
+++ b/util/scan/dvb-t/se-Atvidaberg
@@ -0,0 +1,4 @@
+# Sweden - Ã…tvidaberg
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 490000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Avesta_Krylbo b/util/scan/dvb-t/se-Avesta_Krylbo
new file mode 100644
index 0000000..e454a41
--- /dev/null
+++ b/util/scan/dvb-t/se-Avesta_Krylbo
@@ -0,0 +1,4 @@
+# Sweden - Avesta/Krylbo
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Backefors b/util/scan/dvb-t/se-Backefors
new file mode 100644
index 0000000..d681425
--- /dev/null
+++ b/util/scan/dvb-t/se-Backefors
@@ -0,0 +1,7 @@
+# Sweden - Bäckefors
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 586000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 754000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 482000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 506000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 826000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/se-Bankeryd b/util/scan/dvb-t/se-Bankeryd
new file mode 100644
index 0000000..06faa37
--- /dev/null
+++ b/util/scan/dvb-t/se-Bankeryd
@@ -0,0 +1,4 @@
+# Sweden - Bankeryd
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 698000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Bergsjo_Balleberget b/util/scan/dvb-t/se-Bergsjo_Balleberget
new file mode 100644
index 0000000..0c95297
--- /dev/null
+++ b/util/scan/dvb-t/se-Bergsjo_Balleberget
@@ -0,0 +1,3 @@
+# Sweden - Bergsjö/Bålleberget
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Bergvik b/util/scan/dvb-t/se-Bergvik
new file mode 100644
index 0000000..327562d
--- /dev/null
+++ b/util/scan/dvb-t/se-Bergvik
@@ -0,0 +1,3 @@
+# Sweden - Bergvik
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Bollebygd b/util/scan/dvb-t/se-Bollebygd
new file mode 100644
index 0000000..155df13
--- /dev/null
+++ b/util/scan/dvb-t/se-Bollebygd
@@ -0,0 +1,4 @@
+# Sweden - Bollebygd
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Bollnas b/util/scan/dvb-t/se-Bollnas
new file mode 100644
index 0000000..38eaf1b
--- /dev/null
+++ b/util/scan/dvb-t/se-Bollnas
@@ -0,0 +1,6 @@
+# Sweden - Bollnäs
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 538000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 698000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 578000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 618000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/se-Boras_Dalsjofors b/util/scan/dvb-t/se-Boras_Dalsjofors
new file mode 100644
index 0000000..ea73212
--- /dev/null
+++ b/util/scan/dvb-t/se-Boras_Dalsjofors
@@ -0,0 +1,7 @@
+# Sweden - Borås/Dalsjöfors
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 738000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 538000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 594000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 794000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Boras_Sjobo b/util/scan/dvb-t/se-Boras_Sjobo
new file mode 100644
index 0000000..9e1dfe2
--- /dev/null
+++ b/util/scan/dvb-t/se-Boras_Sjobo
@@ -0,0 +1,4 @@
+# Sweden - Borås/Sjöbo
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 810000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Borlange_Idkerberget b/util/scan/dvb-t/se-Borlange_Idkerberget
new file mode 100644
index 0000000..e30e298
--- /dev/null
+++ b/util/scan/dvb-t/se-Borlange_Idkerberget
@@ -0,0 +1,6 @@
+# Sweden - Borlänge/Idkerberget
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 722000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Borlange_Nygardarna b/util/scan/dvb-t/se-Borlange_Nygardarna
new file mode 100644
index 0000000..c4caad9
--- /dev/null
+++ b/util/scan/dvb-t/se-Borlange_Nygardarna
@@ -0,0 +1,4 @@
+# Sweden - Borlänge/Nygårdarna
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Bottnaryd_Ryd b/util/scan/dvb-t/se-Bottnaryd_Ryd
new file mode 100644
index 0000000..88545b4
--- /dev/null
+++ b/util/scan/dvb-t/se-Bottnaryd_Ryd
@@ -0,0 +1,3 @@
+# Sweden - Bottnaryd/Ryd
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Bromsebro b/util/scan/dvb-t/se-Bromsebro
new file mode 100644
index 0000000..7dc23bc
--- /dev/null
+++ b/util/scan/dvb-t/se-Bromsebro
@@ -0,0 +1,4 @@
+# Sweden - Brömsebro
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Bruzaholm b/util/scan/dvb-t/se-Bruzaholm
new file mode 100644
index 0000000..d2d82b4
--- /dev/null
+++ b/util/scan/dvb-t/se-Bruzaholm
@@ -0,0 +1,3 @@
+# Sweden - Bruzaholm
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Byxelkrok b/util/scan/dvb-t/se-Byxelkrok
new file mode 100644
index 0000000..280accd
--- /dev/null
+++ b/util/scan/dvb-t/se-Byxelkrok
@@ -0,0 +1,4 @@
+# Sweden - Byxelkrok
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Dadran b/util/scan/dvb-t/se-Dadran
new file mode 100644
index 0000000..6d55531
--- /dev/null
+++ b/util/scan/dvb-t/se-Dadran
@@ -0,0 +1,3 @@
+# Sweden - DÃ¥dran
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Dalfors b/util/scan/dvb-t/se-Dalfors
new file mode 100644
index 0000000..b9f5c76
--- /dev/null
+++ b/util/scan/dvb-t/se-Dalfors
@@ -0,0 +1,3 @@
+# Sweden - Dalfors
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Dalstuga b/util/scan/dvb-t/se-Dalstuga
new file mode 100644
index 0000000..d7f5374
--- /dev/null
+++ b/util/scan/dvb-t/se-Dalstuga
@@ -0,0 +1,3 @@
+# Sweden - Dalstuga
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Degerfors b/util/scan/dvb-t/se-Degerfors
new file mode 100644
index 0000000..c0dc0b9
--- /dev/null
+++ b/util/scan/dvb-t/se-Degerfors
@@ -0,0 +1,6 @@
+# Sweden - Degerfors
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 738000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Delary b/util/scan/dvb-t/se-Delary
new file mode 100644
index 0000000..3c9fdf9
--- /dev/null
+++ b/util/scan/dvb-t/se-Delary
@@ -0,0 +1,3 @@
+# Sweden - Delary
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Djura b/util/scan/dvb-t/se-Djura
new file mode 100644
index 0000000..c532219
--- /dev/null
+++ b/util/scan/dvb-t/se-Djura
@@ -0,0 +1,3 @@
+# Sweden - Djura
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Drevdagen b/util/scan/dvb-t/se-Drevdagen
new file mode 100644
index 0000000..8b331c9
--- /dev/null
+++ b/util/scan/dvb-t/se-Drevdagen
@@ -0,0 +1,3 @@
+# Sweden - Drevdagen
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Duvnas b/util/scan/dvb-t/se-Duvnas
new file mode 100644
index 0000000..4fea089
--- /dev/null
+++ b/util/scan/dvb-t/se-Duvnas
@@ -0,0 +1,3 @@
+# Sweden - Duvnäs
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Duvnas_Basna b/util/scan/dvb-t/se-Duvnas_Basna
new file mode 100644
index 0000000..22e0bdf
--- /dev/null
+++ b/util/scan/dvb-t/se-Duvnas_Basna
@@ -0,0 +1,3 @@
+# Sweden - Duvnäs/Bäsna
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Edsbyn b/util/scan/dvb-t/se-Edsbyn
new file mode 100644
index 0000000..a8a3eaa
--- /dev/null
+++ b/util/scan/dvb-t/se-Edsbyn
@@ -0,0 +1,3 @@
+# Sweden - Edsbyn
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Emmaboda_Balshult b/util/scan/dvb-t/se-Emmaboda_Balshult
new file mode 100644
index 0000000..0e6a2f8
--- /dev/null
+++ b/util/scan/dvb-t/se-Emmaboda_Balshult
@@ -0,0 +1,6 @@
+# Sweden - Emmaboda/Bälshult
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 474000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Enviken b/util/scan/dvb-t/se-Enviken
new file mode 100644
index 0000000..0744d26
--- /dev/null
+++ b/util/scan/dvb-t/se-Enviken
@@ -0,0 +1,4 @@
+# Sweden - Enviken
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 474000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Fagersta b/util/scan/dvb-t/se-Fagersta
new file mode 100644
index 0000000..9de6d73
--- /dev/null
+++ b/util/scan/dvb-t/se-Fagersta
@@ -0,0 +1,4 @@
+# Sweden - Fagersta
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Falerum_Centrum b/util/scan/dvb-t/se-Falerum_Centrum
new file mode 100644
index 0000000..36d5496
--- /dev/null
+++ b/util/scan/dvb-t/se-Falerum_Centrum
@@ -0,0 +1,3 @@
+# Sweden - Falerum/Centrum
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Falun_Lovberget b/util/scan/dvb-t/se-Falun_Lovberget
new file mode 100644
index 0000000..8b6cd13
--- /dev/null
+++ b/util/scan/dvb-t/se-Falun_Lovberget
@@ -0,0 +1,6 @@
+# Sweden - Falun/Lövberget
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 722000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Farila b/util/scan/dvb-t/se-Farila
new file mode 100644
index 0000000..b1c1840
--- /dev/null
+++ b/util/scan/dvb-t/se-Farila
@@ -0,0 +1,3 @@
+# Sweden - Färila
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Faro_Ajkerstrask b/util/scan/dvb-t/se-Faro_Ajkerstrask
new file mode 100644
index 0000000..7bdbed7
--- /dev/null
+++ b/util/scan/dvb-t/se-Faro_Ajkerstrask
@@ -0,0 +1,4 @@
+# Sweden - Fårö/Ajkersträsk
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Farosund_Bunge b/util/scan/dvb-t/se-Farosund_Bunge
new file mode 100644
index 0000000..4148e0b
--- /dev/null
+++ b/util/scan/dvb-t/se-Farosund_Bunge
@@ -0,0 +1,7 @@
+# Sweden - Fårösund/Bunge
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Filipstad_Klockarhojden b/util/scan/dvb-t/se-Filipstad_Klockarhojden
new file mode 100644
index 0000000..a30d2ad
--- /dev/null
+++ b/util/scan/dvb-t/se-Filipstad_Klockarhojden
@@ -0,0 +1,6 @@
+# Sweden - Filipstad/Klockarhöjden
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Finnveden b/util/scan/dvb-t/se-Finnveden
new file mode 100644
index 0000000..f577cfd
--- /dev/null
+++ b/util/scan/dvb-t/se-Finnveden
@@ -0,0 +1,6 @@
+# Sweden - Finnveden
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 722000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Fredriksberg b/util/scan/dvb-t/se-Fredriksberg
new file mode 100644
index 0000000..3838a7b
--- /dev/null
+++ b/util/scan/dvb-t/se-Fredriksberg
@@ -0,0 +1,3 @@
+# Sweden - Fredriksberg
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Fritsla b/util/scan/dvb-t/se-Fritsla
new file mode 100644
index 0000000..fd5dc30
--- /dev/null
+++ b/util/scan/dvb-t/se-Fritsla
@@ -0,0 +1,3 @@
+# Sweden - Fritsla
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Furudal b/util/scan/dvb-t/se-Furudal
new file mode 100644
index 0000000..ca847cf
--- /dev/null
+++ b/util/scan/dvb-t/se-Furudal
@@ -0,0 +1,3 @@
+# Sweden - Furudal
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Gallivare b/util/scan/dvb-t/se-Gallivare
new file mode 100644
index 0000000..27167ea
--- /dev/null
+++ b/util/scan/dvb-t/se-Gallivare
@@ -0,0 +1,6 @@
+# Sweden - Gällivare
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Garpenberg_Kuppgarden b/util/scan/dvb-t/se-Garpenberg_Kuppgarden
new file mode 100644
index 0000000..bcd7685
--- /dev/null
+++ b/util/scan/dvb-t/se-Garpenberg_Kuppgarden
@@ -0,0 +1,3 @@
+# Sweden - Garpenberg/Kuppgården
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Gavle_Skogmur b/util/scan/dvb-t/se-Gavle_Skogmur
new file mode 100644
index 0000000..0a229e7
--- /dev/null
+++ b/util/scan/dvb-t/se-Gavle_Skogmur
@@ -0,0 +1,6 @@
+# Sweden - Gävle/Skogmur
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 498000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Gnarp b/util/scan/dvb-t/se-Gnarp
new file mode 100644
index 0000000..b47e78a
--- /dev/null
+++ b/util/scan/dvb-t/se-Gnarp
@@ -0,0 +1,3 @@
+# Sweden - Gnarp
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Gnesta b/util/scan/dvb-t/se-Gnesta
new file mode 100644
index 0000000..3f1b75c
--- /dev/null
+++ b/util/scan/dvb-t/se-Gnesta
@@ -0,0 +1,4 @@
+# Sweden - Gnesta
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Gnosjo_Marieholm b/util/scan/dvb-t/se-Gnosjo_Marieholm
new file mode 100644
index 0000000..ed789ab
--- /dev/null
+++ b/util/scan/dvb-t/se-Gnosjo_Marieholm
@@ -0,0 +1,3 @@
+# Sweden - Gnosjö/Marieholm
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Goteborg_Brudaremossen b/util/scan/dvb-t/se-Goteborg_Brudaremossen
new file mode 100644
index 0000000..80d57a7
--- /dev/null
+++ b/util/scan/dvb-t/se-Goteborg_Brudaremossen
@@ -0,0 +1,7 @@
+# Sweden - Göteborg/Brudaremossen
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 594000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 818000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Goteborg_Slattadamm b/util/scan/dvb-t/se-Goteborg_Slattadamm
new file mode 100644
index 0000000..11ccd75
--- /dev/null
+++ b/util/scan/dvb-t/se-Goteborg_Slattadamm
@@ -0,0 +1,7 @@
+# Sweden - Göteborg/Slättadamm
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 594000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 818000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Gullbrandstorp b/util/scan/dvb-t/se-Gullbrandstorp
new file mode 100644
index 0000000..c407b0d
--- /dev/null
+++ b/util/scan/dvb-t/se-Gullbrandstorp
@@ -0,0 +1,3 @@
+# Sweden - Gullbrandstorp
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Gunnarsbo b/util/scan/dvb-t/se-Gunnarsbo
new file mode 100644
index 0000000..d79b851
--- /dev/null
+++ b/util/scan/dvb-t/se-Gunnarsbo
@@ -0,0 +1,3 @@
+# Sweden - Gunnarsbo
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Gusum b/util/scan/dvb-t/se-Gusum
new file mode 100644
index 0000000..21411cf
--- /dev/null
+++ b/util/scan/dvb-t/se-Gusum
@@ -0,0 +1,3 @@
+# Sweden - Gusum
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Hagfors_Varmullsasen b/util/scan/dvb-t/se-Hagfors_Varmullsasen
new file mode 100644
index 0000000..f013fb3
--- /dev/null
+++ b/util/scan/dvb-t/se-Hagfors_Varmullsasen
@@ -0,0 +1,6 @@
+# Sweden - Hagfors/Värmullsåsen
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 802000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Hallaryd b/util/scan/dvb-t/se-Hallaryd
new file mode 100644
index 0000000..5d21d8a
--- /dev/null
+++ b/util/scan/dvb-t/se-Hallaryd
@@ -0,0 +1,3 @@
+# Sweden - Hallaryd
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 490000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Hallbo b/util/scan/dvb-t/se-Hallbo
new file mode 100644
index 0000000..ed0f8da
--- /dev/null
+++ b/util/scan/dvb-t/se-Hallbo
@@ -0,0 +1,3 @@
+# Sweden - Hällbo
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 746000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Halmstad_Hamnen b/util/scan/dvb-t/se-Halmstad_Hamnen
new file mode 100644
index 0000000..50c88f3
--- /dev/null
+++ b/util/scan/dvb-t/se-Halmstad_Hamnen
@@ -0,0 +1,4 @@
+# Sweden - Halmstad/Hamnen
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Halmstad_Oskarstrom b/util/scan/dvb-t/se-Halmstad_Oskarstrom
new file mode 100644
index 0000000..9fc5537
--- /dev/null
+++ b/util/scan/dvb-t/se-Halmstad_Oskarstrom
@@ -0,0 +1,6 @@
+# Sweden - Halmstad/Oskarström
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 474000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 530000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 610000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 666000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/se-Harnosand_Harnon b/util/scan/dvb-t/se-Harnosand_Harnon
new file mode 100644
index 0000000..242088e
--- /dev/null
+++ b/util/scan/dvb-t/se-Harnosand_Harnon
@@ -0,0 +1,6 @@
+# Sweden - Härnösand/Härnön
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Hassela b/util/scan/dvb-t/se-Hassela
new file mode 100644
index 0000000..7ce0767
--- /dev/null
+++ b/util/scan/dvb-t/se-Hassela
@@ -0,0 +1,3 @@
+# Sweden - Hassela
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Havdhem b/util/scan/dvb-t/se-Havdhem
new file mode 100644
index 0000000..4340063
--- /dev/null
+++ b/util/scan/dvb-t/se-Havdhem
@@ -0,0 +1,7 @@
+# Sweden - Havdhem
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Hedemora b/util/scan/dvb-t/se-Hedemora
new file mode 100644
index 0000000..94dc5e3
--- /dev/null
+++ b/util/scan/dvb-t/se-Hedemora
@@ -0,0 +1,3 @@
+# Sweden - Hedemora
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Helsingborg_Olympia b/util/scan/dvb-t/se-Helsingborg_Olympia
new file mode 100644
index 0000000..4358f61
--- /dev/null
+++ b/util/scan/dvb-t/se-Helsingborg_Olympia
@@ -0,0 +1,7 @@
+# Sweden - Helsingborg/Olympia
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 506000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 634000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 818000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 794000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/se-Hennan b/util/scan/dvb-t/se-Hennan
new file mode 100644
index 0000000..cd1605a
--- /dev/null
+++ b/util/scan/dvb-t/se-Hennan
@@ -0,0 +1,3 @@
+# Sweden - Hennan
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Hestra_Aspas b/util/scan/dvb-t/se-Hestra_Aspas
new file mode 100644
index 0000000..ae955cc
--- /dev/null
+++ b/util/scan/dvb-t/se-Hestra_Aspas
@@ -0,0 +1,3 @@
+# Sweden - Hestra/Äspås
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Hjo_Grevback b/util/scan/dvb-t/se-Hjo_Grevback
new file mode 100644
index 0000000..7045a53
--- /dev/null
+++ b/util/scan/dvb-t/se-Hjo_Grevback
@@ -0,0 +1,3 @@
+# Sweden - Hjo/Grevbäck
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Hofors b/util/scan/dvb-t/se-Hofors
new file mode 100644
index 0000000..9314fc1
--- /dev/null
+++ b/util/scan/dvb-t/se-Hofors
@@ -0,0 +1,6 @@
+# Sweden - Hofors
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 586000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Hogfors b/util/scan/dvb-t/se-Hogfors
new file mode 100644
index 0000000..514f1e5
--- /dev/null
+++ b/util/scan/dvb-t/se-Hogfors
@@ -0,0 +1,3 @@
+# Sweden - Högfors
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 730000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Hogsby_Virstad b/util/scan/dvb-t/se-Hogsby_Virstad
new file mode 100644
index 0000000..0cc2ad6
--- /dev/null
+++ b/util/scan/dvb-t/se-Hogsby_Virstad
@@ -0,0 +1,4 @@
+# Sweden - Högsby/Virstad
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Holsbybrunn_Holsbyholm b/util/scan/dvb-t/se-Holsbybrunn_Holsbyholm
new file mode 100644
index 0000000..e5a1d7b
--- /dev/null
+++ b/util/scan/dvb-t/se-Holsbybrunn_Holsbyholm
@@ -0,0 +1,3 @@
+# Sweden - Holsbybrunn/Holsbyholm
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Horby_Sallerup b/util/scan/dvb-t/se-Horby_Sallerup
new file mode 100644
index 0000000..eac745a
--- /dev/null
+++ b/util/scan/dvb-t/se-Horby_Sallerup
@@ -0,0 +1,7 @@
+# Sweden - Hörby/Sallerup
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 506000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 634000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 818000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 794000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/se-Horken b/util/scan/dvb-t/se-Horken
new file mode 100644
index 0000000..6f3fcdb
--- /dev/null
+++ b/util/scan/dvb-t/se-Horken
@@ -0,0 +1,3 @@
+# Sweden - Hörken
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Hudiksvall_Forsa b/util/scan/dvb-t/se-Hudiksvall_Forsa
new file mode 100644
index 0000000..c8bad49
--- /dev/null
+++ b/util/scan/dvb-t/se-Hudiksvall_Forsa
@@ -0,0 +1,6 @@
+# Sweden - Hudiksvall/Forsa
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 578000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 618000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/se-Hudiksvall_Galgberget b/util/scan/dvb-t/se-Hudiksvall_Galgberget
new file mode 100644
index 0000000..b95873e
--- /dev/null
+++ b/util/scan/dvb-t/se-Hudiksvall_Galgberget
@@ -0,0 +1,4 @@
+# Sweden - Hudiksvall/Galgberget
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Huskvarna b/util/scan/dvb-t/se-Huskvarna
new file mode 100644
index 0000000..2c6a5ca
--- /dev/null
+++ b/util/scan/dvb-t/se-Huskvarna
@@ -0,0 +1,3 @@
+# Sweden - Huskvarna
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Idre b/util/scan/dvb-t/se-Idre
new file mode 100644
index 0000000..912aa70
--- /dev/null
+++ b/util/scan/dvb-t/se-Idre
@@ -0,0 +1,3 @@
+# Sweden - Idre
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Ingatorp b/util/scan/dvb-t/se-Ingatorp
new file mode 100644
index 0000000..11d37b5
--- /dev/null
+++ b/util/scan/dvb-t/se-Ingatorp
@@ -0,0 +1,3 @@
+# Sweden - Ingatorp
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Ingvallsbenning b/util/scan/dvb-t/se-Ingvallsbenning
new file mode 100644
index 0000000..8726759
--- /dev/null
+++ b/util/scan/dvb-t/se-Ingvallsbenning
@@ -0,0 +1,3 @@
+# Sweden - Ingvallsbenning
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Irevik b/util/scan/dvb-t/se-Irevik
new file mode 100644
index 0000000..1530771
--- /dev/null
+++ b/util/scan/dvb-t/se-Irevik
@@ -0,0 +1,4 @@
+# Sweden - Irevik
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Jamjo b/util/scan/dvb-t/se-Jamjo
new file mode 100644
index 0000000..0c14927
--- /dev/null
+++ b/util/scan/dvb-t/se-Jamjo
@@ -0,0 +1,4 @@
+# Sweden - Jämjö
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 746000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 498000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Jarnforsen b/util/scan/dvb-t/se-Jarnforsen
new file mode 100644
index 0000000..d129f35
--- /dev/null
+++ b/util/scan/dvb-t/se-Jarnforsen
@@ -0,0 +1,3 @@
+# Sweden - Järnforsen
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Jarvso b/util/scan/dvb-t/se-Jarvso
new file mode 100644
index 0000000..c779daf
--- /dev/null
+++ b/util/scan/dvb-t/se-Jarvso
@@ -0,0 +1,3 @@
+# Sweden - Järvsö
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 738000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Jokkmokk_Tjalmejaure b/util/scan/dvb-t/se-Jokkmokk_Tjalmejaure
new file mode 100644
index 0000000..74d4ca3
--- /dev/null
+++ b/util/scan/dvb-t/se-Jokkmokk_Tjalmejaure
@@ -0,0 +1,6 @@
+# Sweden - Jokkmokk/Tjalmejaure
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 586000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 722000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 738000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Jonkoping_Bondberget b/util/scan/dvb-t/se-Jonkoping_Bondberget
new file mode 100644
index 0000000..5c0d21e
--- /dev/null
+++ b/util/scan/dvb-t/se-Jonkoping_Bondberget
@@ -0,0 +1,6 @@
+# Sweden - Jönköping/Bondberget
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 586000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 570000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Kalix b/util/scan/dvb-t/se-Kalix
new file mode 100644
index 0000000..21a29a8
--- /dev/null
+++ b/util/scan/dvb-t/se-Kalix
@@ -0,0 +1,6 @@
+# Sweden - Kalix
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 706000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 770000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 786000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 746000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/se-Karbole b/util/scan/dvb-t/se-Karbole
new file mode 100644
index 0000000..9f28422
--- /dev/null
+++ b/util/scan/dvb-t/se-Karbole
@@ -0,0 +1,3 @@
+# Sweden - Kårböle
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 570000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Karlsborg_Vaberget b/util/scan/dvb-t/se-Karlsborg_Vaberget
new file mode 100644
index 0000000..b84b8e8
--- /dev/null
+++ b/util/scan/dvb-t/se-Karlsborg_Vaberget
@@ -0,0 +1,3 @@
+# Sweden - Karlsborg/Vaberget
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Karlshamn b/util/scan/dvb-t/se-Karlshamn
new file mode 100644
index 0000000..ed3a7cd
--- /dev/null
+++ b/util/scan/dvb-t/se-Karlshamn
@@ -0,0 +1,6 @@
+# Sweden - Karlshamn
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 746000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 498000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 642000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 522000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/se-Karlskrona_Vamo b/util/scan/dvb-t/se-Karlskrona_Vamo
new file mode 100644
index 0000000..68e38ae
--- /dev/null
+++ b/util/scan/dvb-t/se-Karlskrona_Vamo
@@ -0,0 +1,6 @@
+# Sweden - Karlskrona/Vämö
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 746000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 498000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 642000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 522000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/se-Karlstad_Sormon b/util/scan/dvb-t/se-Karlstad_Sormon
new file mode 100644
index 0000000..c9cb8e2
--- /dev/null
+++ b/util/scan/dvb-t/se-Karlstad_Sormon
@@ -0,0 +1,9 @@
+# Sweden - Karlstad Sörmon Valid from 2007 09 26. Ver. 2 Correct FEC
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+# Channels
+# Mux3=30
+T 546000000 8MHz 2/3 1/2 QAM64 8k 1/8 NONE
+# Mux4=42
+T 642000000 8MHz 2/3 1/2 QAM64 8k 1/8 NONE
+# Mux1=43
+T 650000000 8MHz 2/3 1/2 QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Kaxholmen_Vistakulle b/util/scan/dvb-t/se-Kaxholmen_Vistakulle
new file mode 100644
index 0000000..ede8ad9
--- /dev/null
+++ b/util/scan/dvb-t/se-Kaxholmen_Vistakulle
@@ -0,0 +1,3 @@
+# Sweden - Kaxholmen/Vistakulle
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 474000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Kinnastrom b/util/scan/dvb-t/se-Kinnastrom
new file mode 100644
index 0000000..61256eb
--- /dev/null
+++ b/util/scan/dvb-t/se-Kinnastrom
@@ -0,0 +1,3 @@
+# Sweden - Kinnaström
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Kiruna_Kirunavaara b/util/scan/dvb-t/se-Kiruna_Kirunavaara
new file mode 100644
index 0000000..dac4c24
--- /dev/null
+++ b/util/scan/dvb-t/se-Kiruna_Kirunavaara
@@ -0,0 +1,6 @@
+# Sweden - Kiruna/Kirunavaara
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 586000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 698000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Kisa b/util/scan/dvb-t/se-Kisa
new file mode 100644
index 0000000..21d4bc3
--- /dev/null
+++ b/util/scan/dvb-t/se-Kisa
@@ -0,0 +1,7 @@
+# Sweden - Kisa
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 538000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 746000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Knared b/util/scan/dvb-t/se-Knared
new file mode 100644
index 0000000..2feda10
--- /dev/null
+++ b/util/scan/dvb-t/se-Knared
@@ -0,0 +1,3 @@
+# Sweden - Knäred
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Kopmanholmen b/util/scan/dvb-t/se-Kopmanholmen
new file mode 100644
index 0000000..f9f9541
--- /dev/null
+++ b/util/scan/dvb-t/se-Kopmanholmen
@@ -0,0 +1,6 @@
+# Sweden - Köpmanholmen
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 490000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 474000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Kopparberg b/util/scan/dvb-t/se-Kopparberg
new file mode 100644
index 0000000..af84cfe
--- /dev/null
+++ b/util/scan/dvb-t/se-Kopparberg
@@ -0,0 +1,4 @@
+# Sweden - Kopparberg
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Kramfors_Lugnvik b/util/scan/dvb-t/se-Kramfors_Lugnvik
new file mode 100644
index 0000000..f17f8c1
--- /dev/null
+++ b/util/scan/dvb-t/se-Kramfors_Lugnvik
@@ -0,0 +1,6 @@
+# Sweden - Kramfors/Lugnvik
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 498000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Kristinehamn_Utsiktsberget b/util/scan/dvb-t/se-Kristinehamn_Utsiktsberget
new file mode 100644
index 0000000..71c465d
--- /dev/null
+++ b/util/scan/dvb-t/se-Kristinehamn_Utsiktsberget
@@ -0,0 +1,6 @@
+# Sweden - Kristinehamn/Utsiktsberget
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 522000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 642000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 626000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/se-Kungsater b/util/scan/dvb-t/se-Kungsater
new file mode 100644
index 0000000..0876dba
--- /dev/null
+++ b/util/scan/dvb-t/se-Kungsater
@@ -0,0 +1,3 @@
+# Sweden - Kungsäter
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Kungsberget_GI b/util/scan/dvb-t/se-Kungsberget_GI
new file mode 100644
index 0000000..0c4eeb3
--- /dev/null
+++ b/util/scan/dvb-t/se-Kungsberget_GI
@@ -0,0 +1,3 @@
+# Sweden - Kungsberget/GI
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 738000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Langshyttan b/util/scan/dvb-t/se-Langshyttan
new file mode 100644
index 0000000..bbba370
--- /dev/null
+++ b/util/scan/dvb-t/se-Langshyttan
@@ -0,0 +1,3 @@
+# Sweden - LÃ¥ngshyttan
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 746000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Langshyttan_Engelsfors b/util/scan/dvb-t/se-Langshyttan_Engelsfors
new file mode 100644
index 0000000..373446a
--- /dev/null
+++ b/util/scan/dvb-t/se-Langshyttan_Engelsfors
@@ -0,0 +1,3 @@
+# Sweden - LÃ¥ngshyttan/Engelsfors
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Leksand_Karingberget b/util/scan/dvb-t/se-Leksand_Karingberget
new file mode 100644
index 0000000..2d15561
--- /dev/null
+++ b/util/scan/dvb-t/se-Leksand_Karingberget
@@ -0,0 +1,3 @@
+# Sweden - Leksand/Käringberget
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Lerdala b/util/scan/dvb-t/se-Lerdala
new file mode 100644
index 0000000..2428c69
--- /dev/null
+++ b/util/scan/dvb-t/se-Lerdala
@@ -0,0 +1,3 @@
+# Sweden - Lerdala
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Lilltjara_Digerberget b/util/scan/dvb-t/se-Lilltjara_Digerberget
new file mode 100644
index 0000000..f2cee9f
--- /dev/null
+++ b/util/scan/dvb-t/se-Lilltjara_Digerberget
@@ -0,0 +1,3 @@
+# Sweden - Lilltjära/Digerberget
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Limedsforsen b/util/scan/dvb-t/se-Limedsforsen
new file mode 100644
index 0000000..12b36ef
--- /dev/null
+++ b/util/scan/dvb-t/se-Limedsforsen
@@ -0,0 +1,3 @@
+# Sweden - Limedsforsen
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 746000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Lindshammar_Ramkvilla b/util/scan/dvb-t/se-Lindshammar_Ramkvilla
new file mode 100644
index 0000000..9a03b1e
--- /dev/null
+++ b/util/scan/dvb-t/se-Lindshammar_Ramkvilla
@@ -0,0 +1,3 @@
+# Sweden - Lindshammar/Ramkvilla
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Linkoping_Vattentornet b/util/scan/dvb-t/se-Linkoping_Vattentornet
new file mode 100644
index 0000000..31adae8
--- /dev/null
+++ b/util/scan/dvb-t/se-Linkoping_Vattentornet
@@ -0,0 +1,7 @@
+# Sweden - Linköping/Vattentornet
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 474000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 722000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Ljugarn b/util/scan/dvb-t/se-Ljugarn
new file mode 100644
index 0000000..6474a15
--- /dev/null
+++ b/util/scan/dvb-t/se-Ljugarn
@@ -0,0 +1,4 @@
+# Sweden - Ljugarn
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Loffstrand b/util/scan/dvb-t/se-Loffstrand
new file mode 100644
index 0000000..f95de05
--- /dev/null
+++ b/util/scan/dvb-t/se-Loffstrand
@@ -0,0 +1,6 @@
+# Sweden - Loffstrand
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 506000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 650000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 762000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 770000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/se-Lonneberga b/util/scan/dvb-t/se-Lonneberga
new file mode 100644
index 0000000..8664ea9
--- /dev/null
+++ b/util/scan/dvb-t/se-Lonneberga
@@ -0,0 +1,4 @@
+# Sweden - Lönneberga
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Lorstrand b/util/scan/dvb-t/se-Lorstrand
new file mode 100644
index 0000000..30867a3
--- /dev/null
+++ b/util/scan/dvb-t/se-Lorstrand
@@ -0,0 +1,3 @@
+# Sweden - Lörstrand
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 570000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Ludvika_Bjorkasen b/util/scan/dvb-t/se-Ludvika_Bjorkasen
new file mode 100644
index 0000000..07bccd4
--- /dev/null
+++ b/util/scan/dvb-t/se-Ludvika_Bjorkasen
@@ -0,0 +1,4 @@
+# Sweden - Ludvika/Björkåsen
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 498000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 474000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Lumsheden_Trekanten b/util/scan/dvb-t/se-Lumsheden_Trekanten
new file mode 100644
index 0000000..c8a1c9d
--- /dev/null
+++ b/util/scan/dvb-t/se-Lumsheden_Trekanten
@@ -0,0 +1,3 @@
+# Sweden - Lumsheden/Trekanten
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Lycksele_Knaften b/util/scan/dvb-t/se-Lycksele_Knaften
new file mode 100644
index 0000000..05d6469
--- /dev/null
+++ b/util/scan/dvb-t/se-Lycksele_Knaften
@@ -0,0 +1,6 @@
+# Sweden - Lycksele/Knaften
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 730000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Mahult b/util/scan/dvb-t/se-Mahult
new file mode 100644
index 0000000..3c45ffa
--- /dev/null
+++ b/util/scan/dvb-t/se-Mahult
@@ -0,0 +1,3 @@
+# Sweden - Mahult
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Malmo_Jagersro b/util/scan/dvb-t/se-Malmo_Jagersro
new file mode 100644
index 0000000..2d0d845
--- /dev/null
+++ b/util/scan/dvb-t/se-Malmo_Jagersro
@@ -0,0 +1,7 @@
+# Sweden - Malmö/Jägersro
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 506000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 634000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 818000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 794000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/se-Malung b/util/scan/dvb-t/se-Malung
new file mode 100644
index 0000000..fe2b08d
--- /dev/null
+++ b/util/scan/dvb-t/se-Malung
@@ -0,0 +1,4 @@
+# Sweden - Malung
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 474000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Mariannelund b/util/scan/dvb-t/se-Mariannelund
new file mode 100644
index 0000000..2ec7cd6
--- /dev/null
+++ b/util/scan/dvb-t/se-Mariannelund
@@ -0,0 +1,3 @@
+# Sweden - Mariannelund
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 834000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Markaryd_Hualtet b/util/scan/dvb-t/se-Markaryd_Hualtet
new file mode 100644
index 0000000..941f30c
--- /dev/null
+++ b/util/scan/dvb-t/se-Markaryd_Hualtet
@@ -0,0 +1,4 @@
+# Sweden - Markaryd/Hualtet
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Matfors b/util/scan/dvb-t/se-Matfors
new file mode 100644
index 0000000..d956929
--- /dev/null
+++ b/util/scan/dvb-t/se-Matfors
@@ -0,0 +1,6 @@
+# Sweden - Matfors
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Molnbo_Tallstugan b/util/scan/dvb-t/se-Molnbo_Tallstugan
new file mode 100644
index 0000000..0ad2e03
--- /dev/null
+++ b/util/scan/dvb-t/se-Molnbo_Tallstugan
@@ -0,0 +1,2 @@
+# Sweden - Mölnbo/Tallstugan
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
diff --git a/util/scan/dvb-t/se-Molndal_Vasterberget b/util/scan/dvb-t/se-Molndal_Vasterberget
new file mode 100644
index 0000000..8f38e4c
--- /dev/null
+++ b/util/scan/dvb-t/se-Molndal_Vasterberget
@@ -0,0 +1,7 @@
+# Sweden - Mölndal/Västerberget
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 594000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 818000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Mora_Eldris b/util/scan/dvb-t/se-Mora_Eldris
new file mode 100644
index 0000000..9b7253c
--- /dev/null
+++ b/util/scan/dvb-t/se-Mora_Eldris
@@ -0,0 +1,6 @@
+# Sweden - Mora/Eldris
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 586000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Motala_Ervasteby b/util/scan/dvb-t/se-Motala_Ervasteby
new file mode 100644
index 0000000..4d673f4
--- /dev/null
+++ b/util/scan/dvb-t/se-Motala_Ervasteby
@@ -0,0 +1,7 @@
+# Sweden - Motala/Ervasteby
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 474000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 722000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Mullsjo_Torestorp b/util/scan/dvb-t/se-Mullsjo_Torestorp
new file mode 100644
index 0000000..264c443
--- /dev/null
+++ b/util/scan/dvb-t/se-Mullsjo_Torestorp
@@ -0,0 +1,4 @@
+# Sweden - Mullsjö/Torestorp
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 834000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 850000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Nassjo b/util/scan/dvb-t/se-Nassjo
new file mode 100644
index 0000000..9fe7769
--- /dev/null
+++ b/util/scan/dvb-t/se-Nassjo
@@ -0,0 +1,6 @@
+# Sweden - Nässjö
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 490000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 586000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 570000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Navekvarn b/util/scan/dvb-t/se-Navekvarn
new file mode 100644
index 0000000..1016800
--- /dev/null
+++ b/util/scan/dvb-t/se-Navekvarn
@@ -0,0 +1,3 @@
+# Sweden - Nävekvarn
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 842000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Norrahammar b/util/scan/dvb-t/se-Norrahammar
new file mode 100644
index 0000000..f6ae37d
--- /dev/null
+++ b/util/scan/dvb-t/se-Norrahammar
@@ -0,0 +1,3 @@
+# Sweden - Norrahammar
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 738000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Norrkoping_Krokek b/util/scan/dvb-t/se-Norrkoping_Krokek
new file mode 100644
index 0000000..24fed0c
--- /dev/null
+++ b/util/scan/dvb-t/se-Norrkoping_Krokek
@@ -0,0 +1,7 @@
+# Sweden - Norrköping/Krokek
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 802000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Norrtalje_Sodra_Bergen b/util/scan/dvb-t/se-Norrtalje_Sodra_Bergen
new file mode 100644
index 0000000..3fb43c6
--- /dev/null
+++ b/util/scan/dvb-t/se-Norrtalje_Sodra_Bergen
@@ -0,0 +1,7 @@
+# Sweden - Norrtälje/Södra Bergen
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 730000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 746000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Nykoping b/util/scan/dvb-t/se-Nykoping
new file mode 100644
index 0000000..848261c
--- /dev/null
+++ b/util/scan/dvb-t/se-Nykoping
@@ -0,0 +1,3 @@
+# Sweden - Nyköping
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 498000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Orebro_Lockhyttan b/util/scan/dvb-t/se-Orebro_Lockhyttan
new file mode 100644
index 0000000..22a5d51
--- /dev/null
+++ b/util/scan/dvb-t/se-Orebro_Lockhyttan
@@ -0,0 +1,7 @@
+# Sweden - Örebro/Lockhyttan
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 586000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 538000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 698000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 746000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Ornskoldsvik_As b/util/scan/dvb-t/se-Ornskoldsvik_As
new file mode 100644
index 0000000..e793d70
--- /dev/null
+++ b/util/scan/dvb-t/se-Ornskoldsvik_As
@@ -0,0 +1,6 @@
+# Sweden - Örnsköldsvik/Ås
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 490000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 474000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Oskarshamn b/util/scan/dvb-t/se-Oskarshamn
new file mode 100644
index 0000000..98e8476
--- /dev/null
+++ b/util/scan/dvb-t/se-Oskarshamn
@@ -0,0 +1,6 @@
+# Sweden - Oskarshamn
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 802000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Ostersund_Brattasen b/util/scan/dvb-t/se-Ostersund_Brattasen
new file mode 100644
index 0000000..c3828f6
--- /dev/null
+++ b/util/scan/dvb-t/se-Ostersund_Brattasen
@@ -0,0 +1,7 @@
+# Sweden - Östersund/Brattåsen
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 730000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 738000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Osthammar_Valo b/util/scan/dvb-t/se-Osthammar_Valo
new file mode 100644
index 0000000..d616927
--- /dev/null
+++ b/util/scan/dvb-t/se-Osthammar_Valo
@@ -0,0 +1,7 @@
+# Sweden - Östhammar/Valö
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 474000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Overkalix b/util/scan/dvb-t/se-Overkalix
new file mode 100644
index 0000000..91ec2f5
--- /dev/null
+++ b/util/scan/dvb-t/se-Overkalix
@@ -0,0 +1,6 @@
+# Sweden - Överkalix
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 706000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 770000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 786000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 746000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/se-Oxberg b/util/scan/dvb-t/se-Oxberg
new file mode 100644
index 0000000..6a61626
--- /dev/null
+++ b/util/scan/dvb-t/se-Oxberg
@@ -0,0 +1,3 @@
+# Sweden - Oxberg
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 738000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Pajala b/util/scan/dvb-t/se-Pajala
new file mode 100644
index 0000000..98b564d
--- /dev/null
+++ b/util/scan/dvb-t/se-Pajala
@@ -0,0 +1,6 @@
+# Sweden - Pajala
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 490000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE #Teracom_Mux_2
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE #Teracom_Mux_3
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE #Teracom_Mux_1
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE #Teracom_Mux_4
diff --git a/util/scan/dvb-t/se-Paulistom b/util/scan/dvb-t/se-Paulistom
new file mode 100644
index 0000000..e4abab5
--- /dev/null
+++ b/util/scan/dvb-t/se-Paulistom
@@ -0,0 +1,3 @@
+# Sweden - Paulistöm
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 722000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Rattvik b/util/scan/dvb-t/se-Rattvik
new file mode 100644
index 0000000..f8ffe5f
--- /dev/null
+++ b/util/scan/dvb-t/se-Rattvik
@@ -0,0 +1,3 @@
+# Sweden - Rättvik
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 530000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Rengsjo b/util/scan/dvb-t/se-Rengsjo
new file mode 100644
index 0000000..7bb743f
--- /dev/null
+++ b/util/scan/dvb-t/se-Rengsjo
@@ -0,0 +1,3 @@
+# Sweden - Rengsjö
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Rorbacksnas b/util/scan/dvb-t/se-Rorbacksnas
new file mode 100644
index 0000000..fb45ce7
--- /dev/null
+++ b/util/scan/dvb-t/se-Rorbacksnas
@@ -0,0 +1,3 @@
+# Sweden - Rörbäcksnäs
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 538000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Sagmyra b/util/scan/dvb-t/se-Sagmyra
new file mode 100644
index 0000000..f68169b
--- /dev/null
+++ b/util/scan/dvb-t/se-Sagmyra
@@ -0,0 +1,3 @@
+# Sweden - SÃ¥gmyra
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Salen b/util/scan/dvb-t/se-Salen
new file mode 100644
index 0000000..3785059
--- /dev/null
+++ b/util/scan/dvb-t/se-Salen
@@ -0,0 +1,3 @@
+# Sweden - Sälen
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Salfjallet b/util/scan/dvb-t/se-Salfjallet
new file mode 100644
index 0000000..d271e62
--- /dev/null
+++ b/util/scan/dvb-t/se-Salfjallet
@@ -0,0 +1,3 @@
+# Sweden - Sälfjället
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Sarna_Mickeltemplet b/util/scan/dvb-t/se-Sarna_Mickeltemplet
new file mode 100644
index 0000000..09f8809
--- /dev/null
+++ b/util/scan/dvb-t/se-Sarna_Mickeltemplet
@@ -0,0 +1,3 @@
+# Sweden - Särna/Mickeltemplet
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 538000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Satila b/util/scan/dvb-t/se-Satila
new file mode 100644
index 0000000..6f8690f
--- /dev/null
+++ b/util/scan/dvb-t/se-Satila
@@ -0,0 +1,3 @@
+# Sweden - Sätila
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Saxdalen b/util/scan/dvb-t/se-Saxdalen
new file mode 100644
index 0000000..0c2db67
--- /dev/null
+++ b/util/scan/dvb-t/se-Saxdalen
@@ -0,0 +1,3 @@
+# Sweden - Saxdalen
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Siljansnas_Uvberget b/util/scan/dvb-t/se-Siljansnas_Uvberget
new file mode 100644
index 0000000..a087eaf
--- /dev/null
+++ b/util/scan/dvb-t/se-Siljansnas_Uvberget
@@ -0,0 +1,3 @@
+# Sweden - Siljansnäs/Uvberget
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Skarstad b/util/scan/dvb-t/se-Skarstad
new file mode 100644
index 0000000..edc1aac
--- /dev/null
+++ b/util/scan/dvb-t/se-Skarstad
@@ -0,0 +1,3 @@
+# Sweden - Skärstad
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Skattungbyn b/util/scan/dvb-t/se-Skattungbyn
new file mode 100644
index 0000000..d5b0a23
--- /dev/null
+++ b/util/scan/dvb-t/se-Skattungbyn
@@ -0,0 +1,3 @@
+# Sweden - Skattungbyn
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 746000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Skelleftea b/util/scan/dvb-t/se-Skelleftea
new file mode 100644
index 0000000..818beda
--- /dev/null
+++ b/util/scan/dvb-t/se-Skelleftea
@@ -0,0 +1,6 @@
+# Sweden - Skellefteå
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 490000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Skene_Nycklarberget b/util/scan/dvb-t/se-Skene_Nycklarberget
new file mode 100644
index 0000000..9070ae8
--- /dev/null
+++ b/util/scan/dvb-t/se-Skene_Nycklarberget
@@ -0,0 +1,3 @@
+# Sweden - Skene/Nycklarberget
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Skovde b/util/scan/dvb-t/se-Skovde
new file mode 100644
index 0000000..b79f179
--- /dev/null
+++ b/util/scan/dvb-t/se-Skovde
@@ -0,0 +1,7 @@
+# Sweden - Skövde
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 498000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Smedjebacken_Uvberget b/util/scan/dvb-t/se-Smedjebacken_Uvberget
new file mode 100644
index 0000000..abe5f66
--- /dev/null
+++ b/util/scan/dvb-t/se-Smedjebacken_Uvberget
@@ -0,0 +1,6 @@
+# Sweden - Smedjebacken/Uvberget
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 562000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 730000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 802000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Soderhamn b/util/scan/dvb-t/se-Soderhamn
new file mode 100644
index 0000000..a7d6fef
--- /dev/null
+++ b/util/scan/dvb-t/se-Soderhamn
@@ -0,0 +1,4 @@
+# Sweden - Söderhamn
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 810000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Soderkoping b/util/scan/dvb-t/se-Soderkoping
new file mode 100644
index 0000000..91ceddf
--- /dev/null
+++ b/util/scan/dvb-t/se-Soderkoping
@@ -0,0 +1,4 @@
+# Sweden - Söderköping
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 570000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Sodertalje_Ragnhildsborg b/util/scan/dvb-t/se-Sodertalje_Ragnhildsborg
new file mode 100644
index 0000000..31d4886
--- /dev/null
+++ b/util/scan/dvb-t/se-Sodertalje_Ragnhildsborg
@@ -0,0 +1,7 @@
+# Sweden - Södertälje/Ragnhildsborg
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 538000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 794000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 570000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Solleftea_Hallsta b/util/scan/dvb-t/se-Solleftea_Hallsta
new file mode 100644
index 0000000..ed48f90
--- /dev/null
+++ b/util/scan/dvb-t/se-Solleftea_Hallsta
@@ -0,0 +1,6 @@
+# Sweden - Sollefteå/Hallsta
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Solleftea_Multra b/util/scan/dvb-t/se-Solleftea_Multra
new file mode 100644
index 0000000..11ff0a3
--- /dev/null
+++ b/util/scan/dvb-t/se-Solleftea_Multra
@@ -0,0 +1,6 @@
+# Sweden - Sollefteå/Multrå
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 498000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Sorsjon b/util/scan/dvb-t/se-Sorsjon
new file mode 100644
index 0000000..bead4db
--- /dev/null
+++ b/util/scan/dvb-t/se-Sorsjon
@@ -0,0 +1,3 @@
+# Sweden - Sörsjön
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Stockholm_Marieberg b/util/scan/dvb-t/se-Stockholm_Marieberg
new file mode 100644
index 0000000..1b35b14
--- /dev/null
+++ b/util/scan/dvb-t/se-Stockholm_Marieberg
@@ -0,0 +1,7 @@
+# Sweden - Stockholm/Marieberg
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 730000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 746000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Stockholm_Nacka b/util/scan/dvb-t/se-Stockholm_Nacka
new file mode 100644
index 0000000..e13a95e
--- /dev/null
+++ b/util/scan/dvb-t/se-Stockholm_Nacka
@@ -0,0 +1,8 @@
+# Sweden - Stockholm/Nacka
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 490000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE # Teracom_Mux_1
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE # Teracom_Mux_2
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE # Teracom_Mux_3
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE # Teracom_Mux_4
+T 746000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE # Teracom_Mux_5
+T 730000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE # Teracom_Mux_6
diff --git a/util/scan/dvb-t/se-Stora_Skedvi b/util/scan/dvb-t/se-Stora_Skedvi
new file mode 100644
index 0000000..2bcd965
--- /dev/null
+++ b/util/scan/dvb-t/se-Stora_Skedvi
@@ -0,0 +1,3 @@
+# Sweden - Stora Skedvi
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Storfjaten b/util/scan/dvb-t/se-Storfjaten
new file mode 100644
index 0000000..9c9a73b
--- /dev/null
+++ b/util/scan/dvb-t/se-Storfjaten
@@ -0,0 +1,3 @@
+# Sweden - Storfjäten
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Storuman b/util/scan/dvb-t/se-Storuman
new file mode 100644
index 0000000..28092f0
--- /dev/null
+++ b/util/scan/dvb-t/se-Storuman
@@ -0,0 +1,6 @@
+# Sweden - Storuman
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Stromstad b/util/scan/dvb-t/se-Stromstad
new file mode 100644
index 0000000..27a2f75
--- /dev/null
+++ b/util/scan/dvb-t/se-Stromstad
@@ -0,0 +1,7 @@
+# Sweden - Strömstad
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 730000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 754000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 554000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 506000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 530000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/se-Styrsjobo b/util/scan/dvb-t/se-Styrsjobo
new file mode 100644
index 0000000..2970f41
--- /dev/null
+++ b/util/scan/dvb-t/se-Styrsjobo
@@ -0,0 +1,3 @@
+# Sweden - Styrsjöbo
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Sundborn b/util/scan/dvb-t/se-Sundborn
new file mode 100644
index 0000000..182158b
--- /dev/null
+++ b/util/scan/dvb-t/se-Sundborn
@@ -0,0 +1,3 @@
+# Sweden - Sundborn
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Sundsbruk b/util/scan/dvb-t/se-Sundsbruk
new file mode 100644
index 0000000..6680751
--- /dev/null
+++ b/util/scan/dvb-t/se-Sundsbruk
@@ -0,0 +1,6 @@
+# Sweden - Sundsbruk
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Sundsvall_S_Stadsberget b/util/scan/dvb-t/se-Sundsvall_S_Stadsberget
new file mode 100644
index 0000000..14a4a73
--- /dev/null
+++ b/util/scan/dvb-t/se-Sundsvall_S_Stadsberget
@@ -0,0 +1,7 @@
+# Sweden - Sundsvall/S Stadsberget
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Sunne_Blabarskullen b/util/scan/dvb-t/se-Sunne_Blabarskullen
new file mode 100644
index 0000000..02f8436
--- /dev/null
+++ b/util/scan/dvb-t/se-Sunne_Blabarskullen
@@ -0,0 +1,6 @@
+# Sweden - Sunne/Blåbärskullen
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Svartnas b/util/scan/dvb-t/se-Svartnas
new file mode 100644
index 0000000..afcb44c
--- /dev/null
+++ b/util/scan/dvb-t/se-Svartnas
@@ -0,0 +1,3 @@
+# Sweden - Svartnäs
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 642000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Sveg_Brickan b/util/scan/dvb-t/se-Sveg_Brickan
new file mode 100644
index 0000000..ad2683b
--- /dev/null
+++ b/util/scan/dvb-t/se-Sveg_Brickan
@@ -0,0 +1,6 @@
+# Sweden - Sveg/Brickan
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 674000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Taberg b/util/scan/dvb-t/se-Taberg
new file mode 100644
index 0000000..45a752a
--- /dev/null
+++ b/util/scan/dvb-t/se-Taberg
@@ -0,0 +1,3 @@
+# Sweden - Taberg
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Tandadalen b/util/scan/dvb-t/se-Tandadalen
new file mode 100644
index 0000000..8468db5
--- /dev/null
+++ b/util/scan/dvb-t/se-Tandadalen
@@ -0,0 +1,3 @@
+# Sweden - Tandådalen
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Tasjo b/util/scan/dvb-t/se-Tasjo
new file mode 100644
index 0000000..5783f73
--- /dev/null
+++ b/util/scan/dvb-t/se-Tasjo
@@ -0,0 +1,6 @@
+# Sweden - Tåsjö
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Tollsjo b/util/scan/dvb-t/se-Tollsjo
new file mode 100644
index 0000000..97389e5
--- /dev/null
+++ b/util/scan/dvb-t/se-Tollsjo
@@ -0,0 +1,3 @@
+# Sweden - Töllsjö
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 722000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Torsby_Bada b/util/scan/dvb-t/se-Torsby_Bada
new file mode 100644
index 0000000..72ef507
--- /dev/null
+++ b/util/scan/dvb-t/se-Torsby_Bada
@@ -0,0 +1,6 @@
+# Sweden - Torsby/Bada
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 802000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Tranas_Bredkarr b/util/scan/dvb-t/se-Tranas_Bredkarr
new file mode 100644
index 0000000..bf32792
--- /dev/null
+++ b/util/scan/dvb-t/se-Tranas_Bredkarr
@@ -0,0 +1,4 @@
+# Sweden - Tranås/Bredkärr
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Tranemo b/util/scan/dvb-t/se-Tranemo
new file mode 100644
index 0000000..d3bebfd
--- /dev/null
+++ b/util/scan/dvb-t/se-Tranemo
@@ -0,0 +1,3 @@
+# Sweden - Tranemo
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 706000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Transtrand_Bolheden b/util/scan/dvb-t/se-Transtrand_Bolheden
new file mode 100644
index 0000000..9682a69
--- /dev/null
+++ b/util/scan/dvb-t/se-Transtrand_Bolheden
@@ -0,0 +1,4 @@
+# Sweden - Transtrand/Bolheden
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 722000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Traryd_Betas b/util/scan/dvb-t/se-Traryd_Betas
new file mode 100644
index 0000000..72bb264
--- /dev/null
+++ b/util/scan/dvb-t/se-Traryd_Betas
@@ -0,0 +1,4 @@
+# Sweden - Traryd/Betås
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 730000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Trollhattan b/util/scan/dvb-t/se-Trollhattan
new file mode 100644
index 0000000..790963e
--- /dev/null
+++ b/util/scan/dvb-t/se-Trollhattan
@@ -0,0 +1,7 @@
+# Sweden - Trollhättan
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 730000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 754000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 554000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 506000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 530000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/se-Trosa b/util/scan/dvb-t/se-Trosa
new file mode 100644
index 0000000..6b11b6a
--- /dev/null
+++ b/util/scan/dvb-t/se-Trosa
@@ -0,0 +1,4 @@
+# Sweden - Trosa
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Tystberga b/util/scan/dvb-t/se-Tystberga
new file mode 100644
index 0000000..3179648
--- /dev/null
+++ b/util/scan/dvb-t/se-Tystberga
@@ -0,0 +1,3 @@
+# Sweden - Tystberga
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 842000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Uddevalla_Herrestad b/util/scan/dvb-t/se-Uddevalla_Herrestad
new file mode 100644
index 0000000..aae5e17
--- /dev/null
+++ b/util/scan/dvb-t/se-Uddevalla_Herrestad
@@ -0,0 +1,7 @@
+# Sweden - Uddevalla/Herrestad
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 730000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 754000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 554000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 506000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 530000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/se-Ullared b/util/scan/dvb-t/se-Ullared
new file mode 100644
index 0000000..7f5956c
--- /dev/null
+++ b/util/scan/dvb-t/se-Ullared
@@ -0,0 +1,3 @@
+# Sweden - Ullared
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 570000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Ulricehamn b/util/scan/dvb-t/se-Ulricehamn
new file mode 100644
index 0000000..06413e9
--- /dev/null
+++ b/util/scan/dvb-t/se-Ulricehamn
@@ -0,0 +1,4 @@
+# Sweden - Ulricehamn
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 842000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Ulvshyttan_Porjus b/util/scan/dvb-t/se-Ulvshyttan_Porjus
new file mode 100644
index 0000000..f69dbfd
--- /dev/null
+++ b/util/scan/dvb-t/se-Ulvshyttan_Porjus
@@ -0,0 +1,3 @@
+# Sweden - Ulvshyttan/Porjus
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Uppsala_Rickomberga b/util/scan/dvb-t/se-Uppsala_Rickomberga
new file mode 100644
index 0000000..a771e5d
--- /dev/null
+++ b/util/scan/dvb-t/se-Uppsala_Rickomberga
@@ -0,0 +1,3 @@
+# Sweden - Uppsala/Rickomberga
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Uppsala_Vedyxa b/util/scan/dvb-t/se-Uppsala_Vedyxa
new file mode 100644
index 0000000..6bd4db8
--- /dev/null
+++ b/util/scan/dvb-t/se-Uppsala_Vedyxa
@@ -0,0 +1,7 @@
+# Sweden - Uppsala/Vedyxa
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 474000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 570000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Vaddo_Elmsta b/util/scan/dvb-t/se-Vaddo_Elmsta
new file mode 100644
index 0000000..aabc9d6
--- /dev/null
+++ b/util/scan/dvb-t/se-Vaddo_Elmsta
@@ -0,0 +1,4 @@
+# Sweden - Väddö/Elmsta
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 514000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 834000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Valdemarsvik b/util/scan/dvb-t/se-Valdemarsvik
new file mode 100644
index 0000000..20b8a8e
--- /dev/null
+++ b/util/scan/dvb-t/se-Valdemarsvik
@@ -0,0 +1,4 @@
+# Sweden - Valdemarsvik
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 834000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 794000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Vannas_Granlundsberget b/util/scan/dvb-t/se-Vannas_Granlundsberget
new file mode 100644
index 0000000..2ef81d1
--- /dev/null
+++ b/util/scan/dvb-t/se-Vannas_Granlundsberget
@@ -0,0 +1,6 @@
+# Sweden - Vännäs/Granlundsberget
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 786000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 722000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 754000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 594000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Vansbro_Hummelberget b/util/scan/dvb-t/se-Vansbro_Hummelberget
new file mode 100644
index 0000000..1280490
--- /dev/null
+++ b/util/scan/dvb-t/se-Vansbro_Hummelberget
@@ -0,0 +1,3 @@
+# Sweden - Vansbro/Hummelberget
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Varberg_Grimeton b/util/scan/dvb-t/se-Varberg_Grimeton
new file mode 100644
index 0000000..abfdd54
--- /dev/null
+++ b/util/scan/dvb-t/se-Varberg_Grimeton
@@ -0,0 +1,6 @@
+# Sweden - Varberg/Grimeton
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 474000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 530000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 610000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 666000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/se-Vasteras_Lillharad b/util/scan/dvb-t/se-Vasteras_Lillharad
new file mode 100644
index 0000000..976bff7
--- /dev/null
+++ b/util/scan/dvb-t/se-Vasteras_Lillharad
@@ -0,0 +1,7 @@
+# Sweden - Västerås/Lillhärad
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 554000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 610000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Vastervik_Farhult b/util/scan/dvb-t/se-Vastervik_Farhult
new file mode 100644
index 0000000..b57a9d3
--- /dev/null
+++ b/util/scan/dvb-t/se-Vastervik_Farhult
@@ -0,0 +1,6 @@
+# Sweden - Västervik/Fårhult
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 498000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 546000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Vaxbo b/util/scan/dvb-t/se-Vaxbo
new file mode 100644
index 0000000..4214412
--- /dev/null
+++ b/util/scan/dvb-t/se-Vaxbo
@@ -0,0 +1,3 @@
+# Sweden - Växbo
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 682000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Vessigebro b/util/scan/dvb-t/se-Vessigebro
new file mode 100644
index 0000000..56a7e16
--- /dev/null
+++ b/util/scan/dvb-t/se-Vessigebro
@@ -0,0 +1,3 @@
+# Sweden - Vessigebro
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 762000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Vetlanda_Nye b/util/scan/dvb-t/se-Vetlanda_Nye
new file mode 100644
index 0000000..540e225
--- /dev/null
+++ b/util/scan/dvb-t/se-Vetlanda_Nye
@@ -0,0 +1,3 @@
+# Sweden - Vetlanda/Nye
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Vikmanshyttan b/util/scan/dvb-t/se-Vikmanshyttan
new file mode 100644
index 0000000..1def8f3
--- /dev/null
+++ b/util/scan/dvb-t/se-Vikmanshyttan
@@ -0,0 +1,3 @@
+# Sweden - Vikmanshyttan
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 538000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Virserum b/util/scan/dvb-t/se-Virserum
new file mode 100644
index 0000000..601a573
--- /dev/null
+++ b/util/scan/dvb-t/se-Virserum
@@ -0,0 +1,6 @@
+# Sweden - Virserum
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 618000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 738000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Visby_Follingbo b/util/scan/dvb-t/se-Visby_Follingbo
new file mode 100644
index 0000000..f5ec59d
--- /dev/null
+++ b/util/scan/dvb-t/se-Visby_Follingbo
@@ -0,0 +1,7 @@
+# Sweden - Visby/Follingbo
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 634000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 714000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 690000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 770000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Visby_Hamnen b/util/scan/dvb-t/se-Visby_Hamnen
new file mode 100644
index 0000000..374bcb4
--- /dev/null
+++ b/util/scan/dvb-t/se-Visby_Hamnen
@@ -0,0 +1,7 @@
+# Sweden - Visby/Hamnen
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 522000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 506000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 570000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 586000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Visingso b/util/scan/dvb-t/se-Visingso
new file mode 100644
index 0000000..6be33bd
--- /dev/null
+++ b/util/scan/dvb-t/se-Visingso
@@ -0,0 +1,3 @@
+# Sweden - Visingsö
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 650000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Vislanda_Nydala b/util/scan/dvb-t/se-Vislanda_Nydala
new file mode 100644
index 0000000..5611323
--- /dev/null
+++ b/util/scan/dvb-t/se-Vislanda_Nydala
@@ -0,0 +1,6 @@
+# Sweden - Vislanda/Nydala
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 626000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 698000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 578000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
+T 602000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Voxna b/util/scan/dvb-t/se-Voxna
new file mode 100644
index 0000000..8a37481
--- /dev/null
+++ b/util/scan/dvb-t/se-Voxna
@@ -0,0 +1,3 @@
+# Sweden - Voxna
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 666000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/se-Ystad_Metallgatan b/util/scan/dvb-t/se-Ystad_Metallgatan
new file mode 100644
index 0000000..c93c995
--- /dev/null
+++ b/util/scan/dvb-t/se-Ystad_Metallgatan
@@ -0,0 +1,7 @@
+# Sweden - Ystad/Metallgatan
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 506000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 634000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 818000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+T 794000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
diff --git a/util/scan/dvb-t/se-Yttermalung b/util/scan/dvb-t/se-Yttermalung
new file mode 100644
index 0000000..5262080
--- /dev/null
+++ b/util/scan/dvb-t/se-Yttermalung
@@ -0,0 +1,3 @@
+# Sweden - Yttermalung
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 698000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/sk-BanskaBystrica b/util/scan/dvb-t/sk-BanskaBystrica
new file mode 100644
index 0000000..48d3170
--- /dev/null
+++ b/util/scan/dvb-t/sk-BanskaBystrica
@@ -0,0 +1,4 @@
+# DVB-T Banska Bystrica (Banska Bystrica, Slovak Republic)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+
+T 778000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/sk-Bratislava b/util/scan/dvb-t/sk-Bratislava
new file mode 100644
index 0000000..4924be4
--- /dev/null
+++ b/util/scan/dvb-t/sk-Bratislava
@@ -0,0 +1,4 @@
+# DVB-T Bratislava (Bratislava, Slovak Republic)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+
+T 834000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/sk-Kosice b/util/scan/dvb-t/sk-Kosice
new file mode 100644
index 0000000..46f7a7e
--- /dev/null
+++ b/util/scan/dvb-t/sk-Kosice
@@ -0,0 +1,4 @@
+# DVB-T Kosice (Kosice, Slovak Republic)
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+
+T 658000000 8MHz 2/3 NONE QAM64 8k 1/8 NONE
diff --git a/util/scan/dvb-t/tw-Kaohsiung b/util/scan/dvb-t/tw-Kaohsiung
new file mode 100644
index 0000000..f1eabc9
--- /dev/null
+++ b/util/scan/dvb-t/tw-Kaohsiung
@@ -0,0 +1,6 @@
+# Taiwan - Kaohsiung, southern Taiwan
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 545000000 6MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 545000000 6MHz 2/3 NONE QAM16 8k 1/8 NONE
+T 557000000 6MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 557000000 6MHz 2/3 NONE QAM16 8k 1/8 NONE
diff --git a/util/scan/dvb-t/tw-Taipei b/util/scan/dvb-t/tw-Taipei
new file mode 100644
index 0000000..3bba686
--- /dev/null
+++ b/util/scan/dvb-t/tw-Taipei
@@ -0,0 +1,7 @@
+# Taiwan - Taipei, northern Taiwan
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 533000000 6MHz 1/2 NONE QAM16 8k 1/8 NONE
+T 545000000 6MHz 2/3 NONE QAM16 8k 1/8 NONE
+T 557000000 6MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 581000000 6MHz 2/3 NONE QAM16 8k 1/4 NONE
+T 593000000 6MHz 2/3 NONE QAM16 8k 1/4 NONE
diff --git a/util/scan/dvb-t/uk-Aberdare b/util/scan/dvb-t/uk-Aberdare
new file mode 100644
index 0000000..e38aad5
--- /dev/null
+++ b/util/scan/dvb-t/uk-Aberdare
@@ -0,0 +1,10 @@
+# UK, Aberdare
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 530167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 562167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 489833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 513833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 538167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 570167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Angus b/util/scan/dvb-t/uk-Angus
new file mode 100644
index 0000000..250295d
--- /dev/null
+++ b/util/scan/dvb-t/uk-Angus
@@ -0,0 +1,10 @@
+# UK, Angus
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 850000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 834167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 777833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 801833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 753833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 825833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-BeaconHill b/util/scan/dvb-t/uk-BeaconHill
new file mode 100644
index 0000000..8d1577d
--- /dev/null
+++ b/util/scan/dvb-t/uk-BeaconHill
@@ -0,0 +1,10 @@
+# UK, Beacon Hill
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 721833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 794167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 770167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 738167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 753833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 818167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Belmont b/util/scan/dvb-t/uk-Belmont
new file mode 100644
index 0000000..fee76db
--- /dev/null
+++ b/util/scan/dvb-t/uk-Belmont
@@ -0,0 +1,10 @@
+# UK, Belmont
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 690000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 850000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 834000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 786000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 762167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Bilsdale b/util/scan/dvb-t/uk-Bilsdale
new file mode 100644
index 0000000..d05c95f
--- /dev/null
+++ b/util/scan/dvb-t/uk-Bilsdale
@@ -0,0 +1,10 @@
+# UK, Bilsdale
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 578167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 474000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 554000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 498167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 522167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 642000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-BlackHill b/util/scan/dvb-t/uk-BlackHill
index 17eae72..ac8c2c1 100644
--- a/util/scan/dvb-t/uk-BlackHill
+++ b/util/scan/dvb-t/uk-BlackHill
@@ -1,3 +1,10 @@
-# uk BlackHill
+# UK, Black Hill
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 634167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 634167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 682167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 658167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 714167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 746000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 826000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Blaenplwyf b/util/scan/dvb-t/uk-Blaenplwyf
new file mode 100644
index 0000000..35dbade
--- /dev/null
+++ b/util/scan/dvb-t/uk-Blaenplwyf
@@ -0,0 +1,10 @@
+# UK, Blaenplwyf
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 530167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 482167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 506167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 562167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 538167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 570167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-BluebellHill b/util/scan/dvb-t/uk-BluebellHill
new file mode 100644
index 0000000..096d08b
--- /dev/null
+++ b/util/scan/dvb-t/uk-BluebellHill
@@ -0,0 +1,10 @@
+# UK, Bluebell Hill
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 778000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 498000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 522000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 665833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 641833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 618000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Bressay b/util/scan/dvb-t/uk-Bressay
new file mode 100644
index 0000000..c77bfb0
--- /dev/null
+++ b/util/scan/dvb-t/uk-Bressay
@@ -0,0 +1,10 @@
+# UK, Bressay
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 474000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 497833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 521833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 553833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 834000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 850000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-BrierleyHill b/util/scan/dvb-t/uk-BrierleyHill
new file mode 100644
index 0000000..20b3247
--- /dev/null
+++ b/util/scan/dvb-t/uk-BrierleyHill
@@ -0,0 +1,10 @@
+# UK, Brierley Hill
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 850000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 825833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 753833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 777833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 834167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 801833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-BristolIlchesterCres b/util/scan/dvb-t/uk-BristolIlchesterCres
new file mode 100644
index 0000000..c84c224
--- /dev/null
+++ b/util/scan/dvb-t/uk-BristolIlchesterCres
@@ -0,0 +1,10 @@
+# UK, Bristol Ilchester Cres.
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 697833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 618000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 634167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 658167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 682167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 714167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-BristolKingsWeston b/util/scan/dvb-t/uk-BristolKingsWeston
new file mode 100644
index 0000000..e3425ee
--- /dev/null
+++ b/util/scan/dvb-t/uk-BristolKingsWeston
@@ -0,0 +1,10 @@
+# UK, Bristol King's Weston
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 482000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 506000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 530000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 562000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 546000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 578000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Bromsgrove b/util/scan/dvb-t/uk-Bromsgrove
new file mode 100644
index 0000000..efca587
--- /dev/null
+++ b/util/scan/dvb-t/uk-Bromsgrove
@@ -0,0 +1,10 @@
+# UK, Bromsgrove
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 578167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 537833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 569833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 489833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 513833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 545833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-BrougherMountain b/util/scan/dvb-t/uk-BrougherMountain
new file mode 100644
index 0000000..d8ad238
--- /dev/null
+++ b/util/scan/dvb-t/uk-BrougherMountain
@@ -0,0 +1,10 @@
+# UK, Brougher Mountain
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 578167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 490167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 514167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 538167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 570167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Caldbeck b/util/scan/dvb-t/uk-Caldbeck
new file mode 100644
index 0000000..75f2952
--- /dev/null
+++ b/util/scan/dvb-t/uk-Caldbeck
@@ -0,0 +1,10 @@
+# UK, Caldbeck
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 506000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 490000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 514167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 618000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 666000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 642000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-CaradonHill b/util/scan/dvb-t/uk-CaradonHill
new file mode 100644
index 0000000..90f6eef
--- /dev/null
+++ b/util/scan/dvb-t/uk-CaradonHill
@@ -0,0 +1,10 @@
+# UK, Caradon Hill
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 578000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 553833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 690000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 474000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 497833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 522000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Carmel b/util/scan/dvb-t/uk-Carmel
new file mode 100644
index 0000000..32372c5
--- /dev/null
+++ b/util/scan/dvb-t/uk-Carmel
@@ -0,0 +1,10 @@
+# UK, Carmel
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 746000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 825833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 777833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 801833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 850000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 834167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Chatton b/util/scan/dvb-t/uk-Chatton
new file mode 100644
index 0000000..fe42d13
--- /dev/null
+++ b/util/scan/dvb-t/uk-Chatton
@@ -0,0 +1,10 @@
+# UK, Chatton
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 626167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 706167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 650167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 674167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 682167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 714167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Chesterfield b/util/scan/dvb-t/uk-Chesterfield
new file mode 100644
index 0000000..ae6b88f
--- /dev/null
+++ b/util/scan/dvb-t/uk-Chesterfield
@@ -0,0 +1,10 @@
+# UK, Chesterfield
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 578167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 626000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 650000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 674000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 706000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 722000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Craigkelly b/util/scan/dvb-t/uk-Craigkelly
new file mode 100644
index 0000000..63bb5d4
--- /dev/null
+++ b/util/scan/dvb-t/uk-Craigkelly
@@ -0,0 +1,10 @@
+# UK, Craigkelly
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 570000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 538000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 489833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 513833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 642000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 618000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-CrystalPalace b/util/scan/dvb-t/uk-CrystalPalace
index 9586b25..fc7e55e 100644
--- a/util/scan/dvb-t/uk-CrystalPalace
+++ b/util/scan/dvb-t/uk-CrystalPalace
@@ -1,3 +1,10 @@
-# Crystal Palace
+# UK, Crystal Palace
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 505833333 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 505833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 481833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 561833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 529833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 578167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 537833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Darvel b/util/scan/dvb-t/uk-Darvel
new file mode 100644
index 0000000..4fa6382
--- /dev/null
+++ b/util/scan/dvb-t/uk-Darvel
@@ -0,0 +1,10 @@
+# UK, Darvel
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 481833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 505833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 561833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 529833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 546167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 578000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Divis b/util/scan/dvb-t/uk-Divis
new file mode 100644
index 0000000..3836375
--- /dev/null
+++ b/util/scan/dvb-t/uk-Divis
@@ -0,0 +1,10 @@
+# UK, Divis
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 538000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 569833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 489833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 513833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 690000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 578167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Dover b/util/scan/dvb-t/uk-Dover
new file mode 100644
index 0000000..137b49f
--- /dev/null
+++ b/util/scan/dvb-t/uk-Dover
@@ -0,0 +1,14 @@
+# UK, Dover
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 850000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 794167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 745833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 770167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 762167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 785833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+# UK, Dover B
+T 666000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 642000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 618167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Durris b/util/scan/dvb-t/uk-Durris
new file mode 100644
index 0000000..851f0f3
--- /dev/null
+++ b/util/scan/dvb-t/uk-Durris
@@ -0,0 +1,10 @@
+# UK, Durris
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 578000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 722167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 713833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 634000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 658000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Eitshal b/util/scan/dvb-t/uk-Eitshal
new file mode 100644
index 0000000..0992656
--- /dev/null
+++ b/util/scan/dvb-t/uk-Eitshal
@@ -0,0 +1,10 @@
+# UK, Eitshal
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 578167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 546167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 481833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 505833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 529833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 561833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-EmleyMoor b/util/scan/dvb-t/uk-EmleyMoor
new file mode 100644
index 0000000..16df648
--- /dev/null
+++ b/util/scan/dvb-t/uk-EmleyMoor
@@ -0,0 +1,10 @@
+# UK, Emley Moor
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 722167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 625833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 649833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 673833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 705833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 697833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Fenham b/util/scan/dvb-t/uk-Fenham
new file mode 100644
index 0000000..f9f3da5
--- /dev/null
+++ b/util/scan/dvb-t/uk-Fenham
@@ -0,0 +1,10 @@
+# UK, Fenham
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 545833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 482167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 506167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 530167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 562167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 762167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Fenton b/util/scan/dvb-t/uk-Fenton
new file mode 100644
index 0000000..78c7819
--- /dev/null
+++ b/util/scan/dvb-t/uk-Fenton
@@ -0,0 +1,10 @@
+# UK, Fenton
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 577833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 545833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 482167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 506167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 530167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 562167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Ferryside b/util/scan/dvb-t/uk-Ferryside
new file mode 100644
index 0000000..2031564
--- /dev/null
+++ b/util/scan/dvb-t/uk-Ferryside
@@ -0,0 +1,8 @@
+# UK, Ferryside
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 474167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 545833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 498000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 522000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Guildford b/util/scan/dvb-t/uk-Guildford
new file mode 100644
index 0000000..a5350a0
--- /dev/null
+++ b/util/scan/dvb-t/uk-Guildford
@@ -0,0 +1,10 @@
+# UK, Guildford
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 697833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 658167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 634167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 714167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 682167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 738000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Hannington b/util/scan/dvb-t/uk-Hannington
index 0bbbfdd..30a261a 100644
--- a/util/scan/dvb-t/uk-Hannington
+++ b/util/scan/dvb-t/uk-Hannington
@@ -1,3 +1,10 @@
-# Hannington, North Hampshire
+# UK, Hannington
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
T 706000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 650167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 626167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 674167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 658167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 634167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Hastings b/util/scan/dvb-t/uk-Hastings
new file mode 100644
index 0000000..f5f7b71
--- /dev/null
+++ b/util/scan/dvb-t/uk-Hastings
@@ -0,0 +1,10 @@
+# UK, Hastings
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 553833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 521833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 474000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 497833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 810000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 786000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Heathfield b/util/scan/dvb-t/uk-Heathfield
new file mode 100644
index 0000000..b65db77
--- /dev/null
+++ b/util/scan/dvb-t/uk-Heathfield
@@ -0,0 +1,10 @@
+# UK, Heathfield
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 578000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 538000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 689833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 681833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 738000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 713833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-HemelHempstead b/util/scan/dvb-t/uk-HemelHempstead
new file mode 100644
index 0000000..87fbe86
--- /dev/null
+++ b/util/scan/dvb-t/uk-HemelHempstead
@@ -0,0 +1,10 @@
+# UK, Hemel Hempstead
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 690167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 746000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 786167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 777833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 802000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 826000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-HuntshawCross b/util/scan/dvb-t/uk-HuntshawCross
new file mode 100644
index 0000000..9572b29
--- /dev/null
+++ b/util/scan/dvb-t/uk-HuntshawCross
@@ -0,0 +1,13 @@
+# UK, Huntshaw Cross
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 737833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 769833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 793833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 817833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 729833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 761833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+# UK, Huntshaw Cross B
+T 714000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 682000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Idle b/util/scan/dvb-t/uk-Idle
new file mode 100644
index 0000000..84fdc29
--- /dev/null
+++ b/util/scan/dvb-t/uk-Idle
@@ -0,0 +1,10 @@
+# UK, Idle
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 666000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 730000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 578000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 754000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 545833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 642000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-KeelylangHill b/util/scan/dvb-t/uk-KeelylangHill
new file mode 100644
index 0000000..3b17375
--- /dev/null
+++ b/util/scan/dvb-t/uk-KeelylangHill
@@ -0,0 +1,10 @@
+# UK, Keelylang Hill
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 690167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 722167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 634167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 658167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 682167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 714167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Keighley b/util/scan/dvb-t/uk-Keighley
new file mode 100644
index 0000000..7db30f4
--- /dev/null
+++ b/util/scan/dvb-t/uk-Keighley
@@ -0,0 +1,10 @@
+# UK, Keighley
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 690000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 850000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 834000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 729833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 546000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 578000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-KilveyHill b/util/scan/dvb-t/uk-KilveyHill
new file mode 100644
index 0000000..a091be6
--- /dev/null
+++ b/util/scan/dvb-t/uk-KilveyHill
@@ -0,0 +1,10 @@
+# UK, Kilvey Hill
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 505833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 481833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 529833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 561833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 474000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 553833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-KnockMore b/util/scan/dvb-t/uk-KnockMore
new file mode 100644
index 0000000..f6ecb3c
--- /dev/null
+++ b/util/scan/dvb-t/uk-KnockMore
@@ -0,0 +1,10 @@
+# UK, Knock More
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 578167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 546167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 730000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 762167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 786000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 753833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Lancaster b/util/scan/dvb-t/uk-Lancaster
new file mode 100644
index 0000000..69b6129
--- /dev/null
+++ b/util/scan/dvb-t/uk-Lancaster
@@ -0,0 +1,10 @@
+# UK, Lancaster
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 530167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 482167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 506167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 562167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 578000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 545833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-LarkStoke b/util/scan/dvb-t/uk-LarkStoke
new file mode 100644
index 0000000..a7b7a39
--- /dev/null
+++ b/util/scan/dvb-t/uk-LarkStoke
@@ -0,0 +1,10 @@
+# UK, Lark Stoke
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 474000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 554000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 498167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 522167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 762000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 786000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Limavady b/util/scan/dvb-t/uk-Limavady
new file mode 100644
index 0000000..327d318
--- /dev/null
+++ b/util/scan/dvb-t/uk-Limavady
@@ -0,0 +1,10 @@
+# UK, Limavady
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 842000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 769833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 730000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 761833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 786167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 810167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Llanddona b/util/scan/dvb-t/uk-Llanddona
new file mode 100644
index 0000000..123c6be
--- /dev/null
+++ b/util/scan/dvb-t/uk-Llanddona
@@ -0,0 +1,10 @@
+# UK, Llanddona
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 706000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 738167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 770167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 794167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 818167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 674000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Malvern b/util/scan/dvb-t/uk-Malvern
new file mode 100644
index 0000000..da02f7b
--- /dev/null
+++ b/util/scan/dvb-t/uk-Malvern
@@ -0,0 +1,10 @@
+# UK, Malvern
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 722167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 618000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 682000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 658000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 714000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 634000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Mendip b/util/scan/dvb-t/uk-Mendip
new file mode 100644
index 0000000..966d01f
--- /dev/null
+++ b/util/scan/dvb-t/uk-Mendip
@@ -0,0 +1,10 @@
+# UK, Mendip
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 778167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 746167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 802167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 826167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 754167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 842000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Midhurst b/util/scan/dvb-t/uk-Midhurst
new file mode 100644
index 0000000..c1a5ceb
--- /dev/null
+++ b/util/scan/dvb-t/uk-Midhurst
@@ -0,0 +1,10 @@
+# UK, Midhurst
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 754167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 826167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 802167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 778167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 817833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 786167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Moel-y-Parc b/util/scan/dvb-t/uk-Moel-y-Parc
new file mode 100644
index 0000000..94e4997
--- /dev/null
+++ b/util/scan/dvb-t/uk-Moel-y-Parc
@@ -0,0 +1,10 @@
+# UK, Moel-y-Parc
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 738000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 770000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 794000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 818000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 546000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 578000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Nottingham b/util/scan/dvb-t/uk-Nottingham
new file mode 100644
index 0000000..e94f1c4
--- /dev/null
+++ b/util/scan/dvb-t/uk-Nottingham
@@ -0,0 +1,10 @@
+# UK, Nottingham
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 618000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 842000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 730000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 810000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 538000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 778000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-OliversMount b/util/scan/dvb-t/uk-OliversMount
new file mode 100644
index 0000000..1ad0017
--- /dev/null
+++ b/util/scan/dvb-t/uk-OliversMount
@@ -0,0 +1,10 @@
+# UK, Oliver's Mount
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 698000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 842167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 738167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 770167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 794167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 818167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Oxford b/util/scan/dvb-t/uk-Oxford
index 035603e..744a3d4 100644
--- a/util/scan/dvb-t/uk-Oxford
+++ b/util/scan/dvb-t/uk-Oxford
@@ -1,3 +1,10 @@
-# Oxford
+# UK, Oxford
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 578000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 578000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 850000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 713833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 721833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 690000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 538000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-PendleForest b/util/scan/dvb-t/uk-PendleForest
new file mode 100644
index 0000000..70d21cc
--- /dev/null
+++ b/util/scan/dvb-t/uk-PendleForest
@@ -0,0 +1,10 @@
+# UK, Pendle Forest
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 474000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 497833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 521833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 553833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 545833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 578000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Plympton b/util/scan/dvb-t/uk-Plympton
new file mode 100644
index 0000000..c8c30a8
--- /dev/null
+++ b/util/scan/dvb-t/uk-Plympton
@@ -0,0 +1,10 @@
+# UK, Plympton
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 722000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 842167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 833833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 785833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 809833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 754000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-PontopPike b/util/scan/dvb-t/uk-PontopPike
index c24ba92..af1f6a5 100644
--- a/util/scan/dvb-t/uk-PontopPike
+++ b/util/scan/dvb-t/uk-PontopPike
@@ -1,3 +1,10 @@
-# Pontop Pike, UK
+# UK, Pontop Pike
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 690000000 8MHz 1/2 NONE QAM16 2k 1/32 NONE
+T 690000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 746167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 778167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 802167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 826167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 729833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Pontypool b/util/scan/dvb-t/uk-Pontypool
new file mode 100644
index 0000000..c258ce8
--- /dev/null
+++ b/util/scan/dvb-t/uk-Pontypool
@@ -0,0 +1,10 @@
+# UK, Pontypool
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 722000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 690000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 642000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 666000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 482167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 530167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Presely b/util/scan/dvb-t/uk-Presely
new file mode 100644
index 0000000..bdfe4f1
--- /dev/null
+++ b/util/scan/dvb-t/uk-Presely
@@ -0,0 +1,10 @@
+# UK, Presely
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 682167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 714167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 618000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 641833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 665833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 697833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Redruth b/util/scan/dvb-t/uk-Redruth
index 84dcb9a..e8285a5 100644
--- a/util/scan/dvb-t/uk-Redruth
+++ b/util/scan/dvb-t/uk-Redruth
@@ -1,3 +1,10 @@
-# Redruth, Cornwall
+# UK, Redruth
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
T 618000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 642167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 666167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 697833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 650167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 705833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Reigate b/util/scan/dvb-t/uk-Reigate
index add0d8b..dd40fbf 100644
--- a/util/scan/dvb-t/uk-Reigate
+++ b/util/scan/dvb-t/uk-Reigate
@@ -1,3 +1,10 @@
-# Reigate
+# UK, Reigate
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 554000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 554000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 474000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 498000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 522000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 618167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 834000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-RidgeHill b/util/scan/dvb-t/uk-RidgeHill
new file mode 100644
index 0000000..40e13f4
--- /dev/null
+++ b/util/scan/dvb-t/uk-RidgeHill
@@ -0,0 +1,10 @@
+# UK, Ridge Hill
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 730000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 762000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 786000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 810000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 642000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 666000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Rosemarkie b/util/scan/dvb-t/uk-Rosemarkie
new file mode 100644
index 0000000..36df581
--- /dev/null
+++ b/util/scan/dvb-t/uk-Rosemarkie
@@ -0,0 +1,10 @@
+# UK, Rosemarkie
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 682167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 714167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 633833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 657833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 674167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 706167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Rosneath b/util/scan/dvb-t/uk-Rosneath
new file mode 100644
index 0000000..facbd5c
--- /dev/null
+++ b/util/scan/dvb-t/uk-Rosneath
@@ -0,0 +1,10 @@
+# UK, Rosneath
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 842000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 729833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 761833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 785833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 809833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 690000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Rowridge b/util/scan/dvb-t/uk-Rowridge
index c0c72a0..078d7a1 100644
--- a/util/scan/dvb-t/uk-Rowridge
+++ b/util/scan/dvb-t/uk-Rowridge
@@ -1,3 +1,10 @@
-# Rowridge, Isle of Wight
+# UK, Rowridge
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 489833333 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 489833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 530000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 545833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 562167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 513833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 570167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-RumsterForest b/util/scan/dvb-t/uk-RumsterForest
new file mode 100644
index 0000000..87941b3
--- /dev/null
+++ b/util/scan/dvb-t/uk-RumsterForest
@@ -0,0 +1,10 @@
+# UK, Rumster Forest
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 530167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 482167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 506167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 562167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 802000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 778000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Saddleworth b/util/scan/dvb-t/uk-Saddleworth
new file mode 100644
index 0000000..dbd037c
--- /dev/null
+++ b/util/scan/dvb-t/uk-Saddleworth
@@ -0,0 +1,10 @@
+# UK, Saddleworth
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 682000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 633833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 657833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 713833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 618167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 738000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Salisbury b/util/scan/dvb-t/uk-Salisbury
new file mode 100644
index 0000000..87b1c1d
--- /dev/null
+++ b/util/scan/dvb-t/uk-Salisbury
@@ -0,0 +1,10 @@
+# UK, Salisbury
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 745833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 753833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 777833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 801833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 826000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 721833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-SandyHeath b/util/scan/dvb-t/uk-SandyHeath
index 05d0474..8c6cf74 100644
--- a/util/scan/dvb-t/uk-SandyHeath
+++ b/util/scan/dvb-t/uk-SandyHeath
@@ -1,3 +1,10 @@
-# Sandy Heath
+# UK, Sandy Heath
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 641833334 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 641833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 665833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 650167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 842000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 626167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 674167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Selkirk b/util/scan/dvb-t/uk-Selkirk
new file mode 100644
index 0000000..88f5f84
--- /dev/null
+++ b/util/scan/dvb-t/uk-Selkirk
@@ -0,0 +1,10 @@
+# UK, Selkirk
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 730167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 762167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 786167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 810167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 834167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 754167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Sheffield b/util/scan/dvb-t/uk-Sheffield
new file mode 100644
index 0000000..2469611
--- /dev/null
+++ b/util/scan/dvb-t/uk-Sheffield
@@ -0,0 +1,10 @@
+# UK, Sheffield
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 618000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 730000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 762000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 786000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 666000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 642000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-StocklandHill b/util/scan/dvb-t/uk-StocklandHill
new file mode 100644
index 0000000..c0d3c3e
--- /dev/null
+++ b/util/scan/dvb-t/uk-StocklandHill
@@ -0,0 +1,10 @@
+# UK, Stockland Hill
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 481833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 529833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 505833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 561833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 546167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 578167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Storeton b/util/scan/dvb-t/uk-Storeton
index 5c93ee9..1ca0841 100644
--- a/util/scan/dvb-t/uk-Storeton
+++ b/util/scan/dvb-t/uk-Storeton
@@ -1,3 +1,10 @@
-# Storeton, Wirral
+# UK, Storeton
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
T 546167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 578167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 490167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 514167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 538167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 570167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Sudbury b/util/scan/dvb-t/uk-Sudbury
new file mode 100644
index 0000000..15e5e23
--- /dev/null
+++ b/util/scan/dvb-t/uk-Sudbury
@@ -0,0 +1,12 @@
+# UK, Sudbury
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 698167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 850000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 690167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 618000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 738000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 706167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+# UK, Sudbury B
+T 754000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-SuttonColdfield b/util/scan/dvb-t/uk-SuttonColdfield
new file mode 100644
index 0000000..67cf07f
--- /dev/null
+++ b/util/scan/dvb-t/uk-SuttonColdfield
@@ -0,0 +1,10 @@
+# UK, Sutton Coldfield
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 634167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 658167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 682167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 714167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 722167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 746000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Tacolneston b/util/scan/dvb-t/uk-Tacolneston
new file mode 100644
index 0000000..b062cca
--- /dev/null
+++ b/util/scan/dvb-t/uk-Tacolneston
@@ -0,0 +1,10 @@
+# UK, Tacolneston
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 810000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 786000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 730167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 769833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 794000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 818000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-TheWrekin b/util/scan/dvb-t/uk-TheWrekin
new file mode 100644
index 0000000..435741c
--- /dev/null
+++ b/util/scan/dvb-t/uk-TheWrekin
@@ -0,0 +1,15 @@
+# UK, The Wrekin
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 474000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 554000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 498167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 522167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 730000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 762000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+# UK, The Wrekin B
+T 618167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 698000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 642000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 666000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Torosay b/util/scan/dvb-t/uk-Torosay
new file mode 100644
index 0000000..77af3c6
--- /dev/null
+++ b/util/scan/dvb-t/uk-Torosay
@@ -0,0 +1,10 @@
+# UK, Torosay
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 490167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 514167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 538167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 570167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 474000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 553833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-TunbridgeWells b/util/scan/dvb-t/uk-TunbridgeWells
new file mode 100644
index 0000000..6f57c1b
--- /dev/null
+++ b/util/scan/dvb-t/uk-TunbridgeWells
@@ -0,0 +1,10 @@
+# UK, Tunbridge Wells
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 746000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 794000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 642167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 666167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 618000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 778000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Waltham b/util/scan/dvb-t/uk-Waltham
new file mode 100644
index 0000000..bc4ab0e
--- /dev/null
+++ b/util/scan/dvb-t/uk-Waltham
@@ -0,0 +1,10 @@
+# UK, Waltham
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 698000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 490000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 514000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 570000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 666000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 642000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-Wenvoe b/util/scan/dvb-t/uk-Wenvoe
new file mode 100644
index 0000000..011c524
--- /dev/null
+++ b/util/scan/dvb-t/uk-Wenvoe
@@ -0,0 +1,10 @@
+# UK, Wenvoe
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 546000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 578000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 625833000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 705833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 649833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 673833000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-WhitehawkHill b/util/scan/dvb-t/uk-WhitehawkHill
new file mode 100644
index 0000000..0d343c3
--- /dev/null
+++ b/util/scan/dvb-t/uk-WhitehawkHill
@@ -0,0 +1,10 @@
+# UK, Whitehawk Hill
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
+# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
+T 834000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 706000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 746000000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 690000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 770167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 794167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/dvb-t/uk-WinterHill b/util/scan/dvb-t/uk-WinterHill
index b000623..3ea6abd 100644
--- a/util/scan/dvb-t/uk-WinterHill
+++ b/util/scan/dvb-t/uk-WinterHill
@@ -1,3 +1,13 @@
-# Winter Hill, North-West England
+# UK, Winter Hill
+# Auto-generated from http://www.dtg.org.uk/retailer/dtt_channels.html
+# and http://www.ofcom.org.uk/static/reception_advice/index.asp.html
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
-T 754166670 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 754167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 834167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 850167000 8MHz 2/3 NONE QAM64 2k 1/32 NONE
+T 842167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 786167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 810167000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+# UK, Winter Hill B
+T 650000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
+T 626000000 8MHz 3/4 NONE QAM16 2k 1/32 NONE
diff --git a/util/scan/list.h b/util/scan/list.h
index 6032c22..931df96 100644
--- a/util/scan/list.h
+++ b/util/scan/list.h
@@ -26,7 +26,7 @@ struct list_head {
} while (0)
/*
- * Insert a new entry between two known consecutive entries.
+ * Insert a new entry between two known consecutive entries.
*
* This is only for internal list manipulation where we know
* the prev/next entries already!
@@ -98,7 +98,7 @@ static __inline__ void list_del(struct list_head *entry)
static __inline__ void list_del_init(struct list_head *entry)
{
__list_del(entry->prev, entry->next);
- INIT_LIST_HEAD(entry);
+ INIT_LIST_HEAD(entry);
}
/**
@@ -126,7 +126,7 @@ static __inline__ int list_empty(struct list_head *head)
*/
#define list_for_each(pos, head) \
for (pos = (head)->next; pos != (head); pos = pos->next)
-
+
/**
* list_for_each_safe - iterate over a list safe against removal of list entry
* @pos: the &struct list_head to use as a loop counter.
diff --git a/util/scan/lnb.c b/util/scan/lnb.c
index e30c1d6..d0fdf1d 100644
--- a/util/scan/lnb.c
+++ b/util/scan/lnb.c
@@ -1,6 +1,7 @@
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
+#include <linux/types.h>
#include "lnb.h"
static char *univ_desc[] = {
diff --git a/util/scan/lnb.h b/util/scan/lnb.h
index f78b7a6..6370fd4 100644
--- a/util/scan/lnb.h
+++ b/util/scan/lnb.h
@@ -1,4 +1,3 @@
-
struct lnb_types_st {
char *name;
char **desc;
@@ -21,4 +20,3 @@ lnb_enum(int curno);
int
lnb_decode(char *str, struct lnb_types_st *lnbp);
-
diff --git a/util/scan/scan.c b/util/scan/scan.c
index 350d9c9..1b7a3e5 100644
--- a/util/scan/scan.c
+++ b/util/scan/scan.c
@@ -61,9 +61,9 @@ static int vdr_dump_provider;
static int vdr_dump_channum;
static int no_ATSC_PSIP;
static int ATSC_type=1;
-static int ca_select = 1;
+static int ca_select = -1;
static int serv_select = 7;
-static int vdr_version = 2;
+static int vdr_version = 3;
static struct lnb_types_st lnb_type;
static int unique_anon_services;
@@ -130,6 +130,7 @@ struct transponder {
struct list_head list;
struct list_head services;
int network_id;
+ int original_network_id;
int transport_stream_id;
enum fe_type type;
struct dvb_frontend_parameters param;
@@ -236,6 +237,7 @@ static struct transponder *find_transponder(uint32_t frequency)
static void copy_transponder(struct transponder *d, struct transponder *s)
{
d->network_id = s->network_id;
+ d->original_network_id = s->original_network_id;
d->transport_stream_id = s->transport_stream_id;
d->type = s->type;
memcpy(&d->param, &s->param, sizeof(d->param));
@@ -755,12 +757,15 @@ static void parse_pmt (const unsigned char *buf, int section_length, int service
switch (buf[0]) {
case 0x01:
case 0x02:
+ case 0x1b: /* H.264 video stream */
moreverbose(" VIDEO : PID 0x%04x\n", elementary_pid);
if (s->video_pid == 0)
s->video_pid = elementary_pid;
break;
case 0x03:
case 0x81: /* Audio per ATSC A/53B [2] Annex B */
+ case 0x0f: /* ADTS Audio Stream - usually AAC */
+ case 0x11: /* ISO/IEC 14496-3 Audio with LATM transport */
case 0x04:
moreverbose(" AUDIO : PID 0x%04x\n", elementary_pid);
if (s->audio_num < AUDIO_CHAN_MAX) {
@@ -772,6 +777,12 @@ static void parse_pmt (const unsigned char *buf, int section_length, int service
warning("more than %i audio channels, truncating\n",
AUDIO_CHAN_MAX);
break;
+ case 0x07:
+ moreverbose(" MHEG : PID 0x%04x\n", elementary_pid);
+ break;
+ case 0x0B:
+ moreverbose(" DSM-CC : PID 0x%04x\n", elementary_pid);
+ break;
case 0x06:
if (find_descriptor(0x56, buf + 5, ES_info_len, NULL, NULL)) {
moreverbose(" TELETEXT : PID 0x%04x\n", elementary_pid);
@@ -860,6 +871,7 @@ static void parse_nit (const unsigned char *buf, int section_length, int network
memset(&tn, 0, sizeof(tn));
tn.type = -1;
tn.network_id = network_id;
+ tn.original_network_id = (buf[2] << 8) | buf[3];
tn.transport_stream_id = transport_stream_id;
parse_descriptors (NIT, buf + 6, descriptors_loop_len, &tn);
@@ -1462,21 +1474,34 @@ static int __tune_to_transponder (int frontend_fd, struct transponder *t)
}
if (t->type == FE_QPSK) {
- int hiband = 0;
-
- if (lnb_type.switch_val && lnb_type.high_val &&
- p.frequency >= lnb_type.switch_val)
- hiband = 1;
-
- setup_switch (frontend_fd,
- switch_pos,
- t->polarisation == POLARISATION_VERTICAL ? 0 : 1,
- hiband);
- usleep(50000);
- if (hiband)
- p.frequency = abs(p.frequency - lnb_type.high_val);
- else
+ if (lnb_type.high_val) {
+ if (lnb_type.switch_val) {
+ /* Voltage-controlled switch */
+ int hiband = 0;
+
+ if (p.frequency >= lnb_type.switch_val)
+ hiband = 1;
+
+ setup_switch (frontend_fd,
+ switch_pos,
+ t->polarisation == POLARISATION_VERTICAL ? 0 : 1,
+ hiband);
+ usleep(50000);
+ if (hiband)
+ p.frequency = abs(p.frequency - lnb_type.high_val);
+ else
+ p.frequency = abs(p.frequency - lnb_type.low_val);
+ } else {
+ /* C-Band Multipoint LNBf */
+ p.frequency = abs(p.frequency - (t->polarisation == POLARISATION_VERTICAL ?
+ lnb_type.low_val: lnb_type.high_val));
+ }
+ } else {
+ /* Monopoint LNBf without switch */
p.frequency = abs(p.frequency - lnb_type.low_val);
+ }
+ if (verbosity >= 2)
+ dprintf(1,"DVB-S IF freq is %d\n",p.frequency);
}
if (ioctl(frontend_fd, FE_SET_FRONTEND, &p) == -1) {
@@ -1991,7 +2016,7 @@ static void dump_lists (void)
//FIXME: s->subtitling_pid
s->ac3_pid,
s->service_id,
- t->network_id,
+ t->original_network_id,
s->transport_stream_id,
t->orbital_pos,
t->we_flag,
@@ -2066,14 +2091,15 @@ static const char *usage = "\n"
" -5 multiply all filter timeouts by factor 5\n"
" for non-DVB-compliant section repitition rates\n"
" -o fmt output format: 'zap' (default), 'vdr' or 'pids' (default with -c)\n"
- " -x N Conditional Axcess, (default 1)\n"
+ " -x N Conditional Access, (default -1)\n"
" N=0 gets only FTA channels\n"
+ " N=-1 gets all channels\n"
" N=xxx sets ca field in vdr output to :xxx:\n"
" -t N Service select, Combined bitfield parameter.\n"
" 1 = TV, 2 = Radio, 4 = Other, (default 7)\n"
" -p for vdr output format: dump provider name\n"
- " -e N VDR version, default 2 for VDR-1.2.x\n"
- " ANYTHING ELSE GIVES NONZERO NIT and TID\n"
+ " -e N VDR version, default 3 for VDR-1.3.x and newer\n"
+ " value 2 sets NIT and TID to zero\n"
" Vdr version 1.3.x and up implies -p.\n"
" -l lnb-type (DVB-S Only) (use -l help to print types) or \n"
" -l low[,high[,switch]] in Mhz\n"
diff --git a/util/scan/scan.h b/util/scan/scan.h
index 8209076..6ccf6fc 100644
--- a/util/scan/scan.h
+++ b/util/scan/scan.h
@@ -26,4 +26,3 @@ extern int verbosity;
#define verbosedebug(msg...) dpprintf(6, msg)
#endif
-
diff --git a/util/scan/section_generate.pl b/util/scan/section_generate.pl
new file mode 100644
index 0000000..2080dbb
--- /dev/null
+++ b/util/scan/section_generate.pl
@@ -0,0 +1,92 @@
+#!/usr/bin/perl -w
+
+use strict;
+
+die "no section perl file given" unless @ARGV;
+
+my $h = require($ARGV[0]);
+
+our $basename;
+our $debug = $ARGV[1];
+
+($basename) = $ARGV[0] =~ /([a-zA-Z0-9_\-_]+).pl/;
+
+local *H;
+local *C;
+
+h_header();
+c_header();
+
+foreach (sort keys %{$h}) {
+ foreach my $item (@{$h->{$_}}) {
+ if ($_ eq "descriptors") {
+ printf H ("#define %s_ID 0x%02X\n",uc($item->{name}),$item->{id});
+ }
+
+ do_it ($item->{name},$item->{elements});
+ }
+}
+
+h_footer();
+c_footer();
+
+sub type
+{
+ if ($_[0] > 16) {
+ return "u32";
+ } elsif ($_[0] > 8) {
+ return "u16";
+ } else {
+ return "u8 ";
+ }
+}
+
+sub do_it
+{
+ my ($name,$val) = @_;
+ print H "struct $name {\n";
+
+ print C <<EOL;
+struct $name read_$name(const u8 *b)
+{
+ struct $name v;
+EOL
+ my $offs = 0;
+ for (my $i = 0; $i < scalar @{$val}; $i+=2) {
+ printf H ("\t\t%s %-25s :%2d;\n",type($val->[$i+1]),$val->[$i],$val->[$i+1]);
+
+ printf C ("\tv.%-25s = getBits(b,%3d,%2d);\n",$val->[$i],$offs,$val->[$i+1]);
+ printf C ("\tfprintf(stderr,\" %s = %%x %%d\\n\",v.%s,v.%s);\n",$val->[$i],$val->[$i],$val->[$i]) if $debug;
+ $offs += $val->[$i+1];
+ }
+ print H "} PACKED;\n";
+ print H "struct $name read_$name(const u8 *);\n\n";
+
+ print C "\treturn v;\n}\n\n"
+}
+
+sub h_header
+{
+ open(H,">$basename.h");
+ print H "#ifndef __".uc($basename)."_H_\n";
+ print H "#define __".uc($basename)."_H_\n\n";
+ print H "#include \"section.h\"\n\n";
+}
+
+sub c_header
+{
+ open(C,">$basename.c");
+ print C "#include \"$basename.h\"\n\n";
+}
+
+
+sub c_footer
+{
+ close(C);
+}
+
+sub h_footer
+{
+ print H "#endif\n";
+ close(H);
+}
diff --git a/util/szap/Makefile b/util/szap/Makefile
index 680793c..b341c74 100644
--- a/util/szap/Makefile
+++ b/util/szap/Makefile
@@ -1,35 +1,18 @@
-CC = gcc
-CFLAGS = -MD -Wall -g -O2 -I../../include -I../lib
-LFLAGS = -Wall -g -O2
-RM = rm -f
+# Makefile for linuxtv.org dvb-apps/util/szap
-TARGETS = szap tzap czap azap femon
-OBJS = szap.o tzap.o czap.o azap.o femon.o
+objects = lnb.o
-all: $(OBJS) $(TARGETS)
- @echo
- @echo "--------------------------------------------------------------------------------"
- @echo " please copy an appropriate channels.conf-XXX channel list for DVB-S/C/T"
- @echo
- @echo " to ~/.szap/channels.conf"
- @echo " ~/.czap/channels.conf"
- @echo " ~/.tzap/channels.conf"
- @echo
- @echo " and then call ./szap for DVB-S, ./czap for DVB-C or ./tzap for DVB-T"
- @echo "--------------------------------------------------------------------------------"
- @echo
+binaries = azap \
+ czap \
+ szap \
+ tzap
-szap: szap.o ../lib/lnb.o
- $(CC) $(LFLAGS) -o szap szap.o ../lib/lnb.o
+inst_bin = $(binaries)
-.c.o:
- $(CC) $(CFLAGS) -o $@ -c $<
+.PHONY: all
-.o:
- $(CC) $(LFLAGS) -o $@ $<
+all: $(binaries)
-clean:
- $(RM) $(TARGETS) core* *.o *.d .depend
-
--include $(wildcard *.d) dummy
+$(binaries): $(objects)
+include ../../Make.rules
diff --git a/util/szap/README b/util/szap/README
index 5c83c67..a990357 100644
--- a/util/szap/README
+++ b/util/szap/README
@@ -5,23 +5,29 @@ and demux API. They are also pretty useful to test your hardware.
For DVB-S, Astra Channel config file:
-$ ./szap -c channels.conf-dvbs-astra n24
+$ ./szap -c channels-conf/dvb-s/Astra-19.2E n24
will tune to N24. For DVB-C, Berlin Cable channel config:
-$ ./czap -c channels.conf-dvbc-berlin Arte
+$ ./czap -c channels-conf/dvb-c/de-Berlin Arte
For DVB-T, Berlin Config:
-$ ./czap -c channels.conf-dvbt-berlin phoenix
+$ ./tzap -c channels-conf/dvb-t/de-Berlin phoenix
-By default the MPEG stream is routed to a hardware decoder. If you want to
-record the stream to disk you will route it to the DVR device by using the
+For ATSC, Raleigh Durham Config:
+
+$ ./azap -c channels-conf/atsc/us-Raleigh-Durham WRAL
+
+will tune to WRAL's Digital Channel 5-1.
+
+By default the MPEG stream is routed to a hardware decoder. If you want to
+record the stream to disk you will route it to the DVR device by using the
'-r' option:
-$ ./czap -c channels.conf-dvbt-berlin phoenix -r
+$ ./tzap -c channels-conf/dvb-t/de-Berlin phoenix -r
[keep it running in one console]
-$ cat /dev/dvr/adapter0/dvr0 > /tmp/recording.ts
+$ cat /dev/dvb/adapter0/dvr0 > /tmp/recording.ts
[in a second console, will dump the MPEG transport stream to /tmp/recording.ts]
The status messages have the following meaning:
@@ -38,10 +44,9 @@ ber [0...0xffffffff] --- Bit Error Rate. The less the better.
unc [0...0xffffffff] --- Number of Uncorrectable Blocks.
Small numbers are Preferable.
-If everything is alright and all frontend circuits are working stable
+If everything is alright and all frontend circuits are working stable
(are locked) you should see a FE_HAS_LOCK in the rightmost line.
Good luck,
Holger
-
diff --git a/util/szap/azap.c b/util/szap/azap.c
index 14a1c6a..5bd7f33 100644
--- a/util/szap/azap.c
+++ b/util/szap/azap.c
@@ -103,7 +103,10 @@ int parse_int(int fd, int *val)
return -3; /* to fit in 32 bit */
};
+ errno = 0;
*val = strtol(number, NULL, 10);
+ if (errno == ERANGE)
+ return -4;
return 0;
}
@@ -189,9 +192,9 @@ int parse(const char *fname, const char *channel,
if ((err = try_parse_param(fd,
modulation_list, LIST_SIZE(modulation_list),
- (int *) &frontend->u.vsb.modulation,
- "modulation")))
+ &tmp, "modulation")))
return -4;
+ frontend->u.vsb.modulation = tmp;
if ((err = try_parse_int(fd, vpid, "Video PID")))
return -5;
@@ -389,4 +392,3 @@ int main(int argc, char **argv)
return 0;
}
-
diff --git a/util/szap/channels-conf/atsc/make_atsc_chanconf.pl b/util/szap/channels-conf/atsc/make_atsc_chanconf.pl
new file mode 100755
index 0000000..a5168e2
--- /dev/null
+++ b/util/szap/channels-conf/atsc/make_atsc_chanconf.pl
@@ -0,0 +1,110 @@
+#!/usr/bin/perl
+
+# Angel Li sent me this script to help in setting up a
+# ~/.azap/channels.conf file automagicly. This probbably
+# isn't the final version
+
+ use LWP;
+ use HTML::Form;
+ use HTTP::Cookies;
+ use XML::XPath;
+ use XML::XPath::XMLParser;
+
+ #$DEBUG = 1;
+
+ #
+ # Center frequencies for NTSC channels
+ #
+ @ntsc = (
+ 0, 0, 57, 63, 69, 79, 85, 177, 183, 189,
+ 195, 201, 207, 213, 473, 479, 485, 491, 497, 503,
+ 509, 515, 521, 527, 533, 539, 545, 551, 557, 563,
+ 569, 575, 581, 587, 593, 599, 605, 611, 617, 623,
+ 629, 635, 641, 647, 653, 659, 665, 671, 677, 683,
+ 689, 695, 701, 707, 713, 719, 725, 731, 737, 743,
+ 749, 755, 761, 767, 773, 779, 785, 791, 797, 803,
+ );
+
+ $ZIPCODE = 'txtZipcode';
+ $XML = 'stationXml';
+ $WEBSITE = 'http://www.antennaweb.org';
+
+ $zipCode = $ARGV[0];
+ unless ($zipCode) {
+ die "Zipcode missing on the command line";
+ }
+ unless ($zipCode =~ /^\d\d\d\d\d$/) {
+ die "Illegal zipcode: $zipCode";
+ }
+
+ $ua = LWP::UserAgent->new;
+ $ua->cookie_jar({});
+ push @{$ua->requests_redirectable}, 'POST';
+ $response = $ua->get($WEBSITE);
+ if ($response->is_success) {
+ $form = HTML::Form->parse($response);
+ $request = $form->click("btnStart");
+ $response2 = $ua->request($request);
+ if ($response2->is_success) {
+ $form2 = HTML::Form->parse($response2);
+ $form2->param($ZIPCODE, $zipCode);
+ $request2 = $form2->click("btnSubmit");
+ $response3 = $ua->request($request2);
+ $form3 = HTML::Form->parse($response3);
+ $request3 = $form3->click("btnContinue");
+ $response4 = $ua->request($request3);
+ if ($response4->is_success) {
+ $form4 = HTML::Form->parse($response4);
+ $xml = $form4->value($XML);
+ $xml =~ s/%22/"/g;
+ $xml =~ s/%2c/,/g;
+ $xml =~ s/%2f/\//g;
+ $xml =~ s/%3c/</g;
+ $xml =~ s/%3d/=/g;
+ $xml =~ s/%3e/>/g;
+ $xml =~ s/\+/ /g;
+ genConf($xml);
+ exit(0);
+ }
+ else {
+ print STDERR "Could not submit zipcode: $zipCode\n";
+ die $response3->status_line;
+ }
+ }
+ print STDERR "Could not reach zipcode page";
+ die $response2->status_line;
+ }
+ else {
+ print STDERR "Error reaching $WEBSITE\n";
+ die $response->status_line;
+ }
+
+ sub genConf {
+ my($xml) = @_;
+ my($s);
+ my($callSign);
+ my($channel);
+ my($c);
+ my($psipChannel);
+ my($freq);
+
+ $xp = XML::XPath->new(xml => $xml);
+ foreach $s ($xp->find('//Station[BroadcastType="D"]')->get_nodelist) {
+ if ($s->find('LiveStatus')->string_value eq "1") {
+ $callSign = $s->find('CallSign')->string_value;
+ $callSign =~ s/-DT//;
+ $channel = $s->find('Channel')->string_value; # Channel to tune
+ $psipChannel = $s->find('PsipChannel')->string_value;
+
+ if ($DEBUG) {
+ print STDERR $callSign, "\t", $channel, " -> ", $psipChannel, "\n";
+ }
+
+ $psipChannel =~ s/\.\d+$//;
+ $freq = $ntsc[$channel]*1000000;
+ if ($freq) {
+ print $callSign, ":", $freq, ":8VSB:0:0\n";
+ }
+ }
+ }
+ }
diff --git a/util/szap/channels-conf/atsc/us-Raleigh-Durham b/util/szap/channels-conf/atsc/us-Raleigh-Durham
new file mode 100644
index 0000000..48d14d2
--- /dev/null
+++ b/util/szap/channels-conf/atsc/us-Raleigh-Durham
@@ -0,0 +1,8 @@
+# Most of the major channels in the Raleigh Durham Area. Frequencies the NTSC center freq.
+WRAL:707000000:8VSB:33:36
+WNCN:719000000:8VSB:49:52
+WTVD:701000000:8VSB:49:52
+WRAZ:683000000:8VSB:49:52
+WUNC:743000000:8VSB:49:52
+WRDU:551000000:8VSB:33:36
+WLFL:731000000:8VSB:33:36
diff --git a/util/szap/channels.conf-dvbc-berlin b/util/szap/channels-conf/dvb-c/de-Berlin
index 7fb05a5..0f2cafd 100644
--- a/util/szap/channels.conf-dvbc-berlin
+++ b/util/szap/channels-conf/dvb-c/de-Berlin
@@ -1,7 +1,7 @@
3sat:394000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:210:220
ARD-Online-Kanal:426000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:0:1805
CNBC:394000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:510:520
-DLF-Köln:394000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:0:810
+DLF-Köln:394000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:0:810
DLR-Berlin:394000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:0:710
EinsExtra:426000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:101:102
EinsFestival:426000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:201:202
@@ -20,8 +20,8 @@ RADIOmultikulti:426000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:0:1301
Radio 3:426000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:0:701
SFB1:426000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:601:602
SWR2:426000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:0:1401
-SÜDWEST BW:410000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:801:802
-SÜDWEST RP:426000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:3101:3102
+SÃœDWEST BW:410000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:801:802
+SÃœDWEST RP:426000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:3101:3102
WDR 3:426000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:0:1501
WDR 5:426000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:0:1601
ZDF:394000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:110:120
@@ -31,7 +31,7 @@ ZDFinfokanal:394000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:610:620
ZDFtheaterkanal:394000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:0:0
JUMP:426000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:0:1001
SPUTNIK:426000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:0:1201
-Österreich 1:394000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:0:169
+Österreich 1:394000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:0:169
ATV 2:434000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:631:632
ATV 2:434000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:631:632
Adagio:442000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:0:0
@@ -153,7 +153,7 @@ HEIMATKANAL:354000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:1535:1536
HIP HOP/R&B:370000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:0:576
JUNIOR:354000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:255:256
K-TOON:354000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:0:0
-KLASSIK POPULÄR:378000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:0:624
+KLASSIK POPULÄR:378000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:0:624
KRIMI &CO:378000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:1535:1536
LOVE SONGS:370000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:0:592
NEW COUNTRY:362000000:INVERSION_OFF:6900000:FEC_NONE:QAM_64:0:384
diff --git a/util/szap/channels-conf/dvb-s/Astra-19.2E b/util/szap/channels-conf/dvb-s/Astra-19.2E
new file mode 100644
index 0000000..6e634b9
--- /dev/null
+++ b/util/szap/channels-conf/dvb-s/Astra-19.2E
@@ -0,0 +1,226 @@
+Das Erste:11837:h:0:27500:101:102:28106
+ZDF:11954:h:0:27500:110:120:28006
+3sat:11954:h:0:27500:210:220:28007
+EinsMuXx:12110:h:0:27500:301:302:28203
+EinsFestival:12110:h:0:27500:201:202:28202
+EinsExtra:12110:h:0:27500:101:102:28201
+MDR FERNSEHEN:12110:h:0:27500:401:402:28204
+ORB-Fernsehen:12110:h:0:27500:501:502:28205
+B1 Berlin:12110:h:0:27500:601:602:28206
+SWR Fernsehen:11837:h:0:27500:801:802:28113
+SR Fernsehen Suedwes:11837:h:0:27500:501:502:28110
+hessen fernsehen:11837:h:0:27500:301:302:28108
+WDR FERNSEHEN:11837:h:0:27500:601:602:28111
+Bayerisches FS:11837:h:0:27500:201:202:28107
+N3:12110:h:0:27500:2401:2402:28224
+BR-alpha:11837:h:0:27500:701:702:28112
+KiKa:11954:h:0:27500:310:320:28008
+arte:11836:h:0:27500:401:402:28109
+ZDF Theaterkanal:11954:h:0:27500:1110:1120:28016
+ZDF.info:11954:h:0:27500:610:620:28011
+ZDF.doku:11954:h:0:27500:660:670:28014
+Phoenix:11837:h:0:27500:901:902:28114
+DW-tv:10786:v:0:21997:305:306:9005
+RTL Television:12188:h:0:27500:163:104:12003
+SAT.1:12480:v:0:27500:1791:1792:46
+ProSieben:12480:v:0:27500:255:256:898
+RTL2:12188:h:0:27500:166:128:12020
+Super RTL:12188:h:0:27500:165:120:12040
+KABEL1:12480:v:0:27500:511:512:899
+VOX:12188:h:0:27500:167:136:12060
+tm3:12480:v:0:27500:767:768:897
+Bloomberg TV Germany:12552:v:0:22000:162:99:12160
+EuroNews:11954:h:0:27500:2221:2233:28015
+N24:12480:v:0:27500:2047:2048:47
+n-tv:12670:v:0:22000:162:96:12730
+DSF:12480:v:0:27500:1023:1024:900
+Eurosport:11954:h:0:27500:410:420:28009
+Via 1 - Sch ner Re:12148:h:0:27500:511:512:44
+Home Order Tel:12480:v:0:27500:1279:1280:40
+QVC GERMANY:12552:v:0:22000:165:166:12100
+TW 1:12692:h:0:22000:166:167:13013
+Canal Canarias:12441:v:0:27500:513:681:29700
+ProSieben A:12051:v:0:27500:161:84:20002
+ProSieben CH:12051:v:0:27500:289:290:20001
+Kabel 1 Austria:12051:v:0:27500:166:167:20004
+Kabel 1 Schweiz:12051:v:0:27500:162:163:20003
+CNN Int.:12168:v:0:27500:165:100:28512
+Sky News:12552:v:0:22000:305:306:3995
+Travel:12168:v:0:27500:163:92:28001
+AB SAT / XXL:12266:h:0:27500:164:96:17004
+MOTEURS:12266:h:0:27500:160:80:17000
+HOT GM:12148:h:0:27500:767:768:45
+KTO:12129:v:0:27500:170:120:8411
+LA CINQUIEME:12207:v:0:27500:160:80:8501
+LCP:12207:v:0:27500:165:100:8506
+LibertyTV.com:12611:v:0:22000:941:942:12280
+TV5 Europe:12611:v:0:22000:45:46:12240
+Motors TV:12611:v:0:22000:191:194:12300
+Wishline:12611:v:0:22000:214:216:12320
+TV 5:10786:v:0:21997:164:112:9001
+RTM - MAROC:10786:v:0:21997:162:96:9002
+ESC1 - EGYPTE:10786:v:0:21997:163:104:9003
+RAI 1:10786:v:0:21997:289:290:9004
+RTPI:10786:v:0:21997:300:301:9006
+TV7:10786:v:0:21997:166:128:9007
+ARTE:10786:v:0:21997:167:136:9009
+Colourbars:12611:v:0:22000:48:49:3982
+Alice:12611:v:0:22000:162:96:12200
+Video Italia:12611:v:0:22000:121:122:12220
+ANDALUCIA TV:11934:v:0:27500:166:104:29011
+TVC INT.:12441:v:0:27500:512:660:29701
+TV4:11992:h:0:27500:165:98:20365
+TV Niepokalanow:11876:h:0:27500:161:82:20601
+VIVA:12670:v:0:22000:309:310:12732
+VIVA ZWEI:12552:v:0:22000:171:172:12120
+MTV Central:12699:v:0:22000:3031:3032:28643
+ONYX:12692:h:1:27500:161:84:502
+VIVA polska:11603:h:1:27500:190:191:611
+DeeJay TV:11603:h:1:27500:160:161:602
+NBC:11053:h:1:27500:550:551:8008
+EWTN:10722:h:1:29900:1001:1201:4601
+MTA INTL:10722:h:1:29900:1004:1204:4604
+VOX:11053:h:1:27500:500:501:8002
+SAT.1 A:11053:h:1:27500:511:512:8003
+RTL2 AUSTRIA:11053:h:1:27500:520:521:8004
+ZDF:11053:h:1:27500:570:571:8011
+K-TV:11053:h:1:27500:580:581:8012
+RTL Television:11053:h:1:27500:160:80:8001
+ARTE:11059:v:1:6510:98:99:1
+HOT Italia:11095:h:1:27500:4194:4195:3714
+Olisat:11095:h:1:27500:33:34:3718
+VIVA-POLSKA:11128:h:1:4340:98:99:1
+DW-tv:11195:v:1:9099:101:102:5301
+Canal 24 Horas:11203:h:1:3999:4130:4131:5301
+TV5:11337:v:1:5631:512:640:1
+SAT.1 CH:11603:h:1:27500:101:102:601
+KurdSat:11603:h:1:27500:111:112:603
+ARD "Das Erste":11603:h:1:27500:172:173:606
+RTL 2 CH:11603:h:1:27500:175:176:609
+Super RTL A:11603:h:1:27500:180:181:610
+TV ROMANIA:11622:v:1:27500:227:247:10707
+MRTV:11622:v:1:27500:222:242:10702
+102.5 HIT Ch:11622:v:1:27500:224:244:10704
+TLC SAT:11622:v:1:27500:225:245:10705
+PRO-SAT:11622:v:1:27500:246:226:10706
+Channel SUN:11622:v:1:27500:229:249:10709
+Racing Channel:11622:v:1:27500:228:248:10708
+3 ABN:11622:v:1:27500:221:241:10701
+Bloom.Germany:11642:h:1:27500:1460:1420:4
+Bloomberg TV UK:11642:h:1:27500:1560:1520:4
+Sat 7:11642:h:1:27500:1660:1620:4
+EDTV 1:11746:h:1:27500:4130:4131:9501
+EDTV SPORT:11746:h:1:27500:4386:4387:9502
+EDTV BUSINESS:11746:h:1:27500:4642:4643:9503
+EDTV DRAMA:11746:h:1:27500:4898:4899:9504
+RAI1:11765:v:1:27499:160:80:3401
+RAI2:11765:v:1:27499:161:84:3402
+RAI3:11765:v:1:27499:162:88:3403
+RaiWayTEST2:11765:v:1:27499:516:654:3405
+RAIMOSAICO:11765:v:1:27499:518:8191:3407
+RAINews24:11803:v:1:27500:516:654:3301
+CAMERA DEPUTATI:11803:v:1:27500:517:655:3302
+TELEPACE:11803:v:1:27500:515:653:3304
+RAISPORTSAT:11803:v:1:27500:512:650:3305
+RAINettunoSAT2:11803:v:1:27500:513:651:3306
+RAIeducational:11803:v:1:27500:514:652:3307
+RAINettunoSAT1:11803:v:1:27500:519:657:3308
+SAT2000:11803:v:1:27500:518:656:3309
+I1:11918:v:1:27499:512:650:1
+C5:11918:v:1:27499:513:660:2
+R4:11918:v:1:27499:514:670:3
+Telesierra:12091:h:1:27500:4160:4161:8704
+C. Milagro:12091:h:1:27500:4368:4369:8711
+Italia Sat:12091:h:1:27500:4600:4601:8728
+TVE Internacional:12091:h:1:27500:4208:4209:8707
+Fiesta:12091:h:1:27500:4432:4433:8720
+Retelsat:12091:h:1:27500:4464:4465:8722
+ART EUROPE:12013:h:1:27495:164:96:450
+EGYPT SAT. CH. 2:12013:h:1:27495:166:104:470
+IQRA:12013:h:1:27495:168:112:474
+MAURITANIA TV:12110:v:1:27500:230:231:704
+ARMENIA TV:12110:v:1:27500:240:241:705
+SAILING CHANNEL:12110:v:1:27500:260:261:707
+AL JAZEERA:12110:v:1:27500:270:271:708
+Coming Soon TV:12110:v:1:27500:310:311:717
+SaluteBenessere:12110:v:1:27500:320:321:718
+AH-EDP1:12148:v:1:27499:96:97:7201
+AH-EDP2:12148:v:1:27499:112:113:7202
+Espresso:12148:v:1:27499:192:193:7203
+Alice:12148:v:1:27499:160:161:7220
+Nuvolari:12148:v:1:27499:176:177:7221
+Leonardo:12148:v:1:27499:128:129:7222
+AH-EDP3:12148:v:1:27499:36:37:7205
+OTE Promo:12187:v:1:27500:517:655:1001
+RTS SAT:12187:v:1:27500:519:657:1022
+ERT SAT:12187:v:1:27500:514:652:1102
+EXTRA:12187:v:1:27500:516:654:1106
+TRIAL:12187:v:1:27500:513:651:1108
+Minimax:11303:h:1:19540:300:301:3
+TVN1:12209:h:1:5631:4194:4195:1
+RR TEST:10978:v:1:8998:33:34:1
+TV 5 Thailand:10978:v:1:8998:1057:1058:2
+TEST-1:10978:v:1:8998:3105:3106:4
+FASHION:12244:h:1:27500:123:133:103
+AJARA TV:12244:h:1:27500:127:137:107
+SLO-TV1:12300:v:1:27495:200:201:3201
+POLONIA 1:12302:v:1:27500:205:206:3203
+SUPER 1:12302:v:1:27500:207:208:3207
+NAPOLI INT.:12302:v:1:27500:240:241:3210
+MAGIC:12302:v:1:27500:245:246:3211
+COUNTDOWN:12302:v:1:27500:235:236:3212
+TBNE:12302:v:1:27500:230:231:3213
+NAPOLI CHANNEL:12302:v:1:27500:227:228:3215
+KURDISTAN TV:12302:v:1:27500:225:226:3214
+ATLAS TV:12379:v:1:27500:3022:3032:3002
+TELE 24 SWITZERLAND:12379:v:1:27500:3023:3033:3003
+Abu Dhabi TV:12379:v:1:27500:3024:3034:3004
+RTV MONTENEGRO:12379:v:1:27500:3026:3036:3006
+JAAM-E-JAM 1:12436:h:1:27500:160:80:1
+JAAM-E-JAM 2:12436:h:1:27500:161:82:2
+SAHAR:12436:h:1:27500:162:84:3
+SAHAR 2:12436:h:1:27500:163:86:4
+IRINN:12436:h:1:27500:164:88:5
+Musicmax:11303:h:1:19540:500:501:6
+TEST:12474:h:1:27500:771:8191:10608
+EbS:12474:h:1:27500:101:201:10601
+MOU.2:12474:h:1:27500:42:43:10602
+PINK PLUS:12474:h:1:27500:308:256:10605
+LibertyTV.com:12474:h:1:27500:941:942:10603
+2M Maroc:12474:h:1:27500:601:602:10607
+ZEE TV:12474:h:1:27500:910:911:10604
+WorldNet Europe:12483:v:1:8299:4260:4220:1
+WorldNet:12483:v:1:8299:4560:4520:4
+SICILIA INTERNATIONA:12519:v:1:27499:501:502:8309
+SARDEGNA UNO:12519:v:1:27499:503:504:8310
+EuroMed:12519:v:1:27499:510:511:8312
+TGRT:12519:v:1:27499:505:506:8313
+VIDEOLINA:12519:v:1:27499:515:516:8318
+MEDIOLANUM:12538:h:1:27500:1131:1132:8987
+www.travel:12538:h:1:27500:1180:1183:8992
+MonteCarloSat:12538:h:1:27500:5126:5122:8877
+Bulgaria TV:12538:h:1:27500:4612:4613:8827
+TVN1:12571:h:1:5631:4194:4195:1
+JSTV 1:12595:v:1:27500:2000:2001:8213
+JSTV 2:12595:v:1:27500:2011:2013:8214
+MBC:12595:v:1:27500:160:80:8201
+ANN:12595:v:1:27500:161:84:8202
+BET:12595:v:1:27500:167:108:8208
+EuroNews:12595:v:1:27500:2221:2231:8211
+Sharjah Arabs:12653:h:1:27500:1160:1120:1
+Qatar Arabs:12653:h:1:27500:1260:1220:2
+Saudi 1 Arabs:12653:h:1:27500:1360:1320:3
+Kuwait Arabs:12653:h:1:27500:1460:1420:4
+Libya Arabs:12653:h:1:27500:1560:1520:5
+Sudan Arabs:12653:h:1:27500:1660:1620:6
+Oman Arabs:12653:h:1:27500:1760:1720:7
+Jordan Arabs:12653:h:1:27500:1860:1820:8
+IRAQ TV:12653:h:1:27500:1960:1920:9
+Dubai Sport:12653:h:1:27500:1060:1020:10
+Digitaly:12672:v:1:27500:220:221:4203
+Telemarket:12672:v:1:27500:350:351:4211
+eVision:12672:v:1:27500:360:361:4214
+Thai TV5:12672:v:1:27500:200:201:4201
+Studio Europa:12672:v:1:27500:230:231:4204
+Video Italia:12672:v:1:27500:340:341:4210
+GAME NETWORK:12672:v:1:27500:291:292:4213
diff --git a/util/szap/channels-conf/dvb-s/Astra-28.2E b/util/szap/channels-conf/dvb-s/Astra-28.2E
new file mode 100644
index 0000000..cbba30a
--- /dev/null
+++ b/util/szap/channels-conf/dvb-s/Astra-28.2E
@@ -0,0 +1,522 @@
+BBC 1 London:10773:h:0:22000:2304:2306:6301
+BBC 2 England:10773:h:0:22000:2320:2322:6302
+BBC NEWS 24:10773:h:0:22000:2329:2331:6304
+ETV:10773:h:0:22000:2333:2335:6306
+BBC TES 3:10773:h:0:22000:2325:2327:6315
+CBBC Channel:10773:h:0:22000:2325:2327:6317
+CBeebies:10773:h:0:22000:2333:2335:6318
+BBC 1 NI:10773:h:0:22000:2316:2318:6331
+BBC R Cymru:10773:h:0:22000:0:2340:6363
+BBC TES Test:10773:h:0:22000:0:0:6308
+BBC TES 2:10773:h:0:22000:0:0:6309
+BBC FOUR:10773:h:0:22000:0:0:6316
+BBC THREE:10773:h:0:22000:0:0:6319
+[1341]:11469:h:0:27500:521:649:4929
+[1342]:11469:h:0:27500:522:650:4930
+MMS 5:11469:h:0:27500:0:0:5044
+MMS 6:11469:h:0:27500:0:0:5045
+Sky Active:11469:h:0:27500:0:0:5107
+[140a]:11469:h:0:27500:518:646:5130
+[146b]:11469:h:0:27500:512:640:5227
+[146c]:11469:h:0:27500:513:641:5228
+[1016]:11469:h:0:27500:514:642:4118
+[10e9]:11469:h:0:27500:519:647:4329
+[1279]:11469:h:0:27500:520:648:4729
+Sky Customer Service:11469:h:0:27500:0:0:5240
+Directgov - Govt Info:11469:h:0:27500:0:0:5241
+[1596]:11469:h:0:27500:515:643:5526
+[1597]:11469:h:0:27500:516:644:5527
+[159a]:11469:h:0:27500:517:645:5530
+[15a4]:11469:h:0:27500:0:0:5540
+[05dc]:11469:h:0:27500:0:0:1500
+[1017]:11469:h:0:27500:0:0:4119
+Sky Box Office:11469:h:0:27500:0:0:4121
+Sky Box Office:11469:h:0:27500:0:0:4122
+Sky Box Office:11469:h:0:27500:0:0:4123
+Sky Box Office:11469:h:0:27500:0:0:4124
+Sky Box Office:11469:h:0:27500:0:0:4129
+POP:12285:v:0:27500:2311:2312:52500
+3751 PH:12285:v:0:27500:2311:2312:52501
+Chart Show TV:12285:v:0:27500:2309:2310:52505
+3761 PH:12285:v:0:27500:2313:2314:52512
+The Vault:12285:v:0:27500:2322:2323:52515
+Chase-it.tv:12285:v:0:27500:2318:2319:52520
+OBE:12285:v:0:27500:2307:2308:52525
+Tiny Pop:12285:v:0:27500:2316:2317:52530
+Spice Extreme:12285:v:0:27500:2320:2321:52561
+Climax3 - 1:12285:v:0:27500:2324:2325:52562
+Climax3 - 2:12285:v:0:27500:2326:2327:52563
+Climax3 - 3:12285:v:0:27500:2328:2329:52564
+Adult Channel:12285:v:0:27500:2330:2331:52565
+Playboy TV:12285:v:0:27500:2313:2314:52566
+52567:12285:v:0:27500:2330:2331:52567
+3911 PH:12285:v:0:27500:2320:2321:52581
+IDMT:12148:h:0:27500:2307:2308:52200
+ Broadband UK:12148:h:0:27500:2305:2306:52210
+52220:12148:h:0:27500:2309:2310:52220
+Trouble Reload:12148:h:0:27500:2311:2312:52230
+Challenge+1:12148:h:0:27500:2314:2315:52232
+Ftn:12148:h:0:27500:0:0:52231
+[15ff]:10920:h:0:22000:516:644:5631
+D'covery H&L+:10920:h:0:22000:2305:2306:50003
+Eurosportnews:10920:h:0:22000:2307:2308:5009
+Hallmark:10920:h:0:22000:2310:2311:5010
+[13a2]:10920:h:0:22000:512:640:5026
+[13a4]:10920:h:0:22000:514:642:5028
+[13a5]:10920:h:0:22000:515:643:5029
+[05e6]:10920:h:0:22000:0:0:1510
+Sky Box Office:10920:h:0:22000:0:0:4122
+Sky Box Office:10920:h:0:22000:0:0:4123
+Sky Box Office:10920:h:0:22000:0:0:4124
+Sky Box Office:10920:h:0:22000:0:0:4129
+SportxxxBabes:10920:h:0:22000:0:0:4137
+[1393]:10920:h:0:22000:0:0:5011
+[15fb]:10920:h:0:22000:0:0:5627
+SAB TV:12226:h:0:27500:2310:2311:52401
+Performance:12226:h:0:27500:2312:2313:52402
+channel U:12226:h:0:27500:2314:2315:52403
+Gems.tv:12226:h:0:27500:2317:2318:52404
+Soundtrack ch.:12226:h:0:27500:2307:2308:52405
+HorrorChannel:12226:h:0:27500:2342:2343:52406
+Chat Box:12226:h:0:27500:2319:2320:52407
+Golf Channel:12226:h:0:27500:2321:2322:52408
+Ex&Mart TV:12226:h:0:27500:2323:2324:52409
+TVW Select:12226:h:0:27500:2305:2306:52412
+Game In TV:12226:h:0:27500:2335:2336:52414
+Majestic TV:12226:h:0:27500:2340:2341:52415
+18PlusXXX:12226:h:0:27500:0:0:52410
+XXXHousewive:12226:h:0:27500:0:0:52411
+52421:12226:h:0:27500:0:0:52421
+[10ea]:11603:v:0:27500:514:662:4330
+[114e]:11603:v:0:27500:515:663:4430
+[11b2]:11603:v:0:27500:516:664:4530
+[1215]:11603:v:0:27500:521:669:4629
+[1216]:11603:v:0:27500:517:665:4630
+[127a]:11603:v:0:27500:518:666:4730
+[12de]:11603:v:0:27500:519:667:4830
+[13a6]:11603:v:0:27500:512:660:5030
+[1409]:11603:v:0:27500:522:670:5129
+[146a]:11603:v:0:27500:520:668:5226
+[1599]:11603:v:0:27500:523:671:5529
+[15fa]:11603:v:0:27500:513:661:5626
+Sky Box Office:11603:v:0:27500:0:0:4124
+Sky Box Office:11603:v:0:27500:0:0:4129
+MMS 4:11603:v:0:27500:0:0:5043
+MMS 8:11603:v:0:27500:0:0:5047
+[1603]:11603:v:0:27500:0:0:5635
+[05e9]:11603:v:0:27500:0:0:1513
+Sky Box Office:11603:v:0:27500:0:0:4121
+Sky Box Office:11603:v:0:27500:0:0:4122
+Sky Box Office:11603:v:0:27500:0:0:4123
+1391:10935:v:0:22000:2321:2320:5421
+1392:10935:v:0:22000:2305:2320:5422
+1393:10935:v:0:22000:2306:2320:5423
+1394:10935:v:0:22000:2307:2320:5424
+1395:10935:v:0:22000:2308:2320:5425
+1396:10935:v:0:22000:2309:2320:5426
+1397:10935:v:0:22000:2310:2320:5427
+1398:10935:v:0:22000:2311:2320:5428
+1399:10935:v:0:22000:2312:2320:5429
+1471:10935:v:0:22000:2305:2313:5471
+1472:10935:v:0:22000:2306:2314:5472
+1473:10935:v:0:22000:2307:2315:5473
+1474:10935:v:0:22000:2308:2316:5474
+1475:10935:v:0:22000:2309:2317:5475
+1476:10935:v:0:22000:2310:2318:5476
+1477:10935:v:0:22000:2311:2319:5477
+1478:10935:v:0:22000:2312:2320:5478
+[05ea]:10935:v:0:22000:0:0:1514
+1326:10935:v:0:22000:0:0:5307
+1334:10935:v:0:22000:0:0:5310
+SPl:10935:v:0:22000:0:0:5404
+rc:10935:v:0:22000:0:0:5407
+nata:10935:v:0:22000:0:0:5466
+natd:10935:v:0:22000:0:0:5467
+ISM Sky News v6:11507:h:0:27500:2305:2306:9318
+ISM Movies v6:11507:h:0:27500:0:0:9319
+EIA2 Test:11507:h:0:27500:2305:2306:9322
+UK Online test:11507:h:0:27500:0:0:9323
+1784:11507:h:0:27500:2305:2306:9324
+1786:11507:h:0:27500:0:0:9325
+SCS:11507:h:0:27500:0:0:9326
+STT:11507:h:0:27500:2305:2306:9327
+1787:11507:h:0:27500:2305:2306:9329
+5ADT:11507:h:0:27500:2305:2306:9331
+EIA2 Test 6:11507:h:0:27500:2305:2306:9332
+8N2:11507:h:0:27500:0:0:9335
+EIA2 Test 5:11507:h:0:27500:2305:2306:9336
+[2479]:11507:h:0:27500:0:0:9337
+[247a]:11507:h:0:27500:0:0:9338
+7909:11507:h:0:27500:2305:2306:3909
+EIA2 Test 3:11507:h:0:27500:2305:2306:4909
+EIA2 Test 4:11507:h:0:27500:2305:2306:4912
+ISM Test1 v5:11507:h:0:27500:2305:2306:5902
+PlayJam:11507:h:0:27500:0:2445:9306
+PlayMonteCarlo & Roulette:11507:h:0:27500:0:2457:9308
+PlayJam test:11507:h:0:27500:0:2445:9310
+ISM Sky One v6:11507:h:0:27500:2305:2306:9316
+ISM Sports 1 v6:11507:h:0:27500:2305:2306:9317
+[05f3]:11507:h:0:27500:0:0:1523
+Playboy / Adult:11507:h:0:27500:0:0:4128
+Playboy TV:11507:h:0:27500:0:0:4131
+Private Girls:11507:h:0:27500:0:0:4133
+XXX TV:11507:h:0:27500:0:0:4134
+Amateur Babes:11507:h:0:27500:0:0:4135
+[1207]:11507:h:0:27500:0:0:4615
+[1209]:11507:h:0:27500:0:0:4617
+[232d]:11507:h:0:27500:0:0:9005
+YO-YO" test:11507:h:0:27500:0:0:9309
+UCB TV:12070:h:0:27500:2313:2314:52001
+ATN:12070:h:0:27500:2310:2311:52002
+Overload:12070:h:0:27500:2306:2307:52003
+Golf Pro-Shop:12070:h:0:27500:2315:2316:52004
+You TV:12070:h:0:27500:2336:2337:52005
+Escape:12070:h:0:27500:2317:2318:52006
+52007:12070:h:0:27500:2324:2325:52007
+Get Lucky TV:12070:h:0:27500:2319:2320:52008
+[fffe]:12070:h:0:27500:0:0:65534
+Wonderful:12070:h:0:27500:2308:2309:52009
+Musicians Chnl:12070:h:0:27500:2326:2327:52010
+Rangers TV:12070:h:0:27500:2328:2329:52011
+Celtic TV:12070:h:0:27500:2330:2331:52012
+Advert Channel:12070:h:0:27500:2332:2333:52013
+LONDON TV:12070:h:0:27500:2334:2335:52014
+Pure Dance:12070:h:0:27500:0:2312:52025
+Club Asia:12070:h:0:27500:0:2305:52026
+Setanta Sports:12070:h:0:27500:0:0:52021
+Setanta Sports:12070:h:0:27500:0:0:52022
+Setanta PPV2:12070:h:0:27500:0:0:52032
+FilmFour:11565:v:0:27500:2320:2321:50500
+FilmFour +1:11565:v:0:27500:2323:2324:50505
+Film4 Weekly:11565:v:0:27500:2326:2327:50510
+E4:11565:v:0:27500:2329:2330:50515
+Game 6:11565:v:0:27500:0:2336:50540
+Game 7:11565:v:0:27500:0:2342:50541
+Game 8:11565:v:0:27500:0:2344:50542
+FF TEST1:11565:v:0:27500:2320:2321:50543
+PCNE Chinese:11565:v:0:27500:6144:6145:50550
+Bloomberg:11565:v:0:27500:2316:2317:50555
+[05f5]:11565:v:0:27500:0:0:1525
+SCRD4:10861:h:0:22000:0:0:8009
+SBZP:10861:h:0:22000:0:0:8059
+LMIN:10861:h:0:22000:0:0:8108
+TRLN:10861:h:0:22000:0:0:8116
+SCD2:10861:h:0:22000:0:0:8126
+DOMI:10861:h:0:22000:0:0:8145
+WINC:10861:h:0:22000:2325:2326:8164
+The Betting Zone:10861:h:0:22000:0:0:8186
+TLM(Browser):10861:h:0:22000:2342:2344:8888
+Disney Chnl:10861:h:0:22000:2308:2309:9001
+Disney Chnl +1:10861:h:0:22000:2313:2314:9002
+Toon Disney:10861:h:0:22000:2317:2318:9003
+Playhse Disney:10861:h:0:22000:2320:2321:9004
+The Betting Zone:10861:h:0:22000:2336:2338:50008
+[05f6]:10861:h:0:22000:0:0:1526
+ALTU:10861:h:0:22000:0:0:8087
+DCT2 (t51):10861:h:0:22000:0:0:8999
+DCT (t51):10861:h:0:22000:0:0:9000
+Sky Travel +1:10876:v:0:22000:2310:2318:3905
+Sky Travel Active Dummy:10876:v:0:22000:0:0:4911
+Sky Travel:10876:v:0:22000:2308:2309:5005
+5006:10876:v:0:22000:2308:2309:5006
+Sky Trvl Extra:10876:v:0:22000:2305:2306:9312
+[0602]:10876:v:0:22000:0:0:1538
+Tel Sell:12460:h:0:27500:2319:2320:50832
+mSync:12460:h:0:27500:0:0:50837
+NASN:12460:h:0:27500:2322:2323:50839
+Classics TV:12460:h:0:27500:2324:2325:50840
+Information TV:12460:h:0:27500:2326:2327:50841
+Wrestling Chnl:12460:h:0:27500:2329:2330:50842
+TWC Reloaded:12460:h:0:27500:2331:2332:50843
+FRIENDLY TV:12460:h:0:27500:2333:2334:50848
+McColls:12460:h:0:27500:0:2335:50851
+Moto:12460:h:0:27500:0:2336:50852
+Teds FM:12460:h:0:27500:0:2337:50853
+Topps FM:12460:h:0:27500:0:2338:50855
+Kiss:12460:h:0:27500:0:2339:50856
+Smash Hits!:12460:h:0:27500:0:2340:50857
+Kerrang:12460:h:0:27500:0:2341:50858
+The Hits:12460:h:0:27500:0:2342:50859
+Magic:12460:h:0:27500:0:2343:50860
+Q:12460:h:0:27500:0:2344:50861
+MOJO:12460:h:0:27500:0:2345:50862
+Heat:12460:h:0:27500:0:2346:50863
+GlobeCast:12460:h:0:27500:0:2347:50864
+PTV Prime:12460:h:0:27500:2315:2316:50865
+Fashion TV:12460:h:0:27500:0:0:50850
+Best Direct:12246:v:0:27500:2314:2315:53500
+BestDirect+:12246:v:0:27500:2316:2317:53505
+Dating Channel:12246:v:0:27500:2320:2321:53515
+Wine TV:12246:v:0:27500:2323:2324:53520
+Flaunt:12246:v:0:27500:2326:2327:53525
+Scuzz:12246:v:0:27500:2328:2329:53530
+The Amp:12246:v:0:27500:2330:2331:53535
+Radio Caroline:12246:v:0:27500:0:2332:53550
+Amrit Bani:12246:v:0:27500:0:2333:53551
+Desi Radio:12246:v:0:27500:0:2334:53552
+CalvaryRadio:12246:v:0:27500:0:2335:53553
+Apple FM:12246:v:0:27500:0:2336:53554
+TWR:12246:v:0:27500:0:2337:53555
+Spectrum 1:12246:v:0:27500:0:2338:53556
+RTE Europe:12246:v:0:27500:0:2339:53557
+WRN Europe:12246:v:0:27500:0:2340:53558
+Raaj Radio:12246:v:0:27500:0:2341:53559
+On Air:12246:v:0:27500:0:2342:53560
+53561:12246:v:0:27500:0:2306:53561
+PulseUnsignd:12246:v:0:27500:0:2343:53564
+53581:12246:v:0:27500:0:0:53581
+RTE One:10743:h:0:22000:2306:2307:9601
+RTE TWO:10743:h:0:22000:2309:2310:9602
+TG4:10743:h:0:22000:2312:2313:9603
+TV3:10743:h:0:22000:2315:2316:9605
+DW-TV:10743:h:0:22000:2318:2319:9606
+TVEi:10743:h:0:22000:2320:2321:9607
+RTE Radio 1:10743:h:0:22000:0:2322:9611
+RTE 2FM:10743:h:0:22000:0:2323:9612
+RTE R na G:10743:h:0:22000:0:2324:9613
+RTE Lyric fm:10743:h:0:22000:0:2325:9614
+BBC R5 Live:10802:h:0:22000:0:2338:6401
+ETV2:10802:h:0:22000:2304:2306:6407
+BBC 1 Wales:10802:h:0:22000:2304:2306:6411
+BBC 2W:10802:h:0:22000:2321:2323:6412
+BBC 1 Scotland:10802:h:0:22000:2311:2313:6421
+BBC 2 Scotland:10802:h:0:22000:2325:2327:6422
+BBC 2 NI:10802:h:0:22000:2329:2331:6432
+BBC R1:10802:h:0:22000:0:2333:6451
+BBC R2:10802:h:0:22000:0:2334:6452
+BBC R3:10802:h:0:22000:0:2335:6453
+BBC R4 FM:10802:h:0:22000:0:2336:6454
+BBC R4 LW:10802:h:0:22000:0:2337:6455
+BBC R Scot.:10802:h:0:22000:0:2339:6457
+BBC R Wales:10802:h:0:22000:0:2340:6458
+BBC R Ulster:10802:h:0:22000:0:2341:6459
+BBC Asian Nt.:10802:h:0:22000:0:2342:6460
+BBC World Sv.:10802:h:0:22000:0:2343:6461
+ETV3:10802:h:0:22000:0:2333:6462
+BBC 5L SportX:10802:h:0:22000:0:2344:6464
+BBC WS Extra:10802:h:0:22000:0:2345:6465
+1Xtra BBC:10802:h:0:22000:0:2347:6466
+BBC 6 Music:10802:h:0:22000:0:2346:6467
+BBC 7:10802:h:0:22000:0:2348:6468
+BBC R n Gael:10802:h:0:22000:0:2349:6469
+T4 STRM-0:10847:v:0:22000:2305:2306:6900
+T4 STRM-1:10847:v:0:22000:2320:2321:6901
+BBC PARL'MNT:10847:v:0:22000:2327:2328:6902
+BBC 1 East (W):10847:v:0:22000:2338:2339:6903
+BBC 1 CI:10847:v:0:22000:2343:2344:6904
+T4 DEV-0:10847:v:0:22000:2305:2306:6990
+T4 DEV-1:10847:v:0:22000:2320:2321:6991
+T4 DEV-2:10847:v:0:22000:2327:2328:6992
+T4 DEV-3:10847:v:0:22000:2338:2339:6993
+T4 DEV-4:10847:v:0:22000:2343:2344:6994
+BBC 1 W Mids:10788:v:0:22000:2305:2306:10301
+BBC 1 N West:10788:v:0:22000:2318:2319:10302
+BBC 1 Yrks&Lin:10788:v:0:22000:2321:2322:10303
+BBC 1 Yorks:10788:v:0:22000:2324:2325:10304
+BBC 1 E Mids:10788:v:0:22000:2327:2328:10305
+BBC 1 East (E):10788:v:0:22000:2330:2331:10306
+ETV5:10788:v:0:22000:2305:2306:10321
+BBC 1 West:10817:v:0:22000:2305:2306:10351
+BBC 1 S East:10817:v:0:22000:2317:2318:10352
+BBC 1 South:10817:v:0:22000:2320:2321:10353
+BBC 1 S West:10817:v:0:22000:2323:2324:10354
+BBC 1 NE & C:10817:v:0:22000:2326:2327:10355
+BBC 1 Oxford:10817:v:0:22000:2329:2330:10356
+ETV6:10817:v:0:22000:2305:2306:10371
+POP:11426:v:0:27500:2311:2312:52500
+3751 PH:11426:v:0:27500:2311:2312:52501
+Chart Show TV:11426:v:0:27500:2309:2310:52505
+3761 PH:11426:v:0:27500:2313:2314:52512
+The Vault:11426:v:0:27500:2322:2323:52515
+Chase-it.tv:11426:v:0:27500:2318:2319:52520
+OBE:11426:v:0:27500:2307:2308:52525
+Tiny Pop:11426:v:0:27500:2316:2317:52530
+Spice Extreme:11426:v:0:27500:2320:2321:52561
+Climax3 - 1:11426:v:0:27500:2324:2325:52562
+Climax3 - 2:11426:v:0:27500:2326:2327:52563
+Climax3 - 3:11426:v:0:27500:2328:2329:52564
+Adult Channel:11426:v:0:27500:2330:2331:52565
+Playboy TV:11426:v:0:27500:2313:2314:52566
+52567:11426:v:0:27500:2330:2331:52567
+3911 PH:11426:v:0:27500:2320:2321:52581
+Simply Home:11488:v:0:27500:2364:2365:50102
+DTPCad4:11488:v:0:27500:2315:2316:50103
+Shop Vector:11488:v:0:27500:2322:2323:50105
+Simply Ideas:11488:v:0:27500:2324:2325:50115
+Simply Shop.:11488:v:0:27500:2353:2354:50120
+JobsTV:11488:v:0:27500:2366:2367:50125
+GayDateTV:11488:v:0:27500:2361:2362:50130
+Motors TV:11488:v:0:27500:3329:3330:50135
+nation217:11488:v:0:27500:2329:2330:50170
+52536:11488:v:0:27500:2353:2354:50176
+3786 PH:11488:v:0:27500:2342:2343:50177
+Avago Roulette:11488:v:0:27500:0:0:50180
+50181:11488:v:0:27500:2353:2354:50181
+XplicitXXX:11488:v:0:27500:0:0:50175
+3901 PH:11584:h:0:27500:2348:2349:50101
+50621:11584:h:0:27500:0:0:50621
+Gay TV:11584:h:0:27500:2333:2334:50671
+Red Hot Films:11584:h:0:27500:2338:2339:50672
+Red Hot Euro:11584:h:0:27500:2336:2337:50673
+Television X 2:11584:h:0:27500:2326:2327:50674
+Television X 3:11584:h:0:27500:2314:2315:50675
+Television X:11584:h:0:27500:2306:2307:50676
+RedHot All Girl:11584:h:0:27500:2340:2341:50677
+ExpressShop.:11584:h:0:27500:2331:2332:50678
+Real Estate TV:11584:h:0:27500:2329:2330:50679
+Red Hot Only 18:11584:h:0:27500:2311:2312:50680
+Red Hot Wives:11584:h:0:27500:2344:2345:50681
+RH 40+ Wives:11584:h:0:27500:2346:2347:50682
+redhot amateur:11584:h:0:27500:2342:2343:50683
+redhot uktalent:11584:h:0:27500:0:0:50100
+50686:11584:h:0:27500:0:0:50686
+AvaTest:11546:h:0:27500:2319:2320:50446
+SFI:11546:h:0:27500:0:0:50455
+Shop on TV:11546:h:0:27500:2315:2316:50400
+Thane Direct:11546:h:0:27500:2317:2318:50405
+AVAGO:11546:h:0:27500:2319:2320:50410
+SouthForYou:11546:h:0:27500:2313:2314:50420
+Stop + Shop:11546:h:0:27500:2324:2325:50430
+VHR:11546:h:0:27500:2326:2327:50435
+ditg:11546:h:0:27500:0:0:50439
+cso:11546:h:0:27500:2331:2332:50440
+Channel 425:11546:h:0:27500:2355:2357:50445
+Thomas Cook:11526:v:0:27500:2312:2313:50300
+B4:11526:v:0:27500:2361:2362:50305
+Al Jazeera:11526:v:0:27500:2310:2311:50325
+NHS 1:11526:v:0:27500:2314:2315:50370
+NHS 2:11526:v:0:27500:0:2329:50371
+NHS 2:11526:v:0:27500:0:2337:50372
+NHS Direct Interactive:11526:v:0:27500:0:0:50373
+NHS 4:11526:v:0:27500:2345:2347:50374
+SAB TV:11388:h:0:27500:2310:2311:52401
+Performance:11388:h:0:27500:2312:2313:52402
+channel U:11388:h:0:27500:2314:2315:52403
+Gems.tv:11388:h:0:27500:2317:2318:52404
+Soundtrack ch.:11388:h:0:27500:2307:2308:52405
+HorrorChannel:11388:h:0:27500:2342:2343:52406
+Chat Box:11388:h:0:27500:2319:2320:52407
+Golf Channel:11388:h:0:27500:2321:2322:52408
+Ex&Mart TV:11388:h:0:27500:2323:2324:52409
+TVW Select:11388:h:0:27500:2305:2306:52412
+Game In TV:11388:h:0:27500:2335:2336:52414
+Majestic TV:11388:h:0:27500:2340:2341:52415
+52421:11388:h:0:27500:0:0:52421
+18PlusXXX:11388:h:0:27500:0:0:52410
+XXXHousewive:11388:h:0:27500:0:0:52411
+Open Access 2:11642:v:0:27500:2312:2318:50152
+Unlimited TV:11642:v:0:27500:2319:2320:50153
+Racing UK:11642:v:0:27500:2306:2313:50951
+Vectone Bangla:11642:v:0:27500:2325:2326:50952
+VECTONE Urdu:11642:v:0:27500:2328:2329:50953
+VECTONE Tamil:11642:v:0:27500:2331:2332:50954
+VECTONE Bolly:11642:v:0:27500:2334:2335:50955
+Open Access:11642:v:0:27500:2356:2357:50956
+Classic FM TV:11642:v:0:27500:2358:2359:50957
+50959:11642:v:0:27500:2314:2315:50959
+Extreme Sports:11680:v:0:27500:2307:2308:51101
+EuroNews:11680:v:0:27500:2310:2311:51102
+GOD Channel:11680:v:0:27500:2319:2320:51103
+GOD REVIVAL:11680:v:0:27500:2321:2322:51104
+CrossRhythm:11680:v:0:27500:0:2306:51106
+Life TV:11680:v:0:27500:2323:2324:51108
+TBN Europe:11680:v:0:27500:2325:2326:51109
+HollywoodTV:11680:v:0:27500:2327:2328:51112
+GOD 2:11680:v:0:27500:2321:2322:51115
+revelation:11680:v:0:27500:2339:2340:51116
+Live XXX TV:11680:v:0:27500:0:0:51113
+51117:11680:v:0:27500:0:0:51117
+Alphameric1:11680:v:0:27500:0:0:51121
+Alphameric2:11680:v:0:27500:0:0:51122
+CFC TV:11680:v:0:27500:0:0:51105
+mta-muslim tv:11661:h:0:27500:2311:2312:51001
+BEN:11661:h:0:27500:2327:2328:51008
+Abu Dhabi TV:11661:h:0:27500:2329:2330:51009
+TV Travelshop 2:11661:h:0:27500:2370:2371:51010
+CCTV-9:11661:h:0:27500:2333:2334:51011
+Islam Channel:11661:h:0:27500:2337:2338:51014
+51020:11661:h:0:27500:0:2339:51020
+PlayMonteCarlo & Roulette:11661:h:0:27500:0:2319:51022
+2gbstp:11661:h:0:27500:0:0:51013
+Tel Sell:11623:h:0:27500:2319:2320:50832
+mSync:11623:h:0:27500:0:0:50837
+NASN:11623:h:0:27500:2322:2323:50839
+Classics TV:11623:h:0:27500:2324:2325:50840
+Information TV:11623:h:0:27500:2326:2327:50841
+Wrestling Chnl:11623:h:0:27500:2329:2330:50842
+TWC Reloaded:11623:h:0:27500:2331:2332:50843
+FRIENDLY TV:11623:h:0:27500:2333:2334:50848
+McColls:11623:h:0:27500:0:2335:50851
+Moto:11623:h:0:27500:0:2336:50852
+Teds FM:11623:h:0:27500:0:2337:50853
+Topps FM:11623:h:0:27500:0:2338:50855
+Kiss:11623:h:0:27500:0:2339:50856
+Smash Hits!:11623:h:0:27500:0:2340:50857
+Kerrang:11623:h:0:27500:0:2341:50858
+The Hits:11623:h:0:27500:0:2342:50859
+Magic:11623:h:0:27500:0:2343:50860
+Q:11623:h:0:27500:0:2344:50861
+MOJO:11623:h:0:27500:0:2345:50862
+Heat:11623:h:0:27500:0:2346:50863
+GlobeCast:11623:h:0:27500:0:2347:50864
+PTV Prime:11623:h:0:27500:2315:2316:50865
+Fashion TV:11623:h:0:27500:0:0:50850
+ITV1 London:10832:h:0:22000:2305:2307:10000
+ITV News:10832:h:0:22000:2329:2336:10009
+ITV1 Central:10832:h:0:22000:2327:2328:10010
+ITV1 HTV Wales:10832:h:0:22000:2334:2335:10020
+ITV1 HTV West:10832:h:0:22000:2341:2342:10030
+ITV1 W Country:10832:h:0:22000:2348:2349:10040
+G49:10832:h:0:22000:2334:2335:10099
+ITV1 Anglia:10891:h:0:22000:2305:2306:10100
+ITV1 Border:10891:h:0:22000:2327:2328:10110
+ITV1 BorderSco:10891:h:0:22000:2334:2335:10120
+ITV1 Meridian S:10891:h:0:22000:2348:2349:10140
+ITV1 Meridian E:10891:h:0:22000:2341:2342:10141
+ITV1 Tyne Tees:10891:h:0:22000:2355:2356:10150
+ITV1 Yorkshire:10891:h:0:22000:2362:2363:10160
+G53:10891:h:0:22000:2334:2335:10199
+ITV Channel Is:10906:v:0:22000:2326:2328:10200
+Grampian TV:10906:v:0:22000:2333:2334:10210
+Scottish TV:10906:v:0:22000:2340:2341:10220
+UTV:10906:v:0:22000:2347:2348:10230
+ITV2:10906:v:0:22000:2350:2351:10240
+ITV1 Granada:10906:v:0:22000:2305:2306:10250
+ITV3:10906:v:0:22000:2363:2364:10260
+G54:10906:v:0:22000:2357:2358:10299
+6300:10758:v:0:22000:2305:2306:10119
+LONDON TV:11222:h:0:27500:2334:2335:52014
+Setanta Sports:11222:h:0:27500:0:0:52021
+Setanta Sports:11222:h:0:27500:0:0:52022
+Pure Dance:11222:h:0:27500:0:2312:52025
+Club Asia:11222:h:0:27500:0:2305:52026
+Setanta PPV2:11222:h:0:27500:0:0:52032
+[fffe]:11222:h:0:27500:0:0:65534
+UCB TV:11222:h:0:27500:2313:2314:52001
+ATN:11222:h:0:27500:2310:2311:52002
+Overload:11222:h:0:27500:2306:2307:52003
+Golf Pro-Shop:11222:h:0:27500:2315:2316:52004
+You TV:11222:h:0:27500:2336:2337:52005
+Escape:11222:h:0:27500:2317:2318:52006
+52007:11222:h:0:27500:2324:2325:52007
+Get Lucky TV:11222:h:0:27500:2319:2320:52008
+Wonderful:11222:h:0:27500:2308:2309:52009
+Musicians Chnl:11222:h:0:27500:2326:2327:52010
+Rangers TV:11222:h:0:27500:2328:2329:52011
+Celtic TV:11222:h:0:27500:2330:2331:52012
+Advert Channel:11222:h:0:27500:2332:2333:52013
+E4+1:10729:v:0:22000:2306:2307:8300
+3310:10729:v:0:22000:2317:2318:8310
+3315:10729:v:0:22000:0:0:8315
+3320:10729:v:0:22000:0:0:8320
+[fffe]:11264:h:0:22000:0:0:65534
+52101:11264:h:0:22000:2305:2306:52101
+52102:11264:h:0:22000:2307:2308:52102
+52103:11264:h:0:22000:2309:2310:52103
+52104:11264:h:0:22000:2311:2312:52104
+IDMT:11307:h:0:27500:2307:2308:52200
+ Broadband UK:11307:h:0:27500:2305:2306:52210
+52220:11307:h:0:27500:2309:2310:52220
+Trouble Reload:11307:h:0:27500:2311:2312:52230
+Challenge+1:11307:h:0:27500:2314:2315:52232
+Ftn:11307:h:0:27500:0:0:52231
diff --git a/util/szap/channels-conf/dvb-s/BrasilSat-B3-84.0W b/util/szap/channels-conf/dvb-s/BrasilSat-B3-84.0W
new file mode 100644
index 0000000..b3632bb
--- /dev/null
+++ b/util/szap/channels-conf/dvb-s/BrasilSat-B3-84.0W
@@ -0,0 +1,39 @@
+NoName:3675:v:0:4285:1110:1211:1
+Rede 21:3688:v:0:2308:308:256:1
+SNG#3 TERRA VIVA:3692:v:0:3200:308:256:1
+TV PONTA PORA :3697:v:0:3333:1110:1211:1
+Servico 1:3710:v:0:12960:36:37:1
+TV Assembleia:3710:v:0:12960:39:40:2
+Servico 3:3710:v:0:12960:42:43:3
+TV Cultura:3710:v:0:12960:33:34:4
+TV Ra-Tim-Bum:3710:v:0:12960:45:46:5
+Tv Morena:3738:v:0:4710:4096:4097:1
+[6d65]:3754:v:0:5000:0:0:28005
+[6dc9]:3754:v:0:5000:0:0:28105
+[0faa]:3754:v:0:5000:0:0:4010
+[0fb4]:3754:v:0:5000:0:0:4020
+[6d61]:3754:v:0:5000:0:0:28001
+[0f9f]:3754:v:0:5000:0:0:3999
+[0fbe]:3754:v:0:5000:0:0:4030
+[000b]:3754:v:0:5000:0:0:11
+[5014]:3754:v:0:5000:0:0:20500
+STV:3768:v:0:8000:160:80:1
+CANAL 2:3768:v:0:8000:161:84:2
+TELECONF:3768:v:0:8000:162:88:3
+REDETV RO:3805:v:0:3255:4194:4195:1
+Videocom:3858:v:0:4289:1110:1211:1
+TVSULBAHIA:3911:v:0:3255:33:36:2
+TV ARATU BA:3927:v:0:3255:33:36:2
+TV BAND BA:3931:h:0:3255:337:340:21
+TV BAND BA:3932:v:0:3255:337:340:21
+REDE SUPER:3940:v:0:3255:337:340:1
+RBI:3949:v:0:4340:337:340:33
+TV TRIBUNA:3955:v:0:4340:337:340:1
+5 :3970:v:0:4445:1160:1120:1
+TV EDUCATIVA MS:4013:v:0:3255:337:340:33
+TV Justica:4060:v:0:3330:289:290:1
+CNT GERACAO 1:4075:v:0:4444:289:290:20101
+ASS-LEG-SC:4132:v:0:2532:337:340:33
+EMBRATEL 21:4152:v:0:2300:257:514:1
+SEXY TV:4155:v:0:2170:257:258:1
+BASA:4169:v:0:8140:4141:4140:4
diff --git a/util/szap/channels-conf/dvb-t/au-Adelaide b/util/szap/channels-conf/dvb-t/au-Adelaide
new file mode 100644
index 0000000..fc97071
--- /dev/null
+++ b/util/szap/channels-conf/dvb-t/au-Adelaide
@@ -0,0 +1,28 @@
+ABC HDTV:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:2307:0:592
+ABC TV Adelaide:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:593
+ABC TV 2:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:594
+ABC TV 3:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:595
+ABC TV 4:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:596
+ABC DiG Radio:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:0:2311:598
+7 Digital:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:1281:1282:1360
+7 Digital 1:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:1281:1282:1361
+7 Digital 2:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:1281:1282:1362
+7 Digital 3:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:1281:1282:1363
+7 HD Digital:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:1345:1346:1364
+NINE Digital:191625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1105
+NINE HD:191625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:513:0:1112
+TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1617
+TEN Digital 1:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1618
+TEN Digital 2:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1619
+TEN Digital 3:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1620
+TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1621
+TEN Digital 4:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1622
+TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1623
+TEN HD:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:514:0:1624
+Ten Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1625
+SBS HD:564500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:102:103:832
+SBS DIGITAL 1:564500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:81:833
+SBS DIGITAL 2:564500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:162:83:834
+SBS EPG:564500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:163:85:835
+SBS RADIO 1:564500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:201:846
+SBS RADIO 2:564500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:202:847
diff --git a/util/szap/channels-conf/dvb-t/au-Brisbane b/util/szap/channels-conf/dvb-t/au-Brisbane
new file mode 100644
index 0000000..5eb0853
--- /dev/null
+++ b/util/szap/channels-conf/dvb-t/au-Brisbane
@@ -0,0 +1,29 @@
+ABC HDTV:226500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:2307:0:576
+ABC TV Brisbane:226500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:577
+ABC TV 2:226500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:578
+ABC TV 3:226500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:579
+ABC TV 4:226500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:580
+ABC DiG Radio:226500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:0:2310:582
+7 Digital:177500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:1025:1026:1344
+7 Digital 1:177500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:1025:1026:1345
+7 Digital 2:177500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:1025:1026:1346
+7 Digital 3:177500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:1025:1026:1347
+7 HD Digital:177500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:1089:1090:1348
+Nine Digital:191625000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:513:660:1025
+Nine Guide:191625000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:517:660:1030
+Nine High Definition:191625000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:0:1152
+TEN Digital:219500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1601
+TEN Digital 1:219500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1602
+TEN Digital 2:219500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1603
+TEN Digital 3:219500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1604
+TEN Digital:219500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1605
+TEN Digital 4:219500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1606
+TEN Digital:219500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1607
+TEN HD:219500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:514:0:1608
+TEN Digital:219500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1609
+SBS HD:585625000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:102:103:816
+SBS DIGITAL 1:585625000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:81:817
+SBS DIGITAL 2:585625000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:162:83:818
+SBS EPG:585625000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:163:85:819
+SBS RADIO 1:585625000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:201:830
+SBS RADIO 2:585625000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:202:831
diff --git a/util/szap/channels-conf/dvb-t/au-Hobart b/util/szap/channels-conf/dvb-t/au-Hobart
new file mode 100644
index 0000000..80edcb0
--- /dev/null
+++ b/util/szap/channels-conf/dvb-t/au-Hobart
@@ -0,0 +1,18 @@
+ABC HDTV:191625000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:2314:0:624
+ABC TV Hobart:191625000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:625
+ABC2:191625000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:2309:2310:626
+ABC TV:191625000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:627
+ABC DiG Radio:191625000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:0:2317:630
+ABC DiG Jazz:191625000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:0:2318:631
+SBS HD:205500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:102:103:848
+SBS DIGITAL 1:205500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:81:849
+SBS DIGITAL 2:205500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:162:83:850
+SBS EPG:205500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:163:85:851
+SBS RADIO 1:205500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:201:862
+SBS RADIO 2:205500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:202:863
+SCT Hobart:212500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:625:626:2306
+SCT - HD:212500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:3611:0:2338
+WIN TELEVISION:184500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:116:117:1
+WIN HD:184500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:129:130:10
+TDT - SD:219500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:657:658:2071
+TDT - HD:219500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:3511:0:2103
diff --git a/util/szap/channels-conf/dvb-t/au-Melbourne b/util/szap/channels-conf/dvb-t/au-Melbourne
new file mode 100644
index 0000000..0b0542f
--- /dev/null
+++ b/util/szap/channels-conf/dvb-t/au-Melbourne
@@ -0,0 +1,17 @@
+ABC HDTV:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:2307:2308:560
+ABC TV Melbourne:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:561
+ABC DiG Radio:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:0:2310:566
+TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1585
+TEN HD:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:514:0:1592
+Nine Digital:191625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:519:720:1072
+Nine Digital HD:191625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:0:1073
+Nine Guide:191625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:517:700:1074
+7 Digital:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:769:770:1328
+7 HD Digital:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:833:834:1332
+7 Program Guide:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:865:866:1334
+SBS HD:536625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:102:103:784
+SBS DIGITAL 1:536625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:81:785
+SBS DIGITAL 2:536625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:162:83:786
+SBS EPG:536625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:163:85:787
+SBS RADIO 1:536625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:201:798
+SBS RADIO 2:536625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:202:799
diff --git a/util/szap/channels.conf-dvbt-australia b/util/szap/channels-conf/dvb-t/au-Sydney-NorthShore
index 9709b0b..60e599d 100644
--- a/util/szap/channels.conf-dvbt-australia
+++ b/util/szap/channels-conf/dvb-t/au-Sydney-NorthShore
@@ -1,31 +1,31 @@
-ABC HDTV:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:2307:0:560
-ABC TV Melbourne:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:561
-ABC TV 2:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:562
-ABC TV 3:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:563
-ABC TV 4:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:564
-ABC DiG Radio:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_3_4:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:0:2311:566
-TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1585
-TEN Digital 1:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1586
-TEN Digital 2:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1587
-TEN Digital 3:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1588
-TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1589
-TEN Digital 4:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1590
-TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1591
-TEN HD:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:514:0:1592
-TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1593
-Nine Digital:191625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:513:660:1072
-Nine Digital HD:191625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:0:1073
-Nine Guide:191625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:514:670:1074
-7 Digital:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:769:770:1328
-7 Digital 1:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:769:770:1329
-7 Digital 2:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:769:770:1330
-7 Digital 3:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:769:770:1331
-7 HD Digital:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:833:834:1332
-7 Program Guide:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:865:866:1334
-SBS HD:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:102:103:784
-SBS DIGITAL 1:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:81:785
-SBS DIGITAL 2:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:162:83:786
-SBS EPG:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:163:85:787
-SBS RADIO 1:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:201:798
-SBS RADIO 2:536500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:202:799
-
+ABC HDTV:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:2307:0:544
+ABC TV Sydney:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:545
+ABC TV 2:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:546
+ABC TV 3:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:547
+ABC TV 4 :226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:548
+ABC DiG Radio:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:0:2310:550
+Test.:226500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:0:0:549
+7 Digital:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:513:514:1312
+7 Digital 1:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:513:514:1313
+7 Digital 2:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:513:514:1314
+7 Digital 3:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:513:514:1315
+7 HD Digital:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:577:578:1316
+Program Guide:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:609:610:1318
+NINE DIGITAL:191625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:519:720:1
+NINE HD:191625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:0:5
+NINE GUIDE:191625000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:517:720:6
+TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1569
+TEN Digital 1:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1570
+TEN Digital 2:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1571
+TEN Digital 3:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1572
+TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1573
+TEN Digital 4:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1574
+TEN Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1575
+TEN HD:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:514:0:1576
+Ten Digital:219500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:512:650:1577
+SBS HD:571500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:102:103:768
+SBS DIGITAL 1:571500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:81:769
+SBS DIGITAL 2:571500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:162:83:770
+SBS EPG:571500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:163:85:772
+SBS RADIO 1:571500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:201:782
+SBS RADIO 2:571500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:202:783
diff --git a/util/szap/channels-conf/dvb-t/cz-Praha b/util/szap/channels-conf/dvb-t/cz-Praha
new file mode 100644
index 0000000..4a5c16c
--- /dev/null
+++ b/util/szap/channels-conf/dvb-t/cz-Praha
@@ -0,0 +1,16 @@
+CT2.:506000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:512:650:1
+Nova.:506000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:513:661:2
+CT1.:506000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:2325:2326:3
+Prima.:506000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:514:671:4
+Stanice O.:506000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:2322:2323:5
+Radiozurnal.:506000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:652:6
+Praha.:506000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:653:7
+Vltava.:506000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:651:8
+iTV:506000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:9
+Prima:674000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:161:84:1
+CT2:674000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:164:96:4
+TV Program:674000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:2501:2502:5
+RADIO2:674000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:0:2832:6
+RADIO:674000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:0:2831:9
+Proglas:674000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:0:180:11
+Nova.:674000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_16:HIERARCHY_NONE:205:206:3
diff --git a/util/szap/channels-conf/dvb-t/de-Berlin b/util/szap/channels-conf/dvb-t/de-Berlin
new file mode 100644
index 0000000..69cd114
--- /dev/null
+++ b/util/szap/channels-conf/dvb-t/de-Berlin
@@ -0,0 +1,47 @@
+rbb Brandenburg:522000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:1101:1102:11
+rbb Berlin:522000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:1201:1202:12
+Phoenix:522000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:1301:1302:13
+Das Erste:522000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:1401:1402:14
+ARD-MHP-Data:522000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16
+ZDF:570000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:545:546:514
+Info/3sat:570000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:561:562:515
+Doku/KiKa:570000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:593:594:517
+SAT.1:658000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:385:386:16408
+N24:658000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:225:226:16398
+ProSieben:658000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:305:306:16403
+KABEL1:658000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:162:16394
+MDR FERNSEHEN:191500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:101:102:1
+ARD-Online-Kanal:191500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:10
+ARD-MHP-Data:191500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:9
+NDR FERNSEHEN:191500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:301:302:3
+arte:191500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:201:202:2
+Test Programm:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:3841:3842:16624
+SUD enhanced:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16650
+13 TH STREET:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:4273:4274:16651
+BMCO Nokia IPDC Signalling:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16652
+BMCO Nokia IPDC 1:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16653
+BMCO Nokia IPDC 2:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16654
+BMCO Nokia IPDC 3:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16655
+IP Services:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16640
+Media Broadcast Services:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16641
+SUD:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16642
+SUD 1:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16643
+Kathrein Download:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16644
+HUMAX DOWNLOAD SVC:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16645
+BMCO Nokia IPDC 4:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16656
+BMCO Nokia IPDC 5:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16657
+BMCO Nokia IPDC 6:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16658
+BMCO Nokia IPDC 7:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16659
+BMCO Nokia IPDC 8:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16660
+RTL:506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:337:338:16405
+RTL2:506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:353:354:16406
+Super RTL:506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:433:434:16411
+VOX:506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:545:546:16418
+Südwest BW/RP:177500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:257:258:16
+WDR:177500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:241:242:15
+BBC World:177500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:49:50:16387
+FAB:177500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:3073:3074:16576
+DSF:754000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:129:130:16392
+Testkanal NEUN LIVE:754000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:273:274:16401
+VIVA Plus:754000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:529:530:16417
+Eurosport:754000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:577:578:16420
diff --git a/util/szap/channels-conf/dvb-t/de-Braunschweig b/util/szap/channels-conf/dvb-t/de-Braunschweig
new file mode 100644
index 0000000..28fb4a6
--- /dev/null
+++ b/util/szap/channels-conf/dvb-t/de-Braunschweig
@@ -0,0 +1,25 @@
+arte:198500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4385:4386:2
+Phoenix:198500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4401:4402:3
+EinsExtra:198500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4417:4418:4
+Das Erste:198500000:INVERSION_AUTO:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4369:4370:128
+ZDF:490000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:545:546:514
+Info/3sat:490000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:561:562:515
+Doku/KiKa:490000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:593:594:517
+RTL Television:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:337:338:16405
+RTL2:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:353:354:16406
+Super RTL:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:369:370:16407
+VOX:498000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:545:546:16418
+hr-fernsehen:594000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4673:4674:65
+MDR FERNSEHEN:594000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4657:4658:100
+NDR FS NDS:594000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4625:4626:129
+NDR FS HH *:594000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4625:4626:130
+NDR FS SH *:594000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4625:4626:131
+NDR FS MVP *:594000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4625:4626:132
+WDR Köln:594000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4641:4642:262
+SAT.1:658000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:385:386:16408
+N24:658000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:225:226:16398
+ProSieben:658000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:305:306:16403
+KABEL1:658000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:161:162:16394
+Eurosport:786000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:577:578:16420
+TERRA NOVA:786000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:609:610:16422
+TELE 5:786000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:465:466:16413
diff --git a/util/szap/channels-conf/dvb-t/de-Bremen b/util/szap/channels-conf/dvb-t/de-Bremen
new file mode 100644
index 0000000..0826f31
--- /dev/null
+++ b/util/szap/channels-conf/dvb-t/de-Bremen
@@ -0,0 +1,25 @@
+arte:482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:201:202:2
+Phoenix:482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:301:302:3
+NDR RB:482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:518:519:161
+Das Erste RB:482000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:261:262:160
+hr-fernsehen:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4673:4674:65
+MDR FERNSEHEN:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4657:4658:100
+NDR FS NDS:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4625:4626:129
+NDR FS HH *:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4625:4626:130
+NDR FS SH *:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4625:4626:131
+NDR FS MVP *:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4625:4626:132
+WDR Köln:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4641:4642:262
+ZDF:562000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:545:546:514
+Info/3sat:562000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:561:562:515
+Doku/KiKa:562000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:593:594:517
+RTL Television:642000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:337:338:16405
+RTL2:642000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:353:354:16406
+Super RTL:642000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:369:370:16407
+VOX:642000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:545:546:16418
+Eurosport:666000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:577:578:16420
+TERRA NOVA:666000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:609:610:16422
+TELE 5:666000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:465:466:16413
+SAT.1:698000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:385:386:16408
+N24:698000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:225:226:16398
+ProSieben:698000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:305:306:16403
+KABEL1:698000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:161:162:16394
diff --git a/util/szap/channels-conf/dvb-t/de-Koeln-Bonn b/util/szap/channels-conf/dvb-t/de-Koeln-Bonn
new file mode 100644
index 0000000..199ca85
--- /dev/null
+++ b/util/szap/channels-conf/dvb-t/de-Koeln-Bonn
@@ -0,0 +1,23 @@
+RTL Television:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:337:338:16405
+RTL2:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:353:354:16406
+Super RTL:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:433:434:16411
+VOX:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:545:546:16418
+ZDF:514000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:545:546:514
+Info/3sat:514000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:561:562:515
+Doku/KiKa:514000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:593:594:517
+MDR Fernsehen:698000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4657:4658:100
+NDR FS NDS:698000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4641:4642:129
+SÃœDWEST RP:698000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4673:4674:226
+WDR Köln:698000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4625:4626:262
+N24:650000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:225:226:16398
+ProSieben:650000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:305:306:16403
+KABEL1:650000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:161:162:16394
+SAT.1:650000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:2078:2077:16408
+arte:826000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4385:4386:2
+Phoenix:826000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4401:4402:3
+EinsMuXx:826000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4417:4418:6
+Das Erste:826000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4369:4370:256
+Eurosport:834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:577:578:16420
+VIVA:834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:513:514:16416
+TERRA NOVA:834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:609:610:16422
+CNN Int.:834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:97:98:16390
diff --git a/util/szap/channels-conf/dvb-t/de-Leipzig b/util/szap/channels-conf/dvb-t/de-Leipzig
new file mode 100644
index 0000000..9173a6f
--- /dev/null
+++ b/util/szap/channels-conf/dvb-t/de-Leipzig
@@ -0,0 +1,7 @@
+# channels.conf for DVB-T - Leipzig (Germany) Transmitter
+# Generated by Albrecht Lohoefener <albrechtloh@gmx.de>
+
+MDR:586000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:1553:1554:97
+rbb:586000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:2833:2834:177
+WDR:586000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:4193:4194:262
+BR:586000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:529:530:33
diff --git a/util/szap/channels-conf/dvb-t/de-Luebeck b/util/szap/channels-conf/dvb-t/de-Luebeck
new file mode 100644
index 0000000..257f139
--- /dev/null
+++ b/util/szap/channels-conf/dvb-t/de-Luebeck
@@ -0,0 +1,22 @@
+ZDF:490000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:545:546:514
+Info/3sat:490000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:561:562:515
+Doku/KiKa:490000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:593:594:517
+Bayerisches Fernsehen:530000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:5185:5186:34
+MDR FERNSEHEN:530000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:5169:5170:100
+NDR FS NDS *:530000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:5137:5138:129
+NDR FS HH *:530000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:5137:5138:130
+NDR FS SH:530000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:5137:5138:131
+NDR FS MVP *:530000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:5137:5138:132
+WDR Köln:530000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:5153:5154:262
+N24:546000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:225:226:16398
+ProSieben:546000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:305:306:16403
+KABEL1:546000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:161:162:16394
+SAT.1:546000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_1_2:FEC_AUTO:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:385:386:16408
+arte:570000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4385:4386:2
+Phoenix:570000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4401:4402:3
+EinsExtra:570000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4417:4418:4
+Das Erste:570000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4369:4370:128
+RTL Television:626000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:337:338:16405
+RTL2:626000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:353:354:16406
+Super RTL:626000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:369:370:16407
+VOX:626000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:545:546:16418
diff --git a/util/szap/channels-conf/dvb-t/de-Rhein-Main b/util/szap/channels-conf/dvb-t/de-Rhein-Main
new file mode 100644
index 0000000..32d4edc
--- /dev/null
+++ b/util/szap/channels-conf/dvb-t/de-Rhein-Main
@@ -0,0 +1,6 @@
+c8:198500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:161:82
+c22:482000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:161:82
+c34:578000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:161:82
+c54:738000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:161:82
+c57:762000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:161:82
+c64:818000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:161:82
diff --git a/util/szap/channels-conf/dvb-t/de-Ruhrgebiet b/util/szap/channels-conf/dvb-t/de-Ruhrgebiet
new file mode 100644
index 0000000..029dcd7
--- /dev/null
+++ b/util/szap/channels-conf/dvb-t/de-Ruhrgebiet
@@ -0,0 +1,46 @@
+# channels.conf for dvb-t in germany, broadcasting area 'Duesseldorf/Ruhrgebiet'.
+# see
+# http://nrw.ueberallfernsehen.de/fileadmin/downloads/Programm_Ruhr_2005_04_04_final.pdf
+# for details on the regional availability of some channels (see the comments below).
+#
+RTL Television:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:337:338:16405
+RTL2:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:353:354:16406
+Super RTL:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:433:434:16411
+VOX:538000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:545:546:16418
+ZDF:586000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:545:546:514
+Info/3sat:586000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:561:562:515
+Doku/KiKa:586000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:593:594:517
+CNN Int.:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:97:98:16390
+VIVA:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:513:514:16416
+Eurosport:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:577:578:16420
+TERRA NOVA:722000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:609:610:16422
+ProSieben:746000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:305:306:16403
+SAT.1:746000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:385:386:16408
+KABEL1:746000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:161:162:16394
+N24:746000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:225:226:16398
+arte:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4385:4386:2
+Phoenix:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4401:4402:3
+EinsMuXx:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4417:4418:6
+Das Erste:818000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4369:4370:256
+##
+### regionale Sender/regional channels
+##
+## Kanal 25; Senderstandorte/broadcasting locations: Langenberg, Dortmund
+MDR FERNSEHEN-25:506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:5425:5426:100
+NDR FS NDS-25:506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:5409:5410:129
+SUEDWEST RP-25:506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:5441:5442:226
+WDR Dortmund-25:506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:5393:5394:259
+WDR Essen-25:506000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:5393:5394:261
+#
+## Kanal 46; Senderstandorte/broadcasting locations: Duesseldorf, Wesel, Langenberg
+MDR FERNSEHEN-46:674000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4913:4914:100
+NDR FS NDS-46:674000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4897:4898:129
+SUEDWEST RP-46:674000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4929:4930:226
+WDR Duesseldorf-46:674000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4881:4882:260
+WDR Wuppertal-46:674000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:4881:4882:265
+## Kanal 59; Senderstandorte/broadcasting locations: Essen
+MDR FERNSEHEN-59:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:5169:5170:100
+NDR FS NDS-59:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:5153:5154:129
+SUEDWEST RP-59:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:5185:5186:226
+WDR Dortmund-59:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:5137:5138:259
+WDR Essen-59:778000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:5137:5138:261
diff --git a/util/szap/channels-conf/dvb-t/es-Alpicat b/util/szap/channels-conf/dvb-t/es-Alpicat
new file mode 100644
index 0000000..e69158c
--- /dev/null
+++ b/util/szap/channels-conf/dvb-t/es-Alpicat
@@ -0,0 +1,19 @@
+#channels.conf for DVB-T - Alpicat (Lleida) Transmitter
+
+#C42
+TV3:642000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:111:112:801
+K3/33:642000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:121:122:802
+3/24:642000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:131:132:803
+Canal Pilot:642000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:141:142:804
+3XL.net:642000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:151:152:805
+
+#C58
+TVE 1:770000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:101:103:1377
+TVE 2:770000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:201:203:1441
+ANTENA 3:770000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:301:303:1121
+CANAL+:770000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:501:503:1057
+TELECINCO:770000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:401:403:1185
+
+#C66
+Veo TV:834000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:301:302:1536
+Net TV:834000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:401:402:1825
diff --git a/util/szap/channels.conf-dvbt-collserola b/util/szap/channels-conf/dvb-t/es-Collserola
index 63456b2..9a1ec85 100644
--- a/util/szap/channels.conf-dvbt-collserola
+++ b/util/szap/channels-conf/dvb-t/es-Collserola
@@ -1,11 +1,11 @@
#channels.conf for DVB-T - Collserola (Barcelona) Transmitter
#C43
-TV3:650000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:111:112:801
-K3/33:650000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:121:122:802
-3/24:650000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:131:132:803
-Canal Pilot:650000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:141:142:804
-3XL.net:650000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:151:152:805
+TV3:650000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:111:112:801
+K3/33:650000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:121:122:802
+3/24:650000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:131:132:803
+Canal Pilot:650000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:141:142:804
+3XL.net:650000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:151:152:805
#C61
TVE 1:794000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:101:103:1377
@@ -17,9 +17,3 @@ TELECINCO:794000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSM
#C66
Veo TV:834000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:301:302:1536
Net TV:834000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:401:402:1825
-Video Promocional 1:834000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:210:212:425
-Video Promocional 2:834000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:110:0:420
-[1388]:834000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:0:5000
-[138c]:834000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:0:5004
-[138a]:834000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:0:5002
-
diff --git a/util/szap/channels-conf/dvb-t/es-Madrid b/util/szap/channels-conf/dvb-t/es-Madrid
new file mode 100644
index 0000000..7066e7b
--- /dev/null
+++ b/util/szap/channels-conf/dvb-t/es-Madrid
@@ -0,0 +1,26 @@
+TVE 1:770000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:101:103:380
+TVE 2:770000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:201:203:381
+24H TVE:770000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1001:1003:382
+RNE1:770000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2001:385
+RNEC:770000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2011:386
+CLAN/50 TVE:770000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1501:1503:383
+RNE3:770000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:2021:387
+TM3:810000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:111:113:421
+LAOTRA:810000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:211:212:422
+ONDA6:810000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:311:312:423
+TELEDEPORTE:834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:101:103:100
+VEO TV:834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1001:1002:260
+VEO 2:834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:301:302:261
+NET TV:834000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1501:1502:300
+CUATRO:842000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:160:80:1057
+CNN+:842000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:161:84:1058
+40 LATINO:842000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:162:88:1059
+LA SEXTA 1:842000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1501:0:340
+T5 Estrellas:850000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:201:301:181
+T5 Sport:850000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:202:302:182
+Telecinco:850000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:203:303:180
+FLYMUSIC:850000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1501:1502:301
+antena 3:858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:301:303:140
+a3.neox:858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:501:503:141
+a3.nova:858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1001:1003:142
+La Sexta 2:858000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:1501:0:341
diff --git a/util/szap/channels-conf/dvb-t/es-Mussara b/util/szap/channels-conf/dvb-t/es-Mussara
new file mode 100644
index 0000000..7962324
--- /dev/null
+++ b/util/szap/channels-conf/dvb-t/es-Mussara
@@ -0,0 +1,19 @@
+#channels.conf for DVB-T - La Mussara (Reus-Tarragona) Transmitter
+
+#C56
+TV3:754000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:111:112:801
+K3/33:754000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:121:122:802
+3/24:754000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:131:132:803
+Canal Pilot:754000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:141:142:804
+3XL.net:754000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:151:152:805
+
+#C59
+TVE 1:778000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:101:103:1377
+TVE 2:778000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:201:203:1441
+ANTENA 3:778000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:301:303:1121
+CANAL+:778000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:501:503:1057
+TELECINCO:778000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:401:403:1185
+
+#C66
+Veo TV:834000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:301:302:1536
+Net TV:834000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:401:402:1825
diff --git a/util/szap/channels.conf-dvbt-crystal-palace b/util/szap/channels-conf/dvb-t/uk-Crystal-Palace
index 28fa018..a851867 100644
--- a/util/szap/channels.conf-dvbt-crystal-palace
+++ b/util/szap/channels-conf/dvb-t/uk-Crystal-Palace
@@ -65,6 +65,3 @@ jazz fm:537833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMIS
Kerrang:537833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1301
Smash Hits:537833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1201
Kiss:537833333:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:0:1101
-
-
-
diff --git a/util/szap/channels.conf-dvbt-hannington b/util/szap/channels-conf/dvb-t/uk-Hannington
index b83620e..b83620e 100644
--- a/util/szap/channels.conf-dvbt-hannington
+++ b/util/szap/channels-conf/dvb-t/uk-Hannington
diff --git a/util/szap/channels.conf-dvbt-oxford b/util/szap/channels-conf/dvb-t/uk-Oxford
index 29a53a2..29a53a2 100644
--- a/util/szap/channels.conf-dvbt-oxford
+++ b/util/szap/channels-conf/dvb-t/uk-Oxford
diff --git a/util/szap/channels.conf-dvbt-reigate b/util/szap/channels-conf/dvb-t/uk-Reigate
index f5fe7cc..f5fe7cc 100644
--- a/util/szap/channels.conf-dvbt-reigate
+++ b/util/szap/channels-conf/dvb-t/uk-Reigate
diff --git a/util/szap/channels.conf-dvbt-sandy_heath b/util/szap/channels-conf/dvb-t/uk-Sandy-Heath
index a0cc632..99dc746 100644
--- a/util/szap/channels.conf-dvbt-sandy_heath
+++ b/util/szap/channels-conf/dvb-t/uk-Sandy-Heath
@@ -10,4 +10,3 @@ C4:665833334:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_
E4:665833334:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:2831:2832
C5:650166666:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:6017:6018
Shop:650166666:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_64:TRANSMISSION_MODE_2K:GUARD_INTERVAL_1_32:HIERARCHY_NONE:6049:6050
-
diff --git a/util/szap/channels.conf-dvbs-astra b/util/szap/channels.conf-dvbs-astra
deleted file mode 100644
index 705f710..0000000
--- a/util/szap/channels.conf-dvbs-astra
+++ /dev/null
@@ -1,226 +0,0 @@
-Das Erste:11837:h:0:27500:101:102:1:28106
-ZDF:11954:h:0:27500:110:120:1:28006
-3sat:11954:h:0:27500:210:220:1:28007
-EinsMuXx:12110:h:0:27500:301:302:1:28203
-EinsFestival:12110:h:0:27500:201:202:1:28202
-EinsExtra:12110:h:0:27500:101:102:1:28201
-MDR FERNSEHEN:12110:h:0:27500:401:402:1:28204
-ORB-Fernsehen:12110:h:0:27500:501:502:1:28205
-B1 Berlin:12110:h:0:27500:601:602:1:28206
-SWR Fernsehen:11837:h:0:27500:801:802:1:28113
-SR Fernsehen Suedwes:11837:h:0:27500:501:502:1:28110
-hessen fernsehen:11837:h:0:27500:301:302:1:28108
-WDR FERNSEHEN:11837:h:0:27500:601:602:1:28111
-Bayerisches FS:11837:h:0:27500:201:202:1:28107
-N3:12110:h:0:27500:2401:2402:1:28224
-BR-alpha:11837:h:0:27500:701:702:1:28112
-KiKa:11954:h:0:27500:310:320:1:28008
-arte:11836:h:0:27500:401:402:1:28109
-ZDF Theaterkanal:11954:h:0:27500:1110:1120:1:28016
-ZDF.info:11954:h:0:27500:610:620:1:28011
-ZDF.doku:11954:h:0:27500:660:670:1:28014
-Phoenix:11837:h:0:27500:901:902:1:28114
-DW-tv:10786:v:0:21997:305:306:1:9005
-RTL Television:12188:h:0:27500:163:104:1:12003
-SAT.1:12480:v:0:27500:1791:1792:1:46
-ProSieben:12480:v:0:27500:255:256:1:898
-RTL2:12188:h:0:27500:166:128:1:12020
-Super RTL:12188:h:0:27500:165:120:1:12040
-KABEL1:12480:v:0:27500:511:512:1:899
-VOX:12188:h:0:27500:167:136:1:12060
-tm3:12480:v:0:27500:767:768:1:897
-Bloomberg TV Germany:12552:v:0:22000:162:99:1:12160
-EuroNews:11954:h:0:27500:2221:2233:1:28015
-N24:12480:v:0:27500:2047:2048:1:47
-n-tv:12670:v:0:22000:162:96:1:12730
-DSF:12480:v:0:27500:1023:1024:1:900
-Eurosport:11954:h:0:27500:410:420:1:28009
-Via 1 - Sch ner Re:12148:h:0:27500:511:512:1:44
-Home Order Tel:12480:v:0:27500:1279:1280:1:40
-QVC GERMANY:12552:v:0:22000:165:166:1:12100
-TW 1:12692:h:0:22000:166:167:1:13013
-Canal Canarias:12441:v:0:27500:513:681:1:29700
-ProSieben A:12051:v:0:27500:161:84:1:20002
-ProSieben CH:12051:v:0:27500:289:290:1:20001
-Kabel 1 Austria:12051:v:0:27500:166:167:1:20004
-Kabel 1 Schweiz:12051:v:0:27500:162:163:1:20003
-CNN Int.:12168:v:0:27500:165:100:1:28512
-Sky News:12552:v:0:22000:305:306:1:3995
-Travel:12168:v:0:27500:163:92:1:28001
-AB SAT / XXL:12266:h:0:27500:164:96:1:17004
-MOTEURS:12266:h:0:27500:160:80:1:17000
-HOT GM:12148:h:0:27500:767:768:1:45
-KTO:12129:v:0:27500:170:120:1:8411
-LA CINQUIEME:12207:v:0:27500:160:80:1:8501
-LCP:12207:v:0:27500:165:100:1:8506
-LibertyTV.com:12611:v:0:22000:941:942:1:12280
-TV5 Europe:12611:v:0:22000:45:46:1:12240
-Motors TV:12611:v:0:22000:191:194:1:12300
-Wishline:12611:v:0:22000:214:216:1:12320
-TV 5:10786:v:0:21997:164:112:1:9001
-RTM - MAROC:10786:v:0:21997:162:96:1:9002
-ESC1 - EGYPTE:10786:v:0:21997:163:104:1:9003
-RAI 1:10786:v:0:21997:289:290:1:9004
-RTPI:10786:v:0:21997:300:301:1:9006
-TV7:10786:v:0:21997:166:128:1:9007
-ARTE:10786:v:0:21997:167:136:1:9009
-Colourbars:12611:v:0:22000:48:49:1:3982
-Alice:12611:v:0:22000:162:96:1:12200
-Video Italia:12611:v:0:22000:121:122:1:12220
-ANDALUCIA TV:11934:v:0:27500:166:104:1:29011
-TVC INT.:12441:v:0:27500:512:660:1:29701
-TV4:11992:h:0:27500:165:98:1:20365
-TV Niepokalanow:11876:h:0:27500:161:82:1:20601
-VIVA:12670:v:0:22000:309:310:1:12732
-VIVA ZWEI:12552:v:0:22000:171:172:1:12120
-MTV Central:12699:v:0:22000:3031:3032:1:28643
-ONYX:12692:h:1:27500:161:84:1:502
-VIVA polska:11603:h:1:27500:190:191:1:611
-DeeJay TV:11603:h:1:27500:160:161:1:602
-NBC:11053:h:1:27500:550:551:1:8008
-EWTN:10722:h:1:29900:1001:1201:1:4601
-MTA INTL:10722:h:1:29900:1004:1204:1:4604
-VOX:11053:h:1:27500:500:501:1:8002
-SAT.1 A:11053:h:1:27500:511:512:1:8003
-RTL2 AUSTRIA:11053:h:1:27500:520:521:1:8004
-ZDF:11053:h:1:27500:570:571:1:8011
-K-TV:11053:h:1:27500:580:581:1:8012
-RTL Television:11053:h:1:27500:160:80:1:8001
-ARTE:11059:v:1:6510:98:99:1:1
-HOT Italia:11095:h:1:27500:4194:4195:1:3714
-Olisat:11095:h:1:27500:33:34:1:3718
-VIVA-POLSKA:11128:h:1:4340:98:99:1:1
-DW-tv:11195:v:1:9099:101:102:1:5301
-Canal 24 Horas:11203:h:1:3999:4130:4131:1:5301
-TV5:11337:v:1:5631:512:640:1:1
-SAT.1 CH:11603:h:1:27500:101:102:1:601
-KurdSat:11603:h:1:27500:111:112:1:603
-ARD "Das Erste":11603:h:1:27500:172:173:1:606
-RTL 2 CH:11603:h:1:27500:175:176:1:609
-Super RTL A:11603:h:1:27500:180:181:1:610
-TV ROMANIA:11622:v:1:27500:227:247:1:10707
-MRTV:11622:v:1:27500:222:242:1:10702
-102.5 HIT Ch:11622:v:1:27500:224:244:1:10704
-TLC SAT:11622:v:1:27500:225:245:1:10705
-PRO-SAT:11622:v:1:27500:246:226:1:10706
-Channel SUN:11622:v:1:27500:229:249:1:10709
-Racing Channel:11622:v:1:27500:228:248:1:10708
-3 ABN:11622:v:1:27500:221:241:1:10701
-Bloom.Germany:11642:h:1:27500:1460:1420:1:4
-Bloomberg TV UK:11642:h:1:27500:1560:1520:1:4
-Sat 7:11642:h:1:27500:1660:1620:1:4
-EDTV 1:11746:h:1:27500:4130:4131:1:9501
-EDTV SPORT:11746:h:1:27500:4386:4387:1:9502
-EDTV BUSINESS:11746:h:1:27500:4642:4643:1:9503
-EDTV DRAMA:11746:h:1:27500:4898:4899:1:9504
-RAI1:11765:v:1:27499:160:80:1:3401
-RAI2:11765:v:1:27499:161:84:1:3402
-RAI3:11765:v:1:27499:162:88:1:3403
-RaiWayTEST2:11765:v:1:27499:516:654:1:3405
-RAIMOSAICO:11765:v:1:27499:518:8191:1:3407
-RAINews24:11803:v:1:27500:516:654:1:3301
-CAMERA DEPUTATI:11803:v:1:27500:517:655:1:3302
-TELEPACE:11803:v:1:27500:515:653:1:3304
-RAISPORTSAT:11803:v:1:27500:512:650:1:3305
-RAINettunoSAT2:11803:v:1:27500:513:651:1:3306
-RAIeducational:11803:v:1:27500:514:652:1:3307
-RAINettunoSAT1:11803:v:1:27500:519:657:1:3308
-SAT2000:11803:v:1:27500:518:656:1:3309
-I1:11918:v:1:27499:512:650:1:1
-C5:11918:v:1:27499:513:660:1:2
-R4:11918:v:1:27499:514:670:1:3
-Telesierra:12091:h:1:27500:4160:4161:1:8704
-C. Milagro:12091:h:1:27500:4368:4369:1:8711
-Italia Sat:12091:h:1:27500:4600:4601:1:8728
-TVE Internacional:12091:h:1:27500:4208:4209:1:8707
-Fiesta:12091:h:1:27500:4432:4433:1:8720
-Retelsat:12091:h:1:27500:4464:4465:1:8722
-ART EUROPE:12013:h:1:27495:164:96:1:450
-EGYPT SAT. CH. 2:12013:h:1:27495:166:104:1:470
-IQRA:12013:h:1:27495:168:112:1:474
-MAURITANIA TV:12110:v:1:27500:230:231:1:704
-ARMENIA TV:12110:v:1:27500:240:241:1:705
-SAILING CHANNEL:12110:v:1:27500:260:261:1:707
-AL JAZEERA:12110:v:1:27500:270:271:1:708
-Coming Soon TV:12110:v:1:27500:310:311:1:717
-SaluteBenessere:12110:v:1:27500:320:321:1:718
-AH-EDP1:12148:v:1:27499:96:97:1:7201
-AH-EDP2:12148:v:1:27499:112:113:1:7202
-Espresso:12148:v:1:27499:192:193:1:7203
-Alice:12148:v:1:27499:160:161:1:7220
-Nuvolari:12148:v:1:27499:176:177:1:7221
-Leonardo:12148:v:1:27499:128:129:1:7222
-AH-EDP3:12148:v:1:27499:36:37:1:7205
-OTE Promo:12187:v:1:27500:517:655:1:1001
-RTS SAT:12187:v:1:27500:519:657:1:1022
-ERT SAT:12187:v:1:27500:514:652:1:1102
-EXTRA:12187:v:1:27500:516:654:1:1106
-TRIAL:12187:v:1:27500:513:651:1:1108
-Minimax:11303:h:1:19540:300:301:1:3
-TVN1:12209:h:1:5631:4194:4195:1:1
-RR TEST:10978:v:1:8998:33:34:1:1
-TV 5 Thailand:10978:v:1:8998:1057:1058:1:2
-TEST-1:10978:v:1:8998:3105:3106:1:4
-FASHION:12244:h:1:27500:123:133:1:103
-AJARA TV:12244:h:1:27500:127:137:1:107
-SLO-TV1:12300:v:1:27495:200:201:1:3201
-POLONIA 1:12302:v:1:27500:205:206:1:3203
-SUPER 1:12302:v:1:27500:207:208:1:3207
-NAPOLI INT.:12302:v:1:27500:240:241:1:3210
-MAGIC:12302:v:1:27500:245:246:1:3211
-COUNTDOWN:12302:v:1:27500:235:236:1:3212
-TBNE:12302:v:1:27500:230:231:1:3213
-NAPOLI CHANNEL:12302:v:1:27500:227:228:1:3215
-KURDISTAN TV:12302:v:1:27500:225:226:1:3214
-ATLAS TV:12379:v:1:27500:3022:3032:1:3002
-TELE 24 SWITZERLAND:12379:v:1:27500:3023:3033:1:3003
-Abu Dhabi TV:12379:v:1:27500:3024:3034:1:3004
-RTV MONTENEGRO:12379:v:1:27500:3026:3036:1:3006
-JAAM-E-JAM 1:12436:h:1:27500:160:80:1:1
-JAAM-E-JAM 2:12436:h:1:27500:161:82:1:2
-SAHAR:12436:h:1:27500:162:84:1:3
-SAHAR 2:12436:h:1:27500:163:86:1:4
-IRINN:12436:h:1:27500:164:88:1:5
-Musicmax:11303:h:1:19540:500:501:1:6
-TEST:12474:h:1:27500:771:8191:1:10608
-EbS:12474:h:1:27500:101:201:1:10601
-MOU.2:12474:h:1:27500:42:43:1:10602
-PINK PLUS:12474:h:1:27500:308:256:1:10605
-LibertyTV.com:12474:h:1:27500:941:942:1:10603
-2M Maroc:12474:h:1:27500:601:602:1:10607
-ZEE TV:12474:h:1:27500:910:911:1:10604
-WorldNet Europe:12483:v:1:8299:4260:4220:1:1
-WorldNet:12483:v:1:8299:4560:4520:1:4
-SICILIA INTERNATIONA:12519:v:1:27499:501:502:1:8309
-SARDEGNA UNO:12519:v:1:27499:503:504:1:8310
-EuroMed:12519:v:1:27499:510:511:1:8312
-TGRT:12519:v:1:27499:505:506:1:8313
-VIDEOLINA:12519:v:1:27499:515:516:1:8318
-MEDIOLANUM:12538:h:1:27500:1131:1132:1:8987
-www.travel:12538:h:1:27500:1180:1183:1:8992
-MonteCarloSat:12538:h:1:27500:5126:5122:1:8877
-Bulgaria TV:12538:h:1:27500:4612:4613:1:8827
-TVN1:12571:h:1:5631:4194:4195:1:1
-JSTV 1:12595:v:1:27500:2000:2001:1:8213
-JSTV 2:12595:v:1:27500:2011:2013:1:8214
-MBC:12595:v:1:27500:160:80:1:8201
-ANN:12595:v:1:27500:161:84:1:8202
-BET:12595:v:1:27500:167:108:1:8208
-EuroNews:12595:v:1:27500:2221:2231:1:8211
-Sharjah Arabs:12653:h:1:27500:1160:1120:1:1
-Qatar Arabs:12653:h:1:27500:1260:1220:1:2
-Saudi 1 Arabs:12653:h:1:27500:1360:1320:1:3
-Kuwait Arabs:12653:h:1:27500:1460:1420:1:4
-Libya Arabs:12653:h:1:27500:1560:1520:1:5
-Sudan Arabs:12653:h:1:27500:1660:1620:1:6
-Oman Arabs:12653:h:1:27500:1760:1720:1:7
-Jordan Arabs:12653:h:1:27500:1860:1820:1:8
-IRAQ TV:12653:h:1:27500:1960:1920:1:9
-Dubai Sport:12653:h:1:27500:1060:1020:1:10
-Digitaly:12672:v:1:27500:220:221:1:4203
-Telemarket:12672:v:1:27500:350:351:1:4211
-eVision:12672:v:1:27500:360:361:1:4214
-Thai TV5:12672:v:1:27500:200:201:1:4201
-Studio Europa:12672:v:1:27500:230:231:1:4204
-Video Italia:12672:v:1:27500:340:341:1:4210
-GAME NETWORK:12672:v:1:27500:291:292:1:4213
diff --git a/util/szap/channels.conf-dvbt-berlin b/util/szap/channels.conf-dvbt-berlin
deleted file mode 100644
index dbddca5..0000000
--- a/util/szap/channels.conf-dvbt-berlin
+++ /dev/null
@@ -1,51 +0,0 @@
-c5:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:82
-c7:191500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:82
-c25:506000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:82
-c27:522000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:82
-c33:570000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:82
-c44:658000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:82
-c56:754000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:82
-c59:778000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:82
-
-SWR BW:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:257:258:16
-WDR:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:241:242:15
-BBC World:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:49:50:16387
-FAB:177500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_3_4:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:3073:3074:16576
-
-MDR Fernsehen:191500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:101:102:1
-arte:191500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:201:202:2
-NDR Fernsehen:191500000:INVERSION_OFF:BANDWIDTH_7_MHZ:FEC_2_3:FEC_NONE:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:301:302:3
-
-RTL:506000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:337:338:16405
-RTL2:506000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:353:354:16406
-Super RTL:506000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:433:434:16411
-VOX:506000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:545:546:16418
-
-Das Erste:522000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:1401:1402:14
-Phoenix:522000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:1301:1302:13
-RBB Berlin:522000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:1201:1202:12
-RBB Brandenburg:522000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:1101:1102:11
-
-ZDF:570000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:545:546:514
-Info/3sat:570000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:561:562:515
-Doku/KiKa:570000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:593:594:517
-
-Kabel 1:658000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:161:162:16394
-N24:658000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:225:226:16398
-ProSieben:658000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:305:306:16403
-SAT.1:658000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:385:386:16408
-
-DSF:754000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:129:130:16392
-Testkanal n-tv:754000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:273:274:16401
-VIVA Plus:754000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:529:530:16417
-Eurosport:754000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:577:578:16420
-
-Testkanal Eurosport:778000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:577:578:16420
-SUD:778000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16642
-HUMAX DOWNLOAD SVC:778000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16645
-IP Services:778000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16640
-Media Broadcast Services:778000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16641
-SUD 1:778000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16643
-Kathrein Download:778000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:0:0:16644
-Testkanal MTV:778000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:193:194:16396
-Testkanal n-tv:778000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_16:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:273:274:16401
diff --git a/util/szap/channels.conf-dvbt-madrid b/util/szap/channels.conf-dvbt-madrid
deleted file mode 100644
index cdf515b..0000000
--- a/util/szap/channels.conf-dvbt-madrid
+++ /dev/null
@@ -1,16 +0,0 @@
-Veo TV:834000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:301:302:1536
-Net TV:834000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:401:402:1825
-[1388]:834000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:0:5000
-[138c]:834000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:0:5004
-[138a]:834000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:0:5002
-Video Promocional:834000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:0:420
-Informe Semanal:834000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:0:0:425
-TVE 2:770000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:201:203:1441
-ANTENA 3:770000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:301:303:1121
-TELECINCO:770000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:401:403:1185
-CANAL+:770000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:501:503:1057
-TVE 1:770000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:101:103:1377
-Telemadrid:810000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:111:113:421
-La Otra:810000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:211:212:422
-Quiero Madrid:810000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:411:412:424
-Onda 6:810000000:INVERSION_OFF:BANDWIDTH_8_MHZ:FEC_2_3:FEC_1_2:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE:311:312:423
diff --git a/util/szap/czap.c b/util/szap/czap.c
index 9d183f9..469df56 100644
--- a/util/szap/czap.c
+++ b/util/szap/czap.c
@@ -16,8 +16,9 @@
static char FRONTEND_DEV [80];
static char DEMUX_DEV [80];
+static int exit_after_tuning;
-#define CHANNEL_FILE "/.czap/channels.conf"
+#define CHANNEL_FILE "channels.conf"
#define ERROR(x...) \
do { \
@@ -71,14 +72,17 @@ static const Param modulation_list[] = {
static
-int parse_param(const char *val, const Param * plist, int list_size)
+int parse_param(const char *val, const Param * plist, int list_size, int *ok)
{
int i;
for (i = 0; i < list_size; i++) {
- if (strcasecmp(plist[i].name, val) == 0)
+ if (strcasecmp(plist[i].name, val) == 0) {
+ *ok = 1;
return plist[i].value;
+ }
}
+ *ok = 0;
return -1;
}
@@ -119,6 +123,7 @@ int parse(const char *fname, int list_channels, int chan_no, const char *channel
FILE *f;
char *chan;
char *name, *inv, *fec, *mod;
+ int ok;
if ((f = fopen(fname, "r")) == NULL) {
PERROR("could not open file '%s'", fname);
@@ -144,19 +149,19 @@ int parse(const char *fname, int list_channels, int chan_no, const char *channel
ERROR("cannot parse service data");
return -3;
}
- frontend->inversion = parse_param(inv, inversion_list, LIST_SIZE(inversion_list));
- if (frontend->inversion < 0) {
+ frontend->inversion = parse_param(inv, inversion_list, LIST_SIZE(inversion_list), &ok);
+ if (!ok) {
ERROR("inversion field syntax '%s'", inv);
return -4;
}
- frontend->u.qam.fec_inner = parse_param(fec, fec_list, LIST_SIZE(fec_list));
- if (frontend->u.qam.fec_inner < 0) {
+ frontend->u.qam.fec_inner = parse_param(fec, fec_list, LIST_SIZE(fec_list), &ok);
+ if (!ok) {
ERROR("FEC field syntax '%s'", fec);
return -5;
}
frontend->u.qam.modulation = parse_param(mod, modulation_list,
- LIST_SIZE(modulation_list));
- if (frontend->u.qam.modulation < 0) {
+ LIST_SIZE(modulation_list), &ok);
+ if (!ok) {
ERROR("modulation field syntax '%s'", mod);
return -6;
}
@@ -223,7 +228,7 @@ int setup_frontend(int fe_fd, struct dvb_frontend_parameters *frontend)
static
-int check_frontend (int fe_fd)
+int check_frontend (int fe_fd, int human_readable)
{
fe_status_t status;
uint16_t snr, signal;
@@ -236,9 +241,13 @@ int check_frontend (int fe_fd)
ioctl(fe_fd, FE_READ_BER, &ber);
ioctl(fe_fd, FE_READ_UNCORRECTED_BLOCKS, &uncorrected_blocks);
- printf ("status %02x | signal %04x | snr %04x | "
- "ber %08x | unc %08x | ",
- status, signal, snr, ber, uncorrected_blocks);
+ if (human_readable) {
+ printf ("status %02x | signal %3u%% | snr %3u%% | ber %d | unc %d | ",
+ status, (signal * 100) / 0xffff, (snr * 100) / 0xffff, ber, uncorrected_blocks);
+ } else {
+ printf ("status %02x | signal %04x | snr %04x | ber %08x | unc %08x | ",
+ status, signal, snr, ber, uncorrected_blocks);
+ }
if (status & FE_HAS_LOCK)
printf("FE_HAS_LOCK");
@@ -246,13 +255,16 @@ int check_frontend (int fe_fd)
usleep(1000000);
printf("\n");
+
+ if (exit_after_tuning && (status & FE_HAS_LOCK))
+ break;
} while (1);
return 0;
}
-static const char *usage = "\nusage: %s [-a adapter_num] [-f frontend_id] [-d demux_id] [-c conf_file] {<channel name>| -n channel_num}\n"
+static const char *usage = "\nusage: %s [-a adapter_num] [-f frontend_id] [-d demux_id] [-c conf_file] [ -H ] {<channel name>| -n channel_num} [-x]\n"
" or: %s [-c conf_file] -l\n\n";
@@ -266,66 +278,78 @@ int main(int argc, char **argv)
int vpid, apid;
int frontend_fd, video_fd, audio_fd;
int opt, list_channels = 0, chan_no = 0;
+ int human_readable = 0;
+
+ while ((opt = getopt(argc, argv, "Hln:hrn:a:f:d:c:x")) != -1) {
+ switch (opt) {
+ case 'a':
+ adapter = strtoul(optarg, NULL, 0);
+ break;
+ case 'f':
+ frontend = strtoul(optarg, NULL, 0);
+ break;
+ case 'd':
+ demux = strtoul(optarg, NULL, 0);
+ break;
+ case 'r':
+ dvr = 1;
+ break;
+ case 'l':
+ list_channels = 1;
+ break;
+ case 'n':
+ chan_no = strtoul(optarg, NULL, 0);
+ break;
+ case 'x':
+ exit_after_tuning = 1;
+ break;
+ case 'H':
+ human_readable = 1;
+ break;
+ case 'c':
+ confname = optarg;
+ break;
+ case '?':
+ case 'h':
+ default:
+ fprintf (stderr, usage, argv[0], argv[0]);
+ return -1;
+ };
+ }
- while ((opt = getopt(argc, argv, "ln:hrn:a:f:d:c:")) != -1) {
- switch (opt) {
- case 'a':
- adapter = strtoul(optarg, NULL, 0);
- break;
- case 'f':
- frontend = strtoul(optarg, NULL, 0);
- break;
- case 'd':
- demux = strtoul(optarg, NULL, 0);
- break;
- case 'r':
- dvr = 1;
- break;
- case 'l':
- list_channels = 1;
- break;
- case 'n':
- chan_no = strtoul(optarg, NULL, 0);
- break;
- case 'c':
- confname = optarg;
- break;
- case '?':
- case 'h':
- default:
- fprintf (stderr, usage, argv[0], argv[0]);
- return -1;
- };
- }
-
- if (optind < argc)
- channel = argv[optind];
-
- if (!channel && chan_no <= 0 && !list_channels) {
- fprintf (stderr, usage, argv[0], argv[0]);
- return -1;
- }
+ if (optind < argc)
+ channel = argv[optind];
+
+ if (!channel && chan_no <= 0 && !list_channels) {
+ fprintf (stderr, usage, argv[0], argv[0]);
+ return -1;
+ }
if (!homedir)
ERROR("$HOME not set");
- snprintf (FRONTEND_DEV, sizeof(FRONTEND_DEV),
- "/dev/dvb/adapter%i/frontend%i", adapter, frontend);
+ snprintf (FRONTEND_DEV, sizeof(FRONTEND_DEV),
+ "/dev/dvb/adapter%i/frontend%i", adapter, frontend);
- snprintf (DEMUX_DEV, sizeof(DEMUX_DEV),
- "/dev/dvb/adapter%i/demux%i", adapter, demux);
+ snprintf (DEMUX_DEV, sizeof(DEMUX_DEV),
+ "/dev/dvb/adapter%i/demux%i", adapter, demux);
printf ("using '%s' and '%s'\n", FRONTEND_DEV, DEMUX_DEV);
if (!confname)
{
+ int len = strlen(homedir) + strlen(CHANNEL_FILE) + 18;
if (!homedir)
ERROR("$HOME not set");
- confname = malloc(strlen(homedir) + strlen(CHANNEL_FILE) + 1);
- memcpy(confname, homedir, strlen(homedir));
- memcpy(confname + strlen(homedir), CHANNEL_FILE,
- strlen(CHANNEL_FILE) + 1);
+ confname = malloc(len);
+ snprintf(confname, len, "%s/.czap/%i/%s",
+ homedir, adapter, CHANNEL_FILE);
+ if (access(confname, R_OK))
+ snprintf(confname, len, "%s/.czap/%s",
+ homedir, CHANNEL_FILE);
}
+ printf("reading channels from file '%s'\n", confname);
+
memset(&frontend_param, 0, sizeof(struct dvb_frontend_parameters));
if (parse(confname, list_channels, chan_no, channel, &frontend_param, &vpid, &apid))
@@ -357,7 +381,7 @@ int main(int argc, char **argv)
if (set_pesfilter (audio_fd, apid, DMX_PES_AUDIO, dvr) < 0)
return -1;
- check_frontend (frontend_fd);
+ check_frontend (frontend_fd, human_readable);
close (audio_fd);
close (video_fd);
@@ -365,4 +389,3 @@ int main(int argc, char **argv)
return 0;
}
-
diff --git a/util/szap/femon.c b/util/szap/femon.c
deleted file mode 100644
index 47e37a3..0000000
--- a/util/szap/femon.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/* femon -- monitor frontend status
- *
- * Copyright (C) 2003 convergence GmbH
- * Johannes Stezenbach <js@convergence.de>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <limits.h>
-#include <string.h>
-#include <errno.h>
-#include <sys/ioctl.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/poll.h>
-#include <fcntl.h>
-#include <time.h>
-#include <unistd.h>
-
-#include <stdint.h>
-#include <sys/time.h>
-
-#include <linux/dvb/frontend.h>
-
-#ifndef TRUE
-#define TRUE (1==1)
-#endif
-#ifndef FALSE
-#define FALSE (1==0)
-#endif
-
-
-#define FRONTENDDEVICE "/dev/dvb/adapter%d/frontend%d"
-
-static char *usage_str =
- "\nusage: femon [options]\n"
- " -a number : use given adapter (default 0)\n"
- " -f number : use given frontend (default 0)\n\n";
-
-
-static void usage(void)
-{
- fprintf(stderr, usage_str);
- exit(1);
-}
-
-
-static
-int check_frontend (int fe_fd)
-{
- fe_status_t status;
- uint16_t snr, signal;
- uint32_t ber, uncorrected_blocks;
-
- do {
- ioctl(fe_fd, FE_READ_STATUS, &status);
- ioctl(fe_fd, FE_READ_SIGNAL_STRENGTH, &signal);
- ioctl(fe_fd, FE_READ_SNR, &snr);
- ioctl(fe_fd, FE_READ_BER, &ber);
- ioctl(fe_fd, FE_READ_UNCORRECTED_BLOCKS, &uncorrected_blocks);
-
- printf ("status %02x | signal %04x | snr %04x | ber %08x | unc %08x | ",
- status, signal, snr, ber, uncorrected_blocks);
-
- if (status & FE_HAS_LOCK)
- printf("FE_HAS_LOCK");
-
- printf("\n");
- usleep(1000000);
- } while (1);
-
- return 0;
-}
-
-
-static
-int do_mon(unsigned int adapter, unsigned int frontend)
-{
- char fedev[128];
- int fefd;
- int result;
- struct dvb_frontend_info fe_info;
-
- snprintf(fedev, sizeof(fedev), FRONTENDDEVICE, adapter, frontend);
- printf("using '%s'\n", fedev);
-
- if ((fefd = open(fedev, O_RDONLY | O_NONBLOCK)) < 0) {
- perror("opening frontend failed");
- return FALSE;
- }
-
- result = ioctl(fefd, FE_GET_INFO, &fe_info);
-
- if (result < 0) {
- perror("ioctl FE_GET_INFO failed");
- close(fefd);
- return FALSE;
- }
-
- printf("FE: %s (%s)\n", fe_info.name, fe_info.type == FE_QPSK ? "SAT" :
- fe_info.type == FE_QAM ? "CABLE": "TERRESTRIAL");
-
- check_frontend (fefd);
-
- close(fefd);
-
- return result;
-}
-
-int main(int argc, char *argv[])
-{
- unsigned int adapter = 0, frontend = 0;
- int opt;
-
- while ((opt = getopt(argc, argv, "hlrn:a:f:d:")) != -1) {
- switch (opt)
- {
- case '?':
- case 'h':
- default:
- usage();
- case 'a':
- adapter = strtoul(optarg, NULL, 0);
- break;
- case 'f':
- frontend = strtoul(optarg, NULL, 0);
- }
- }
-
- do_mon(adapter, frontend);
-
- return FALSE;
-}
-
diff --git a/util/lib/lnb.c b/util/szap/lnb.c
index d082181..9052d1c 100644
--- a/util/lib/lnb.c
+++ b/util/szap/lnb.c
@@ -12,7 +12,7 @@ static char *univ_desc[] = {
static char *dbs_desc[] = {
"Expressvu, North America",
"12200 to 12700 MHz",
- "Single LO, 11250 MHz",
+ "Single LO, 11250 MHz",
(char *)NULL };
static char *standard_desc[] = {
@@ -47,7 +47,7 @@ static struct lnb_types_st lnbs[] = {
struct lnb_types_st *
lnb_enum(int curno)
{
- if (curno >= sizeof(lnbs) / sizeof(lnbs[0]))
+ if (curno >= (int) (sizeof(lnbs) / sizeof(lnbs[0])))
return (struct lnb_types_st *)NULL;
return &lnbs[curno];
}
@@ -68,7 +68,7 @@ char *cp, *np;
while(*cp && isspace(*cp))
cp++;
if (isalpha(*cp)) {
- for(i = 0; i < (sizeof(lnbs) / sizeof(lnbs[0])); i++) {
+ for (i = 0; i < (int)(sizeof(lnbs) / sizeof(lnbs[0])); i++) {
if (!strcasecmp(lnbs[i].name, cp)) {
*lnbp = lnbs[i];
return 1;
diff --git a/util/lib/lnb.h b/util/szap/lnb.h
index f78b7a6..6370fd4 100644
--- a/util/lib/lnb.h
+++ b/util/szap/lnb.h
@@ -1,4 +1,3 @@
-
struct lnb_types_st {
char *name;
char **desc;
@@ -21,4 +20,3 @@ lnb_enum(int curno);
int
lnb_decode(char *str, struct lnb_types_st *lnbp);
-
diff --git a/util/szap/szap.c b/util/szap/szap.c
index 581c970..ed1aa51 100644
--- a/util/szap/szap.c
+++ b/util/szap/szap.c
@@ -36,6 +36,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/poll.h>
+#include <sys/param.h>
#include <fcntl.h>
#include <time.h>
#include <unistd.h>
@@ -45,6 +46,7 @@
#include <linux/dvb/frontend.h>
#include <linux/dvb/dmx.h>
+#include <linux/dvb/audio.h>
#include "lnb.h"
#ifndef TRUE
@@ -64,6 +66,7 @@
#define FRONTENDDEVICE "/dev/dvb/adapter%d/frontend%d"
#define DEMUXDEVICE "/dev/dvb/adapter%d/demux%d"
+#define AUDIODEVICE "/dev/dvb/adapter%d/audio%d"
static struct lnb_types_st lnb_type;
@@ -79,18 +82,21 @@ static char *usage_str =
" -f number : use given frontend (default 0)\n"
" -d number : use given demux (default 0)\n"
" -c file : read channels list from 'file'\n"
+ " -b : enable Audio Bypass (default no)\n"
" -x : exit after tuning\n"
+ " -H : human readable output\n"
" -r : set up /dev/dvb/adapterX/dvr0 for TS recording\n"
" -l lnb-type (DVB-S Only) (use -l help to print types) or \n"
" -l low[,high[,switch]] in Mhz\n"
" -i : run interactively, allowing you to type in channel names\n"
+ " -p : add pat and pmt to TS recording (implies -r)\n"
" or -n numbers for zapping\n";
-static int set_demux(int dmxfd, int pid, int audio, int dvr)
+static int set_demux(int dmxfd, int pid, int pes_type, int dvr)
{
struct dmx_pes_filter_params pesfilter;
- if (pid <= 0 || pid >= 0x1fff) /* ignore this pid to allow radio services */
+ if (pid < 0 || pid >= 0x1fff) /* ignore this pid to allow radio services */
return TRUE;
if (dvr) {
@@ -102,7 +108,7 @@ static int set_demux(int dmxfd, int pid, int audio, int dvr)
pesfilter.pid = pid;
pesfilter.input = DMX_IN_FRONTEND;
pesfilter.output = dvr ? DMX_OUT_TS_TAP : DMX_OUT_DECODER;
- pesfilter.pes_type = audio ? DMX_PES_AUDIO : DMX_PES_VIDEO;
+ pesfilter.pes_type = pes_type;
pesfilter.flags = DMX_IMMEDIATE_START;
if (ioctl(dmxfd, DMX_SET_PES_FILTER, &pesfilter) == -1) {
@@ -114,6 +120,65 @@ static int set_demux(int dmxfd, int pid, int audio, int dvr)
return TRUE;
}
+int get_pmt_pid(char *dmxdev, int sid)
+{
+ int patfd, count;
+ int pmt_pid = 0;
+ int patread = 0;
+ int section_length;
+ unsigned char buft[4096];
+ unsigned char *buf = buft;
+ struct dmx_sct_filter_params f;
+
+ memset(&f, 0, sizeof(f));
+ f.pid = 0;
+ f.filter.filter[0] = 0x00;
+ f.filter.mask[0] = 0xff;
+ f.timeout = 0;
+ f.flags = DMX_IMMEDIATE_START | DMX_CHECK_CRC;
+
+ if ((patfd = open(dmxdev, O_RDWR)) < 0) {
+ perror("openening pat demux failed");
+ return -1;
+ }
+
+ if (ioctl(patfd, DMX_SET_FILTER, &f) == -1) {
+ perror("ioctl DMX_SET_FILTER failed");
+ close(patfd);
+ return -1;
+ }
+
+ while (!patread){
+ if (((count = read(patfd, buf, sizeof(buft))) < 0) && errno == EOVERFLOW)
+ count = read(patfd, buf, sizeof(buft));
+ if (count < 0) {
+ perror("read_sections: read error");
+ close(patfd);
+ return -1;
+ }
+
+ section_length = ((buf[1] & 0x0f) << 8) | buf[2];
+ if (count != section_length + 3)
+ continue;
+
+ buf += 8;
+ section_length -= 8;
+
+ patread = 1; /* assumes one section contains the whole pat */
+ while (section_length > 0) {
+ int service_id = (buf[0] << 8) | buf[1];
+ if (service_id == sid) {
+ pmt_pid = ((buf[2] & 0x1f) << 8) | buf[3];
+ section_length = 0;
+ }
+ buf += 4;
+ section_length -= 4;
+ }
+ }
+
+ close(patfd);
+ return pmt_pid;
+}
struct diseqc_cmd {
struct dvb_diseqc_master_cmd cmd;
@@ -151,14 +216,14 @@ static int diseqc(int secfd, int sat_no, int pol_vert, int hi_band)
{ {{0xe0, 0x10, 0x38, 0xf0, 0x00, 0x00}, 4}, 0 };
/* param: high nibble: reset bits, low nibble set bits,
- * bits are: option, position, polarizaion, band
+ * bits are: option, position, polarization, band
*/
cmd.cmd.msg[3] =
0xf0 | (((sat_no * 4) & 0x0f) | (hi_band ? 1 : 0) | (pol_vert ? 0 : 2));
diseqc_send_msg(secfd, pol_vert ? SEC_VOLTAGE_13 : SEC_VOLTAGE_18,
&cmd, hi_band ? SEC_TONE_ON : SEC_TONE_OFF,
- (sat_no / 4) % 2 ? SEC_MINI_B : SEC_MINI_A);
+ sat_no % 2 ? SEC_MINI_B : SEC_MINI_A);
return TRUE;
}
@@ -189,8 +254,9 @@ static int do_tune(int fefd, unsigned int ifreq, unsigned int sr)
static
-int check_frontend (int fe_fd, int dvr)
+int check_frontend (int fe_fd, int dvr, int human_readable)
{
+ (void)dvr;
fe_status_t status;
uint16_t snr, signal;
uint32_t ber, uncorrected_blocks;
@@ -210,8 +276,13 @@ int check_frontend (int fe_fd, int dvr)
if (ioctl(fe_fd, FE_READ_UNCORRECTED_BLOCKS, &uncorrected_blocks) == -1)
uncorrected_blocks = -2;
- printf ("status %02x | signal %04x | snr %04x | ber %08x | unc %08x | ",
- status, signal, snr, ber, uncorrected_blocks);
+ if (human_readable) {
+ printf ("status %02x | signal %3u%% | snr %3u%% | ber %d | unc %d | ",
+ status, (signal * 100) / 0xffff, (snr * 100) / 0xffff, ber, uncorrected_blocks);
+ } else {
+ printf ("status %02x | signal %04x | snr %04x | ber %08x | unc %08x | ",
+ status, signal, snr, ber, uncorrected_blocks);
+ }
if (status & FE_HAS_LOCK)
printf("FE_HAS_LOCK");
@@ -230,10 +301,12 @@ int check_frontend (int fe_fd, int dvr)
static
int zap_to(unsigned int adapter, unsigned int frontend, unsigned int demux,
unsigned int sat_no, unsigned int freq, unsigned int pol,
- unsigned int sr, unsigned int vpid, unsigned int apid, int dvr)
+ unsigned int sr, unsigned int vpid, unsigned int apid, int sid,
+ int dvr, int rec_psi, int bypass, int human_readable)
{
- char fedev[128], dmxdev[128];
- static int fefd, videofd, audiofd;
+ char fedev[128], dmxdev[128], auddev[128];
+ static int fefd, dmxfda, dmxfdv, audiofd = -1, patfd, pmtfd;
+ int pmtpid;
uint32_t ifreq;
int hiband, result;
static struct dvb_frontend_info fe_info;
@@ -241,6 +314,7 @@ int zap_to(unsigned int adapter, unsigned int frontend, unsigned int demux,
if (!fefd) {
snprintf(fedev, sizeof(fedev), FRONTENDDEVICE, adapter, frontend);
snprintf(dmxdev, sizeof(dmxdev), DEMUXDEVICE, adapter, demux);
+ snprintf(auddev, sizeof(auddev), AUDIODEVICE, adapter, demux);
printf("using '%s' and '%s'\n", fedev, dmxdev);
if ((fefd = open(fedev, O_RDWR | O_NONBLOCK)) < 0) {
@@ -262,18 +336,41 @@ int zap_to(unsigned int adapter, unsigned int frontend, unsigned int demux,
return FALSE;
}
- if ((videofd = open(dmxdev, O_RDWR)) < 0) {
+ if ((dmxfdv = open(dmxdev, O_RDWR)) < 0) {
perror("opening video demux failed");
close(fefd);
return FALSE;
}
- if ((audiofd = open(dmxdev, O_RDWR)) < 0) {
+ if ((dmxfda = open(dmxdev, O_RDWR)) < 0) {
perror("opening audio demux failed");
- close(videofd);
close(fefd);
return FALSE;
}
+
+ if (dvr == 0) /* DMX_OUT_DECODER */
+ audiofd = open(auddev, O_RDWR);
+
+ if (rec_psi){
+ if ((patfd = open(dmxdev, O_RDWR)) < 0) {
+ perror("opening pat demux failed");
+ close(audiofd);
+ close(dmxfda);
+ close(dmxfdv);
+ close(fefd);
+ return FALSE;
+ }
+
+ if ((pmtfd = open(dmxdev, O_RDWR)) < 0) {
+ perror("opening pmt demux failed");
+ close(patfd);
+ close(audiofd);
+ close(dmxfda);
+ close(dmxfdv);
+ close(fefd);
+ return FALSE;
+ }
+ }
}
hiband = 0;
@@ -293,15 +390,36 @@ int zap_to(unsigned int adapter, unsigned int frontend, unsigned int demux,
if (diseqc(fefd, sat_no, pol, hiband))
if (do_tune(fefd, ifreq, sr))
- if (set_demux(videofd, vpid, 0, dvr))
- if (set_demux(audiofd, apid, 1, dvr))
- result = TRUE;
-
- check_frontend (fefd, dvr);
+ if (set_demux(dmxfdv, vpid, DMX_PES_VIDEO, dvr))
+ if (audiofd >= 0)
+ (void)ioctl(audiofd, AUDIO_SET_BYPASS_MODE, bypass);
+ if (set_demux(dmxfda, apid, DMX_PES_AUDIO, dvr)) {
+ if (rec_psi) {
+ pmtpid = get_pmt_pid(dmxdev, sid);
+ if (pmtpid < 0) {
+ result = FALSE;
+ }
+ if (pmtpid == 0) {
+ fprintf(stderr,"couldn't find pmt-pid for sid %04x\n",sid);
+ result = FALSE;
+ }
+ if (set_demux(patfd, 0, DMX_PES_OTHER, dvr))
+ if (set_demux(pmtfd, pmtpid, DMX_PES_OTHER, dvr))
+ result = TRUE;
+ } else {
+ result = TRUE;
+ }
+ }
+
+ check_frontend (fefd, dvr, human_readable);
if (!interactive) {
- close(audiofd);
- close(videofd);
+ close(patfd);
+ close(pmtfd);
+ if (audiofd >= 0)
+ close(audiofd);
+ close(dmxfda);
+ close(dmxfdv);
close(fefd);
}
@@ -312,14 +430,15 @@ int zap_to(unsigned int adapter, unsigned int frontend, unsigned int demux,
static int read_channels(const char *filename, int list_channels,
uint32_t chan_no, const char *chan_name,
unsigned int adapter, unsigned int frontend,
- unsigned int demux, int dvr)
+ unsigned int demux, int dvr, int rec_psi,
+ int bypass, int human_readable)
{
FILE *cfp;
char buf[4096];
char inp[256];
char *field, *tmp, *p;
unsigned int line;
- unsigned int freq, pol, sat_no, sr, vpid, apid;
+ unsigned int freq, pol, sat_no, sr, vpid, apid, sid;
int ret;
again:
@@ -399,20 +518,41 @@ again:
goto syntax_err;
vpid = strtoul(field, NULL, 0);
+ if (!vpid)
+ vpid = 0x1fff;
if (!(field = strsep(&tmp, ":")))
goto syntax_err;
+ p = strchr(field, ';');
+
+ if (p) {
+ *p = '\0';
+ p++;
+ if (bypass) {
+ if (!p || !*p)
+ goto syntax_err;
+ field = p;
+ }
+ }
+
apid = strtoul(field, NULL, 0);
+ if (!apid)
+ apid = 0x1fff;
+
+ if (!(field = strsep(&tmp, ":")))
+ goto syntax_err;
+
+ sid = strtoul(field, NULL, 0);
printf("sat %u, frequency = %u MHz %c, symbolrate %u, "
- "vpid = 0x%04x, apid = 0x%04x\n",
- sat_no, freq, pol ? 'V' : 'H', sr, vpid, apid);
+ "vpid = 0x%04x, apid = 0x%04x sid = 0x%04x\n",
+ sat_no, freq, pol ? 'V' : 'H', sr, vpid, apid, sid);
fclose(cfp);
- ret = zap_to(adapter, frontend, demux,
- sat_no, freq * 1000, pol, sr, vpid, apid, dvr);
+ ret = zap_to(adapter, frontend, demux, sat_no, freq * 1000,
+ pol, sr, vpid, apid, sid, dvr, rec_psi, bypass, human_readable);
if (interactive)
goto again;
@@ -475,17 +615,22 @@ int main(int argc, char *argv[])
int list_channels = 0;
unsigned int chan_no = 0;
const char *chan_name = NULL;
- unsigned int adapter = 0, frontend = 0, demux = 0, dvr = 0;
+ unsigned int adapter = 0, frontend = 0, demux = 0, dvr = 0, rec_psi = 0;
+ int bypass = 0;
int opt, copt = 0;
+ int human_readable = 0;
lnb_type = *lnb_enum(0);
- while ((opt = getopt(argc, argv, "hqrn:a:f:d:c:l:xi")) != -1) {
+ while ((opt = getopt(argc, argv, "Hhqrpn:a:f:d:c:l:xib")) != -1) {
switch (opt)
{
case '?':
case 'h':
default:
bad_usage(argv[0], 0);
+ case 'b':
+ bypass = 1;
+ break;
case 'q':
list_channels = 1;
break;
@@ -501,6 +646,9 @@ int main(int argc, char *argv[])
case 'f':
frontend = strtoul(optarg, NULL, 0);
break;
+ case 'p':
+ rec_psi = 1;
+ break;
case 'd':
demux = strtoul(optarg, NULL, 0);
break;
@@ -517,6 +665,9 @@ int main(int argc, char *argv[])
case 'x':
exit_after_tuning = 1;
break;
+ case 'H':
+ human_readable = 1;
+ break;
case 'i':
interactive = 1;
exit_after_tuning = 1;
@@ -545,16 +696,21 @@ int main(int argc, char *argv[])
fprintf(stderr, "error: $HOME not set\n");
return TRUE;
}
- strncpy(chanfile, home, sizeof(chanfile));
- strcat(chanfile, "/.szap/" CHANNEL_FILE);
+ snprintf(chanfile, sizeof(chanfile),
+ "%s/.szap/%i/%s", home, adapter, CHANNEL_FILE);
+ if (access(chanfile, R_OK))
+ snprintf(chanfile, sizeof(chanfile),
+ "%s/.szap/%s", home, CHANNEL_FILE);
}
printf("reading channels from file '%s'\n", chanfile);
+ if (rec_psi)
+ dvr=1;
+
if (!read_channels(chanfile, list_channels, chan_no, chan_name,
- adapter, frontend, demux, dvr))
+ adapter, frontend, demux, dvr, rec_psi, bypass, human_readable))
return TRUE;
return FALSE;
}
-
diff --git a/util/szap/tzap.c b/util/szap/tzap.c
index 2527c23..cd87bfa 100644
--- a/util/szap/tzap.c
+++ b/util/szap/tzap.c
@@ -1,3 +1,24 @@
+/* tzap -- DVB-T zapping utility
+ */
+
+/*
+ * Added recording to a file
+ * arguments:
+ *
+ * -t timeout (seconds)
+ * -o filename output filename (use -o - for stdout)
+ * -s only print summary
+ * -S run silently (no output)
+ *
+ * Bernard Hatt 24/2/04
+ */
+
+
+
+#define _FILE_OFFSET_BITS 64
+#define _LARGEFILE_SOURCE 1
+#define _LARGEFILE64_SOURCE 1
+
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/ioctl.h>
@@ -9,15 +30,19 @@
#include <fcntl.h>
#include <ctype.h>
#include <errno.h>
+#include <signal.h>
#include <linux/dvb/frontend.h>
#include <linux/dvb/dmx.h>
-
static char FRONTEND_DEV [80];
static char DEMUX_DEV [80];
+static char DVR_DEV [80];
+static int timeout_flag=0;
+static int silent=0,timeout=0;
+static int exit_after_tuning;
-#define CHANNEL_FILE "/.tzap/channels.conf"
+#define CHANNEL_FILE "channels.conf"
#define ERROR(x...) \
do { \
@@ -68,14 +93,16 @@ static const Param guard_list [] = {
{"GUARD_INTERVAL_1_16", GUARD_INTERVAL_1_16},
{"GUARD_INTERVAL_1_32", GUARD_INTERVAL_1_32},
{"GUARD_INTERVAL_1_4", GUARD_INTERVAL_1_4},
- {"GUARD_INTERVAL_1_8", GUARD_INTERVAL_1_8}
+ {"GUARD_INTERVAL_1_8", GUARD_INTERVAL_1_8},
+ {"GUARD_INTERVAL_AUTO", GUARD_INTERVAL_AUTO}
};
static const Param hierarchy_list [] = {
{ "HIERARCHY_1", HIERARCHY_1 },
{ "HIERARCHY_2", HIERARCHY_2 },
{ "HIERARCHY_4", HIERARCHY_4 },
- { "HIERARCHY_NONE", HIERARCHY_NONE }
+ { "HIERARCHY_NONE", HIERARCHY_NONE },
+ { "HIERARCHY_AUTO", HIERARCHY_AUTO }
};
static const Param constellation_list [] = {
@@ -84,12 +111,14 @@ static const Param constellation_list [] = {
{ "QAM_16", QAM_16 },
{ "QAM_256", QAM_256 },
{ "QAM_32", QAM_32 },
- { "QAM_64", QAM_64 }
+ { "QAM_64", QAM_64 },
+ { "QAM_AUTO", QAM_AUTO }
};
static const Param transmissionmode_list [] = {
{ "TRANSMISSION_MODE_2K", TRANSMISSION_MODE_2K },
{ "TRANSMISSION_MODE_8K", TRANSMISSION_MODE_8K },
+ { "TRANSMISSION_MODE_AUTO", TRANSMISSION_MODE_AUTO }
};
#define LIST_SIZE(x) sizeof(x)/sizeof(Param)
@@ -100,7 +129,7 @@ int parse_param (int fd, const Param * plist, int list_size, int *param)
{
char c;
int character = 0;
- int index = 0;
+ int _index = 0;
while (1) {
if (read(fd, &c, 1) < 1)
@@ -111,9 +140,9 @@ int parse_param (int fd, const Param * plist, int list_size, int *param)
break;
while (toupper(c) != plist->name[character]) {
- index++;
+ _index++;
plist++;
- if (index >= list_size) /* parse error, no valid */
+ if (_index >= list_size) /* parse error, no valid */
return -2; /* parameter name found */
}
@@ -150,7 +179,10 @@ int parse_int(int fd, int *val)
return -3; /* to fit in 32 bit */
};
+ errno = 0;
*val = strtol(number, NULL, 10);
+ if (errno == ERANGE)
+ return -4;
return 0;
}
@@ -167,13 +199,18 @@ int find_channel(int fd, const char *channel)
if (read(fd, &c, 1) < 1)
return -1; /* EOF! */
- if (c == ':' && channel[character] == '\0')
- break;
-
- if (toupper(c) == toupper(channel[character]))
- character++;
- else
+ if ( '\n' == c ) /* start of line */
character = 0;
+ else if ( character >= 0 ) { /* we are in the namefield */
+
+ if (c == ':' && channel[character] == '\0')
+ break;
+
+ if (toupper(c) == toupper(channel[character]))
+ character++;
+ else
+ character = -1;
+ }
};
return 0;
@@ -211,12 +248,32 @@ int try_parse_param(int fd, const Param * plist, int list_size, int *param,
return err;
}
+static int check_fec(fe_code_rate_t *fec)
+{
+ switch (*fec)
+ {
+ case FEC_NONE:
+ *fec = FEC_AUTO;
+ case FEC_AUTO:
+ case FEC_1_2:
+ case FEC_2_3:
+ case FEC_3_4:
+ case FEC_5_6:
+ case FEC_7_8:
+ return 0;
+ default:
+ ;
+ }
+ return 1;
+}
+
int parse(const char *fname, const char *channel,
struct dvb_frontend_parameters *frontend, int *vpid, int *apid)
{
int fd;
int err;
+ int tmp;
if ((fd = open(fname, O_RDONLY | O_NONBLOCK)) < 0) {
PERROR ("could not open file '%s'", fname);
@@ -229,54 +286,57 @@ int parse(const char *fname, const char *channel,
return -2;
}
- if ((err = try_parse_int(fd, &frontend->frequency, "frequency")))
+ if ((err = try_parse_int(fd, &tmp, "frequency")))
return -3;
+ frontend->frequency = tmp;
if ((err = try_parse_param(fd,
inversion_list, LIST_SIZE(inversion_list),
- (int *) &frontend->inversion,
- "inversion")))
+ &tmp, "inversion")))
return -4;
+ frontend->inversion = tmp;
if ((err = try_parse_param(fd, bw_list, LIST_SIZE(bw_list),
- (int *) &frontend->u.ofdm.bandwidth,
- "bandwidth")))
+ &tmp, "bandwidth")))
return -5;
+ frontend->u.ofdm.bandwidth = tmp;
if ((err = try_parse_param(fd, fec_list, LIST_SIZE(fec_list),
- (int *) &frontend->u.ofdm.code_rate_HP,
- "code_rate_HP")))
+ &tmp, "code_rate_HP")))
+ return -6;
+ frontend->u.ofdm.code_rate_HP = tmp;
+ if (check_fec(&frontend->u.ofdm.code_rate_HP))
return -6;
if ((err = try_parse_param(fd, fec_list, LIST_SIZE(fec_list),
- (int *) &frontend->u.ofdm.code_rate_LP,
- "code_rate_LP")))
+ &tmp, "code_rate_LP")))
+ return -7;
+ frontend->u.ofdm.code_rate_LP = tmp;
+ if (check_fec(&frontend->u.ofdm.code_rate_LP))
return -7;
if ((err = try_parse_param(fd, constellation_list,
LIST_SIZE(constellation_list),
- (int *) &frontend->u.ofdm.constellation,
- "constellation")))
+ &tmp, "constellation")))
return -8;
+ frontend->u.ofdm.constellation = tmp;
if ((err = try_parse_param(fd, transmissionmode_list,
LIST_SIZE(transmissionmode_list),
- (int *) &frontend->u.ofdm.
- transmission_mode,
- "transmission_mode")))
+ &tmp, "transmission_mode")))
return -9;
+ frontend->u.ofdm.transmission_mode = tmp;
if ((err = try_parse_param(fd, guard_list, LIST_SIZE(guard_list),
- (int *) &frontend->u.ofdm.
- guard_interval, "guard_interval")))
+ &tmp, "guard_interval")))
return -10;
+ frontend->u.ofdm.guard_interval = tmp;
if ((err = try_parse_param(fd, hierarchy_list,
LIST_SIZE(hierarchy_list),
- (int *) &frontend->u.ofdm.
- hierarchy_information,
- "hierarchy_information")))
+ &tmp, "hierarchy_information")))
return -11;
+ frontend->u.ofdm.hierarchy_information = tmp;
if ((err = try_parse_int(fd, vpid, "Video PID")))
return -12;
@@ -330,7 +390,8 @@ int setup_frontend (int fe_fd, struct dvb_frontend_parameters *frontend)
return -1;
}
- printf ("tuning to %i Hz\n", frontend->frequency);
+ if (silent<2)
+ fprintf (stderr,"tuning to %i Hz\n", frontend->frequency);
if (ioctl(fe_fd, FE_SET_FRONTEND, frontend) < 0) {
PERROR("ioctl FE_SET_FRONTEND failed");
@@ -340,38 +401,115 @@ int setup_frontend (int fe_fd, struct dvb_frontend_parameters *frontend)
return 0;
}
+static void
+do_timeout(int x)
+{
+ (void)x;
+ if (timeout_flag==0)
+ {
+ timeout_flag=1;
+ alarm(2);
+ signal(SIGALRM, do_timeout);
+ }
+ else
+ {
+ /* something has gone wrong ... exit */
+ exit(1);
+ }
+}
-static
-int check_frontend (int fe_fd)
+static void
+print_frontend_stats (int fe_fd, int human_readable)
{
fe_status_t status;
- uint16_t snr, signal;
+ uint16_t snr, _signal;
uint32_t ber, uncorrected_blocks;
- do {
- ioctl(fe_fd, FE_READ_STATUS, &status);
- ioctl(fe_fd, FE_READ_SIGNAL_STRENGTH, &signal);
- ioctl(fe_fd, FE_READ_SNR, &snr);
- ioctl(fe_fd, FE_READ_BER, &ber);
- ioctl(fe_fd, FE_READ_UNCORRECTED_BLOCKS, &uncorrected_blocks);
+ ioctl(fe_fd, FE_READ_STATUS, &status);
+ ioctl(fe_fd, FE_READ_SIGNAL_STRENGTH, &_signal);
+ ioctl(fe_fd, FE_READ_SNR, &snr);
+ ioctl(fe_fd, FE_READ_BER, &ber);
+ ioctl(fe_fd, FE_READ_UNCORRECTED_BLOCKS, &uncorrected_blocks);
+
+ if (human_readable) {
+ printf ("status %02x | signal %3u%% | snr %3u%% | ber %d | unc %d | ",
+ status, (_signal * 100) / 0xffff, (snr * 100) / 0xffff, ber, uncorrected_blocks);
+ } else {
+ fprintf (stderr, "status %02x | signal %04x | snr %04x | ber %08x | unc %08x | ",
+ status, _signal, snr, ber, uncorrected_blocks);
+ }
- printf ("status %02x | signal %04x | snr %04x | "
- "ber %08x | unc %08x | ",
- status, signal, snr, ber, uncorrected_blocks);
+ if (status & FE_HAS_LOCK)
+ fprintf(stderr,"FE_HAS_LOCK");
- if (status & FE_HAS_LOCK)
- printf("FE_HAS_LOCK");
+ fprintf(stderr,"\n");
+}
+static
+int check_frontend (int fe_fd, int human_readable)
+{
+ fe_status_t status;
+ do {
+ ioctl(fe_fd, FE_READ_STATUS, &status);
+ if (!silent)
+ print_frontend_stats(fe_fd, human_readable);
+ if (exit_after_tuning && (status & FE_HAS_LOCK))
+ break;
usleep(1000000);
-
- printf("\n");
- } while (1);
+ } while (!timeout_flag);
+ if (silent < 2)
+ print_frontend_stats (fe_fd, human_readable);
return 0;
}
+#define BUFLEN (188*256)
+static
+void copy_to_file(int in_fd, int out_fd)
+{
+ char buf[BUFLEN];
+ int r;
+ long long int rc = 0LL;
+ while(timeout_flag==0)
+ {
+ r=read(in_fd,buf,BUFLEN);
+ if (r < 0) {
+ if (errno == EOVERFLOW) {
+ printf("buffer overrun\n");
+ continue;
+ }
+ PERROR("Read failed");
+ break;
+ }
+ if (write(out_fd,buf,r) < 0) {
+ PERROR("Write failed");
+ break;
+ }
+ rc+=r;
+ }
+ if (silent<2)
+ {
+ fprintf(stderr, "copied %lld bytes (%lld Kbytes/sec)\n",rc,rc/(1024*timeout));
+ }
+}
-static const char *usage = "\nusage: %s [-a adapter_num] [-f frontend_id] [-d demux_id] [-c conf_file] [-r] <channel name>\n\n";
+static char *usage =
+ "usage:\n"
+ " tzap [options] <channel_name>\n"
+ " zap to channel channel_name (case insensitive)\n"
+ " -a number : use given adapter (default 0)\n"
+ " -f number : use given frontend (default 0)\n"
+ " -d number : use given demux (default 0)\n"
+ " -c file : read channels list from 'file'\n"
+ " -x : exit after tuning\n"
+ " -r : set up /dev/dvb/adapterX/dvr0 for TS recording\n"
+ " -s : only print summary\n"
+ " -S : run silently (no output)\n"
+ " -H : human readable output\n"
+ " -F : set up frontend only, don't touch demux\n"
+ " -t number : timeout (seconds)\n"
+ " -o file : output filename (use -o - for stdout)\n"
+ " -h -? : display this help and exit\n";
int main(int argc, char **argv)
@@ -382,10 +520,14 @@ int main(int argc, char **argv)
char *channel = NULL;
int adapter = 0, frontend = 0, demux = 0, dvr = 0;
int vpid, apid;
- int frontend_fd, audio_fd, video_fd;
+ int frontend_fd, audio_fd = 0, video_fd = 0, dvr_fd, file_fd;
int opt;
+ int record = 0;
+ int frontend_only = 0;
+ char *filename = NULL;
+ int human_readable = 0;
- while ((opt = getopt(argc, argv, "hrn:a:f:d:c:")) != -1) {
+ while ((opt = getopt(argc, argv, "H?hrxRsFSn:a:f:d:c:t:o:")) != -1) {
switch (opt) {
case 'a':
adapter = strtoul(optarg, NULL, 0);
@@ -396,12 +538,34 @@ int main(int argc, char **argv)
case 'd':
demux = strtoul(optarg, NULL, 0);
break;
+ case 't':
+ timeout = strtoul(optarg, NULL, 0);
+ break;
+ case 'o':
+ filename = strdup(optarg);
+ record=1;
+ /* fall through */
case 'r':
dvr = 1;
break;
+ case 'x':
+ exit_after_tuning = 1;
+ break;
case 'c':
confname = optarg;
break;
+ case 's':
+ silent = 1;
+ break;
+ case 'S':
+ silent = 2;
+ break;
+ case 'F':
+ frontend_only = 1;
+ break;
+ case 'H':
+ human_readable = 1;
+ break;
case '?':
case 'h':
default:
@@ -424,17 +588,25 @@ int main(int argc, char **argv)
snprintf (DEMUX_DEV, sizeof(DEMUX_DEV),
"/dev/dvb/adapter%i/demux%i", adapter, demux);
- printf ("using '%s' and '%s'\n", FRONTEND_DEV, DEMUX_DEV);
+ snprintf (DVR_DEV, sizeof(DVR_DEV),
+ "/dev/dvb/adapter%i/dvr%i", adapter, demux);
+
+ if (silent<2)
+ fprintf (stderr,"using '%s' and '%s'\n", FRONTEND_DEV, DEMUX_DEV);
if (!confname)
{
+ int len = strlen(homedir) + strlen(CHANNEL_FILE) + 18;
if (!homedir)
ERROR ("$HOME not set");
- confname = malloc (strlen(homedir) + strlen(CHANNEL_FILE) + 1);
- memcpy (confname, homedir, strlen(homedir));
- memcpy (confname + strlen(homedir), CHANNEL_FILE,
- strlen(CHANNEL_FILE) + 1);
+ confname = malloc (len);
+ snprintf (confname, len, "%s/.tzap/%i/%s",
+ homedir, adapter, CHANNEL_FILE);
+ if (access (confname, R_OK))
+ snprintf (confname, len, "%s/.tzap/%s",
+ homedir, CHANNEL_FILE);
}
+ printf("reading channels from file '%s'\n", confname);
memset(&frontend_param, 0, sizeof(struct dvb_frontend_parameters));
@@ -449,12 +621,17 @@ int main(int argc, char **argv)
if (setup_frontend (frontend_fd, &frontend_param) < 0)
return -1;
+ if (frontend_only)
+ goto just_the_frontend_dude;
+
if ((video_fd = open(DEMUX_DEV, O_RDWR)) < 0) {
PERROR("failed opening '%s'", DEMUX_DEV);
return -1;
}
- printf ("video pid 0x%04x, audio pid 0x%04x\n", vpid, apid);
+ if (silent<2)
+ fprintf (stderr,"video pid 0x%04x, audio pid 0x%04x\n", vpid, apid);
+
if (set_pesfilter (video_fd, vpid, DMX_PES_VIDEO, dvr) < 0)
return -1;
@@ -466,7 +643,51 @@ int main(int argc, char **argv)
if (set_pesfilter (audio_fd, apid, DMX_PES_AUDIO, dvr) < 0)
return -1;
- check_frontend (frontend_fd);
+ signal(SIGALRM,do_timeout);
+ if (timeout>0)
+ alarm(timeout);
+
+
+ if (record)
+ {
+ if (filename!=NULL)
+ {
+ if (strcmp(filename,"-")!=0)
+ {
+ file_fd = open (filename,O_WRONLY|O_LARGEFILE|O_CREAT,0644);
+ if (file_fd<0)
+ {
+ PERROR("open of '%s' failed",filename);
+ return -1;
+ }
+ }
+ else
+ {
+ file_fd=1;
+ }
+ }
+ else
+ {
+ PERROR("Record mode but no filename!");
+ return -1;
+ }
+
+ if ((dvr_fd = open(DVR_DEV, O_RDONLY)) < 0) {
+ PERROR("failed opening '%s'", DVR_DEV);
+ return -1;
+ }
+ if (silent<2)
+ print_frontend_stats (frontend_fd, human_readable);
+
+ copy_to_file(dvr_fd,file_fd);
+
+ if (silent<2)
+ print_frontend_stats (frontend_fd, human_readable);
+ }
+ else {
+just_the_frontend_dude:
+ check_frontend (frontend_fd, human_readable);
+ }
close (audio_fd);
close (video_fd);
@@ -474,4 +695,3 @@ int main(int argc, char **argv)
return 0;
}
-
diff --git a/util/ttusb_dec_reset/Makefile b/util/ttusb_dec_reset/Makefile
index cde7de5..b2ca852 100644
--- a/util/ttusb_dec_reset/Makefile
+++ b/util/ttusb_dec_reset/Makefile
@@ -1,17 +1,19 @@
-CC = gcc
-RM = rm -f
-CFLAGS = -g -Wall -O2
-LFLAGS = -g -Wall
-LDFLAGS = -lusb
+# Makefile for linuxtv.org dvb-apps/util/ttusb_dec_reset
-OBJS = ttusb_dec_reset.o
-TARGET = ttusb_dec_reset
+binaries = ttusb_dec_reset
-$(TARGET): $(OBJS)
- $(CC) $(LFLAGS) $(LDFLAGS) -o $(TARGET) $(OBJS)
+ifneq ($(realpath $(binaries)),)
+inst_bin = $(binaries)
+endif
-.c.o:
- $(CC) $(CFLAGS) -c $< -o $@
+LDLIBS += -lusb
-clean:
- $(RM) *.o $(TARGET)
+.PHONY: all
+
+ifeq ($(ttusb_dec_reset),1)
+all: $(binaries)
+else
+all: clean
+endif
+
+include ../../Make.rules
diff --git a/util/ttusb_dec_reset/ttusb_dec_reset.c b/util/ttusb_dec_reset/ttusb_dec_reset.c
index 51ddfc7..54b3f83 100644
--- a/util/ttusb_dec_reset/ttusb_dec_reset.c
+++ b/util/ttusb_dec_reset/ttusb_dec_reset.c
@@ -25,10 +25,12 @@ void dec_reset(struct usb_device *dev)
}
}
-int main()
+int main(int argc, char *argv[])
{
struct usb_bus *busses;
struct usb_bus *bus;
+ (void) argc;
+ (void) argv;
usb_init();
usb_find_busses();
diff --git a/util/zap/Makefile b/util/zap/Makefile
new file mode 100644
index 0000000..35e0c6d
--- /dev/null
+++ b/util/zap/Makefile
@@ -0,0 +1,20 @@
+# Makefile for linuxtv.org dvb-apps/util/zap
+
+objects = zap_ca.o \
+ zap_dvb.o
+
+binaries = zap
+
+inst_bin = $(binaries)
+
+CPPFLAGS += -I../../lib
+LDFLAGS += -L../../lib/libdvbapi -L../../lib/libdvbsec -L../../lib/libdvbcfg -L../../lib/libdvben50221 -L../../lib/libucsi
+LDLIBS += -ldvbcfg -ldvben50221 -ldvbsec -ldvbapi -lucsi -lpthread
+
+.PHONY: all
+
+all: $(binaries)
+
+$(binaries): $(objects)
+
+include ../../Make.rules
diff --git a/util/zap/zap.c b/util/zap/zap.c
new file mode 100644
index 0000000..6f3df33
--- /dev/null
+++ b/util/zap/zap.c
@@ -0,0 +1,226 @@
+/*
+ ZAP utility
+
+ Copyright (C) 2004, 2005 Manu Abraham <abraham.manu@gmail.com>
+ Copyright (C) 2006 Andrew de Quincey (adq_dvb@lidskialf.net)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include <stdio.h>
+#include <unistd.h>
+#include <limits.h>
+#include <string.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <pthread.h>
+#include <sys/poll.h>
+#include <libdvbapi/dvbdemux.h>
+#include <libdvbapi/dvbaudio.h>
+#include <libdvbsec/dvbsec_cfg.h>
+#include <libucsi/mpeg/section.h>
+#include "zap_dvb.h"
+#include "zap_ca.h"
+
+
+static void signal_handler(int _signal);
+
+static int quit_app = 0;
+
+void usage(void)
+{
+ static const char *_usage = "\n"
+ " ZAP: A zapping application\n"
+ " Copyright (C) 2004, 2005, 2006 Manu Abraham (manu@kromtek.com)\n"
+ " Copyright (C) 2006 Andrew de Quincey (adq_dvb@lidskialf.net)\n\n"
+ " usage: zap <options> as follows:\n"
+ " -h help\n"
+ " -adapter <id> adapter to use (default 0)\n"
+ " -frontend <id> frontend to use (default 0)\n"
+ " -demux <id> demux to use (default 0)\n"
+ " -caslotnum <id> ca slot number to use (default 0)\n"
+ " -channels <filename> channels.conf file.\n"
+ " -secfile <filename> Optional sec.conf file.\n"
+ " -secid <secid> ID of the SEC configuration to use, one of:\n"
+ " -nomoveca Do not attempt to move CA descriptors from stream to programme level\n"
+ " <channel name>\n";
+ fprintf(stderr, "%s\n", _usage);
+
+ exit(1);
+}
+
+int find_channel(struct dvbcfg_zapchannel *channel, void *private_data)
+{
+ struct dvbcfg_zapchannel *tmpchannel = private_data;
+
+ if (strcmp(channel->name, tmpchannel->name) == 0) {
+ memcpy(tmpchannel, channel, sizeof(struct dvbcfg_zapchannel));
+ return 1;
+ }
+
+ return 0;
+}
+
+int main(int argc, char *argv[])
+{
+ int adapter_id = 0;
+ int frontend_id = 0;
+ int demux_id = 0;
+ int caslot_num = 0;
+ char *chanfile = "/etc/channels.conf";
+ char *secfile = NULL;
+ char *secid = NULL;
+ char *channel_name = NULL;
+ int moveca = 1;
+ int argpos = 1;
+ struct zap_dvb_params zap_dvb_params;
+ struct zap_ca_params zap_ca_params;
+
+ while(argpos != argc) {
+ if (!strcmp(argv[argpos], "-h")) {
+ usage();
+ } else if (!strcmp(argv[argpos], "-adapter")) {
+ if ((argc - argpos) < 2)
+ usage();
+ if (sscanf(argv[argpos+1], "%i", &adapter_id) != 1)
+ usage();
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-frontend")) {
+ if ((argc - argpos) < 2)
+ usage();
+ if (sscanf(argv[argpos+1], "%i", &frontend_id) != 1)
+ usage();
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-demux")) {
+ if ((argc - argpos) < 2)
+ usage();
+ if (sscanf(argv[argpos+1], "%i", &demux_id) != 1)
+ usage();
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-caslotnum")) {
+ if ((argc - argpos) < 2)
+ usage();
+ if (sscanf(argv[argpos+1], "%i", &caslot_num) != 1)
+ usage();
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-channels")) {
+ if ((argc - argpos) < 2)
+ usage();
+ chanfile = argv[argpos+1];
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-secfile")) {
+ if ((argc - argpos) < 2)
+ usage();
+ secfile = argv[argpos+1];
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-secid")) {
+ if ((argc - argpos) < 2)
+ usage();
+ secid = argv[argpos+1];
+ argpos+=2;
+ } else if (!strcmp(argv[argpos], "-nomoveca")) {
+ moveca = 0;
+ argpos++;
+ } else {
+ if ((argc - argpos) != 1)
+ usage();
+ channel_name = argv[argpos];
+ argpos++;
+ }
+ }
+
+ // the user didn't select anything!
+ if (channel_name == NULL)
+ usage();
+
+ // setup any signals
+ signal(SIGINT, signal_handler);
+ signal(SIGPIPE, SIG_IGN);
+
+ // start the CA stuff
+ zap_ca_params.adapter_id = adapter_id;
+ zap_ca_params.caslot_num = caslot_num;
+ zap_ca_params.moveca = moveca;
+ zap_ca_start(&zap_ca_params);
+
+ // find the requested channel
+ if (strlen(channel_name) >= sizeof(zap_dvb_params.channel.name)) {
+ fprintf(stderr, "Channel name is too long %s\n", channel_name);
+ exit(1);
+ }
+ FILE *channel_file = fopen(chanfile, "r");
+ if (channel_file == NULL) {
+ fprintf(stderr, "Could open channel file %s\n", chanfile);
+ exit(1);
+ }
+ memcpy(zap_dvb_params.channel.name, channel_name, strlen(channel_name) + 1);
+ if (dvbcfg_zapchannel_parse(channel_file, find_channel, &zap_dvb_params.channel) != 1) {
+ fprintf(stderr, "Unable to find requested channel %s\n", channel_name);
+ exit(1);
+ }
+ fclose(channel_file);
+
+ // default SEC with a DVBS card
+ if ((secid == NULL) && (zap_dvb_params.channel.fe_type == DVBFE_TYPE_DVBS))
+ secid = "UNIVERSAL";
+
+ // look it up if one were supplied
+ zap_dvb_params.valid_sec = 0;
+ if (secid != NULL) {
+ if (dvbsec_cfg_find(secfile, secid,
+ &zap_dvb_params.sec)) {
+ fprintf(stderr, "Unable to find suitable sec/lnb configuration for channel\n");
+ exit(1);
+ }
+ zap_dvb_params.valid_sec = 1;
+ }
+
+ // open the frontend
+ zap_dvb_params.fe = dvbfe_open(adapter_id, frontend_id, 0);
+ if (zap_dvb_params.fe == NULL) {
+ fprintf(stderr, "Failed to open frontend\n");
+ exit(1);
+ }
+
+ // start the DVB stuff
+ zap_dvb_params.adapter_id = adapter_id;
+ zap_dvb_params.frontend_id = frontend_id;
+ zap_dvb_params.demux_id = demux_id;
+ zap_dvb_start(&zap_dvb_params);
+
+ // the UI
+ while(!quit_app) {
+ sleep(1);
+ }
+
+ // shutdown DVB stuff
+ if (channel_name != NULL)
+ zap_dvb_stop();
+
+ // shutdown CA stuff
+ zap_ca_stop();
+
+ // done
+ exit(0);
+}
+
+static void signal_handler(int _signal)
+{
+ (void) _signal;
+
+ if (!quit_app) {
+ quit_app = 1;
+ }
+}
diff --git a/util/zap/zap_ca.c b/util/zap/zap_ca.c
new file mode 100644
index 0000000..b78fdcf
--- /dev/null
+++ b/util/zap/zap_ca.c
@@ -0,0 +1,198 @@
+/*
+ ZAP utility CA functions
+
+ Copyright (C) 2004, 2005 Manu Abraham <abraham.manu@gmail.com>
+ Copyright (C) 2006 Andrew de Quincey (adq_dvb@lidskialf.net)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/poll.h>
+#include <pthread.h>
+#include <libdvben50221/en50221_stdcam.h>
+#include "zap_ca.h"
+
+
+static int zap_ca_info_callback(void *arg, uint8_t slot_id, uint16_t session_number, uint32_t ca_id_count, uint16_t *ca_ids);
+static int zap_ai_callback(void *arg, uint8_t slot_id, uint16_t session_number,
+ uint8_t application_type, uint16_t application_manufacturer,
+ uint16_t manufacturer_code, uint8_t menu_string_length,
+ uint8_t *menu_string);
+static void *camthread_func(void* arg);
+
+static struct en50221_transport_layer *tl = NULL;
+static struct en50221_session_layer *sl = NULL;
+static struct en50221_stdcam *stdcam = NULL;
+
+static int ca_resource_connected = 0;
+
+static int camthread_shutdown = 0;
+static pthread_t camthread;
+static int seenpmt = 0;
+static int moveca = 0;
+
+void zap_ca_start(struct zap_ca_params *params)
+{
+ // create transport layer
+ tl = en50221_tl_create(1, 16);
+ if (tl == NULL) {
+ fprintf(stderr, "Failed to create transport layer\n");
+ return;
+ }
+
+ // create session layer
+ sl = en50221_sl_create(tl, 16);
+ if (sl == NULL) {
+ fprintf(stderr, "Failed to create session layer\n");
+ en50221_tl_destroy(tl);
+ return;
+ }
+
+ // create the stdcam instance
+ stdcam = en50221_stdcam_create(params->adapter_id, params->caslot_num, tl, sl);
+ if (stdcam == NULL) {
+ en50221_sl_destroy(sl);
+ en50221_tl_destroy(tl);
+ return;
+ }
+
+ // hook up the AI callbacks
+ if (stdcam->ai_resource) {
+ en50221_app_ai_register_callback(stdcam->ai_resource, zap_ai_callback, stdcam);
+ }
+
+ // hook up the CA callbacks
+ if (stdcam->ca_resource) {
+ en50221_app_ca_register_info_callback(stdcam->ca_resource, zap_ca_info_callback, stdcam);
+ }
+
+ // any other stuff
+ moveca = params->moveca;
+
+ // start the cam thread
+ pthread_create(&camthread, NULL, camthread_func, NULL);
+}
+
+void zap_ca_stop(void)
+{
+ if (stdcam == NULL)
+ return;
+
+ // shutdown the cam thread
+ camthread_shutdown = 1;
+ pthread_join(camthread, NULL);
+
+ // destroy session layer
+ en50221_sl_destroy(sl);
+
+ // destroy transport layer
+ en50221_tl_destroy(tl);
+
+ // destroy the stdcam
+ if (stdcam->destroy)
+ stdcam->destroy(stdcam, 1);
+}
+
+int zap_ca_new_pmt(struct mpeg_pmt_section *pmt)
+{
+ uint8_t capmt[4096];
+ int size;
+
+ if (stdcam == NULL)
+ return -1;
+
+ if (ca_resource_connected) {
+ fprintf(stderr, "Received new PMT - sending to CAM...\n");
+
+ // translate it into a CA PMT
+ int listmgmt = CA_LIST_MANAGEMENT_ONLY;
+ if (seenpmt) {
+ listmgmt = CA_LIST_MANAGEMENT_UPDATE;
+ }
+ seenpmt = 1;
+
+ if ((size = en50221_ca_format_pmt(pmt, capmt, sizeof(capmt), moveca, listmgmt,
+ CA_PMT_CMD_ID_OK_DESCRAMBLING)) < 0) {
+ fprintf(stderr, "Failed to format PMT\n");
+ return -1;
+ }
+
+ // set it
+ if (en50221_app_ca_pmt(stdcam->ca_resource, stdcam->ca_session_number, capmt, size)) {
+ fprintf(stderr, "Failed to send PMT\n");
+ return -1;
+ }
+
+ // we've seen this PMT
+ return 1;
+ }
+
+ return 0;
+}
+
+void zap_ca_new_dvbtime(time_t dvb_time)
+{
+ if (stdcam == NULL)
+ return;
+
+ if (stdcam->dvbtime)
+ stdcam->dvbtime(stdcam, dvb_time);
+}
+
+static void *camthread_func(void* arg)
+{
+ (void) arg;
+
+ while(!camthread_shutdown) {
+ stdcam->poll(stdcam);
+ }
+
+ return 0;
+}
+
+static int zap_ai_callback(void *arg, uint8_t slot_id, uint16_t session_number,
+ uint8_t application_type, uint16_t application_manufacturer,
+ uint16_t manufacturer_code, uint8_t menu_string_length,
+ uint8_t *menu_string)
+{
+ (void) arg;
+ (void) slot_id;
+ (void) session_number;
+
+ printf("CAM Application type: %02x\n", application_type);
+ printf("CAM Application manufacturer: %04x\n", application_manufacturer);
+ printf("CAM Manufacturer code: %04x\n", manufacturer_code);
+ printf("CAM Menu string: %.*s\n", menu_string_length, menu_string);
+
+ return 0;
+}
+
+static int zap_ca_info_callback(void *arg, uint8_t slot_id, uint16_t session_number, uint32_t ca_id_count, uint16_t *ca_ids)
+{
+ (void) arg;
+ (void) slot_id;
+ (void) session_number;
+
+ printf("CAM supports the following ca system ids:\n");
+ uint32_t i;
+ for(i=0; i< ca_id_count; i++) {
+ printf(" 0x%04x\n", ca_ids[i]);
+ }
+ ca_resource_connected = 1;
+ return 0;
+}
diff --git a/util/zap/zap_ca.h b/util/zap/zap_ca.h
new file mode 100644
index 0000000..5df45fd
--- /dev/null
+++ b/util/zap/zap_ca.h
@@ -0,0 +1,37 @@
+/*
+ ZAP utility CA functions
+
+ Copyright (C) 2004, 2005 Manu Abraham <abraham.manu@gmail.com>
+ Copyright (C) 2006 Andrew de Quincey (adq_dvb@lidskialf.net)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#ifndef ZAP_CA_H
+#define ZAP_CA_H 1
+
+struct zap_ca_params {
+ int adapter_id;
+ int caslot_num;
+ int moveca;
+};
+
+extern void zap_ca_start(struct zap_ca_params *params);
+extern void zap_ca_stop(void);
+
+extern int zap_ca_new_pmt(struct mpeg_pmt_section *pmt);
+extern void zap_ca_new_dvbtime(time_t dvb_time);
+
+#endif
diff --git a/util/zap/zap_dvb.c b/util/zap/zap_dvb.c
new file mode 100644
index 0000000..677e05e
--- /dev/null
+++ b/util/zap/zap_dvb.c
@@ -0,0 +1,353 @@
+/*
+ ZAP utility DVB functions
+
+ Copyright (C) 2004, 2005 Manu Abraham <abraham.manu@gmail.com>
+ Copyright (C) 2006 Andrew de Quincey (adq_dvb@lidskialf.net)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include <stdio.h>
+#include <unistd.h>
+#include <limits.h>
+#include <string.h>
+#include <signal.h>
+#include <pthread.h>
+#include <sys/poll.h>
+#include <libdvbapi/dvbdemux.h>
+#include <libucsi/section.h>
+#include <libucsi/mpeg/section.h>
+#include <libucsi/dvb/section.h>
+#include "zap_dvb.h"
+#include "zap_ca.h"
+
+#define FE_STATUS_PARAMS (DVBFE_INFO_LOCKSTATUS|DVBFE_INFO_SIGNAL_STRENGTH|DVBFE_INFO_BER|DVBFE_INFO_SNR|DVBFE_INFO_UNCORRECTED_BLOCKS)
+
+static int dvbthread_shutdown = 0;
+static pthread_t dvbthread;
+
+static int pat_version = -1;
+static int ca_pmt_version = -1;
+
+static void *dvbthread_func(void* arg);
+
+static void process_pat(int pat_fd, struct zap_dvb_params *params, int *pmt_fd, struct pollfd *pollfd);
+static void process_tdt(int tdt_fd);
+static void process_pmt(int pmt_fd, struct zap_dvb_params *params);
+static int create_section_filter(int adapter, int demux, uint16_t pid, uint8_t table_id);
+
+
+int zap_dvb_start(struct zap_dvb_params *params)
+{
+ pthread_create(&dvbthread, NULL, dvbthread_func, (void*) params);
+ return 0;
+}
+
+void zap_dvb_stop(void)
+{
+ dvbthread_shutdown = 1;
+ pthread_join(dvbthread, NULL);
+}
+
+static void *dvbthread_func(void* arg)
+{
+ int tune_state = 0;
+ int pat_fd = -1;
+ int pmt_fd = -1;
+ int tdt_fd = -1;
+ struct pollfd pollfds[3];
+
+ struct zap_dvb_params *params = (struct zap_dvb_params *) arg;
+
+ // create PAT filter
+ if ((pat_fd = create_section_filter(params->adapter_id, params->demux_id,
+ TRANSPORT_PAT_PID, stag_mpeg_program_association)) < 0) {
+ fprintf(stderr, "Failed to create PAT section filter\n");
+ exit(1);
+ }
+ pollfds[0].fd = pat_fd;
+ pollfds[0].events = POLLIN|POLLPRI|POLLERR;
+
+ // create TDT filter
+ if ((tdt_fd = create_section_filter(params->adapter_id, params->demux_id, TRANSPORT_TDT_PID, stag_dvb_time_date)) < 0) {
+ fprintf(stderr, "Failed to create TDT section filter\n");
+ exit(1);
+ }
+ pollfds[1].fd = tdt_fd;
+ pollfds[1].events = POLLIN|POLLPRI|POLLERR;
+
+ // zero PMT filter
+ pollfds[2].fd = 0;
+ pollfds[2].events = 0;
+
+ // the DVB loop
+ while(!dvbthread_shutdown) {
+ // tune frontend + monitor lock status
+ if (tune_state == 0) {
+ // get the type of frontend
+ struct dvbfe_info result;
+ char *types;
+ memset(&result, 0, sizeof(result));
+ dvbfe_get_info(params->fe, 0, &result, DVBFE_INFO_QUERYTYPE_IMMEDIATE, 0);
+ switch(result.type) {
+ case DVBFE_TYPE_DVBS:
+ types = "DVB-S";
+ break;
+ case DVBFE_TYPE_DVBC:
+ types = "DVB-C";
+ break;
+ case DVBFE_TYPE_DVBT:
+ types = "DVB-T";
+ break;
+ case DVBFE_TYPE_ATSC:
+ types = "ATSC";
+ break;
+ default:
+ types = "Unknown";
+ }
+ fprintf(stderr, "Using frontend \"%s\", type %s\n", result.name, types);
+
+ // do we have a valid SEC configuration?
+ struct dvbsec_config *sec = NULL;
+ if (params->valid_sec)
+ sec = &params->sec;
+
+ // tune!
+ if (dvbsec_set(params->fe,
+ sec,
+ params->channel.polarization,
+ (params->channel.diseqc_switch & 0x01) ? DISEQC_SWITCH_B : DISEQC_SWITCH_A,
+ (params->channel.diseqc_switch & 0x02) ? DISEQC_SWITCH_B : DISEQC_SWITCH_A,
+ &params->channel.fe_params,
+ 0)) {
+ fprintf(stderr, "Failed to set frontend\n");
+ exit(1);
+ }
+
+ tune_state++;
+ } else if (tune_state == 1) {
+ struct dvbfe_info result;
+ memset(&result, 0, sizeof(result));
+ if (dvbfe_get_info(params->fe,
+ FE_STATUS_PARAMS,
+ &result,
+ DVBFE_INFO_QUERYTYPE_IMMEDIATE,
+ 0) != FE_STATUS_PARAMS) {
+ fprintf(stderr, "Problem retrieving frontend information: %m\n");
+ }
+
+ fprintf(stderr, "status %c%c%c%c%c | signal %04x | snr %04x | ber %08x | unc %08x | %s\r",
+ result.signal ? 'S' : ' ',
+ result.carrier ? 'C' : ' ',
+ result.viterbi ? 'V' : ' ',
+ result.sync ? 'Y' : ' ',
+ result.lock ? 'L' : ' ',
+ result.signal_strength,
+ result.snr,
+ result.ber,
+ result.ucblocks,
+ result.lock ? "FE_HAS_LOCK" : "");
+ fflush(stderr);
+
+ if (result.lock) {
+ tune_state++;
+ fprintf(stderr, "\n");
+ fflush(stderr);
+ } else {
+ usleep(500000);
+ }
+ }
+
+ // is there SI data?
+ int count = poll(pollfds, 3, 100);
+ if (count < 0) {
+ fprintf(stderr, "Poll error\n");
+ break;
+ }
+ if (count == 0) {
+ continue;
+ }
+
+ // PAT
+ if (pollfds[0].revents & (POLLIN|POLLPRI)) {
+ process_pat(pat_fd, params, &pmt_fd, &pollfds[2]);
+ }
+
+ // TDT
+ if (pollfds[1].revents & (POLLIN|POLLPRI)) {
+ process_tdt(tdt_fd);
+ }
+
+ // PMT
+ if (pollfds[2].revents & (POLLIN|POLLPRI)) {
+ process_pmt(pmt_fd, params);
+ }
+ }
+
+ // close demuxers
+ if (pat_fd != -1)
+ close(pat_fd);
+ if (pmt_fd != -1)
+ close(pmt_fd);
+ if (tdt_fd != -1)
+ close(tdt_fd);
+
+ return 0;
+}
+
+static void process_pat(int pat_fd, struct zap_dvb_params *params, int *pmt_fd, struct pollfd *pollfd)
+{
+ int size;
+ uint8_t sibuf[4096];
+
+ // read the section
+ if ((size = read(pat_fd, sibuf, sizeof(sibuf))) < 0) {
+ return;
+ }
+
+ // parse section
+ struct section *section = section_codec(sibuf, size);
+ if (section == NULL) {
+ return;
+ }
+
+ // parse section_ext
+ struct section_ext *section_ext = section_ext_decode(section, 0);
+ if (section_ext == NULL) {
+ return;
+ }
+ if (pat_version == section_ext->version_number) {
+ return;
+ }
+
+ // parse PAT
+ struct mpeg_pat_section *pat = mpeg_pat_section_codec(section_ext);
+ if (pat == NULL) {
+ return;
+ }
+
+ // try and find the requested program
+ struct mpeg_pat_program *cur_program;
+ mpeg_pat_section_programs_for_each(pat, cur_program) {
+ if (cur_program->program_number == params->channel.service_id) {
+ // close old PMT fd
+ if (*pmt_fd != -1)
+ close(*pmt_fd);
+
+ // create PMT filter
+ if ((*pmt_fd = create_section_filter(params->adapter_id, params->demux_id,
+ cur_program->pid, stag_mpeg_program_map)) < 0) {
+ return;
+ }
+ pollfd->fd = *pmt_fd;
+ pollfd->events = POLLIN|POLLPRI|POLLERR;
+
+ // we have a new PMT pid
+ ca_pmt_version = -1;
+ break;
+ }
+ }
+
+ // remember the PAT version
+ pat_version = section_ext->version_number;
+}
+
+static void process_tdt(int tdt_fd)
+{
+ int size;
+ uint8_t sibuf[4096];
+
+ // read the section
+ if ((size = read(tdt_fd, sibuf, sizeof(sibuf))) < 0) {
+ return;
+ }
+
+ // parse section
+ struct section *section = section_codec(sibuf, size);
+ if (section == NULL) {
+ return;
+ }
+
+ // parse TDT
+ struct dvb_tdt_section *tdt = dvb_tdt_section_codec(section);
+ if (tdt == NULL) {
+ return;
+ }
+
+ // done
+ zap_ca_new_dvbtime(dvbdate_to_unixtime(tdt->utc_time));
+}
+
+static void process_pmt(int pmt_fd, struct zap_dvb_params *params)
+{
+ int size;
+ uint8_t sibuf[4096];
+
+ // read the section
+ if ((size = read(pmt_fd, sibuf, sizeof(sibuf))) < 0) {
+ return;
+ }
+
+ // parse section
+ struct section *section = section_codec(sibuf, size);
+ if (section == NULL) {
+ return;
+ }
+
+ // parse section_ext
+ struct section_ext *section_ext = section_ext_decode(section, 0);
+ if (section_ext == NULL) {
+ return;
+ }
+ if ((section_ext->table_id_ext != params->channel.service_id) ||
+ (section_ext->version_number == ca_pmt_version)) {
+ return;
+ }
+
+ // parse PMT
+ struct mpeg_pmt_section *pmt = mpeg_pmt_section_codec(section_ext);
+ if (pmt == NULL) {
+ return;
+ }
+
+ // do ca handling
+ if (zap_ca_new_pmt(pmt) == 1)
+ ca_pmt_version = pmt->head.version_number;
+}
+
+static int create_section_filter(int adapter, int demux, uint16_t pid, uint8_t table_id)
+{
+ int demux_fd = -1;
+ uint8_t filter[18];
+ uint8_t mask[18];
+
+ // open the demuxer
+ if ((demux_fd = dvbdemux_open_demux(adapter, demux, 0)) < 0) {
+ return -1;
+ }
+
+ // create a section filter
+ memset(filter, 0, sizeof(filter));
+ memset(mask, 0, sizeof(mask));
+ filter[0] = table_id;
+ mask[0] = 0xFF;
+ if (dvbdemux_set_section_filter(demux_fd, pid, filter, mask, 1, 1)) {
+ close(demux_fd);
+ return -1;
+ }
+
+ // done
+ return demux_fd;
+}
diff --git a/util/zap/zap_dvb.h b/util/zap/zap_dvb.h
new file mode 100644
index 0000000..d2a219a
--- /dev/null
+++ b/util/zap/zap_dvb.h
@@ -0,0 +1,41 @@
+/*
+ ZAP utility DVB functions
+
+ Copyright (C) 2004, 2005 Manu Abraham <abraham.manu@gmail.com>
+ Copyright (C) 2006 Andrew de Quincey (adq_dvb@lidskialf.net)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of
+ the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#ifndef ZAP_DVB_H
+#define ZAP_DVB_H 1
+
+#include <libdvbcfg/dvbcfg_zapchannel.h>
+#include <libdvbsec/dvbsec_api.h>
+
+struct zap_dvb_params {
+ int adapter_id;
+ int frontend_id;
+ int demux_id;
+ struct dvbcfg_zapchannel channel;
+ struct dvbsec_config sec;
+ int valid_sec;
+ struct dvbfe_handle *fe;
+};
+
+extern int zap_dvb_start(struct zap_dvb_params *params);
+extern void zap_dvb_stop(void);
+
+#endif