From 6727879984ee6e38ffb6451d9626fb13c371d49e Mon Sep 17 00:00:00 2001 From: Daniel STAN Date: Thu, 13 Dec 2012 20:26:12 +0100 Subject: [PATCH] [tv] ajout d'un peu de doc/nouveaux multiplex + cleanup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ignore-this: 49e444723f194cd89130ebc401dcd6b2 J'ai viré les anciens fichiers de conf. On rajoute de plus la définition des deux nouveaux transpondeurs. Puisque je me posais quelques questions techniques (quelles fréquences ? quels canaux ?), j'ai rajouté un peu de doc au passage. darcs-hash:20121213192612-28565-0147e282ce0b2746af200eb5bfbc33836cad0b70.gz --- tv/genconf/sat_base.py | 346 ----------------------------------- tv/genconf/sat_base_ng.py | 68 ++++++- tv/genconf/sat_genconf.py | 373 -------------------------------------- 3 files changed, 66 insertions(+), 721 deletions(-) delete mode 100755 tv/genconf/sat_base.py delete mode 100755 tv/genconf/sat_genconf.py diff --git a/tv/genconf/sat_base.py b/tv/genconf/sat_base.py deleted file mode 100755 index 9a68de96..00000000 --- a/tv/genconf/sat_base.py +++ /dev/null @@ -1,346 +0,0 @@ -#! /usr/bin/env python -# -*- coding: iso8859-15 -*- - -""" -Configuration de base des différents transpondeurs disponibles -Ce fichier contient la liste des chaines pour chaque transpondeur. - -Pour chaque chaine, on doit indiquer le nom de la chaine et au minimum : -- Le pid PMT, ce pid permet a mumudvb de trouver les autres -""" - -#Auteur : Frédéric Pauget -#Maintenance et adaptations : DUBOST Brice -#Licence : GPLv2 - -from commands import getoutput -from time import sleep -import os, socket - -IP = socket.gethostbyaddr(socket.gethostname())[-1][0] - -class CarteOqp(Exception) : - """ La carte est déja utilisée """ - -class NotRunning(Exception) : - """ La carte ne diffuse rien """ - -class carte : - """ Classe parent de toute classe de transpondeur """ - # Niveux de verbosite : - # 0 : ne dit rien - # 1 : messages à caractères informatifs - # 2 : messages de debug - # 3 : ne permet pas à mumudvb de daemonizer - verbose = 3 - - CONF_FILE = "/etc/sat/carte%i.conf" # %i : numero de la carte - - timeout_accord=20 #en secondes - timeout_no_diff=0 #en secondes - - entete_conf = """### Fichier genere, NE PAS EDITER -autoconfiguration=1 -autoconf_pid_update=1 -multicast_auto_join=1 -dont_send_scrambled=1 -dvr_buffer_size=100 -sap=1 -sap_organisation=crans -common_port=1234 -freq=%(freq)i -pol=%(pol)s -srate=%(srate)i -card=%(card)i -timeout_accord=%(timeout_accord)i -timeout_no_diff=%(timeout_no_diff)i -#----- -""" - - entete_conf_TNT = """### Fichier genere, NE PAS EDITER -autoconfiguration=1 -autoconf_pid_update=1 -multicast_auto_join=1 -dont_send_scrambled=1 -dvr_buffer_size=100 -sap=1 -sap_organisation=crans -common_port=1234 -freq=%(freq)i -qam=%(qam)s -trans_mode=%(trans_mode)s -bandwidth=%(bandwidth)s -guardinterval=%(guardinterval)s -coderate=%(coderate)s -card=%(card)i -timeout_accord=%(timeout_accord)i -timeout_no_diff=%(timeout_no_diff)i -""" - - chaine_template = """ip=%(ip)s -sap_group=%(sap_group)s -name=%(name)s -pids=%(pids)s -#----- -""" - - autoconf2_template = """common_port=1234 -autoconfiguration=2 -autoconf_ip_header=%(ip)s -sap_default_group=various -#----- -""" - - - def __cmp__(a,b) : - for attr in ( 'card', 'freq', 'chaines' ) : - if getattr(a,attr) != getattr(b,attr) : - return -2 - return 0 - - def __init__(self,card) : - """ Initalisation card est le numéro (entier) de la carte - correspondante """ - try : - self.freq = int(str(self.__class__).split('_')[-1]) - except : - # On ne pourra pas faire grand chose à part killer le flux de la carte - self.freq = '' - pass - self.card = card - - def gen_conf(self) : - """ Génère le fichier de conf """ - if not self.freq : - if self.verbose > 1 : print "Instance ne permettant pas la génération de la conf" - return - - fd = open(self.CONF_FILE % self.card,'w') - # Entète du fichier - try: - fd.write( self.entete_conf_TNT % - { 'qam' : self.qam, 'trans_mode' : self.trans_mode , - 'bandwidth' : self.bandwidth, 'guardinterval' : self.guardinterval , - 'coderate' : self.coderate, - 'freq' : self.freq , 'card' : self.card , - 'timeout_accord' : self.timeout_accord , - 'timeout_no_diff' : self.timeout_no_diff } ) - except: - fd.write( self.entete_conf % - { 'pol' : self.pol, 'srate' : self.srate , - 'freq' : self.freq , 'card' : self.card , - 'timeout_accord' : self.timeout_accord , - 'timeout_no_diff' : self.timeout_no_diff } ) - - # Chaines - n = 0 - for pids, (sap_group, name) in self.chaines.items() : - ip = '239.%s.20%i.2%02i' % ( IP.split('.')[-1], self.card, n) - n += 1 - fd.write(self.chaine_template % vars()) - - #Si pas de chaines, on passe en autoconfiguration=2 - if not n : - ip = '239.%s' % ( IP.split('.')[-1]) - fd.write(self.autoconf2_template % { "ip" : ip}) - - fd.close() - - def start(self) : - """ Lance la diffusion """ - if not self.freq : - if self.verbose > 1 : print "Instance ne permettant pas le lancement d'un flux" - return - - if self.verbose >0 : - print "Generation de la conf de %s sur la carte %i" % (str(self.__class__).split('.')[-1], self.card) - - self.gen_conf() - if self.verbose >0 : print " OK" - - -class Hotbird_10853(carte) : - pol='h' - srate=27500 - chaines = { - '140' : ('x-ero' , 'x-ero Eurotic TV'), - '4100' : ('eng' , 'eng Physique TV ')} - -class Hotbird_11034(carte) : - pol='v' - srate=27500 - chaines = { - '500' : ('ara' , 'ara fra 2M Monde'), - '550' : ('ara' , 'ara fra radio 2M'), - '1200' : ('fra' , 'fra Telesud'), - '1400' : ('eng' , 'eng Al Jazeera')} - - -class Hotbird_11054(carte) : - pol='h' - srate=27500 - chaines = { - '1026' : ('ger' , 'ger RTL Schweiz'), - '1033' : ('ger' , 'ger ZDF')} - - -class Hotbird_11137(carte) : - pol='h' - srate=27500 - chaines = { - '717' : ('fra' , 'fra TV5MONDE FBS'), - '719' : ('fra' , 'fra TV5MONDE Europe'), - '257' : ('ara' , 'ara ANN'), - '258' : ('ara' , 'ara Kurdistan TV')} - -class Hotbird_11240(carte) : - pol='v' - srate=27500 - chaines = { - '244' : ('fra' , 'fra France 24'), - '247' : ('eng' , 'eng France 24'), - '401' : ('fra' , 'fra RTBF sat')} - - -class Hotbird_11604(carte) : - pol='h' - srate=27500 - chaines = { - '500' : ('ita' , 'ita TLA'), - '600' : ('ger' , 'ger Das Erste'), - '700' : ('ger' , 'ger DW TV'), - '800' : ('divers' , 'divers DW tv arabic (ara eng ger)'), - '900' : ('ger' , 'ger RTL2 Schweiz'), - '2600' : ('ger' , 'ger Erde Mensch'), - '1600' : ('x-ero' , 'x-ero hot arab tv'), - '3200' : ('x-ero' , 'x-ero xxx Action TV')} - -class Hotbird_11623(carte) : - pol='v' - srate=27500 - chaines = {} - -class Hotbird_11642(carte) : - pol='h' - srate=27500 - chaines = { - '5003' : ('eng' , 'eng Bloomberg Europe'), - '5004' : ('eng' , 'eng Bloomberg Europe"'), - '5005' : ('eng' , 'eng Bloomberg U.K.'), - '256' : ('gre' , 'gre ERT World')} - -class Hotbird_11727(carte) : - pol='v' - srate=27500 - chaines = {} - -class Hotbird_11766(carte) : - pol='v' - srate=27500 - chaines = { - '1104' : ('ita' , 'ita Rai Uno'), - '1105' : ('ita' , 'ita Rai Duo'), - '1106' : ('ita' , 'ita Rai Tre'), - '260' : ('ita' , 'ita Rai Med'), - '1107' : ('ita' , 'ita eng Senato italiano'), - '1107' : ('eng' , 'eng ita Senato italiano'), - '261' : ('ita' , 'ita Rai Edu2')} - - - -class Hotbird_11539(carte) : - pol='h' - srate=27500 - chaines = {} - - - -class Hotbird_12111(carte) : - pol='v' - srate=27500 - chaines = { - '1028' : ('ara' , 'ara Al Jazeera Documentary'), - '1029' : ('ara' , 'ara Al Jazeera Mubasher'), - '1030' : ('ita' , 'ita ACM - Architecture Construction Materials'), - '1031' : ('ara' , 'ara Al Jazeera Satellite Channel'), - '1032' : ('ita' , 'ita Silicia Channel'), - '1034' : ('ita' , 'ita High life TV'), - '1040' : ('ita' , 'ita Radio Radio TV'), - '1042' : ('ita' , 'ita MediterraneoSat 1')} - -class Hotbird_12597(carte) : - pol='v' - srate=27500 - chaines = { - '1027' : ('eng' , 'eng BBC World'), - '1031' : ('rus' , 'rus ORT International'), - '1032' : ('eng' , 'eng CNN radio'), - '1034' : ('fra' , 'fra autres Euronews'), - '1034 2221 2232 768' : ('eng' , 'eng Euronews')} - -class Hotbird_12539(carte) : - pol='h' - srate=27500 - chaines = { - '4436' : ('ara fra' , 'ara fra Canal Algerie'), - '4439' : ('ara fra' , 'ara fra Algerie 3'), - '5123' : ('fra' , 'fra DIRECT 8'), - '5124' : ('fra' , 'fra TV8 Mont Blanc')} - -class TNT_base(carte) : - qam="auto" - trans_mode="auto" - guardinterval="auto" - coderate="auto" - bandwidth="8MHz" - -class TNT_R1_586000(TNT_base) : - chaines = { - '110' : ('TNT' , 'TNT02 France 2'), - '210' : ('TNT' , 'TNT03 France 3'), - '310' : ('TNT' , 'TNT05 France 5'), - '510' : ('TNT' , 'TNT07 Arte'), - '610' : ('TNT' , 'TNT13 LCP Public Senat'), - '710' : ('TNT' , 'TNT20 France O')} - -class TNT_R2_474000(TNT_base) : - chaines = { - '1280' : ('TNT' , 'TNT08 Direct 8'), - '1282' : ('TNT' , 'TNT15 BFM TV'), - '1283' : ('TNT' , 'TNT16 i tele'), - '1284' : ('TNT' , 'TNT17 Virgin17'), - '1286' : ('TNT' , 'TNT14 France 4'), - '1285' : ('TNT' , 'TNT18 Gulli')} - -#les pids ont tendance a changer souvent pour canal, on en met le plus possible --> plus maintenant avec le nouveau mumu -class TNT_R3_522000(TNT_base) : - chaines = { - '1280' : ('TNT' , 'TNT04 Canal')} - -class TNT_R4_498000(TNT_base) : - chaines = { - '110' : ('TNT' , 'TNT06 M6'), - '210' : ('TNT' , 'TNT09 W9'), - '310' : ('TNT' , 'TNT11 NT1'), - '710' : ('TNT' , 'TNT57 Arte HD')} - -class TNT_R5_538000(TNT_base) : - chaines = { - '110' : ('TNT' , 'TNT51 TF1 HD'), - '210' : ('TNT' , 'TNT52 France 2 HD'), - '310' : ('TNT' , 'TNT56 M6 HD')} - -class TNT_R6_562000(TNT_base) : - chaines = { - '100' : ('TNT' , 'TNT01 TF1'), - '600' : ('TNT' , 'TNT10 TMC'), - '200' : ('TNT' , 'TNT12 NRJ12')} - -class TNT_R7_490000(TNT_base) : - chaines = { - '4321' : ('TNT' , 'TNT21 Canal 21 : Cinaps TV, BDM TV, Bocal TV, Demain TV'), - '4322' : ('TNT' , 'TNT22 IDF1'), - '4323' : ('TNT' , 'TNT23 NRJ Paris'), - '4324' : ('TNT' , 'TNT24 Cap 24')} - - diff --git a/tv/genconf/sat_base_ng.py b/tv/genconf/sat_base_ng.py index e3a8b51a..6e49c3aa 100755 --- a/tv/genconf/sat_base_ng.py +++ b/tv/genconf/sat_base_ng.py @@ -64,7 +64,7 @@ class Card(object): timeout_no_diff=%(timeout_no_diff)i # Autoconfiguration des chaines - autoconf_ip=239.%(ip)s.%%card.%%number + autoconf_ip4=239.%(ip)s.%%card.%%number autoconf_lcn=1 autoconf_name_template=TNT%%2lcn %%name @@ -176,28 +176,91 @@ class Card(object): if self.verbose >0 : print " OK" class TNT_base(Card) : + """ + Classe de base pour les transpondeurs TNT. On pourra se référer au site du + CSA pour une liste des fréquences. À Cachan, on capte l'émission de la Tour + Eiffel. + http://www.csa.fr/Media/Files/Television/La-reception/Liste-des-canaux-affectes-aux-multiplex-de-la-TNT-en-metropole-et-outre-mer + """ + bandwidth="8MHz" + + @classmethod + def freqByChannel(cls, channel): + """ + Renvoie la fréquence (en MHz) correspondant à un canal donné. + À titre indicatif. + Voir la page perso: + http://tvignaud.pagesperso-orange.fr/tv/canaux.htm + """ + if channel < 21 or channel > 60: + raise IndexError('Canal non utilisé en France') + return 474. + (channel-21)*8 class TNT_R1_586000(TNT_base): + """ + Canal: 35 + France 2, France 5, France Ô, LCP, France 3 + """ pass class TNT_R2_506000(TNT_base): + """ + Canal: 25 + D8, BFM TV, i>TELE, D17, Gulli, France 4 + """ pass class TNT_R3_482000(TNT_base): - # Canal+ : pas de diffusion la plupart du temps... + """ + Canal: 22 + Note: Canal+ : pas de diffusion la plupart du temps... + """ timeout_no_diff=0 class TNT_R4_546000(TNT_base): + """ + Canal: 30 + M6, W9, NT1, PARIS PREMIERE, ARTE HD + """ pass class TNT_R5_530000(TNT_base): + """ + Canal: 28 + TF1 HD, France 2 HD, M6HD + """ pass class TNT_R6_562000(TNT_base): + """ + Canal: 32 + TF1, NRJ12, TMC, ARTE + """ pass class TNT_L8_570000(TNT_base): + """ + Transpondeur local, aka R15. + Canal: 33 + À Cachan, on reçoit: + Canal 31, IDF1, NRJ Paris, BFM Business + """ + pass + + +class TNT_R7(TNT_base): + """ + Canal: 42 + HD1, Équipe 21, Chérie 25 + """ + pass + +class TNT_R8(TNT_base): + """ + Canal: 58 + 6ter, Numero 23, RMC découverte + """ pass class SAT_UK_base(Card): @@ -236,3 +299,4 @@ class SAT_12480v(SAT_UK_base): class SAT_11343v(SAT_UK_base): """Sex""" srate = 27500 + diff --git a/tv/genconf/sat_genconf.py b/tv/genconf/sat_genconf.py deleted file mode 100755 index 54402a9c..00000000 --- a/tv/genconf/sat_genconf.py +++ /dev/null @@ -1,373 +0,0 @@ -#! /usr/bin/env python -# -*- coding: iso8859-15 -*- - -""" -Configuration de base des différents transpondeurs disponibles -Ce fichier contient la liste des chaines pour chaque transpondeur. - -Pour chaque chaine, on doit indiquer le nom de la chaine et au minimum : -- Le pid audio -- Le pid video -- Le pid PMT, ce pid contient la liste des differents flux associes a une chaine -VLC a besoin de ce PID pour lire le flux - -Les pids facultatifs sont les suivants : -- Le PID PCR qui indique la base de temps (Program Clock Reference) -et permet de mieux reconstituer les flux un peu defecteux, et sert -aussi pour synchroniser les informations teletexte. -Il est conseille de le mettre, et il est souvent present avec le -flux video (cas de la TNT) -- Les PIDs de teletexte -""" - -#Auteur : Frédéric Pauget -#Maintenance et adaptations : DUBOST Brice -#Licence : GPLv2 - -from commands import getoutput -from time import sleep -import os, socket - -IP = socket.gethostbyaddr(socket.gethostname())[-1][0] - -class CarteOqp(Exception) : - """ La carte est déja utilisée """ - -class NotRunning(Exception) : - """ La carte ne diffuse rien """ - -class carte : - """ Classe parent de toute classe de transpondeur """ - # Niveux de verbosite : - # 0 : ne dit rien - # 1 : messages à caractères informatifs - # 2 : messages de debug - # 3 : ne permet pas à mumudvb de daemonizer - verbose = 3 - - CONF_FILE = "/etc/sat/carte%i.conf" # %i : numero de la carte - - timeout_accord=20 #en secondes - timeout_no_diff=60 #en secondes - - entete_conf = """### Fichier généré, NE PAS EDITER -autoconfiguration=1 -sap=1 -sap_organisation=crans -common_port=1234 -freq=%(freq)i -pol=%(pol)s -srate=%(srate)i -card=%(card)i -timeout_accord=%(timeout_accord)i -timeout_no_diff=%(timeout_no_diff)i -#----- -""" - - entete_conf_TNT = """### Fichier généré, NE PAS EDITER -autoconfiguration=1 -sap=1 -sap_organisation=crans -common_port=1234 -freq=%(freq)i -qam=%(qam)s -trans_mode=%(trans_mode)s -bandwidth=%(bandwidth)s -guardinterval=%(guardinterval)s -coderate=%(coderate)s -card=%(card)i -timeout_accord=%(timeout_accord)i -timeout_no_diff=%(timeout_no_diff)i -""" - - chaine_template = """ip=%(ip)s -sap_group=%(sap_group)s -name=%(name)s -pids=%(pids)s -#----- -""" - - autoconf2_template = """common_port=1234 -autoconfiguration=2 -autoconf_ip_header=%(ip)s -sap_default_group=various -#----- -""" - - - def __cmp__(a,b) : - for attr in ( 'card', 'freq', 'chaines' ) : - if getattr(a,attr) != getattr(b,attr) : - return -2 - return 0 - - def __init__(self,card) : - """ Initalisation card est le numéro (entier) de la carte - correspondante """ - try : - self.freq = int(str(self.__class__).split('_')[-1]) - except : - # On ne pourra pas faire grand chose à part killer le flux de la carte - self.freq = '' - pass - self.card = card - - def gen_conf(self) : - """ Génère le fichier de conf """ - if not self.freq : - if self.verbose > 1 : print "Instance ne permettant pas la génération de la conf" - return - - fd = open(self.CONF_FILE % self.card,'w') - # Entète du fichier - try: - fd.write( self.entete_conf_TNT % - { 'qam' : self.qam, 'trans_mode' : self.trans_mode , - 'bandwidth' : self.bandwidth, 'guardinterval' : self.guardinterval , - 'coderate' : self.coderate, - 'freq' : self.freq , 'card' : self.card , - 'timeout_accord' : self.timeout_accord , - 'timeout_no_diff' : self.timeout_no_diff } ) - except: - fd.write( self.entete_conf % - { 'pol' : self.pol, 'srate' : self.srate , - 'freq' : self.freq , 'card' : self.card , - 'timeout_accord' : self.timeout_accord , - 'timeout_no_diff' : self.timeout_no_diff } ) - - # Chaines - n = 0 - for pids, (sap_group, name) in self.chaines.items() : - ip = '239.%s.20%i.2%02i' % ( IP.split('.')[-1], self.card, n) - n += 1 - fd.write(self.chaine_template % vars()) - - #Si pas de chaines, on passe en autoconfiguration=2 - if not n : - ip = '239.%s' % ( IP.split('.')[-1]) - fd.write(self.autoconf2_template % { "ip" : ip}) - - fd.close() - - def start(self) : - """ Lance la diffusion """ - if not self.freq : - if self.verbose > 1 : print "Instance ne permettant pas le lancement d'un flux" - return - - if self.verbose >0 : - print "Generation de la conf de %s sur la carte %i" % (str(self.__class__).split('.')[-1], self.card) - - self.gen_conf() - if self.verbose >0 : print "OK" - - -class Hotbird_10853(carte) : - pol='h' - srate=27500 - chaines = {} - -class Hotbird_11054(carte) : - pol='h' - srate=27500 - chaines = { - '1026' : ('ger' , 'ger RTL Schweiz'), - '1033' : ('ger' , 'ger ZDF')} - -class Hotbird_11137(carte) : - pol='h' - srate=27500 - chaines = { - '717' : ('fra' , 'fra TV5MONDE FBS'), - '719' : ('fra' , 'fra TV5MONDE Europe'), - '262' : ('ara' , 'ara ANN'), - '263' : ('ara' , 'ara Kurdistan TV'), - '264' : ('ita' , 'ita Videolina')} - -class Hotbird_11200(carte) : #A mettre a jour - pol='V' - srate=27500 - chaines = { - '366 367 2560' : ('ita' , 'ita Elite shopping TV'), - '386 387 512' : ('x-ero' , 'x-ero All Sex'), - '397 398 399' : ('ita' , 'ita StarSat'), - '394 395 4864' : ('ita' , 'ita Play TV'), - '400 404 402' : ('ita' , 'ita People TV'), - '405 406 407' : ('ita' , 'ita Roma Sat')} - -class Hotbird_11240(carte) : - pol='v' - srate=27500 - chaines = { - '244' : ('fra' , 'fra France 24'), - '247' : ('eng' , 'eng France 24'), - '401' : ('fra' , 'fra RTBF sat')} - -class Hotbird_11604(carte) : - pol='h' - srate=27500 - chaines = { - '500' : ('ita' , 'ita TLA'), - '600' : ('ger' , 'ger Das Erste'), - '700' : ('ger' , 'ger DW TV'), - '800' : ('divers' , 'divers DW tv arabic (ara eng ger)'), - '900' : ('ger' , 'ger RTL2 Schweiz'), - '3500' : ('eng' , 'eng Cool TV'), - '2600' : ('ger' , 'ger Erde Mensch'), - '1600' : ('x-ero' , 'x-ero hot arab tv'), - '3200' : ('x-ero' , 'x-ero xxx Action TV')} - -class Hotbird_11623(carte) : - pol='v' - srate=27500 - chaines = {} - -class Hotbird_11642(carte) : - pol='h' - srate=27500 - chaines = { - '1360 1320 5003' : ('eng' , 'eng Bloomberg Europe'), - '1460 1420 5004' : ('ger' , 'ger Bloomberg TV Deutschland'), - '1560 1520 5005' : ('eng' , 'eng Bloomberg U.K.'), - '2101 2111 256 128 2121' : ('gr' , 'gr ERT Sat')} - -class Hotbird_11727(carte) : - pol='v' - srate=27500 - chaines = { - '2711 2712 257 2710' : ('fra' , 'fra La Locale'), - '2791 2792 269' : ('ita' , 'ita Sicilia International (SET)'), - '2751 2752 266' : ('ita' , 'ita Sardegna Uno Sat'), - '6507 6662' : ('radios' , 'rad eng BBC English (Europe)'), - '6510 6692' : ('radios' , 'rad eng BBC English News'), - '7302 6571' : ('radios' , 'rad eng BBC Feed 1'), - '7312 6572' : ('radios' , 'rad eng BBC Feed 2'), - '7322 6573' : ('radios' , 'rad eng BBC Feed 3'), - '7332 6574' : ('radios' , 'rad eng BBC Feed 4'), - '7342 6575' : ('radios' , 'rad eng BBC Feed 5'), - '7352 6576' : ('radios' , 'rad eng BBC Feed 6')} - -# Pour remplacer 10796 -class Hotbird_11766(carte) : - pol='v' - srate=27500 - chaines = { - '1104' : ('ita' , 'ita Rai Uno'), - '1105' : ('ita' , 'ita Rai Duo'), - '1106' : ('ita' , 'ita Rai Tre'), - '260' : ('ita' , 'ita Rai Med'), - '1107' : ('ita' , 'ita eng Senato italiano'), - '1107' : ('eng' , 'eng ita Senato italiano'), - '261' : ('ita' , 'ita Rai Edu2')} - -class Hotbird_11054(carte) : - pol='h' - srate=27500 - chaines = {} - -class Hotbird_12111(carte) : - pol='v' - srate=27500 - chaines = { - '1028' : ('ara' , 'ara Al Jazeera Documentary'), - '1029' : ('ara' , 'ara Al Jazeera Mubasher'), - '1030' : ('ita' , 'ita ACM - Architecture Construction Materials'), - '1031' : ('ara' , 'ara Al Jazeera Satellite Channel'), - '1032' : ('ita' , 'ita Silicia Channel'), - '1034' : ('ita' , 'ita High life TV'), - '1040' : ('ita' , 'ita Radio Radio TV'), - '1042' : ('ita' , 'ita MediterraneoSat 1')} - -class Hotbird_12476(carte) : - pol='h' - srate=27500 - chaines = { - #2M don't support autoconfiguration - '600 601 602' : ('ara' , 'ara fra 2M'), - '600 603' : ('ara' , 'ara radio 2M'), - '550' : ('x-ero' , 'x-ero X Stream')} - -class Hotbird_12558(carte) : #outdated - pol='v' - srate=27500 - chaines = { - '6660 6661 6659' : ('ita' , 'ita Administra.it'), - '6916 6917 6915 6930' : ('ita' , 'ita 24 Ore')} - -class Hotbird_12597(carte) : - pol='v' - srate=27500 - chaines = { - '1024' : ('rus' , 'rus sport planeta'), - '1027' : ('eng' , 'eng BBC World'), - '1031' : ('rus' , 'rus ORT International'), - '1032' : ('eng' , 'eng CNN'), - '1034' : ('fra' , 'fra autres Euronews'), - '1034 2221 2232 768' : ('eng' , 'eng Euronews')} - -class Hotbird_12673(carte) : #outdated - pol='v' - srate=27500 - chaines = { - '308 309 306 307' : ('ara' , 'ara Al Maghribiyah'), - '35 36 33 34 38' : ('ara' , 'ara TVM inter l'), - '46 47 44 45' : ('ara' , 'ara Arabiaa')} - -class TNT_base(carte) : - qam="auto" - trans_mode="auto" - guardinterval="auto" - coderate="auto" - bandwidth="8MHz" - -class TNT_R1_586000(TNT_base) : - chaines = { - '110' : ('fra' , 'fra TNT02 France 2'), - '210' : ('fra' , 'fra TNT03 France 3'), - '310' : ('fra' , 'fra TNT05 France 5'), - '510' : ('fra' , 'fra TNT07 Arte'), - '510 520 531 542' : ('ger' , 'ger Arte'), - '610' : ('fra' , 'fra TNT13 LCP Public Senat'), - '710' : ('fra' , 'fra TNT20 France O')} - -class TNT_R2_474000(TNT_base) : - chaines = { - '1280' : ('fra' , 'fra TNT08 Direct 8'), - '1282' : ('fra' , 'fra TNT15 BFM TV'), - '1283' : ('fra' , 'fra TNT16 i tele'), - '1284' : ('fra' , 'fra TNT17 Virgin17'), - '1286' : ('fra' , 'fra TNT14 France 4'), - '1285' : ('fra' , 'fra TNT18 Gulli')} - -#les pids ont tendance a changer souvent pour canal, on en met le plus possible -class TNT_R3_522000(TNT_base) : - chaines = { - '1280 80 81 83 32 33 170 120 121 123 62 52' : ('fra' , 'fra TNT04 Canal')} - -class TNT_R4_498000(TNT_base) : - chaines = { - '110' : ('fra' , 'fra TNT06 M6'), - '210' : ('fra' , 'fra TNT09 W9'), - '310' : ('fra' , 'fra TNT11 NT1'), - '710' : ('fra' , 'fra TNT57 Arte HD')} - -class TNT_R5_538000(TNT_base) : - chaines = { - '110' : ('fra' , 'fra TNT51 TF1 HD'), - '210' : ('fra' , 'fra TNT52 France 2 HD'), - '310' : ('fra' , 'fra TNT56 M6 HD')} - -class TNT_R6_562000(TNT_base) : - chaines = { - '100' : ('fra' , 'fra TNT01 TF1'), - '600' : ('fra' , 'fra TNT10 TMC'), - '200' : ('fra' , 'fra TNT12 NRJ12')} - -class TNT_R7_490000(TNT_base) : - chaines = { - '4321' : ('fra' , 'fra TNT21 Canal 21 : Cinaps TV, BDM TV, Bocal TV, Demain TV'), - '4322' : ('fra' , 'fra TNT22 IDF1'), - '4323' : ('fra' , 'fra TNT23 NRJ Paris'), - '4324' : ('fra' , 'fra TNT24 Cap 24')} - -