aboutsummaryrefslogtreecommitdiffstats
path: root/util/szap
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/szap
parent1c6e1f28f54ec2606c23936c1d8689f2be55a86c (diff)
parentab959d7b4194715870128e616b8e29d4a101e488 (diff)
downloadlinux-dvb-apps-debian/1.1.1+rev1207-1.tar.gz
Imported Debian patch 1.1.1+rev1207-1debian/1.1.1+rev1207-1
Diffstat (limited to '')
-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.c101
-rw-r--r--util/szap/lnb.h22
-rw-r--r--util/szap/szap.c222
-rw-r--r--util/szap/tzap.c344
41 files changed, 2028 insertions, 690 deletions
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/szap/lnb.c b/util/szap/lnb.c
new file mode 100644
index 0000000..9052d1c
--- /dev/null
+++ b/util/szap/lnb.c
@@ -0,0 +1,101 @@
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include "lnb.h"
+
+static char *univ_desc[] = {
+ "Europe",
+ "10800 to 11800 MHz and 11600 to 12700 Mhz",
+ "Dual LO, loband 9750, hiband 10600 MHz",
+ (char *)NULL };
+
+static char *dbs_desc[] = {
+ "Expressvu, North America",
+ "12200 to 12700 MHz",
+ "Single LO, 11250 MHz",
+ (char *)NULL };
+
+static char *standard_desc[] = {
+ "10945 to 11450 Mhz",
+ "Single LO, 10000 Mhz",
+ (char *)NULL };
+
+static char *enhan_desc[] = {
+ "Astra",
+ "10700 to 11700 MHz",
+ "Single LO, 9750 MHz",
+ (char *)NULL };
+
+static char *cband_desc[] = {
+ "Big Dish",
+ "3700 to 4200 MHz",
+ "Single LO, 5150 Mhz",
+ (char *)NULL };
+
+static struct lnb_types_st lnbs[] = {
+ {"UNIVERSAL", univ_desc, 9750, 10600, 11700 },
+ {"DBS", dbs_desc, 11250, 0, 0 },
+ {"STANDARD", standard_desc, 10000, 0, 0 },
+ {"ENHANCED", enhan_desc, 9750, 0, 0 },
+ {"C-BAND", cband_desc, 5150, 0, 0 }
+};
+
+/* Enumerate through standard types of LNB's until NULL returned.
+ * Increment curno each time
+ */
+
+struct lnb_types_st *
+lnb_enum(int curno)
+{
+ if (curno >= (int) (sizeof(lnbs) / sizeof(lnbs[0])))
+ return (struct lnb_types_st *)NULL;
+ return &lnbs[curno];
+}
+
+/* Decode an lnb type, for example given on a command line
+ * If alpha and standard type, e.g. "Universal" then match that
+ * otherwise low[,high[,switch]]
+ */
+
+int
+lnb_decode(char *str, struct lnb_types_st *lnbp)
+{
+int i;
+char *cp, *np;
+
+ memset(lnbp, 0, sizeof(*lnbp));
+ cp = str;
+ while(*cp && isspace(*cp))
+ cp++;
+ if (isalpha(*cp)) {
+ for (i = 0; i < (int)(sizeof(lnbs) / sizeof(lnbs[0])); i++) {
+ if (!strcasecmp(lnbs[i].name, cp)) {
+ *lnbp = lnbs[i];
+ return 1;
+ }
+ }
+ return -1;
+ }
+ if (*cp == '\0' || !isdigit(*cp))
+ return -1;
+ lnbp->low_val = strtoul(cp, &np, 0);
+ if (lnbp->low_val == 0)
+ return -1;
+ cp = np;
+ while(*cp && (isspace(*cp) || *cp == ','))
+ cp++;
+ if (*cp == '\0')
+ return 1;
+ if (!isdigit(*cp))
+ return -1;
+ lnbp->high_val = strtoul(cp, &np, 0);
+ cp = np;
+ while(*cp && (isspace(*cp) || *cp == ','))
+ cp++;
+ if (*cp == '\0')
+ return 1;
+ if (!isdigit(*cp))
+ return -1;
+ lnbp->switch_val = strtoul(cp, NULL, 0);
+ return 1;
+}
diff --git a/util/szap/lnb.h b/util/szap/lnb.h
new file mode 100644
index 0000000..6370fd4
--- /dev/null
+++ b/util/szap/lnb.h
@@ -0,0 +1,22 @@
+struct lnb_types_st {
+ char *name;
+ char **desc;
+ unsigned long low_val;
+ unsigned long high_val; /* zero indicates no hiband */
+ unsigned long switch_val; /* zero indicates no hiband */
+};
+
+/* Enumerate through standard types of LNB's until NULL returned.
+ * Increment curno each time
+ */
+
+struct lnb_types_st *
+lnb_enum(int curno);
+
+/* Decode an lnb type, for example given on a command line
+ * If alpha and standard type, e.g. "Universal" then match that
+ * otherwise low[,high[,switch]]
+ */
+
+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;
}
-