Version 0.99pre2

- Fixed setting the OSD size in the 'Confirm' interface call (thanks to
  Deti Fliegl).
- Removed the 'read incomplete section...' error message in the EIT processor.
- Fixed channel data for "DW TV" (thanks to Axel Gruber).
- Added DPID to "PREMIERE MOVIE 1" in channels.conf.cable (thanks to Stephan
  Schreiber).
- Prepared the OSD functions for multiple overlapping windows.
- Removed the check to see whether the system time is running linearly.
- Improved performance of SVDRP command entry.
- Removed EPGBugfixLevel '3' - after more than a year Pro-7 finally managed to
  broadcast the correct timestamps for EPG events between 0:00 and 6:00!
- Fixed failing watchdog timer if program hangs in OSD activities (thanks to
  Carsten Koch).
- No longer requiring 'libncurses' if compiling without DEBUG_OSD=1 and
  REMOTE=KBD (thanks to Lauri Pesonen).
- The "Recordings" menu now displays a hierarchical structure if there are
  subdirectories for the recordings. This can be controlled through the
  "RecordingDirs" parameter in the "Setup" menu.
  See "MANUAL/Replaying a Recording" for details.
- Improved speed of setting the Help button texts.
- Fixed handling file names that contain single quotes (') or dollar signs ($)
  in the call to the shutdown command (option '-s') and the recording command
  (option '-r').
- Improved error handling in the editing process; the resulting file will be
  deleted if an error occured.
- A message is now prompted at the end of the editing process, indicating
  whether the process succeeded or failed.
- Fixed setting the LastActivity timestamp after a shutdown prompt (thanks to
  Sergei Haller).
- A message is now prompted if free disk space becomes low during recording.
- The editing process now calls AssertFreeDiskSpace() to remove deleted
  recordings if the disk becomes full.
- The "Main" menu now displays in its title the used disk space (in percent)
  and the estimated free disk space (in hh:mm), assuming a data rate of 30 MB
  per minute.
- Activating the "Recordings" menu now displays "scanning recordings..." to
  give the user some feedback in case this takes longer.
- Status messages are now displayed centered.
- Removed the 'Tools' subdirectory from the VDR archive. All contributed tools
  can now be found at ftp://ftp.cadsoft.de/pub/people/kls/vdr/Tools.
This commit is contained in:
Klaus Schmidinger 2002-01-27 18:00:00 +01:00
parent b420457467
commit 27919ee969
91 changed files with 875 additions and 9325 deletions

View File

@ -8,6 +8,7 @@ Carsten Koch <Carsten.Koch@icem.de>
for his idea of using multiple disks (and for testing this feature)
for implementing the 'new recording' indicator
for suggesting that the "Back" button in replay mode should bring up the "Recordings" menu
for fixing the watchdog timer if the program hangs in OSD activities
Plamen Ganev <pganev@com-it.net>
for fixing the frequency offset for Hotbird channels
@ -55,6 +56,7 @@ Alberto Carraro <bertocar@tin.it>
Deti Fliegl <deti@fliegl.de>
for implementing the 'CurrentChannel' setup parameter
for fixing setting the OSD size in the 'Confirm' interface call
Dave Chapman <dave@dchapman.com>
for implementing support for the teletext PID
@ -166,3 +168,13 @@ Norbert Schmidt <nschmidt-nrw@t-online.de>
Thilo Wunderlich <tw@ubcom.net>
for his help in keeping 'channels.conf' up to date
Stephan Schreiber <stephan@sschreiber.de>
for his support in keeping the Premiere World channels up to date in 'channels.conf.cable'
Lauri Pesonen <lauri.pesonen@firsthop.com>
for avoiding linking in 'libncurses' if compiling without DEBUG_OSD=1 and
REMOTE=KBD
Sergei Haller <Sergei.Haller@math.uni-giessen.de>
for fixing the LastActivity timestamp after a shutdown prompt

45
HISTORY
View File

@ -866,7 +866,7 @@ Video Disk Recorder Revision History
- The device /dev/video is now opened only if necessary (to GRAB an image),
allowing other programs (like 'kvdr', for instance) to use that device.
2001-11-25: Version 0.99
2001-11-25: Version 0.99pre1
- Fixed several channel definitions in 'channels.conf' (thanks to Thilo
Wunderlich).
@ -878,3 +878,46 @@ Video Disk Recorder Revision History
- Changed the maximum value for PIDs in channels.conf from 0xFFFE to 0x1FFF.
- Fixed DVD audio sync problems (thanks to Andreas Schultz).
- Fixed external AC3 replay for DVDs (thanks to Andreas Schultz).
2002-01-27: Version 0.99pre2
- Fixed setting the OSD size in the 'Confirm' interface call (thanks to
Deti Fliegl).
- Removed the 'read incomplete section...' error message in the EIT processor.
- Fixed channel data for "DW TV" (thanks to Axel Gruber).
- Added DPID to "PREMIERE MOVIE 1" in channels.conf.cable (thanks to Stephan
Schreiber).
- Prepared the OSD functions for multiple overlapping windows.
- Removed the check to see whether the system time is running linearly.
- Improved performance of SVDRP command entry.
- Removed EPGBugfixLevel '3' - after more than a year Pro-7 finally managed to
broadcast the correct timestamps for EPG events between 0:00 and 6:00!
- Fixed failing watchdog timer if program hangs in OSD activities (thanks to
Carsten Koch).
- No longer requiring 'libncurses' if compiling without DEBUG_OSD=1 and
REMOTE=KBD (thanks to Lauri Pesonen).
- The "Recordings" menu now displays a hierarchical structure if there are
subdirectories for the recordings. This can be controlled through the
"RecordingDirs" parameter in the "Setup" menu.
See "MANUAL/Replaying a Recording" for details.
- Improved speed of setting the Help button texts.
- Fixed handling file names that contain single quotes (') or dollar signs ($)
in the call to the shutdown command (option '-s') and the recording command
(option '-r').
- Improved error handling in the editing process; the resulting file will be
deleted if an error occured.
- A message is now prompted at the end of the editing process, indicating
whether the process succeeded or failed.
- Fixed setting the LastActivity timestamp after a shutdown prompt (thanks to
Sergei Haller).
- A message is now prompted if free disk space becomes low during recording.
- The editing process now calls AssertFreeDiskSpace() to remove deleted
recordings if the disk becomes full.
- The "Main" menu now displays in its title the used disk space (in percent)
and the estimated free disk space (in hh:mm), assuming a data rate of 30 MB
per minute.
- Activating the "Recordings" menu now displays "scanning recordings..." to
give the user some feedback in case this takes longer.
- Status messages are now displayed centered.
- Removed the 'Tools' subdirectory from the VDR archive. All contributed tools
can now be found at ftp://ftp.cadsoft.de/pub/people/kls/vdr/Tools.

View File

@ -349,7 +349,7 @@ the "Frequency" is in kHz in case of DVB-T).
You can even use a mixture of DVB-S, DVB-C and DVB-T cards in the same system.
All you need to do is to put all the channel definitions into one big
'channel.conf' file and set the 'Ca' parameter of each channel to the number
'channels.conf' file and set the 'Ca' parameter of each channel to the number
of the card that can receive it.
Learning the remote control keys:

17
MANUAL
View File

@ -159,6 +159,13 @@ Video Disk Recorder User's Manual
All recordings are listed in the "Recordings" menu. Browse through the
list with the "Up" and "Down" button and press "Ok" (or the "Red" button)
to start playback. New recordings are marked with an '*'.
If the Setup parameter RecordingDirs has been set and there are recordings
from periodic timers organized in a subdirectory structure, only the
directory is displayed and it can be opened by pressing "Ok" (or the "Red"
button). A directory entry displays the total number of recordings within
that directory (and any possible subdirectory thereof) as well as the total
number of new recordings (as opposed to a recording's entry, which displays
the date and time of the recording).
Playback can be stopped via the "Main" menu by selecting "Stop replaying",
or by pressing the "Blue" button outside the menu.
A previously stopped playback session can be resumed by pressing the "Blue"
@ -402,12 +409,7 @@ Video Disk Recorder User's Manual
Extended Description)
2 = removal of excess whitespace and hyphens, mapping of
wrongly used characters
3 = fixing the date in timestamps between 00:00 and 06:00
(use with care - hopefully one day Pro7 and Kabel1
will learn how to read the clock/calender)
Default is '2', which will do all textual fixes, but
leaves out the timestamp fixes, since these might cause
recordings to fail. Use '3' at your own risk.
Default is '2'.
Note that after changing the setting of this parameter
any EPG data that has already been received will remain
in its existing format - only newly received data will
@ -444,6 +446,9 @@ Video Disk Recorder User's Manual
0 = don't use the 'Subtitle'
1 = use it (and create subdirectories)
RecordingDirs = 1 Turns displaying the Recordings menu as a hierarchical
directory structure on or off.
VideoFormat = 0 The video format (or aspect ratio) of the tv set in use.
0 = 4:3
1 = 16:9

View File

@ -4,7 +4,7 @@
# See the main source file 'vdr.c' for copyright information and
# how to reach the author.
#
# $Id: Makefile 1.28 2001/10/07 15:14:50 kls Exp $
# $Id: Makefile 1.29 2002/01/13 16:57:27 kls Exp $
.DELETE_ON_ERROR:
@ -37,12 +37,17 @@ ifndef REMOTE
REMOTE = KBD
endif
ifeq ($(REMOTE), KBD)
NCURSESLIB = -lncurses
endif
DEFINES += -DREMOTE_$(REMOTE)
DEFINES += -D_GNU_SOURCE
ifdef DEBUG_OSD
DEFINES += -DDEBUG_OSD
NCURSESLIB = -lncurses
endif
ifdef VFAT
@ -71,7 +76,7 @@ include $(DEPFILE)
# The main program:
vdr: $(OBJS) $(AC3LIB) $(DTVLIB)
g++ -g -O2 $(OBJS) -lncurses -ljpeg -lpthread $(LIBDIRS) $(DVDLIB) $(AC3LIB) $(DTVLIB) -o vdr
g++ -g -O2 $(OBJS) $(NCURSESLIB) -ljpeg -lpthread $(LIBDIRS) $(DVDLIB) $(AC3LIB) $(DTVLIB) -o vdr
# The font files:

View File

@ -1,16 +0,0 @@
#
# Makefile for dvbrc2vdr utility
#
OBJS = dvbrc2vdr.o
%.o: %.c
gcc -g -O2 -Wall -c $(DEFINES) $<
all: dvbrc2vdr
dvbrc2vdr: $(OBJS)
gcc -g -O2 $(OBJS) -o dvbrc2vdr
clean:
-rm -f $(OBJS) dvbrc2vdr

View File

@ -1,282 +0,0 @@
RAI Uno:11766:v:1:27500:160:80:0:0
RAI Due:11766:v:1:27500:161:84:0:0
RAI Tre:11766:v:1:27500:162:88:0:0
Rete 4:11919:v:1:27500:514:670:0:0
Canale 5:11919:v:1:27500:513:660:0:0
Italia 1 :11919:v:1:27500:512:650:0:0
Video Italia:12610:v:0:22000:121:122:0:0
Grand Tour.:12670:v:0:22000:289:290:0:0
AB Sat Passion promo:12266:h:0:27500:160:80:0:0
Nuvolari Promo:12149:v:1:27500:176:177:0:0
DigItaly:12673:v:1:27500:220:221:0:0
NBC Europe:11054:h:1:27500:550:551:0:0
Bloomberg TV UK:11642:h:1:27500:1560:1520:0:0
Game Network:12673:v:1:27500:291:292:0:0
Bulgaria TV:12540:h:1:27500:4612:4613:0:0
Video Italia :12673:v:1:27500:340:341:0:0
Racing Channel Test:11623:v:1:27500:223:243:0:0
Fashion TV:12402:v:0:27500:163:92:0:0
Palco Promo:12073:v:1:27500:161:84:0:0
Coming Soon TV:12111:v:1:27500:310:311:0:0
Alice:12149:v:1:27500:160:161:0:0
RAI Mosaico:11766:v:1:27500:518:8191:0:0
RAI SportSat:11804:v:1:27500:512:650:0:0
Satisfaction TV:12092:h:1:27500:4192:4193:0:0
RAI Nettuno Sat 2:11804:v:1:27500:513:651:0:0
RAI Educational:11804:v:1:27500:514:652:0:0
TelePace :11804:v:1:27500:515:653:0:0
RAI News24:11804:v:1:27500:516:654:0:0
AB Channel 1:12266:h:0:27500:161:84:0:0
Studio Europa:12673:v:1:27500:230:231:0:0
AB Passion:12692:h:1:27500:160:80:0:0
Camera dei Deputati:11804:v:1:27500:517:655:0:0
SAT 2000:11804:v:1:27500:518:656:0:0
RAI NettunoSat 1:11804:v:1:27500:519:657:0:0
Ante Prima:11881:v:1:27500:2435:2436:0:0
Vetrina D+:12034:v:1:27500:166:105:0:0
D+ Info:12073:v:1:27500:160:80:0:0
SNAI:11881:v:1:27500:2561:2562:0:0
RTL:12188:h:0:27500:163:104:0:0
Sat.1:12480:v:0:27500:1791:1792:0:0
Pro-7:12480:v:0:27500:255:256:0:0
RTL2:12188:h:0:27500:166:128:0:0
VOX:12188:h:0:27500:167:136:0:0
ARD:11837:h:0:27500:101:102:0:0
BR3:11837:h:0:27500:201:202:0:0
INTV:11843:v:1:27500:2324:2325:0:0
MC Sat Monte Carlo:12540:h:1:27500:5126:5122:0:0
Hessen-3:11837:h:0:27500:301:302:0:0
N3:11837:h:0:27500:401:402:0:0
SR3:11837:h:0:27500:501:502:0:0
WDR:11837:h:0:27500:601:602:0:0
BR-alpha:11837:h:0:27500:701:702:0:0
SWR BW:11837:h:0:27500:801:802:0:0
Phoenix:11837:h:0:27500:901:902:0:0
ZDF:11954:h:0:27500:110:120:0:0
Test 3sat:11954:h:0:27500:210:220:0:0
Kinderkanal:11954:h:0:27500:310:320:0:0
arte:11954:h:0:27500:360:370:0:0
Eurosport:11954:h:0:27500:410:420:0:0
ZDF Infobox:11954:h:0:27500:610:620:0:0
CNN:12168:v:0:27500:165:100:0:0
Super RTL:12188:h:0:27500:165:120:0:0
VOX:12188:h:0:27500:167:136:0:0
ORF Sat:11954:h:0:27500:506:507:0:0
DW TV:12363:v:0:27500:305:306:0:0
Kabel 1:12480:v:0:27500:511:512:0:0
TM3:12480:v:0:27500:767:768:0:0
DSF:12480:v:0:27500:1023:1024:0:0
HOT:12480:v:0:27500:1279:1280:0:0
BloombergTV:12552:v:0:22000:162:99:0:0
Sky News:12552:v:0:22000:305:306:0:0
KinderNet:12574:h:0:22000:163:92:0:0
Alice:12610:v:0:22000:162:96:0:0
n-tv:12670:v:0:22000:162:96:0:0
RAI Uno:12363:v:0:27500:289:290:0:0
TW1:12692:h:0:22000:166:167:0:0
Eins Extra:12722:h:0:22000:101:102:0:0
Eins Festival:12722:h:0:22000:201:202:0:0
Eins MuXx:12722:h:0:22000:301:302:0:0
MDR:12722:h:0:22000:401:402:0:0
ORB:12722:h:0:22000:501:502:0:0
B1:12722:h:0:22000:601:602:0:0
ARD Online-Kanal:12722:h:0:22000:8191:701:0:0
Premiere World Promo:11798:h:0:27500:255:256:0:0
Premiere:11798:h:0:27500:511:512:1:10
Star Kino:11798:h:0:27500:767:768:1:9
Cine Action:11798:h:0:27500:1023:1024:1:20
Cine Comedy:11798:h:0:27500:1279:1280:1:29
Sci Fantasy:11798:h:0:27500:1535:1536:1:41
Romantic Movies:11798:h:0:27500:1791:1792:1:11
Studio Universal:11798:h:0:27500:2047:2048:1:21
TV Niepokalanow:11876:h:0:27500:305:321:0:0
Mosaico:11934:v:0:27500:165:100:0:0
Andalucia TV:11934:v:0:27500:166:104:0:0
TVC Internacional:11934:v:0:27500:167:108:0:0
Nasza TV:11992:h:0:27500:165:98:0:0
WishLine test:12012:v:0:27500:163:92:0:0
Pro 7 Austria:12051:v:0:27500:161:84:0:0
Kabel 1 Schweiz:12051:v:0:27500:162:163:0:0
Kabel 1 Austria:12051:v:0:27500:166:167:0:0
Pro 7 Schweiz:12051:v:0:27500:289:290:0:0
Kiosque:12129:v:0:27500:160:80:0:0
KTO:12129:v:0:27500:170:120:0:0
TCM:12168:v:0:27500:160:80:0:0
Cartoon Network France & Spain:12168:v:0:27500:161:84:0:0
TVBS Europe:12168:v:0:27500:162:88:0:0
TVBS Europe:12168:v:0:27500:162:89:0:0
Travel:12168:v:0:27500:163:92:0:0
TCM Espania:12168:v:0:27500:164:96:0:0
MTV Spain:12168:v:0:27500:167:112:0:0
TCM France:12168:v:0:27500:169:64:0:0
RTL2 CH:12188:h:0:27500:164:112:0:0
La Cinquieme:12207:v:0:27500:160:80:0:0
ARTE:12207:v:0:27500:165:100:0:0
Post Filial TV:12226:h:0:27500:255:256:0:0
Canal Canaris:12246:v:0:27500:160:80:0:0
Canal Canaris:12246:v:0:27500:160:81:0:0
Canal Canaris:12246:v:0:27500:160:82:0:0
Canal Canaris:12246:v:0:27500:160:83:0:0
Taquilla 0:12285:v:0:27500:165:100:0:0
CSAT:12324:v:0:27500:160:80:0:0
Mosaique:12324:v:0:27500:162:88:0:0
Mosaique 2:12324:v:0:27500:163:92:0:0
Mosaique 3:12324:v:0:27500:164:96:0:0
Le Sesame C+:12324:v:0:27500:165:1965:0:0
FEED:12344:h:0:27500:163:92:0:0
RTM 1:12363:v:0:27500:162:96:0:0
ESC 1:12363:v:0:27500:163:104:0:0
TV5 Europe:12363:v:0:27500:164:112:0:0
TV7 Tunisia:12363:v:0:27500:166:128:0:0
ARTE:12363:v:0:27500:167:137:0:0
RTP International:12363:v:0:27500:300:301:0:0
VideoService:12422:h:0:27500:255:256:0:0
Beta Research promo:12422:h:0:27500:1023:1024:0:0
Canal Canarias:12441:v:0:27500:160:80:0:0
TVC International:12441:v:0:27500:512:660:0:0
Fitur:12441:v:0:27500:514:662:0:0
Astra Info 1:12552:v:0:22000:164:112:0:0
Astra Info 2:12552:v:0:22000:165:120:0:0
Astra Vision 1:12552:v:0:22000:168:144:0:0
Astra Vision 1:12552:v:0:22000:168:145:0:0
Astra Vision 1:12552:v:0:22000:168:146:0:0
Astra Vision 1:12552:v:0:22000:168:147:0:0
Astra Vision 1:12552:v:0:22000:168:148:0:0
Astra Vision 1:12552:v:0:22000:168:149:0:0
Astra Vision 1:12552:v:0:22000:168:150:0:0
RTL Tele Letzebuerg:12552:v:0:22000:168:144:0:0
Astra Mosaic:12552:v:0:22000:175:176:0:0
MHP test:12604:h:0:22000:5632:8191:0:0
Bloomberg TV Spain:12610:v:0:22000:45:49:0:0
AC 3 promo:12670:v:0:22000:308:256:0:0
TV Polonia:10719:v:1:27500:163:92:0:0
Credit Agricole:10834:v:1:27500:5321:5333:0:0
La Chaine Parlementaire:10873:v:1:27500:1020:1030:0:0
TMT:10892:v:1:27500:163:92:0:0
Multivision Accueil:10911:v:1:27500:320:330:0:0
RTL:11054:h:1:27500:160:80:0:0
VOX:11054:h:1:27500:500:501:0:0
Sat 1 A:11054:h:1:27500:511:512:0:0
RTL II Austria:11054:h:1:27500:520:521:0:0
ZDF:11054:h:1:27500:570:571:0:0
K-TV:11054:h:1:27500:580:581:0:0
Sat 1 Schweiz:11604:v:1:27500:101:102:0:0
MKTV:11623:v:1:27500:222:242:0:0
Olisat TV Promo:11623:v:1:27500:226:246:0:0
Bloomberg TV Germany:11642:v:1:27500:1460:1420:0:0
Bloomberg TV UK:11642:v:1:27500:1560:1520:0:0
SAT 7:11642:v:1:27500:1660:1620:0:0
Multivision 1:11662:v:1:27500:120:130:0:0
Dubai EDTV:11746:v:1:27500:4130:4131:0:0
Dubai Sport Channel:11746:v:1:27500:4386:4387:0:0
Dubai Business Channel:11746:v:1:27500:4642:4643:0:0
Dubai EDTV:11746:v:1:27500:4898:4899:0:0
ERT Sat:11823:v:1:27500:521:740:0:0
TVL:11843:v:1:27500:2441:2442:0:0
Team TV :11881:v:1:27500:2305:2306:0:0
ART Europe:12015:v:1:27500:164:96:0:0
ESC 2:12015:v:1:27500:166:104:0:0
ART Iqra:12015:v:1:27500:168:112:0:0
Vacaciones TV:12092:v:1:27500:4112:4113:0:0
TvL - TV Locale:12092:v:1:27500:4160:4161:0:0
TVE Internacional:12092:v:1:27500:4208:4209:0:0
TVG - TV de Galicia :12092:v:1:27500:4224:4225:0:0
La Cadena Del Milagro:12092:v:1:27500:4368:4369:0:0
Fiesta:12092:v:1:27500:4432:4433:0:0
Visions Europe:12092:v:1:27500:4416:4417:0:0
SateliTV/TV Sex Channel:12092:v:1:27500:4480:4481:0:0
Krisma:12111:v:1:27500:200:201:0:0
NTV:12111:v:1:27500:210:211:0:0
Armenia TV 1:12111:v:1:27500:240:241:0:0
SMAU Channel :12111:v:1:27500:260:261:0:0
JSC - Al Jazeera Satellite Ch :12111:v:1:27500:270:271:0:0
Il Tirreno Sat:12111:v:1:27500:280:301:0:0
CCTV 4:12169:h:1:27500:516:690:0:0
Kanali Vuolis:12169:v:1:27500:517:700:0:0
Nova Promo:12169:v:1:27500:521:740:0:0
ERT Sat :12188:v:1:27500:514:652:0:0
Kanali Voulis:12188:v:1:27500:515:653:0:0
OTE Promo:12188:v:1:27500:517:655:0:0
TV 5 Europe:12245:v:1:27500:121:131:0:0
Fashion TV:12245:h:1:27500:123:133:0:0
TV Ajara:12245:v:1:27500:127:137:0:0
Telekom TV:12265:v:1:27500:1460:1420:0:0
SLO-TV1:12303:v:1:27500:200:201:0:0
Polonia 1:12303:v:1:27500:205:206:0:0
Super 1:12303:v:1:27500:207:208:0:0
Sicilia Internacional:12303:v:1:27500:210:211:0:0
SicilSat:12303:v:1:27500:225:226:0:0
TBNE Italy:12303:v:1:27500:230:231:0:0
Countdown TV:12303:v:1:27500:235:236:0:0
Napoli International:12303:v:1:27500:240:241:0:0
Magic TV:12303:v:1:27500:245:246:0:0
TEST:12341:v:1:27500:165:108:0:0
Colour Bars:12380:v:1:27500:3022:3032:0:0
Tele 24 :12380:v:1:27500:3023:3033:0:0
Abu Dhabi TV :12380:v:1:27500:3024:3034:0:0
LCA:12380:v:1:27500:3025:3035:0:0
RTV Montenegro:12380:v:1:27500:3026:3036:0:0
SRG SSR Sat Access :12399:v:1:27500:165:98:0:0
Jam-e-Jam Network 1 (IRIB 1):12437:v:1:27500:160:80:0:0
Jam-e-Jam Network 2 (IRIB 2):12437:v:1:27500:161:82:0:0
Sahar University Network:12437:v:1:27500:162:84:0:0
Maharishi Open University:12476:v:1:27500:42:43:0:0
Europe by Satellite:12476:h:1:27500:101:201:0:0
Pink Backup:12476:v:1:27500:308:256:0:0
Mizik Tropical:12476:h:1:27500:435:436:0:0
TLI info card:12476:h:1:27500:771:768:0:0
Liberty TV:12476:h:1:27500:941:942:0:0
HRT TV 1:12520:v:1:27500:100:101:0:0
HRT National:12520:v:1:27500:107:108:0:0
BVN TV:12520:v:1:27500:210:211:0:0
Sicilia International:12520:v:1:27500:501:502:0:0
Sardegna Uno:12520:v:1:27500:503:504:0:0
TGRT:12520:v:1:27500:505:506:0:0
Euro Mediterraneo:12520:v:1:27500:510:511:0:0
WWWTravel TV:12540:v:1:27500:1180:1183:0:0
WWWTravel TV:12540:v:1:27500:1180:1184:0:0
WWWTravel TV:12540:v:1:27500:1180:1185:0:0
MBC:12597:v:1:27500:160:80:0:0
SIMA-YEH-MOGHAVEMENT:12597:v:1:27500:161:84:0:0
NITV (National Iran TV ):12597:v:1:27500:163:92:0:0
BET International:12597:v:1:27500:167:108:0:0
JSTV 2 Info Card:12597:v:1:27500:2011:2012:0:0
EuroNews French:12597:v:1:27500:2221:2231:0:0
EuroNews English:12597:v:1:27500:2221:2232:0:0
EuroNews German:12597:v:1:27500:2221:2233:0:0
EuroNews Italian:12597:v:1:27500:2221:2234:0:0
EuroNews Spanish:12597:v:1:27500:2221:2235:0:0
EuroNews Portuguese:12597:v:1:27500:2221:2236:0:0
EuroNews English:12597:v:1:27500:2221:2237:0:0
Canal Agro Rual:12597:v:1:27500:2321:2331:0:0
MMO9:12616:v:1:27500:2561:2562:0:0
Dubai Sport Channel:12654:v:1:27500:1060:1020:0:0
Sharjah TV :12654:v:1:27500:1160:1120:0:0
Qatar TV:12654:v:1:27500:1260:1220:0:0
Saudi Channel 1 :12654:v:1:27500:1360:1320:0:0
Kuwait Space Channel :12654:v:1:27500:1460:1420:0:0
Libya TV:12654:v:1:27500:1560:1520:0:0
Sudan TV:12654:v:1:27500:1660:1620:0:0
Oman TV:12654:v:1:27500:1760:1720:0:0
Jordan Satellite Channel:12654:v:1:27500:1860:1820:0:0
Iraq Satellite Channel:12654:v:1:27500:1960:1920:0:0
Thai TV 5 Global Network :12673:v:1:27500:200:201:0:0
Telemarket:12673:v:1:27500:350:351:0:0
Evision:12673:v:1:27500:360:361:0:0
Onyx TV:12692:v:1:27500:161:84:0:0
EWTN:10723:v:1:29900:1001:1201:0:0
Test (Newslynx):10723:v:1:29900:1002:1202:0:0
MTA International:10723:v:1:29900:1004:1204:0:0
J TV Test:10992:v:1:27500:2436:2437:0:0
Bloomberg UK Test Card:11242:v:1:27500:162:88:0:0
Channel SUN TV:11604:h:1:27500:111:112:0:0
Olisat TLC test card:11623:v:1:27500:225:245:0:0
Channel SUN Test (KBT):11623:v:1:27500:229:249:0:0
Rai way 3 test card:11766:v:1:27500:164:96:0:0
Rai way 1 test card:11766:v:1:27500:515:653:0:0
Rai way 2 test card:11766:v:1:27500:516:654:0:0
Test (Local Satellite):12092:v:1:27500:4176:4177:0:0
Retelsat Test:12092:v:1:27500:4464:4465:0:0
AIT Test Card:12111:v:1:27500:220:221:0:0
Fucino Test Card:12111:v:1:27500:230:231:0:0
PGM1:12230:v:1:13396:1160:1121:0:0

View File

@ -1,63 +0,0 @@
LNB ID 1 TYPE 1 LOF1 9750000 LOF2 10600000 SLOF 11800000 DISEQCNR 1
SAT ID 1 NAME "Hotbird" LNBID 1 FMIN 12015000 FMAX 12100000
TRANSPONDER ID 119c8 SATID 0001 TYPE 1 FREQ 12341001 POL V SRATE 27500000 FEC 8
CHANNEL ID 0 NAME "T+ BIANCO" SATID ffffff TPID 119c8 SID 2b5d TYPE 1 VPID a0 APID 50 APID 51 TTPID 2c PCRPID a0
CHANNEL ID 1 NAME "T+ NERO" SATID ffffff TPID 119c8 SID 2b5f TYPE 1 VPID a1 APID 54 APID 55 TTPID 2d PCRPID a1
CHANNEL ID 2 NAME "T+ GRIGIO" SATID ffffff TPID 119c8 SID 2b61 TYPE 1 VPID a2 APID 58 APID 59 PCRPID a2
CHANNEL ID 3 NAME "R4" SATID ffffff TPID 119c8 SID 18 TYPE 1 VPID a3 PCRPID a3
CHANNEL ID 4 NAME "16:9 TELE+" SATID ffffff TPID 119c8 SID 2b63 TYPE 1 VPID a4 APID 60 APID 61 PCRPID a4
CHANNEL ID 5 NAME "VETRINA D+" SATID ffffff TPID 119c8 SID 2b65 TYPE 1 PCRPID a5
CHANNEL ID 6 NAME "R/RAGAZZI RAISAT" SATID ffffff TPID 119c8 SID 2b67 TYPE 1 PCRPID a6
TRANSPONDER ID 11a90 SATID 0001 TYPE 1 FREQ 12341001 POL V SRATE 27500000 FEC 8
CHANNEL ID 7 NAME "PALCO" SATID ffffff TPID 11a90 SID 2bc1 TYPE 1 PCRPID af
CHANNEL ID 8 NAME "INFO" SATID ffffff TPID 11a90 SID 2bc3 TYPE 1 VPID a1 PCRPID af
CHANNEL ID 9 NAME "P1" SATID ffffff TPID 11a90 SID 2bc5 TYPE 1 VPID a2 APID 58 APID 59 PCRPID af
CHANNEL ID a NAME "P2" SATID ffffff TPID 11a90 SID 2bc7 TYPE 1 VPID a3 APID 5c APID 5d PCRPID af
CHANNEL ID b NAME "P3" SATID ffffff TPID 11a90 SID 2bc9 TYPE 1 VPID a4 APID 60 APID 61 PCRPID af
CHANNEL ID c NAME "P4" SATID ffffff TPID 11a90 SID 2bcb TYPE 1 VPID a5 APID 64 APID 65 PCRPID af
CHANNEL ID d NAME "P5" SATID ffffff TPID 11a90 SID 2bcd TYPE 1 VPID a6 APID 68 APID 69 PCRPID af
CHANNEL ID e NAME "P6" SATID ffffff TPID 11a90 SID 2bcf TYPE 1 VPID a7 APID 6c APID 6d PCRPID af
TRANSPONDER ID 11964 SATID 0001 TYPE 1 FREQ 12015000 POL H SRATE 27500000 FEC 8
CHANNEL ID f NAME "ART VARIETY" SATID ffffff TPID 11964 SID 19a TYPE 1 VPID a0 PCRPID a0
CHANNEL ID 10 NAME "ART CHILDREN" SATID ffffff TPID 11964 SID 1a4 TYPE 1 VPID a1 PCRPID a1
CHANNEL ID 11 NAME "ART MOVIES" SATID ffffff TPID 11964 SID 1ae TYPE 1 VPID a2 PCRPID a2
CHANNEL ID 12 NAME "ART MUSIC" SATID ffffff TPID 11964 SID 1b8 TYPE 1 VPID a3 PCRPID a3
CHANNEL ID 13 NAME "ART EUROPE" SATID ffffff TPID 11964 SID 1c2 TYPE 0 VPID a4 PCRPID a4
CHANNEL ID 14 NAME "LBC EUROPE" SATID ffffff TPID 11964 SID 1cc TYPE 1 VPID a5 PCRPID a5
CHANNEL ID 15 NAME "EGYPT SAT. CH. 2" SATID ffffff TPID 11964 SID 1d6 TYPE 1 VPID a6 PCRPID a6
CHANNEL ID 16 NAME "ART SPORT" SATID ffffff TPID 11964 SID 1d8 TYPE 1 VPID a7 PCRPID a7
CHANNEL ID 17 NAME "IQRA" SATID ffffff TPID 11964 SID 1da TYPE 1 VPID a8 PCRPID a8
TRANSPONDER ID 11a2c SATID 0001 TYPE 1 FREQ 12341001 POL H SRATE 27500000 FEC 8
CHANNEL ID ffffffff NAME "CNN" SATID ffffff TPID 11a2c SID 2ced TYPE 1 PCRPID af
CHANNEL ID ffffffff NAME "BBC" SATID ffffff TPID 11a2c SID 2cef TYPE 1 PCRPID af
CHANNEL ID ffffffff NAME "BLOOMBERG" SATID ffffff TPID 11a2c SID 2cf1 TYPE 1 PCRPID af
CHANNEL ID ffffffff NAME "CNBC" SATID ffffff TPID 11a2c SID 2cf3 TYPE 1 PCRPID af
CHANNEL ID ffffffff NAME "SKYNews" SATID ffffff TPID 11a2c SID 2cf5 TYPE 1 PCRPID af
CHANNEL ID ffffffff NAME "TST2" SATID ffffff TPID 11a2c SID 2cf7 TYPE 1 PCRPID af
CHANNEL ID ffffffff NAME "TV5" SATID ffffff TPID 11a2c SID 2cf9 TYPE 1 PCRPID af
CHANNEL ID ffffffff NAME "EPG" SATID ffffff TPID 11a2c SID 2cfb TYPE 1 PCRPID af
CHANNEL ID ffffffff NAME "CNN" SATID ffffff TPID 11a2c SID 2cfd TYPE 1 VPID a0 APID 50 PCRPID af
CHANNEL ID ffffffff NAME "CNBC" SATID ffffff TPID 11a2c SID 2cff TYPE 1 VPID a3 APID 5c PCRPID af
CHANNEL ID ffffffff NAME "TV5" SATID ffffff TPID 11a2c SID 2d01 TYPE 1 VPID a6 APID 68 PCRPID af
CHANNEL ID ffffffff NAME "BBC WORLD" SATID ffffff TPID 11a2c SID 2d03 TYPE 1 VPID a1 APID 54 PCRPID af
CHANNEL ID ffffffff SATID ffffff TPID 11a2c SID 2d4b TYPE 0 PCRPID 1ffe
CHANNEL ID ffffffff SATID ffffff TPID 11a2c SID 26fc TYPE 0 PCRPID 1ffe
CHANNEL ID ffffffff SATID ffffff TPID 11a2c SID 26fd TYPE 0 PCRPID 1ffe
TRANSPONDER ID 11af4 SATID 0001 TYPE 1 FREQ 12091901 POL H SRATE 27500000 FEC 8
CHANNEL ID 27 NAME "Bolsa" SATID ffffff TPID 11af4 SID 222e TYPE 0
CHANNEL ID 28 NAME "Testw" SATID ffffff TPID 11af4 SID 222f TYPE 0
CHANNEL ID 29 NAME "SIRE" SATID ffffff TPID 11af4 SID 2230 TYPE 0 PCRPID 102
CHANNEL ID 2a NAME "Telesierra" SATID ffffff TPID 11af4 SID 2200 TYPE 0 VPID 1040 APID 1041 PCRPID 1040
CHANNEL ID 2b NAME "vtv" SATID ffffff TPID 11af4 SID 21fd TYPE 0 VPID 1010 APID 1012 APID 1011 APID 1013 PCRPID 1010
CHANNEL ID 2c NAME "Satisfaction" SATID ffffff TPID 11af4 SID 2202 TYPE 0 VPID 1060 APID 1061 PCRPID 1060
CHANNEL ID 2d NAME "C. Milagro" SATID ffffff TPID 11af4 SID 2207 TYPE 0 VPID 1110 APID 1111 PCRPID 1110
CHANNEL ID 2e NAME "Fiesta" SATID ffffff TPID 11af4 SID 2210 TYPE 0 VPID 1150 APID 1151 APID 1152 PCRPID 1150
CHANNEL ID 2f NAME "TVE Internacional" SATID ffffff TPID 11af4 SID 2203 TYPE 0 VPID 1070 APID 1071 PCRPID 1070
CHANNEL ID 30 NAME "TV Galicia" SATID ffffff TPID 11af4 SID 2204 TYPE 0 APID 1090 PCRPID 1090
CHANNEL ID 31 NAME "Radio Gallega" SATID ffffff TPID 11af4 SID 2205 TYPE 0 APID 1090 PCRPID 1090
CHANNEL ID 32 NAME "Retelsat" SATID ffffff TPID 11af4 SID 2212 TYPE 1 VPID 1170 APID 1171 PCRPID 1170
CHANNEL ID 33 NAME "Musicam 1" SATID ffffff TPID 11af4 SID 2209 TYPE 1 APID 1136 PCRPID 1136
CHANNEL ID 34 NAME "Musicam 2" SATID ffffff TPID 11af4 SID 220a TYPE 1 APID 1131 PCRPID 1131
CHANNEL ID 35 NAME "Musicam 3" SATID ffffff TPID 11af4 SID 220b TYPE 1 APID 1136 PCRPID 1136
CHANNEL ID 36 NAME "Musicam 4" SATID ffffff TPID 11af4 SID 220c TYPE 1 APID 1136 PCRPID 1136
CHANNEL ID 37 NAME "Musicam 5" SATID ffffff TPID 11af4 SID 220d TYPE 1 APID 1136 PCRPID 1136

View File

@ -1,183 +0,0 @@
/*
* * dvbrc2vdr.c: Converts 'xtvrc' files to 'vdr' channel format
* *
* * Copyright (C) 2000 Plamen Ganev
* *
* * This program is free software; you can redistribute it and/or
* * modify it under the terms of the GNU General Public License
* * as published by the Free Software Foundation; either version 2
* * of the License, or (at your option) any later version.
* *
* * This program is distributed in the hope that it will be useful,
* * but WITHOUT ANY WARRANTY; without even the implied warranty of
* * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* * GNU General Public License for more details.
* *
* * You should have received a copy of the GNU General Public License
* * along with this program; if not, write to the Free Software
* * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
* *
* * The author can be reached at pganev@comm.it
* *
* */
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#define MAX_LINE_LEN 1024
#define MAX_NAME 100
#define TOKS ": \n\r"
#define NAMETOKS ":\n\r"
typedef struct {
char Name[MAX_NAME+1];
int freq;
int color, hue, bright, saturation ;
int nitv, input ;
int pol, srate, fec, vpid, apid, lnbnum, type;
int sid, pcrpid ;
} CHANNEL_DATA ;
void strupr( char *s ){
while ( s && *s ){
*s = toupper(*s);
s++;
}
}
/* Warning: This function uses the last strtol string! */
int GetTpInfo( CHANNEL_DATA *channel )
{
// s is: ID x SATID x TYPE x FREQ x POL H/V SRATE x FEC x
char *p ;
p = strtok( NULL, TOKS ) ; /* Skip ID */
p = strtok( NULL, TOKS ) ; /* Skip x */
p = strtok( NULL, TOKS ) ; /* Skip SatId */
p = strtok( NULL, TOKS ) ; /* Skip x */
p = strtok( NULL, TOKS ) ; /* Skip Type */
p = strtok( NULL, TOKS ) ; /* Skip x */
p = strtok( NULL, TOKS ) ; /* Skip Freq */
p = strtok( NULL, TOKS ) ; /* Get Freq */
channel->freq = atol( p ) / 1000 ;
p = strtok( NULL, TOKS ) ; /* Skip Pol */
p = strtok( NULL, TOKS ) ; /* Get H/V */
channel->pol = (*p=='V') ? 1 : 0 ;
p = strtok( NULL, TOKS ) ; /* Skip SRATE */
p = strtok( NULL, TOKS ) ; /* Get srate */
channel->srate = atol(p) / 1000 ; /* Convert SRATE */
return 0;
}
/* Warning: This function uses the last strtol string! */
int GetChInfo( CHANNEL_DATA *channel )
{
/* s is: ID x NAME "name" SATID x TPID x SID x TYPE x VPID x APID x */
char *p, *q ;
p = strtok( NULL, TOKS ) ;
while ( p ) {
if ( !strcmp( p, "ID" )) {
p = strtok( NULL, TOKS ) ;
} else if ( !strcmp( p, "NAME")) {
while ( *p++ ); /* Jump to end of "NAME" */
p++ ; /* One More */
while ( *p == '"' ) p++ ; /* Skip the " */
q = channel->Name ;
while ( *p != '"' )
if ( *p == ':' )
*q++ = '|', p++ ;
else
*q++ = *p++ ; /* Copy the name */
*q = 0 ;
p++ ;
p = strtok( p, TOKS ) ;
channel->apid = 8190;
channel->vpid = 8190;
channel->pcrpid = 0 ;
channel->sid = 0;
} else if ( !strcmp( p, "VPID")) {
p = strtok( NULL, TOKS ) ;
channel->vpid = strtol( p, NULL, 16 ) ;
p = strtok( NULL, TOKS ) ;
} else if ( !strcmp( p, "APID")) {
p = strtok( NULL, TOKS ) ;
channel->apid = strtol( p, NULL, 16 ) ;
p = strtok( NULL, TOKS ) ;
} else if ( !strcmp( p, "SID")) {
p = strtok( NULL, TOKS ) ;
channel->sid = strtol( p, NULL, 16 ) ;
p = strtok( NULL, TOKS ) ;
} else if ( !strcmp( p, "PCRPID")) {
p = strtok( NULL, TOKS ) ;
channel->pcrpid = strtol( p, NULL, 16 ) ;
p = strtok( NULL, TOKS ) ;
} else {
p = strtok( NULL, TOKS ) ;
}
}
return 1;
}
int ReadChannel( FILE *f, CHANNEL_DATA *channel ) {
static char s[MAX_LINE_LEN+1];
char *p;
while (fgets( s, MAX_LINE_LEN, f )){
p = strtok( s, TOKS ) ;
strupr( p ) ;
if ( !strcmp( p, "TRANSPONDER" )){
GetTpInfo( channel ) ;
} else if ( !strcmp( p, "CHANNEL" ) ) {
GetChInfo( channel ) ;
return 1 ;
}
}
return 0 ;
}
int main ( int argc, char *argv[] ){
FILE *f, *fo ;
int cnt = 0;
CHANNEL_DATA channel ;
if ( argc != 3 ){
printf("USAGE: %s <dvbrc file> <vdr file>\n\n", argv[0] ) ;
return 0;
}
if ( !(f=fopen(argv[1], "rt"))){
printf("Can't open %s for reading\n\n", argv[1]);
return 0;
}
if ( !(fo=fopen(argv[2], "wt"))){
printf("Can't open %s for writing\n\n", argv[2]);
return 0;
}
while ( ReadChannel( f, &channel ) ) {
cnt++;
fprintf(fo, "%s:%d:%c:%d:%d:%d:%d:%d:%d\n",
channel.Name ,
channel.freq ,
channel.pol ? 'v' : 'h' ,
1, //channel.lnbnum ,
channel.srate ,
channel.vpid ,
channel.apid ,
0, //channel.type ,
channel.sid ) ;
}
printf( "%d channels read.\n\n", cnt ) ;
fclose(f);
fclose(fo);
return 1;
}

View File

@ -1,878 +0,0 @@
LNB ID 0 TYPE 1 LOF1 9750000 LOF2 10600000 SLOF 11800000 DISEQCNR 0
SAT ID 0 NAME "HotBird" LNBID 0 FMIN 10700000 FMAX 12800000
TRANSPONDER ID 2af8 SATID 0000 TYPE 1 FREQ 10719000 POL V SRATE 27500000 FEC 8
CHANNEL ID 0 NAME "DISCOVERY" SATID ffffff TPID 2af8 SID 1132 TYPE 1 PCRPID a1
CHANNEL ID 1 NAME "RTL7" SATID ffffff TPID 2af8 SID 1133 TYPE 1 PCRPID a2
CHANNEL ID 2 NAME "TV POLONIA" SATID ffffff TPID 2af8 SID 1134 TYPE 1 PCRPID a3
CHANNEL ID 3 NAME "EUROSPORT" SATID ffffff TPID 2af8 SID 1135 TYPE 1 PCRPID a4
CHANNEL ID 4 NAME "PLANETE" SATID ffffff TPID 2af8 SID 1136 TYPE 1 PCRPID a5
CHANNEL ID 5 NAME "SEASONS" SATID ffffff TPID 2af8 SID 1137 TYPE 1 PCRPID a6
CHANNEL ID 6 NAME "VIVA Polska" SATID ffffff TPID 2af8 SID 1138 TYPE 1 PCRPID a7
CHANNEL ID 7 NAME "MULTIMUSIC 4" SATID ffffff TPID 2af8 SID 1158 TYPE 1 APID 79 APID 7a APID 7b PCRPID 79
CHANNEL ID 8 NAME "EPG" SATID ffffff TPID 2af8 SID 1162 TYPE 1 PCRPID a1
CHANNEL ID 9 NAME "CYFRA+ GRY" SATID ffffff TPID 2af8 SID 116c TYPE 1
TRANSPONDER ID 0101 SATID 0000 TYPE 1 FREQ 10722000 POL H SRATE 27500000 FEC 8
TRANSPONDER ID 2bc0 SATID 0000 TYPE 1 FREQ 0 POL V SRATE 27500000 FEC 8
CHANNEL ID a NAME "Guide LC" SATID ffffff TPID 2bc0 SID 7d0 TYPE 0 APID 1f5e PCRPID 1f5e
CHANNEL ID b NAME "Cinestar 1" SATID ffffff TPID 2bc0 SID 4b1 TYPE 1 VPID 78 APID 82 PCRPID 78
CHANNEL ID c NAME "Cinestar 2" SATID ffffff TPID 2bc0 SID 4b2 TYPE 1 VPID dc APID e6 PCRPID dc
CHANNEL ID d NAME "Cinetoile" SATID ffffff TPID 2bc0 SID 4b3 TYPE 1 VPID 140 APID 14a PCRPID 140
CHANNEL ID e NAME "Shopping Avenue" SATID ffffff TPID 2bc0 SID 4b4 TYPE 1 VPID 1a4 APID 1ae PCRPID 1a4
CHANNEL ID f NAME "Série Club " SATID ffffff TPID 2bc0 SID 4b5 TYPE 1 VPID 208 APID 212 PCRPID 208
CHANNEL ID 10 NAME "FUN TV" SATID ffffff TPID 2bc0 SID 4b6 TYPE 1 VPID 26c APID 276 PCRPID 26c
CHANNEL ID 11 NAME "Teva" SATID ffffff TPID 2bc0 SID 4b7 TYPE 1 VPID 2d0 APID 2da PCRPID 2d0
CHANNEL ID 12 NAME "M6 Music" SATID ffffff TPID 2bc0 SID 4b8 TYPE 1 VPID 334 APID 33e PCRPID 334
CHANNEL ID 13 NAME "Club Téléachat" SATID ffffff TPID 2bc0 SID 4b9 TYPE 1 VPID 398 APID 3a2 PCRPID 398
TRANSPONDER ID 0103 SATID 0000 TYPE 1 FREQ 10775000 POL H SRATE 27500000 FEC 8
TRANSPONDER ID 2c88 SATID 0000 TYPE 1 FREQ 0 POL V SRATE 27500000 FEC 8
CHANNEL ID 14 NAME "INFOSPORT" SATID ffffff TPID 2c88 SID 579 TYPE 1 VPID 78 APID 82 PCRPID 78
CHANNEL ID 15 NAME "Régions" SATID ffffff TPID 2c88 SID 57a TYPE 1 VPID dc APID e6 PCRPID dc
CHANNEL ID 16 NAME "Mezzo" SATID ffffff TPID 2c88 SID 57b TYPE 1 VPID 140 APID 14a PCRPID 140
CHANNEL ID 17 NAME "01 01 15 97" SATID ffffff TPID 2c88 SID 5cb TYPE 0
CHANNEL ID 18 NAME "01 01 17 97" SATID ffffff TPID 2c88 SID 5cd TYPE 0
CHANNEL ID 19 NAME "01 02 17 97" SATID ffffff TPID 2c88 SID 5ce TYPE 0
CHANNEL ID 1a NAME "01 02 15 97" SATID ffffff TPID 2c88 SID 5d0 TYPE 0
CHANNEL ID 1b NAME "01 02 15 96" SATID ffffff TPID 2c88 SID 5d1 TYPE 0
CHANNEL ID 1c NAME "01 03 17 10" SATID ffffff TPID 2c88 SID 5d2 TYPE 0
CHANNEL ID 1d NAME "01 03 15 10" SATID ffffff TPID 2c88 SID 5d3 TYPE 0
CHANNEL ID 1e NAME "Festival" SATID ffffff TPID 2c88 SID 57c TYPE 1 VPID 1a4 APID 1ae PCRPID 1a4
CHANNEL ID 1f NAME "HISTOIRE " SATID ffffff TPID 2c88 SID 57d TYPE 1 VPID 208 APID 212 PCRPID 208
CHANNEL ID 20 NAME "Télétoon" SATID ffffff TPID 2c88 SID 57e TYPE 1 VPID 26c APID 276 PCRPID 26c
CHANNEL ID 21 NAME "Odyssée " SATID ffffff TPID 2c88 SID 57f TYPE 1 VPID 2d0 APID 2da PCRPID 2d0
CHANNEL ID 22 NAME "France Musiques" SATID ffffff TPID 2c88 SID 58a TYPE 0 APID 33e PCRPID 33e
CHANNEL ID 23 NAME "Hector" SATID ffffff TPID 2c88 SID 58b TYPE 0 APID 33f PCRPID 33f
CHANNEL ID 24 NAME "FIP" SATID ffffff TPID 2c88 SID 58c TYPE 0 APID 340 PCRPID 340
CHANNEL ID 25 NAME "France Inter" SATID ffffff TPID 2c88 SID 58d TYPE 0 APID 341 PCRPID 341
CHANNEL ID 26 NAME "France Info" SATID ffffff TPID 2c88 SID 58e TYPE 0 APID 342 PCRPID 342
CHANNEL ID 27 NAME "Elisa" SATID ffffff TPID 2c88 SID 58f TYPE 0 APID 343 PCRPID 343
CHANNEL ID 28 NAME "France Culture" SATID ffffff TPID 2c88 SID 590 TYPE 0 APID 344 PCRPID 344
CHANNEL ID 29 NAME "Radio Bleue" SATID ffffff TPID 2c88 SID 591 TYPE 0 APID 345 PCRPID 345
CHANNEL ID 2a NAME "Le Mouv" SATID ffffff TPID 2c88 SID 592 TYPE 0 APID 346 PCRPID 346
CHANNEL ID 2b NAME "TV5" SATID ffffff TPID 2c88 SID 581 TYPE 1 VPID 398 APID 3a2 PCRPID 398
TRANSPONDER ID 2d50 SATID 0000 TYPE 1 FREQ 0 POL V SRATE 27500000 FEC 8
CHANNEL ID 2c NAME "CENTRONICS" SATID ffffff TPID 2d50 SID 7d0 TYPE 0
CHANNEL ID 2d NAME "FRANCE 2 " SATID ffffff TPID 2d50 SID 450 TYPE 1 VPID 140 PCRPID 140
CHANNEL ID 2e NAME "FRANCE 3" SATID ffffff TPID 2d50 SID 452 TYPE 1 VPID 208 PCRPID 208
CHANNEL ID 2f NAME "Crédit Agricole" SATID ffffff TPID 2d50 SID 14b5 TYPE 0 APID 14d5 PCRPID 14c9
CHANNEL ID 30 NAME "tps foot" SATID ffffff TPID 2d50 SID 1450 TYPE 0 APID 146e PCRPID 146e
CHANNEL ID 31 NAME "LCI" SATID ffffff TPID 2d50 SID 44d TYPE 1 VPID 78 APID 82 PCRPID 78
CHANNEL ID 32 NAME "EUROSPORT" SATID ffffff TPID 2d50 SID 44e TYPE 1 VPID dc APID e6 PCRPID dc
CHANNEL ID 33 NAME "FRANCE 2" SATID ffffff TPID 2d50 SID 44f TYPE 1 VPID 140 PCRPID 140
CHANNEL ID 34 NAME "FRANCE 3" SATID ffffff TPID 2d50 SID 451 TYPE 1 VPID 208 PCRPID 208
CHANNEL ID 35 NAME "I TELEVISION" SATID ffffff TPID 2d50 SID 454 TYPE 1 VPID 334 APID 33e PCRPID 334
CHANNEL ID 36 NAME "TV Mail alphatest" SATID ffffff TPID 2d50 SID 1645 TYPE 0
CHANNEL ID 37 NAME "CHAINE FI" SATID ffffff TPID 2d50 SID 14b4 TYPE 0 APID 14d2 APID 14d3 PCRPID 14d2
CHANNEL ID 38 NAME "caisse d'épargne" SATID ffffff TPID 2d50 SID 14b7 TYPE 0
CHANNEL ID 39 NAME "TV Mail" SATID ffffff TPID 2d50 SID 1644 TYPE 0
TRANSPONDER ID 2e7c SATID 0000 TYPE 1 FREQ 10892000 POL H SRATE 27500000 FEC 8
CHANNEL ID 3a NAME "CANAL+" SATID ffffff TPID 2e7c SID 12c1 TYPE 1 PCRPID a0
CHANNEL ID 3b NAME "CANAL+ ¯Ó£TY" SATID ffffff TPID 2e7c SID 12c2 TYPE 1 PCRPID a1
CHANNEL ID 3c NAME "TMT" SATID ffffff TPID 2e7c SID 12c4 TYPE 1 PCRPID a3
CHANNEL ID 3d NAME "ALE KINO!" SATID ffffff TPID 2e7c SID 12c5 TYPE 1 PCRPID a4
CHANNEL ID 3e NAME "MINIMAX" SATID ffffff TPID 2e7c SID 12c6 TYPE 1 PCRPID a5
CHANNEL ID 3f NAME "TVP 1" SATID ffffff TPID 2e7c SID 12c7 TYPE 1 PCRPID a6
CHANNEL ID 40 NAME "TVP 2" SATID ffffff TPID 2e7c SID 12c8 TYPE 1 PCRPID a7
CHANNEL ID 41 NAME "CANAL+ NIEBIESKI" SATID ffffff TPID 2e7c SID 12c9 TYPE 1 PCRPID a8
CHANNEL ID 42 NAME "EPG" SATID ffffff TPID 2e7c SID 12f2 TYPE 1 TTPID 1f4 PCRPID a0
TRANSPONDER ID 2ee0 SATID 0000 TYPE 1 FREQ 0 POL V SRATE 27500000 FEC 8
CHANNEL ID 43 NAME "Multivision" SATID ffffff TPID 2ee0 SID 643 TYPE 0 VPID 140 PCRPID 140
CHANNEL ID 44 NAME "Grand Classique" SATID ffffff TPID 2ee0 SID 672 TYPE 1 APID 33e PCRPID 33e
CHANNEL ID 45 NAME "Symphonies" SATID ffffff TPID 2ee0 SID 673 TYPE 1 APID 33f PCRPID 33f
CHANNEL ID 46 NAME "Baroque" SATID ffffff TPID 2ee0 SID 674 TYPE 1 APID 340 PCRPID 340
CHANNEL ID 47 NAME "Opéra" SATID ffffff TPID 2ee0 SID 675 TYPE 1 APID 341 PCRPID 341
CHANNEL ID 48 NAME "Contemporain" SATID ffffff TPID 2ee0 SID 676 TYPE 1 APID 342 PCRPID 342
CHANNEL ID 49 NAME "Relaxation" SATID ffffff TPID 2ee0 SID 677 TYPE 1 APID 343 PCRPID 343
CHANNEL ID 4a NAME "Blues" SATID ffffff TPID 2ee0 SID 678 TYPE 1 APID 344 PCRPID 344
CHANNEL ID 4b NAME "Jazz" SATID ffffff TPID 2ee0 SID 679 TYPE 1 APID 345 PCRPID 345
CHANNEL ID 4c NAME "Big Band" SATID ffffff TPID 2ee0 SID 67a TYPE 1 APID 346 PCRPID 346
CHANNEL ID 4d NAME "Jazz Moderne" SATID ffffff TPID 2ee0 SID 67b TYPE 1 APID 347 PCRPID 347
CHANNEL ID 4e NAME "Les Tubes Français" SATID ffffff TPID 2ee0 SID 67c TYPE 1 APID 348 PCRPID 348
CHANNEL ID 4f NAME "RFO SAT" SATID ffffff TPID 2ee0 SID 641 TYPE 0 VPID 78 APID 82 PCRPID 78
CHANNEL ID 50 NAME "Appli D1 LC" SATID ffffff TPID 2ee0 SID 690 TYPE 0
CHANNEL ID 51 NAME "Cinefaz" SATID ffffff TPID 2ee0 SID 642 TYPE 1 VPID dc APID e6 PCRPID dc
CHANNEL ID 52 NAME "TurboPC" SATID ffffff TPID 2ee0 SID af1 TYPE 0
CHANNEL ID 53 NAME "MTV2" SATID ffffff TPID 2ee0 SID 647 TYPE 1 VPID 2d0 APID 2da PCRPID 2d0
CHANNEL ID 54 NAME "Rire et chansons" SATID ffffff TPID 2ee0 SID 65e TYPE 0 APID 3a2 PCRPID 3a2
CHANNEL ID 55 NAME "Radio J" SATID ffffff TPID 2ee0 SID 65f TYPE 1 APID 3a3 PCRPID 3a3
CHANNEL ID 56 NAME "Mosqueteiros" SATID ffffff TPID 2ee0 SID 660 TYPE 0 APID 3a4 PCRPID 3a4
CHANNEL ID 57 NAME "Abysse" SATID ffffff TPID 2ee0 SID 661 TYPE 1 APID 3a5 PCRPID 3a5
CHANNEL ID 58 NAME "RMC" SATID ffffff TPID 2ee0 SID 663 TYPE 1 APID 3a7 PCRPID 3a7
CHANNEL ID 59 NAME "Radio Junior" SATID ffffff TPID 2ee0 SID 664 TYPE 0 APID 3a8 PCRPID 3a8
CHANNEL ID 5a NAME "NETRADIO" SATID ffffff TPID 2ee0 SID 665 TYPE 0 APID 3a9 PCRPID 3a9
CHANNEL ID 5b NAME "Nostalgie" SATID ffffff TPID 2ee0 SID 666 TYPE 0 APID 3aa PCRPID 3aa
CHANNEL ID 5c NAME "Skyrock" SATID ffffff TPID 2ee0 SID 667 TYPE 1 APID 3ab PCRPID 3ab
CHANNEL ID 5d NAME "Radio Coutoisie" SATID ffffff TPID 2ee0 SID 668 TYPE 0 APID 3ac PCRPID 3ac
CHANNEL ID 5e NAME "La Voix des Pays" SATID ffffff TPID 2ee0 SID 669 TYPE 0 APID 3ad PCRPID 3ad
CHANNEL ID 5f NAME "INFO EXPRESS" SATID ffffff TPID 2ee0 SID 157c TYPE 0 APID 159a PCRPID 159a
CHANNEL ID 60 NAME "METEO" SATID ffffff TPID 2ee0 SID 16a8 TYPE 0 APID 16c6 PCRPID 16c6
CHANNEL ID 61 NAME "X X L" SATID ffffff TPID 2ee0 SID 1518 TYPE 1
CHANNEL ID 62 NAME "Multivision Cinéma" SATID ffffff TPID 2ee0 SID 1c20 TYPE 0
CHANNEL ID 63 NAME "Multivision Sport" SATID ffffff TPID 2ee0 SID 1c84 TYPE 0 TTPID 18fb
CHANNEL ID 64 NAME "Multivision Spectacle" SATID ffffff TPID 2ee0 SID 1ce8 TYPE 0
TRANSPONDER ID 2f44 SATID 0000 TYPE 1 FREQ 12673000 POL H SRATE 27500000 FEC 8
CHANNEL ID 65 NAME "Test OTV8" SATID ffffff TPID 2f44 SID 1d67 TYPE 1 PCRPID e80
CHANNEL ID 66 NAME "Test OTV9" SATID ffffff TPID 2f44 SID 1d68 TYPE 1 PCRPID e80
CHANNEL ID 67 NAME "Test OTV10" SATID ffffff TPID 2f44 SID 1d69 TYPE 1 PCRPID e80
CHANNEL ID 68 NAME "Test OTV11" SATID ffffff TPID 2f44 SID 1d6a TYPE 1 VPID 201 PCRPID 1ffe
CHANNEL ID 69 NAME "Test31" SATID ffffff TPID 2f44 SID 1d4d TYPE 1 VPID 200 APID 28a PCRPID 1ffe
CHANNEL ID 6a NAME "CNN" SATID ffffff TPID 2f44 SID 1d4e TYPE 1 VPID 201 APID 294 PCRPID 1ffe
CHANNEL ID 6b NAME "Q24" SATID ffffff TPID 2f44 SID 1d4f TYPE 0 VPID 202 APID 29e APID 29f APID 2a9 APID 2b3 PCRPID 1ffe
CHANNEL ID 6c NAME "Test34" SATID ffffff TPID 2f44 SID 1d50 TYPE 1 VPID 203 APID 2a8 PCRPID 1ffe
CHANNEL ID 6d NAME "Test35" SATID ffffff TPID 2f44 SID 1d51 TYPE 1 VPID 204 APID 2b2 PCRPID 1ffe
CHANNEL ID 6e NAME "Test OTV1" SATID ffffff TPID 2f44 SID 1d60 TYPE 1 PCRPID e80
CHANNEL ID 6f NAME "Test OTV2" SATID ffffff TPID 2f44 SID 1d61 TYPE 1 PCRPID e80
CHANNEL ID 70 NAME "Test OTV3" SATID ffffff TPID 2f44 SID 1d62 TYPE 1 PCRPID e80
CHANNEL ID 71 NAME "Test OTV4" SATID ffffff TPID 2f44 SID 1d63 TYPE 1 PCRPID e80
CHANNEL ID 72 NAME "Test OTV5" SATID ffffff TPID 2f44 SID 1d64 TYPE 1 PCRPID e80
CHANNEL ID 73 NAME "Test OTV6" SATID ffffff TPID 2f44 SID 1d65 TYPE 1 PCRPID e80
CHANNEL ID 74 NAME "Test OTV7" SATID ffffff TPID 2f44 SID 1d66 TYPE 1 PCRPID e80
CHANNEL ID 75 SATID ffffff TPID 2f44 SID 1d74 TYPE 0
CHANNEL ID 76 SATID ffffff TPID 2f44 SID 1d75 TYPE 0
TRANSPONDER ID 0109 SATID 0000 TYPE 1 FREQ 11033000 POL V SRATE 27500000 FEC 8
TRANSPONDER ID 010a SATID 0000 TYPE 1 FREQ 11054000 POL H SRATE 27500000 FEC 8
TRANSPONDER ID 3264 SATID 0000 TYPE 1 FREQ 11095910 POL H SRATE 27500000 FEC 8
CHANNEL ID ffffffff NAME "Telekom TV" SATID ffffff TPID 3264 SID e7f TYPE 0 VPID 20 PCRPID 20
CHANNEL ID ffffffff NAME "FantasticOverOpal" SATID ffffff TPID 3264 SID e80 TYPE 0 VPID 20 PCRPID 20
CHANNEL ID ffffffff NAME "Gilat" SATID ffffff TPID 3264 SID e81 TYPE 0 VPID 20 PCRPID 20
CHANNEL ID ffffffff NAME "Siemens TV" SATID ffffff TPID 3264 SID e84 TYPE 0 VPID 20 PCRPID 20
CHANNEL ID ffffffff NAME "S-TV" SATID ffffff TPID 3264 SID e85 TYPE 0 VPID 20 PCRPID 20
CHANNEL ID ffffffff NAME "Optibase Encoder" SATID ffffff TPID 3264 SID e86 TYPE 0 VPID 20 PCRPID 20
TRANSPONDER ID 010c SATID 0000 TYPE 1 FREQ 11130000 POL H SRATE 27500000 FEC 8
TRANSPONDER ID 010d SATID 0000 TYPE 1 FREQ 11131000 POL V SRATE 27500000 FEC 8
TRANSPONDER ID 010e SATID 0000 TYPE 1 FREQ 11196000 POL V SRATE 27500000 FEC 8
TRANSPONDER ID 010f SATID 0000 TYPE 1 FREQ 11205000 POL H SRATE 27500000 FEC 8
TRANSPONDER ID 0110 SATID 0000 TYPE 1 FREQ 11242000 POL H SRATE 27500000 FEC 8
TRANSPONDER ID 012c SATID 0000 TYPE 1 FREQ 11095910 POL H SRATE 27500000 FEC 8
CHANNEL ID 7d NAME "FantasticOverOpal" SATID ffffff TPID 12c SID e76 TYPE 0 PCRPID 201
TRANSPONDER ID 004d SATID 0000 TYPE 1 FREQ 11303750 POL H SRATE 27500000 FEC 8
CHANNEL ID ffffffff NAME "Deutsche Bank / T1" SATID ffffff TPID 4d SID 1 TYPE 1 VPID 488 PCRPID 488
CHANNEL ID 7f NAME "Animal Planet" SATID ffffff TPID 4d SID a TYPE 1 VPID 488 PCRPID 488
CHANNEL ID 80 NAME "Discovery E Europe-English" SATID ffffff TPID 4d SID 14 TYPE 1 VPID 4ec PCRPID 4ec
CHANNEL ID ffffffff NAME "Wuerth KG / T21" SATID ffffff TPID 4d SID 15 TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 82 NAME "Discovery Italy" SATID ffffff TPID 4d SID 1e TYPE 1 VPID 550 PCRPID 550
CHANNEL ID ffffffff NAME "BTI / T31" SATID ffffff TPID 4d SID 1f TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 84 NAME "Discovery Russia" SATID ffffff TPID 4d SID 28 TYPE 1 VPID 5b4 PCRPID 5b4
CHANNEL ID ffffffff NAME "K-TV (MetroMux) / T41" SATID ffffff TPID 4d SID 29 TYPE 1 VPID 7a8 PCRPID 7a8
CHANNEL ID 86 NAME "Animal Planet EE" SATID ffffff TPID 4d SID 32 TYPE 1 VPID 618 PCRPID 618
CHANNEL ID 87 NAME "Animal Planet - Russian" SATID ffffff TPID 4d SID 33 TYPE 1 VPID 618 PCRPID 618
CHANNEL ID 88 NAME "Discovery Netherlands" SATID ffffff TPID 4d SID 3c TYPE 1 VPID 67c PCRPID 67c
CHANNEL ID ffffffff NAME "Q English" SATID ffffff TPID 4d SID 46 TYPE 0 VPID 6e0 PCRPID 6e0
CHANNEL ID 8a NAME "Travel and Adventure" SATID ffffff TPID 4d SID 50 TYPE 1 VPID 744 PCRPID 744
CHANNEL ID 8b NAME "Travel and Adventure- Russian" SATID ffffff TPID 4d SID 51 TYPE 1 VPID 744 PCRPID 744
CHANNEL ID 8c NAME "New DCP" SATID ffffff TPID 4d SID 12c TYPE 1 APID 4c4 PCRPID 4c4
CHANNEL ID 8d NAME "CCP" SATID ffffff TPID 4d SID 12d TYPE 1 VPID 4ec PCRPID 4ec
CHANNEL ID ffffffff NAME "Deutsche Bank / T2" SATID ffffff TPID 4d SID 2 TYPE 1 VPID 4ec PCRPID 4ec
CHANNEL ID 93 NAME "Channel Three" SATID ffffff TPID 4d SID 3 TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 94 NAME "Channel Four" SATID ffffff TPID 4d SID 4 TYPE 0 VPID 5b4 PCRPID 5b4
CHANNEL ID 95 NAME "Channel Five" SATID ffffff TPID 4d SID 5 TYPE 0 VPID 618 PCRPID 618
CHANNEL ID 96 NAME "Channel 6 = Sat 7 Arabic" SATID ffffff TPID 4d SID 6 TYPE 0 VPID 67c PCRPID 67c
CHANNEL ID 97 NAME "Channel Seven" SATID ffffff TPID 4d SID 7 TYPE 0 VPID 6e0 PCRPID 6e0
CHANNEL ID 98 NAME "Q German" SATID ffffff TPID 4d SID 47 TYPE 0 VPID 6e0 PCRPID 6e0
CHANNEL ID 99 NAME "Q French" SATID ffffff TPID 4d SID 48 TYPE 0 VPID 6e0 PCRPID 6e0
CHANNEL ID 9a NAME "Q Dutch" SATID ffffff TPID 4d SID 49 TYPE 0 VPID 6e0 PCRPID 6e0
CHANNEL ID 1b8 NAME "DTAG / T11" SATID ffffff TPID 4d SID b TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 1b9 NAME "DTAG 50 / T12" SATID ffffff TPID 4d SID c TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 1ba NAME "Telekom TV" SATID ffffff TPID 4d SID d TYPE 1 VPID 5b4 PCRPID 5b4
CHANNEL ID 1bb NAME "Gerling / T26" SATID ffffff TPID 4d SID 1a TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 1bc NAME "Hornbach-D / T36" SATID ffffff TPID 4d SID 24 TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 1bd NAME "Hornbach-NL / T38" SATID ffffff TPID 4d SID 26 TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 1be NAME "Hornbach-CZ / T39" SATID ffffff TPID 4d SID 27 TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 1bf NAME "Testkanal" SATID ffffff TPID 4d SID 63 TYPE 0 VPID 67c PCRPID 67c
CHANNEL ID 1c0 NAME "KENCAST" SATID ffffff TPID 4d SID 6f TYPE 0 PCRPID 42e
TRANSPONDER ID 0113 SATID 0000 TYPE 1 FREQ 11338000 POL V SRATE 27500000 FEC 8
TRANSPONDER ID 0114 SATID 0000 TYPE 1 FREQ 11371000 POL H SRATE 27500000 FEC 8
TRANSPONDER ID 0115 SATID 0000 TYPE 1 FREQ 11457000 POL H SRATE 27500000 FEC 8
TRANSPONDER ID 0116 SATID 0000 TYPE 1 FREQ 11464000 POL V SRATE 27500000 FEC 8
TRANSPONDER ID 3c8c SATID 0000 TYPE 1 FREQ 11604100 POL H SRATE 27500000 FEC 8
CHANNEL ID 8e NAME "SAT.1 CH" SATID ffffff TPID 3c8c SID 259 TYPE 0 VPID 65 APID 66 TTPID 69 PCRPID 69
CHANNEL ID 8f NAME "KBT Channel SUN" SATID ffffff TPID 3c8c SID 25b TYPE 0 VPID 6f APID 70 PCRPID 6f
CHANNEL ID 90 NAME "big FM" SATID ffffff TPID 3c8c SID 25c TYPE 0 APID 71 PCRPID 71
CHANNEL ID 91 NAME "Event" SATID ffffff TPID 3c8c SID 25a TYPE 0 VPID a0 APID a1 PCRPID a0
TRANSPONDER ID 0118 SATID 0000 TYPE 1 FREQ 11623000 POL H SRATE 27500000 FEC 8
TRANSPONDER ID 004d SATID 0000 TYPE 1 FREQ 11642500 POL H SRATE 27500000 FEC 8
CHANNEL ID ffffffff NAME "Deutsche Bank / T1" SATID ffffff TPID 4d SID 1 TYPE 1 VPID 488 PCRPID 488
CHANNEL ID 7f NAME "Animal Planet" SATID ffffff TPID 4d SID a TYPE 1 VPID 488 PCRPID 488
CHANNEL ID 80 NAME "Discovery E Europe-English" SATID ffffff TPID 4d SID 14 TYPE 1 VPID 4ec PCRPID 4ec
CHANNEL ID ffffffff NAME "Wuerth KG / T21" SATID ffffff TPID 4d SID 15 TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 82 NAME "Discovery Italy" SATID ffffff TPID 4d SID 1e TYPE 1 VPID 550 PCRPID 550
CHANNEL ID ffffffff NAME "BTI / T31" SATID ffffff TPID 4d SID 1f TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 84 NAME "Discovery Russia" SATID ffffff TPID 4d SID 28 TYPE 1 VPID 5b4 PCRPID 5b4
CHANNEL ID ffffffff NAME "K-TV (MetroMux) / T41" SATID ffffff TPID 4d SID 29 TYPE 1 VPID 7a8 PCRPID 7a8
CHANNEL ID 86 NAME "Animal Planet EE" SATID ffffff TPID 4d SID 32 TYPE 1 VPID 618 PCRPID 618
CHANNEL ID 87 NAME "Animal Planet - Russian" SATID ffffff TPID 4d SID 33 TYPE 1 VPID 618 PCRPID 618
CHANNEL ID 88 NAME "Discovery Netherlands" SATID ffffff TPID 4d SID 3c TYPE 1 VPID 67c PCRPID 67c
CHANNEL ID ffffffff NAME "Q English" SATID ffffff TPID 4d SID 46 TYPE 0 VPID 6e0 PCRPID 6e0
CHANNEL ID 8a NAME "Travel and Adventure" SATID ffffff TPID 4d SID 50 TYPE 1 VPID 744 PCRPID 744
CHANNEL ID 8b NAME "Travel and Adventure- Russian" SATID ffffff TPID 4d SID 51 TYPE 1 VPID 744 PCRPID 744
CHANNEL ID 8c NAME "New DCP" SATID ffffff TPID 4d SID 12c TYPE 1 APID 4c4 PCRPID 4c4
CHANNEL ID 8d NAME "CCP" SATID ffffff TPID 4d SID 12d TYPE 1 VPID 4ec PCRPID 4ec
CHANNEL ID ffffffff NAME "Deutsche Bank / T2" SATID ffffff TPID 4d SID 2 TYPE 1 VPID 4ec PCRPID 4ec
CHANNEL ID 93 NAME "Channel Three" SATID ffffff TPID 4d SID 3 TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 94 NAME "Channel Four" SATID ffffff TPID 4d SID 4 TYPE 0 VPID 5b4 PCRPID 5b4
CHANNEL ID 95 NAME "Channel Five" SATID ffffff TPID 4d SID 5 TYPE 0 VPID 618 PCRPID 618
CHANNEL ID 96 NAME "Channel 6 = Sat 7 Arabic" SATID ffffff TPID 4d SID 6 TYPE 0 VPID 67c PCRPID 67c
CHANNEL ID 97 NAME "Channel Seven" SATID ffffff TPID 4d SID 7 TYPE 0 VPID 6e0 PCRPID 6e0
CHANNEL ID 98 NAME "Q German" SATID ffffff TPID 4d SID 47 TYPE 0 VPID 6e0 PCRPID 6e0
CHANNEL ID 99 NAME "Q French" SATID ffffff TPID 4d SID 48 TYPE 0 VPID 6e0 PCRPID 6e0
CHANNEL ID 9a NAME "Q Dutch" SATID ffffff TPID 4d SID 49 TYPE 0 VPID 6e0 PCRPID 6e0
CHANNEL ID 1b8 NAME "DTAG / T11" SATID ffffff TPID 4d SID b TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 1b9 NAME "DTAG 50 / T12" SATID ffffff TPID 4d SID c TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 1ba NAME "Telekom TV" SATID ffffff TPID 4d SID d TYPE 1 VPID 5b4 PCRPID 5b4
CHANNEL ID 1bb NAME "Gerling / T26" SATID ffffff TPID 4d SID 1a TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 1bc NAME "Hornbach-D / T36" SATID ffffff TPID 4d SID 24 TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 1bd NAME "Hornbach-NL / T38" SATID ffffff TPID 4d SID 26 TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 1be NAME "Hornbach-CZ / T39" SATID ffffff TPID 4d SID 27 TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 1bf NAME "Testkanal" SATID ffffff TPID 4d SID 63 TYPE 0 VPID 67c PCRPID 67c
CHANNEL ID 1c0 NAME "KENCAST" SATID ffffff TPID 4d SID 6f TYPE 0 PCRPID 42e
TRANSPONDER ID 011a SATID 0000 TYPE 1 FREQ 11662000 POL H SRATE 27500000 FEC 8
TRANSPONDER ID 3e1c SATID 0000 TYPE 1 FREQ 11681001 POL H SRATE 27500000 FEC 8
CHANNEL ID 9b NAME "AB 1" SATID ffffff TPID 3e1c SID c9 TYPE 1 VPID a0 APID 50 TTPID 20 PCRPID a0
CHANNEL ID 9c NAME "AB MOTEURS" SATID ffffff TPID 3e1c SID ca TYPE 1 VPID a1 APID 54 TTPID 23 PCRPID a1
CHANNEL ID 9d NAME "ANIMAUX" SATID ffffff TPID 3e1c SID cb TYPE 1 VPID a2 APID 58 TTPID 26 PCRPID a2
CHANNEL ID 9e NAME "CHASSE ET PECHE" SATID ffffff TPID 3e1c SID cc TYPE 1 VPID a3 APID 5c TTPID 29 PCRPID a3
CHANNEL ID 9f NAME "XXL" SATID ffffff TPID 3e1c SID cd TYPE 1 VPID a4 APID 60 TTPID 2c PCRPID a4
CHANNEL ID a0 NAME "MUSIQUE CLASSIQUE" SATID ffffff TPID 3e1c SID ce TYPE 1 VPID a5 APID 64 TTPID 2f PCRPID a5
CHANNEL ID a1 NAME "ESCALES" SATID ffffff TPID 3e1c SID cf TYPE 1 VPID a6 APID 68 TTPID 32 PCRPID a6
CHANNEL ID a2 NAME "FIT/chaîne HISTOIRE" SATID ffffff TPID 3e1c SID d0 TYPE 1 VPID a7 APID 6c TTPID 35 PCRPID a7
CHANNEL ID a3 NAME "RFM TV" SATID ffffff TPID 3e1c SID d1 TYPE 1 VPID a8 APID 70 TTPID 38 PCRPID a8
TRANSPONDER ID 13ec SATID 0000 TYPE 1 FREQ 11744599 POL H SRATE 27500000 FEC 8
CHANNEL ID a4 NAME "EDTV DRAMA" SATID ffffff TPID 13ec SID 2520 TYPE 0 VPID 1322 PCRPID 1322
CHANNEL ID a5 NAME "EDTV RADIO 02" SATID ffffff TPID 13ec SID 2534 TYPE 0 VPID 1322 PCRPID 1322
CHANNEL ID a6 NAME "EDTV RADIO 01" SATID ffffff TPID 13ec SID 2533 TYPE 0 VPID 1322 PCRPID 1322
CHANNEL ID a7 NAME "EDTV SPORT" SATID ffffff TPID 13ec SID 251e TYPE 0 VPID 1322 PCRPID 1322
CHANNEL ID a8 NAME "EDTV BUSINESS" SATID ffffff TPID 13ec SID 251f TYPE 0 VPID 1322 PCRPID 1322
TRANSPONDER ID 1450 SATID 0000 TYPE 1 FREQ 11765841 POL V SRATE 27500000 FEC 8
CHANNEL ID a9 NAME "RAI1" SATID ffffff TPID 1450 SID d49 TYPE 0 VPID a0 PCRPID 1ffe
CHANNEL ID aa NAME "RAI2" SATID ffffff TPID 1450 SID d4a TYPE 0 VPID a1 PCRPID 1ffe
CHANNEL ID ab NAME "RAI3" SATID ffffff TPID 1450 SID d4b TYPE 0 VPID a2 PCRPID 1ffe
CHANNEL ID ac NAME "Rai Way TEST1" SATID ffffff TPID 1450 SID d4c TYPE 0 VPID 203 PCRPID 1ffe
CHANNEL ID ad NAME "Rai Way TEST2" SATID ffffff TPID 1450 SID d4d TYPE 0 VPID 204 PCRPID 1ffe
CHANNEL ID ae NAME "Rai Way TEST3" SATID ffffff TPID 1450 SID d4e TYPE 0 VPID a4 PCRPID 1ffe
CHANNEL ID af NAME "RAIMOSAICO" SATID ffffff TPID 1450 SID d4f TYPE 0 VPID 206 PCRPID 1ffe
CHANNEL ID b0 SATID ffffff TPID 1450 SID da2 TYPE 0
TRANSPONDER ID 1518 SATID 0000 TYPE 1 FREQ 11765841 POL V SRATE 27500000 FEC 8
CHANNEL ID b1 NAME "RAINews24" SATID ffffff TPID 1518 SID ce5 TYPE 0 VPID 204 PCRPID 1ffe
CHANNEL ID b2 NAME "CAMERA DEPUTATI" SATID ffffff TPID 1518 SID ce6 TYPE 0 VPID 205 PCRPID 1ffe
CHANNEL ID b3 NAME "TELEPACE" SATID ffffff TPID 1518 SID ce8 TYPE 0 VPID 203 PCRPID 1ffe
CHANNEL ID b4 NAME "RAISPORTSAT" SATID ffffff TPID 1518 SID ce9 TYPE 0 VPID 200 PCRPID 1ffe
CHANNEL ID b5 NAME "RAINettunoSAT2" SATID ffffff TPID 1518 SID cea TYPE 0 VPID 201 PCRPID 1ffe
CHANNEL ID b6 NAME "RAIeducational" SATID ffffff TPID 1518 SID ceb TYPE 0 VPID 202 PCRPID 1ffe
CHANNEL ID b7 NAME "RAINettunoSAT1" SATID ffffff TPID 1518 SID cec TYPE 0 VPID 207 PCRPID 1ffe
CHANNEL ID b8 NAME "SAT2000" SATID ffffff TPID 1518 SID ced TYPE 0 VPID 206 PCRPID 1ffe
CHANNEL ID b9 NAME "RADIOUNO" SATID ffffff TPID 1518 SID cef TYPE 0 APID 29e PCRPID 1ffe
CHANNEL ID ba NAME "RADIODUE" SATID ffffff TPID 1518 SID cf0 TYPE 0 APID 29f PCRPID 1ffe
CHANNEL ID bb NAME "RADIOTRE" SATID ffffff TPID 1518 SID cf1 TYPE 0 APID 2a0 PCRPID 1ffe
CHANNEL ID bc NAME "FDleggera" SATID ffffff TPID 1518 SID cf2 TYPE 0 APID 2a1 PCRPID 1ffe
CHANNEL ID bd NAME "FDauditorium" SATID ffffff TPID 1518 SID cf3 TYPE 0 APID 299 PCRPID 1ffe
CHANNEL ID be NAME "BLUSAT 2000" SATID ffffff TPID 1518 SID cf4 TYPE 0 APID 2a5 PCRPID 1ffe
CHANNEL ID bf NAME "GR PARLAMENTO" SATID ffffff TPID 1518 SID cf5 TYPE 0 APID 298 PCRPID 1ffe
CHANNEL ID c0 NAME "ISORADIO" SATID ffffff TPID 1518 SID cf6 TYPE 0 APID 295 PCRPID 1ffe
TRANSPONDER ID 157c SATID 0000 TYPE 1 FREQ 11823000 POL H SRATE 27500000 FEC 8
CHANNEL ID c1 NAME "R1" SATID ffffff TPID 157c SID 12d TYPE 1 VPID 200 APID 28a PCRPID 1ffe
CHANNEL ID c2 NAME "R2" SATID ffffff TPID 157c SID 12e TYPE 1 VPID 201 APID 294 APID 295 PCRPID 1ffe
CHANNEL ID c3 NAME "R3" SATID ffffff TPID 157c SID 12f TYPE 1 VPID 202 APID 29e TTPID 242 PCRPID 1ffe
CHANNEL ID c4 NAME "R4" SATID ffffff TPID 157c SID 130 TYPE 1 VPID 203 APID 2a8 TTPID 243 PCRPID 1ffe
CHANNEL ID c5 NAME "R5" SATID ffffff TPID 157c SID 132 TYPE 1 VPID 124a APID 2bc TTPID 245 PCRPID 1ffe
CHANNEL ID c6 NAME "R6" SATID ffffff TPID 157c SID 133 TYPE 1 VPID 206 APID 2c6 PCRPID 1ffe
CHANNEL ID c7 NAME "R7" SATID ffffff TPID 157c SID 134 TYPE 1 VPID 207 APID 2d0 PCRPID 1ffe
CHANNEL ID c8 NAME "Love Radio" SATID ffffff TPID 157c SID 135 TYPE 1 APID 2c7 PCRPID 1ffe
CHANNEL ID c9 NAME "Greek Church" SATID ffffff TPID 157c SID 136 TYPE 1 APID 29f PCRPID 1ffe
CHANNEL ID ca NAME "Skai Radio" SATID ffffff TPID 157c SID 137 TYPE 1 APID 2e5 PCRPID 1ffe
CHANNEL ID cb NAME "MelodiRadio" SATID ffffff TPID 157c SID 138 TYPE 1 APID 2bd PCRPID 1ffe
CHANNEL ID cc NAME "ERA 3" SATID ffffff TPID 157c SID 139 TYPE 1 APID 28b PCRPID 1ffe
CHANNEL ID cd NAME "RR1" SATID ffffff TPID 157c SID 13a TYPE 1 APID 2a9 PCRPID 1ffe
CHANNEL ID ce NAME "RR2" SATID ffffff TPID 157c SID 13b TYPE 1 APID 2d1 PCRPID 1ffe
CHANNEL ID cf NAME "NOVA CINE" SATID ffffff TPID 157c SID 13c TYPE 1 VPID 209 APID 2e4 PCRPID 1ffe
CHANNEL ID d0 NAME "FILM NET" SATID ffffff TPID 157c SID 13d TYPE 1 VPID 200 APID 28a PCRPID 1ffe
CHANNEL ID d1 NAME "SSportK-T.V" SATID ffffff TPID 157c SID 13e TYPE 1 VPID 201 APID 294 APID 295 PCRPID 1ffe
CHANNEL ID d2 NAME "MEGA" SATID ffffff TPID 157c SID 13f TYPE 1 VPID 202 APID 29e TTPID 242 PCRPID 1ffe
CHANNEL ID d3 NAME "ANT-1" SATID ffffff TPID 157c SID 140 TYPE 1 VPID 203 APID 2a8 TTPID 243 PCRPID 1ffe
CHANNEL ID d4 NAME "STAR" SATID ffffff TPID 157c SID 141 TYPE 1 VPID 205 APID 2bc TTPID 245 PCRPID 1ffe
CHANNEL ID d5 NAME "Alter 5" SATID ffffff TPID 157c SID 142 TYPE 1 VPID 206 APID 2c6 PCRPID 1ffe
CHANNEL ID d6 NAME "NEW Tempo" SATID ffffff TPID 157c SID 143 TYPE 1 VPID 207 APID 2d0 PCRPID 1ffe
CHANNEL ID d7 NAME "Super Sport2" SATID ffffff TPID 157c SID 144 TYPE 1 VPID 204 APID 2b2 APID 2b3 PCRPID 1ffe
TRANSPONDER ID 15e0 SATID 0000 TYPE 1 FREQ 11843000 POL V SRATE 27500000 FEC 8
CHANNEL ID d8 SATID ffffff TPID 15e0 SID fffe TYPE 0
CHANNEL ID d9 NAME "INTV" SATID ffffff TPID 15e0 SID db0 TYPE 1 VPID 914 PCRPID 900
CHANNEL ID da NAME "UNIV" SATID ffffff TPID 15e0 SID db3 TYPE 1 VPID 901 PCRPID 900
CHANNEL ID db NAME "CULT" SATID ffffff TPID 15e0 SID db6 TYPE 1 VPID 903 PCRPID 900
CHANNEL ID dc NAME "ERSP" SATID ffffff TPID 15e0 SID db9 TYPE 1 VPID 905 PCRPID 900
CHANNEL ID dd NAME "SINT" SATID ffffff TPID 15e0 SID dbb TYPE 1
CHANNEL ID de NAME "CART" SATID ffffff TPID 15e0 SID dbc TYPE 1 VPID 981 PCRPID 980
CHANNEL ID df NAME "SINT" SATID ffffff TPID 15e0 SID dbf TYPE 1
CHANNEL ID e0 NAME "DISC" SATID ffffff TPID 15e0 SID dc2 TYPE 1 VPID 985 PCRPID 980
CHANNEL ID e1 NAME "SINT" SATID ffffff TPID 15e0 SID dc5 TYPE 1
CHANNEL ID e2 NAME "TVL" SATID ffffff TPID 15e0 SID dc8 TYPE 1 VPID 989 PCRPID 980
CHANNEL ID e3 NAME "SINT" SATID ffffff TPID 15e0 SID dca TYPE 1
CHANNEL ID e4 NAME "ROCK" SATID ffffff TPID 15e0 SID dde TYPE 1 APID 910 PCRPID 900
CHANNEL ID e5 NAME "RDS" SATID ffffff TPID 15e0 SID de1 TYPE 1 APID 911 PCRPID 900
CHANNEL ID e6 NAME "RTL" SATID ffffff TPID 15e0 SID de4 TYPE 1 APID 912 PCRPID 900
CHANNEL ID e7 NAME "101" SATID ffffff TPID 15e0 SID de7 TYPE 1 APID 913 PCRPID 900
CHANNEL ID e8 NAME "RVOY" SATID ffffff TPID 15e0 SID dea TYPE 1 APID 90b PCRPID 900
CHANNEL ID e9 NAME "RKFM" SATID ffffff TPID 15e0 SID deb TYPE 1 APID 90d PCRPID 900
CHANNEL ID ea NAME "GLOB" SATID ffffff TPID 15e0 SID dec TYPE 1 APID 90c PCRPID 900
CHANNEL ID eb NAME "ANT1" SATID ffffff TPID 15e0 SID ded TYPE 1 APID 90e PCRPID 900
CHANNEL ID ec NAME "RRAD" SATID ffffff TPID 15e0 SID dee TYPE 1 APID 90f PCRPID 900
CHANNEL ID ed NAME "MC01" SATID ffffff TPID 15e0 SID df0 TYPE 1 APID 908 PCRPID 908
CHANNEL ID ee NAME "MC02" SATID ffffff TPID 15e0 SID df3 TYPE 1 APID 909 PCRPID 909
CHANNEL ID ef NAME "MC03" SATID ffffff TPID 15e0 SID df6 TYPE 1 APID 90a PCRPID 90a
TRANSPONDER ID 1644 SATID 0000 TYPE 1 FREQ 12341001 POL H SRATE 27500000 FEC 8
CHANNEL ID f0 NAME "P7" SATID ffffff TPID 1644 SID 2c25 TYPE 1 VPID a0 APID 50 APID 51 PCRPID af
CHANNEL ID f1 NAME "P8" SATID ffffff TPID 1644 SID 2c27 TYPE 1 VPID a1 APID 54 APID 55 PCRPID af
CHANNEL ID f2 NAME "P9" SATID ffffff TPID 1644 SID 2c29 TYPE 1 VPID a2 APID 58 APID 59 PCRPID af
CHANNEL ID f3 NAME "+GIOCHI" SATID ffffff TPID 1644 SID 2c2e TYPE 1 PCRPID af
CHANNEL ID f4 NAME "MM01" SATID ffffff TPID 1644 SID 2c2f TYPE 1 APID 259 PCRPID b0
CHANNEL ID f5 NAME "MM02" SATID ffffff TPID 1644 SID 2c30 TYPE 0 APID 25a PCRPID b0
CHANNEL ID f6 NAME "MM03" SATID ffffff TPID 1644 SID 2c31 TYPE 0 APID 25b PCRPID b0
CHANNEL ID f7 NAME "MM04" SATID ffffff TPID 1644 SID 2c32 TYPE 0 APID 25c PCRPID b0
CHANNEL ID f8 NAME "MM05" SATID ffffff TPID 1644 SID 2c33 TYPE 0 APID 25d PCRPID b0
CHANNEL ID f9 NAME "MM06" SATID ffffff TPID 1644 SID 2c34 TYPE 0 APID 25e PCRPID b0
CHANNEL ID fa NAME "MM07" SATID ffffff TPID 1644 SID 2c35 TYPE 0 APID 25f PCRPID b0
CHANNEL ID fb NAME "MM08" SATID ffffff TPID 1644 SID 2c36 TYPE 0 APID 260 PCRPID b0
CHANNEL ID fc NAME "MM09" SATID ffffff TPID 1644 SID 2c37 TYPE 0 APID 261 PCRPID b0
CHANNEL ID fd NAME "MM10" SATID ffffff TPID 1644 SID 2c38 TYPE 0 APID 262 PCRPID b0
CHANNEL ID fe NAME "MM11" SATID ffffff TPID 1644 SID 2c39 TYPE 1 APID 263 PCRPID b0
CHANNEL ID ff NAME "MM12" SATID ffffff TPID 1644 SID 2c3a TYPE 0 APID 264 PCRPID b0
CHANNEL ID 100 NAME "MM13" SATID ffffff TPID 1644 SID 2c3b TYPE 0 APID 265 PCRPID b0
CHANNEL ID 101 NAME "MM14" SATID ffffff TPID 1644 SID 2c3c TYPE 0 APID 266 PCRPID b0
CHANNEL ID 102 NAME "MM15" SATID ffffff TPID 1644 SID 2c3d TYPE 0 APID 267 PCRPID b0
CHANNEL ID 103 NAME "MM16" SATID ffffff TPID 1644 SID 2c3e TYPE 0 APID 268 PCRPID b0
CHANNEL ID 104 NAME "MM17" SATID ffffff TPID 1644 SID 2c3f TYPE 0 APID 269 PCRPID b0
CHANNEL ID 105 NAME "MM18" SATID ffffff TPID 1644 SID 2c40 TYPE 0 APID 26a PCRPID b0
CHANNEL ID 106 NAME "MM19" SATID ffffff TPID 1644 SID 2c41 TYPE 0 APID 26b PCRPID b0
CHANNEL ID 107 NAME "MM20" SATID ffffff TPID 1644 SID 2c42 TYPE 0 APID 26c PCRPID b0
CHANNEL ID 108 NAME "MM21" SATID ffffff TPID 1644 SID 2c43 TYPE 1 APID 26d PCRPID b0
CHANNEL ID 109 NAME "MM22" SATID ffffff TPID 1644 SID 2c44 TYPE 0 APID 26e PCRPID b0
CHANNEL ID 10a NAME "MM23" SATID ffffff TPID 1644 SID 2c45 TYPE 0 APID 26f PCRPID b0
CHANNEL ID 10b NAME "MM24" SATID ffffff TPID 1644 SID 2c46 TYPE 0 APID 270 PCRPID b0
CHANNEL ID 10c NAME "MM25" SATID ffffff TPID 1644 SID 2c47 TYPE 0 APID 271 PCRPID b0
CHANNEL ID 10d NAME "MM26" SATID ffffff TPID 1644 SID 2c48 TYPE 0 APID 272 PCRPID b0
CHANNEL ID 10e NAME "MM27" SATID ffffff TPID 1644 SID 2c49 TYPE 0 APID 273 PCRPID b0
CHANNEL ID 10f NAME "MM28" SATID ffffff TPID 1644 SID 2c4a TYPE 0 APID 274 PCRPID b0
CHANNEL ID 110 NAME "MM29" SATID ffffff TPID 1644 SID 2c4b TYPE 0 APID 275 PCRPID b0
CHANNEL ID 111 NAME "MM30" SATID ffffff TPID 1644 SID 2c4c TYPE 0 APID 276 PCRPID b0
CHANNEL ID 112 NAME "RCAP" SATID ffffff TPID 1644 SID 2c4d TYPE 1 APID 277 PCRPID b0
CHANNEL ID 113 NAME "R105" SATID ffffff TPID 1644 SID 2c4e TYPE 0 APID 278 PCRPID b0
CHANNEL ID 114 NAME "RDJ" SATID ffffff TPID 1644 SID 2c4f TYPE 0 APID 279 PCRPID b0
CHANNEL ID 115 NAME "RITA" SATID ffffff TPID 1644 SID 2c50 TYPE 0 APID 27a PCRPID b0
CHANNEL ID 116 NAME "RMC" SATID ffffff TPID 1644 SID 2c51 TYPE 0 APID 27b PCRPID b0
CHANNEL ID 117 NAME "R101" SATID ffffff TPID 1644 SID 2c52 TYPE 0 APID 27c PCRPID b0
CHANNEL ID 118 NAME "RRAD" SATID ffffff TPID 1644 SID 2c53 TYPE 0 APID 27d PCRPID b0
CHANNEL ID 119 NAME "RR" SATID ffffff TPID 1644 SID 2c54 TYPE 0 APID 27e PCRPID b0
CHANNEL ID 11a SATID ffffff TPID 1644 SID 2c61 TYPE 0 APID 259 APID 25a APID 25b APID 25c APID 25d APID 25e APID 25f APID 260 APID 261 APID 262 PCRPID b0
CHANNEL ID 11b SATID ffffff TPID 1644 SID 2c62 TYPE 0 APID 263 APID 264 APID 265 APID 266 APID 267 APID 268 APID 269 APID 26a APID 26b APID 26c PCRPID b0
CHANNEL ID 11c SATID ffffff TPID 1644 SID 2c63 TYPE 0 APID 26d APID 26e APID 26f APID 270 APID 271 APID 272 APID 273 APID 274 APID 275 APID 276 PCRPID b0
CHANNEL ID 11d SATID ffffff TPID 1644 SID 2c64 TYPE 0 APID 277 APID 278 APID 279 APID 27a APID 27b APID 27c APID 27d APID 27e PCRPID b0
CHANNEL ID 11e NAME "MULTIMUSICA" SATID ffffff TPID 1644 SID 2c58 TYPE 1 PCRPID b0
CHANNEL ID 11f NAME "RADIO" SATID ffffff TPID 1644 SID 2c59 TYPE 1 PCRPID b0
CHANNEL ID 120 NAME "MULTIMUSIC 1" SATID ffffff TPID 1644 SID 2c65 TYPE 1 APID 262 APID 259 APID 25a APID 25b APID 25c APID 25d APID 25e APID 25f APID 260 APID 261 PCRPID b0
CHANNEL ID 121 NAME "MULTIMUSIC 2" SATID ffffff TPID 1644 SID 2c66 TYPE 1 APID 265 APID 266 APID 267 APID 263 APID 264 APID 268 APID 269 APID 26a APID 26b APID 26c PCRPID b0
TRANSPONDER ID 16a8 SATID 0000 TYPE 1 FREQ 12713000 POL V SRATE 27500000 FEC 8
CHANNEL ID 122 SATID ffffff TPID 16a8 SID fffe TYPE 0
CHANNEL ID 123 NAME "TEAM" SATID ffffff TPID 16a8 SID e1a TYPE 1 VPID 901 PCRPID 900
CHANNEL ID 124 NAME "SINT" SATID ffffff TPID 16a8 SID e1d TYPE 1
CHANNEL ID 125 NAME "VIAG" SATID ffffff TPID 16a8 SID e20 TYPE 1 VPID 904 PCRPID 900
CHANNEL ID 126 NAME "SINT" SATID ffffff TPID 16a8 SID e23 TYPE 1
CHANNEL ID 127 NAME "EURO" SATID ffffff TPID 16a8 SID e26 TYPE 1 VPID 907 PCRPID 900
CHANNEL ID 128 NAME "SINT" SATID ffffff TPID 16a8 SID e27 TYPE 1
CHANNEL ID 129 NAME "CNN" SATID ffffff TPID 16a8 SID e29 TYPE 1 VPID 981 PCRPID 980
CHANNEL ID 12a NAME "ante prima" SATID ffffff TPID 16a8 SID e2c TYPE 1 VPID 983 PCRPID 980
CHANNEL ID 12b NAME "SNAI" SATID ffffff TPID 16a8 SID e2e TYPE 1 VPID a01 PCRPID a00
CHANNEL ID 12c NAME "MPPV" SATID ffffff TPID 16a8 SID e30 TYPE 1 VPID a03 PCRPID a00
CHANNEL ID 12d NAME "MC04" SATID ffffff TPID 16a8 SID e34 TYPE 1 APID a80 PCRPID a80
CHANNEL ID 12e NAME "MC05" SATID ffffff TPID 16a8 SID e35 TYPE 1 APID a81 PCRPID a81
CHANNEL ID 12f NAME "MC06" SATID ffffff TPID 16a8 SID e36 TYPE 1 APID a82 PCRPID a82
CHANNEL ID 130 NAME "MC07" SATID ffffff TPID 16a8 SID e39 TYPE 1 APID a83 PCRPID a83
CHANNEL ID 131 NAME "MC08" SATID ffffff TPID 16a8 SID e3c TYPE 1 APID a84 PCRPID a84
CHANNEL ID 132 NAME "MC09" SATID ffffff TPID 16a8 SID e3f TYPE 1 APID a85 PCRPID a85
CHANNEL ID 133 NAME "MC10" SATID ffffff TPID 16a8 SID e42 TYPE 1 APID a86 PCRPID a86
CHANNEL ID 134 NAME "MC11" SATID ffffff TPID 16a8 SID e45 TYPE 1 APID a87 PCRPID a87
CHANNEL ID 135 NAME "MC12" SATID ffffff TPID 16a8 SID e48 TYPE 1 APID a88 PCRPID a88
CHANNEL ID 136 NAME "MC13" SATID ffffff TPID 16a8 SID e4b TYPE 1 APID a89 PCRPID a89
CHANNEL ID 137 NAME "MC14" SATID ffffff TPID 16a8 SID e4e TYPE 1 APID a8a PCRPID a8a
CHANNEL ID 138 NAME "MC15" SATID ffffff TPID 16a8 SID e51 TYPE 1 APID a8b PCRPID a8b
CHANNEL ID 139 NAME "MC16" SATID ffffff TPID 16a8 SID e54 TYPE 1 APID a8c PCRPID a8c
CHANNEL ID 13a NAME "MC17" SATID ffffff TPID 16a8 SID e57 TYPE 1 APID a8d PCRPID a8d
CHANNEL ID 13b NAME "MC18" SATID ffffff TPID 16a8 SID e5a TYPE 1 APID a8e PCRPID a8e
TRANSPONDER ID 170c SATID 0000 TYPE 1 FREQ 12341001 POL H SRATE 27500000 FEC 8
CHANNEL ID 13c NAME "MOSAICO D+" SATID ffffff TPID 170c SID 2c89 TYPE 1 VPID a1 APID 55 APID 51 APID 50 APID 54 PCRPID af
CHANNEL ID 13d NAME " MILAN CH." SATID ffffff TPID 170c SID 2c8b TYPE 1 VPID a2 APID 58 APID 59 PCRPID af
CHANNEL ID 13e NAME " INTER CH." SATID ffffff TPID 170c SID 2c8d TYPE 1 VPID a3 APID 5c APID 5d PCRPID af
CHANNEL ID 13f NAME "TST3" SATID ffffff TPID 170c SID 2c8f TYPE 1 PCRPID af
TRANSPONDER ID 1770 SATID 0000 TYPE 1 FREQ 11919280 POL V SRATE 27500000 FEC 8
CHANNEL ID 140 NAME " I1" SATID ffffff TPID 1770 SID 1 TYPE 1 VPID 200 APID 28a TTPID 240 PCRPID 1ffe
CHANNEL ID 141 NAME " C5" SATID ffffff TPID 1770 SID 2 TYPE 1 VPID 201 APID 294 TTPID 241 PCRPID 1ffe
CHANNEL ID 142 NAME " R4" SATID ffffff TPID 1770 SID 3 TYPE 1 VPID 202 APID 29e TTPID 242 PCRPID 1ffe
CHANNEL ID 143 NAME "Test" SATID ffffff TPID 1770 SID 4 TYPE 1 VPID 203 APID 2a8 TTPID 243 PCRPID 1ffe
TRANSPONDER ID 003d SATID 0000 TYPE 1 FREQ 11938000 POL H SRATE 27500000 FEC 8
CHANNEL ID 144 NAME "NTV" SATID ffffff TPID 3d SID 1bc1 TYPE 1 VPID a4 APID 58 APID 59 PCRPID a4
CHANNEL ID 145 NAME "NTV-PLUS" SATID ffffff TPID 3d SID 1bc2 TYPE 1 VPID a5 APID 5a APID 5b PCRPID a5
CHANNEL ID 146 NAME "NTV Int.-HTB" SATID ffffff TPID 3d SID 1bbd TYPE 1 VPID a0 APID 50 PCRPID a0
CHANNEL ID 147 NAME "NTV Int.-Nashe Kino" SATID ffffff TPID 3d SID 1bbe TYPE 1 VPID a1 APID 52 PCRPID a1
CHANNEL ID 148 NAME "NTV Int.-Detsk. Mir" SATID ffffff TPID 3d SID 1bbf TYPE 1 VPID a2 APID 54 PCRPID a2
TRANSPONDER ID 1838 SATID 0000 TYPE 1 FREQ 12341001 POL V SRATE 27500000 FEC 8
CHANNEL ID 149 NAME "DISNEY CHANNEL" SATID ffffff TPID 1838 SID 2a95 TYPE 1 PCRPID a0
CHANNEL ID 14a NAME "DISCOVERY" SATID ffffff TPID 1838 SID 2a97 TYPE 1 VPID a1 PCRPID a1
CHANNEL ID 14b NAME "EUSP" SATID ffffff TPID 1838 SID 2a99 TYPE 1 VPID a2 APID 58 APID 59 PCRPID a2
CHANNEL ID 14c NAME "HAPPY CHANNEL" SATID ffffff TPID 1838 SID 2a9b TYPE 1 PCRPID a3
CHANNEL ID 14d NAME "MATCH MUSIC" SATID ffffff TPID 1838 SID 2a9d TYPE 1 PCRPID a4
CHANNEL ID 14e NAME "MTV" SATID ffffff TPID 1838 SID 2a9f TYPE 1 PCRPID a5
CHANNEL ID 14f NAME "R/CINEMA RAISAT" SATID ffffff TPID 1838 SID 2aa1 TYPE 1 PCRPID a6
TRANSPONDER ID 189c SATID 0000 TYPE 1 FREQ 12713000 POL H SRATE 27500000 FEC 8
CHANNEL ID 150 SATID ffffff TPID 189c SID fffe TYPE 0
CHANNEL ID 151 NAME "cine stream" SATID ffffff TPID 189c SID 1e18 TYPE 1 VPID 200 APID 28a PCRPID 1ffe
CHANNEL ID 152 NAME "cine movie" SATID ffffff TPID 189c SID 1e1b TYPE 1 VPID 202 APID 29e PCRPID 1ffe
TRANSPONDER ID 1900 SATID 0000 TYPE 1 FREQ 12341001 POL V SRATE 27500000 FEC 8
CHANNEL ID 153 NAME "CLASSICA" SATID ffffff TPID 1900 SID 2af9 TYPE 1 PCRPID a0
CHANNEL ID 154 NAME "R/GAM ROS RAISAT" SATID ffffff TPID 1900 SID 2afb TYPE 1 PCRPID a1
CHANNEL ID 155 NAME "R/ALBUM RAISAT" SATID ffffff TPID 1900 SID 2afd TYPE 1 PCRPID a2
CHANNEL ID 156 NAME "HALLMARK" SATID ffffff TPID 1900 SID 2aff TYPE 1 VPID a3 PCRPID a3
CHANNEL ID 157 NAME "R/ART RAISAT" SATID ffffff TPID 1900 SID 2b01 TYPE 1 PCRPID a4
CHANNEL ID 158 NAME "TST1" SATID ffffff TPID 1900 SID 2b03 TYPE 1 PCRPID a5
CHANNEL ID 159 NAME "TMC" SATID ffffff TPID 1900 SID 2b05 TYPE 1 VPID a6 PCRPID a6
CHANNEL ID 15a NAME "TMC2" SATID ffffff TPID 1900 SID 2b07 TYPE 1 VPID a7 PCRPID a7
TRANSPONDER ID 1964 SATID 0000 TYPE 1 FREQ 12015000 POL H SRATE 27500000 FEC 8
CHANNEL ID 15b NAME "ART VARIETY" SATID ffffff TPID 1964 SID 19a TYPE 1 VPID a0 PCRPID a0
CHANNEL ID 15c NAME "ART CHILDREN" SATID ffffff TPID 1964 SID 1a4 TYPE 1 VPID a1 PCRPID a1
CHANNEL ID 15d NAME "ART MOVIES" SATID ffffff TPID 1964 SID 1ae TYPE 1 VPID a2 PCRPID a2
CHANNEL ID 15e NAME "ART MUSIC" SATID ffffff TPID 1964 SID 1b8 TYPE 1 VPID a3 PCRPID a3
CHANNEL ID 15f NAME "ART EUROPE" SATID ffffff TPID 1964 SID 1c2 TYPE 0 VPID a4 PCRPID a4
CHANNEL ID 160 NAME "LBC EUROPE" SATID ffffff TPID 1964 SID 1cc TYPE 1 VPID a5 PCRPID a5
CHANNEL ID 161 NAME "EGYPT SAT. CH. 2" SATID ffffff TPID 1964 SID 1d6 TYPE 1 VPID a6 PCRPID a6
CHANNEL ID 162 NAME "ART SPORT" SATID ffffff TPID 1964 SID 1d8 TYPE 1 VPID a7 PCRPID a7
CHANNEL ID 163 NAME "IQRA" SATID ffffff TPID 1964 SID 1da TYPE 1 VPID a8 PCRPID a8
TRANSPONDER ID 19c8 SATID 0000 TYPE 1 FREQ 12341001 POL V SRATE 27500000 FEC 8
CHANNEL ID 164 NAME "T+ BIANCO" SATID ffffff TPID 19c8 SID 2b5d TYPE 1 VPID a0 APID 50 APID 51 TTPID 2c PCRPID a0
CHANNEL ID 165 NAME "T+ NERO" SATID ffffff TPID 19c8 SID 2b5f TYPE 1 VPID a1 APID 54 APID 55 TTPID 2d PCRPID a1
CHANNEL ID 166 NAME "T+ GRIGIO" SATID ffffff TPID 19c8 SID 2b61 TYPE 1 VPID a2 APID 58 APID 59 PCRPID a2
CHANNEL ID 167 NAME "R4" SATID ffffff TPID 19c8 SID 18 TYPE 1 VPID a3 PCRPID a3
CHANNEL ID 168 NAME "16:9 TELE+" SATID ffffff TPID 19c8 SID 2b63 TYPE 1 VPID a4 APID 60 APID 61 PCRPID a4
CHANNEL ID 169 NAME "VETRINA D+" SATID ffffff TPID 19c8 SID 2b65 TYPE 1 PCRPID a5
CHANNEL ID 16a NAME "R/RAGAZZI RAISAT" SATID ffffff TPID 19c8 SID 2b67 TYPE 1 PCRPID a6
TRANSPONDER ID 1a2c SATID 0000 TYPE 1 FREQ 12341001 POL H SRATE 27500000 FEC 8
CHANNEL ID 16b NAME "CNN" SATID ffffff TPID 1a2c SID 2ced TYPE 1 PCRPID af
CHANNEL ID 16c NAME "BBC" SATID ffffff TPID 1a2c SID 2cef TYPE 1 PCRPID af
CHANNEL ID 16d NAME "BLOOMBERG" SATID ffffff TPID 1a2c SID 2cf1 TYPE 1 PCRPID af
CHANNEL ID 16e NAME "CNBC" SATID ffffff TPID 1a2c SID 2cf3 TYPE 1 PCRPID af
CHANNEL ID 16f NAME "SKYNews" SATID ffffff TPID 1a2c SID 2cf5 TYPE 1 PCRPID af
CHANNEL ID 170 NAME "TST2" SATID ffffff TPID 1a2c SID 2cf7 TYPE 1 PCRPID af
CHANNEL ID 171 NAME "TV5" SATID ffffff TPID 1a2c SID 2cf9 TYPE 1 PCRPID af
CHANNEL ID 172 NAME "EPG" SATID ffffff TPID 1a2c SID 2cfb TYPE 1 PCRPID af
CHANNEL ID 173 NAME "CNN" SATID ffffff TPID 1a2c SID 2cfd TYPE 1 VPID a0 APID 50 PCRPID af
CHANNEL ID 174 NAME "CNBC" SATID ffffff TPID 1a2c SID 2cff TYPE 1 VPID a3 APID 5c PCRPID af
CHANNEL ID 175 NAME "TV5" SATID ffffff TPID 1a2c SID 2d01 TYPE 1 VPID a6 APID 68 PCRPID af
CHANNEL ID 176 NAME "BBC WORLD" SATID ffffff TPID 1a2c SID 2d03 TYPE 1 VPID a1 APID 54 PCRPID af
CHANNEL ID 177 SATID ffffff TPID 1a2c SID 2d4b TYPE 0 PCRPID 1ffe
CHANNEL ID 178 SATID ffffff TPID 1a2c SID 26fc TYPE 0 PCRPID 1ffe
CHANNEL ID 179 SATID ffffff TPID 1a2c SID 26fd TYPE 0 PCRPID 1ffe
TRANSPONDER ID 3264 SATID 0000 TYPE 1 FREQ 11095910 POL V SRATE 27500000 FEC 8
CHANNEL ID ffffffff NAME "Telekom TV" SATID ffffff TPID 3264 SID e7f TYPE 0 VPID 20 PCRPID 20
CHANNEL ID ffffffff NAME "FantasticOverOpal" SATID ffffff TPID 3264 SID e80 TYPE 0 VPID 20 PCRPID 20
CHANNEL ID ffffffff NAME "Gilat" SATID ffffff TPID 3264 SID e81 TYPE 0 VPID 20 PCRPID 20
CHANNEL ID ffffffff NAME "Siemens TV" SATID ffffff TPID 3264 SID e84 TYPE 0 VPID 20 PCRPID 20
CHANNEL ID ffffffff NAME "S-TV" SATID ffffff TPID 3264 SID e85 TYPE 0 VPID 20 PCRPID 20
CHANNEL ID ffffffff NAME "Optibase Encoder" SATID ffffff TPID 3264 SID e86 TYPE 0 VPID 20 PCRPID 20
TRANSPONDER ID 1af4 SATID 0000 TYPE 1 FREQ 12091901 POL H SRATE 27500000 FEC 8
CHANNEL ID 17a NAME "Bolsa" SATID ffffff TPID 1af4 SID 222e TYPE 0
CHANNEL ID 17b NAME "Testw" SATID ffffff TPID 1af4 SID 222f TYPE 0
CHANNEL ID 17c NAME "SIRE" SATID ffffff TPID 1af4 SID 2230 TYPE 0 PCRPID 102
CHANNEL ID 17d NAME "Telesierra" SATID ffffff TPID 1af4 SID 2200 TYPE 0 VPID 1040 APID 1041 PCRPID 1040
CHANNEL ID 17e NAME "vtv" SATID ffffff TPID 1af4 SID 21fd TYPE 0 VPID 1010 APID 1012 APID 1011 APID 1013 PCRPID 1010
CHANNEL ID 17f NAME "Satisfaction" SATID ffffff TPID 1af4 SID 2202 TYPE 0 VPID 1060 APID 1061 PCRPID 1060
CHANNEL ID 180 NAME "C. Milagro" SATID ffffff TPID 1af4 SID 2207 TYPE 0 VPID 1110 APID 1111 PCRPID 1110
CHANNEL ID 181 NAME "Fiesta" SATID ffffff TPID 1af4 SID 2210 TYPE 0 VPID 1150 APID 1151 APID 1152 PCRPID 1150
CHANNEL ID 182 NAME "TVE Internacional" SATID ffffff TPID 1af4 SID 2203 TYPE 0 VPID 1070 APID 1071 PCRPID 1070
CHANNEL ID 183 NAME "TV Galicia" SATID ffffff TPID 1af4 SID 2204 TYPE 0 APID 1090 PCRPID 1090
CHANNEL ID 184 NAME "Radio Gallega" SATID ffffff TPID 1af4 SID 2205 TYPE 0 APID 1090 PCRPID 1090
CHANNEL ID 185 NAME "Retelsat" SATID ffffff TPID 1af4 SID 2212 TYPE 1 VPID 1170 APID 1171 PCRPID 1170
CHANNEL ID 186 NAME "Musicam 1" SATID ffffff TPID 1af4 SID 2209 TYPE 1 APID 1136 PCRPID 1136
CHANNEL ID 187 NAME "Musicam 2" SATID ffffff TPID 1af4 SID 220a TYPE 1 APID 1133 PCRPID 1133
CHANNEL ID 188 NAME "Musicam 3" SATID ffffff TPID 1af4 SID 220b TYPE 1 APID 1136 PCRPID 1136
CHANNEL ID 189 NAME "Musicam 4" SATID ffffff TPID 1af4 SID 220c TYPE 1 APID 1132 PCRPID 1132
CHANNEL ID 18a NAME "Musicam 5" SATID ffffff TPID 1af4 SID 220d TYPE 1 APID 1136 PCRPID 1136
TRANSPONDER ID 1b58 SATID 0000 TYPE 1 FREQ 12673000 POL V SRATE 27500000 FEC 8
CHANNEL ID 18b NAME "HBCH FUCINO" SATID ffffff TPID 1b58 SID 2bd TYPE 0 VPID c8 APID c9 PCRPID c8
CHANNEL ID 18c NAME "NTVi" SATID ffffff TPID 1b58 SID 2be TYPE 0 VPID d2 APID d3 APID d4 PCRPID d2
CHANNEL ID 18d NAME "Test Telespazio" SATID ffffff TPID 1b58 SID 2bf TYPE 0 VPID dc APID dd PCRPID dc
CHANNEL ID 18e NAME "Test Telespazio" SATID ffffff TPID 1b58 SID 2c0 TYPE 0 VPID e6 APID e7 PCRPID e6
CHANNEL ID 18f NAME "ARMENIA TV" SATID ffffff TPID 1b58 SID 2c1 TYPE 0 VPID f0 APID f1 APID f2 PCRPID f0
CHANNEL ID 190 NAME "MEDNET" SATID ffffff TPID 1b58 SID 2c3 TYPE 0 VPID 104 APID 105 PCRPID 104
CHANNEL ID 191 NAME "AL JAZEERA" SATID ffffff TPID 1b58 SID 2c4 TYPE 0 VPID 10e APID 10f PCRPID 10e
CHANNEL ID 192 NAME "TIRRENO SAT" SATID ffffff TPID 1b58 SID 2c5 TYPE 0 VPID 118 APID 12d TTPID 139 PCRPID 118
CHANNEL ID 193 NAME "RADIO ROCK" SATID ffffff TPID 1b58 SID 2c7 TYPE 0 APID d4 PCRPID d2
CHANNEL ID 194 NAME "RADIO ARMENIA" SATID ffffff TPID 1b58 SID 2c8 TYPE 0 APID f2 PCRPID f0
CHANNEL ID 195 NAME "Coming Soon TV" SATID ffffff TPID 1b58 SID 2cd TYPE 0 APID 28 PCRPID 28
TRANSPONDER ID 1c20 SATID 0000 TYPE 1 FREQ 12149000 POL V SRATE 27500000 FEC 8
CHANNEL ID 196 NAME "AH-EDP1" SATID ffffff TPID 1c20 SID 1c21 TYPE 0 VPID 60 APID 61 PCRPID 60
CHANNEL ID 197 NAME "AH-EDP2" SATID ffffff TPID 1c20 SID 1c22 TYPE 0 VPID 70 APID 71 PCRPID 70
CHANNEL ID 198 NAME "AH-EDP3" SATID ffffff TPID 1c20 SID 1c23 TYPE 0 VPID 24 APID 25 PCRPID 24
CHANNEL ID 199 NAME "AH-EMP4-DATA" SATID ffffff TPID 1c20 SID 1c24 TYPE 0 PCRPID 92
CHANNEL ID 19a NAME "Alice" SATID ffffff TPID 1c20 SID 1c34 TYPE 0 VPID a0 APID a1 PCRPID a0
CHANNEL ID 19b NAME "Nuvolari" SATID ffffff TPID 1c20 SID 1c35 TYPE 0 VPID b0 APID b1 PCRPID b0
CHANNEL ID 19c NAME "Leonardo" SATID ffffff TPID 1c20 SID 1c36 TYPE 0 VPID 80 APID 81 PCRPID 80
TRANSPONDER ID 1c84 SATID 0000 TYPE 1 FREQ 12169000 POL H SRATE 27500000 FEC 8
CHANNEL ID 19d NAME "Discovery" SATID ffffff TPID 1c84 SID 15f TYPE 1 VPID 200 PCRPID 1ffe
CHANNEL ID 19e NAME "R9" SATID ffffff TPID 1c84 SID 160 TYPE 1 VPID 201 PCRPID 1ffe
CHANNEL ID 19f NAME "BBC World" SATID ffffff TPID 1c84 SID 161 TYPE 1 VPID 202 PCRPID 1ffe
CHANNEL ID 1a0 NAME "CNN" SATID ffffff TPID 1c84 SID 162 TYPE 1 VPID 203 PCRPID 1ffe
CHANNEL ID 1a1 NAME "CCTV" SATID ffffff TPID 1c84 SID 163 TYPE 0 VPID 204 PCRPID 1ffe
CHANNEL ID 1a2 NAME "R10" SATID ffffff TPID 1c84 SID 165 TYPE 1 VPID 206 PCRPID 1ffe
CHANNEL ID 1a3 NAME "R8" SATID ffffff TPID 1c84 SID 166 TYPE 1 VPID 207 PCRPID 1ffe
CHANNEL ID 1a4 NAME "FILM SAT" SATID ffffff TPID 1c84 SID 167 TYPE 1 VPID 208 PCRPID 1ffe
CHANNEL ID 1a5 NAME "Cartoon" SATID ffffff TPID 1c84 SID 168 TYPE 1 VPID 203 PCRPID 1ffe
CHANNEL ID 1a6 NAME "Promo" SATID ffffff TPID 1c84 SID 169 TYPE 0 VPID 209 PCRPID 1ffe
CHANNEL ID 1a7 NAME "Tempo" SATID ffffff TPID 1c84 SID 16a TYPE 1 VPID 5a0 APID 28b PCRPID f80
CHANNEL ID 1a8 NAME "Tempo" SATID ffffff TPID 1c84 SID 16b TYPE 1 APID 295 PCRPID f80
CHANNEL ID 1a9 NAME "Tempo" SATID ffffff TPID 1c84 SID 16c TYPE 1 APID 29f PCRPID f80
CHANNEL ID 1aa NAME "Tempo" SATID ffffff TPID 1c84 SID 16d TYPE 1 APID 2a9 PCRPID f80
CHANNEL ID 1ab NAME "Tempo" SATID ffffff TPID 1c84 SID 16e TYPE 1 APID 2b3 PCRPID f80
CHANNEL ID 1ac NAME "NOVA INFO" SATID ffffff TPID 1c84 SID 16f TYPE 1 PCRPID 1080
CHANNEL ID 1ad NAME "NOVA INFO" SATID ffffff TPID 1c84 SID 171 TYPE 1 PCRPID 1080
CHANNEL ID 1ae NAME "NOVA INFO" SATID ffffff TPID 1c84 SID 172 TYPE 1 PCRPID 1080
CHANNEL ID 1af NAME "NOVA INFO" SATID ffffff TPID 1c84 SID 173 TYPE 1 VPID 42b PCRPID 1080
CHANNEL ID 1b0 NAME "NOVA INFO" SATID ffffff TPID 1c84 SID 174 TYPE 1 PCRPID 1080
CHANNEL ID 1b1 NAME "NOVA INFO" SATID ffffff TPID 1c84 SID 175 TYPE 1 PCRPID 1080
CHANNEL ID 1b2 NAME "NOVA Cinema" SATID ffffff TPID 1c84 SID 176 TYPE 1 PCRPID 1080
CHANNEL ID 1b3 NAME "NET" SATID ffffff TPID 1c84 SID 178 TYPE 1 VPID 201 PCRPID 1ffe
CHANNEL ID 1b4 NAME "MAD T.V" SATID ffffff TPID 1c84 SID 179 TYPE 1 VPID 206 PCRPID 1ffe
CHANNEL ID 1b5 NAME "ET-1" SATID ffffff TPID 1c84 SID 17a TYPE 1 VPID 207 PCRPID 1ffe
CHANNEL ID 1b6 SATID ffffff TPID 1c84 SID 17b TYPE 0 PCRPID 1000
CHANNEL ID 1b7 NAME "ÂïõëÞ" SATID ffffff TPID 1c84 SID 180 TYPE 0 VPID 205 PCRPID 1ffe
TRANSPONDER ID 0131 SATID 0000 TYPE 1 FREQ 12188000 POL V SRATE 27500000 FEC 8
TRANSPONDER ID 0132 SATID 0000 TYPE 1 FREQ 12203000 POL H SRATE 27500000 FEC 8
TRANSPONDER ID 0133 SATID 0000 TYPE 1 FREQ 12211000 POL H SRATE 27500000 FEC 8
TRANSPONDER ID 004d SATID 0000 TYPE 1 FREQ 12264500 POL V SRATE 27500000 FEC 8
CHANNEL ID ffffffff NAME "Deutsche Bank / T1" SATID ffffff TPID 4d SID 1 TYPE 1 VPID 488 PCRPID 488
CHANNEL ID 7f NAME "Animal Planet" SATID ffffff TPID 4d SID a TYPE 1 VPID 488 PCRPID 488
CHANNEL ID 80 NAME "Discovery E Europe-English" SATID ffffff TPID 4d SID 14 TYPE 1 VPID 4ec PCRPID 4ec
CHANNEL ID ffffffff NAME "Wuerth KG / T21" SATID ffffff TPID 4d SID 15 TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 82 NAME "Discovery Italy" SATID ffffff TPID 4d SID 1e TYPE 1 VPID 550 PCRPID 550
CHANNEL ID ffffffff NAME "BTI / T31" SATID ffffff TPID 4d SID 1f TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 84 NAME "Discovery Russia" SATID ffffff TPID 4d SID 28 TYPE 1 VPID 5b4 PCRPID 5b4
CHANNEL ID ffffffff NAME "K-TV (MetroMux) / T41" SATID ffffff TPID 4d SID 29 TYPE 1 VPID 7a8 PCRPID 7a8
CHANNEL ID 86 NAME "Animal Planet EE" SATID ffffff TPID 4d SID 32 TYPE 1 VPID 618 PCRPID 618
CHANNEL ID 87 NAME "Animal Planet - Russian" SATID ffffff TPID 4d SID 33 TYPE 1 VPID 618 PCRPID 618
CHANNEL ID 88 NAME "Discovery Netherlands" SATID ffffff TPID 4d SID 3c TYPE 1 VPID 67c PCRPID 67c
CHANNEL ID ffffffff NAME "Q English" SATID ffffff TPID 4d SID 46 TYPE 0 VPID 6e0 PCRPID 6e0
CHANNEL ID 8a NAME "Travel and Adventure" SATID ffffff TPID 4d SID 50 TYPE 1 VPID 744 PCRPID 744
CHANNEL ID 8b NAME "Travel and Adventure- Russian" SATID ffffff TPID 4d SID 51 TYPE 1 VPID 744 PCRPID 744
CHANNEL ID 8c NAME "New DCP" SATID ffffff TPID 4d SID 12c TYPE 1 APID 4c4 PCRPID 4c4
CHANNEL ID 8d NAME "CCP" SATID ffffff TPID 4d SID 12d TYPE 1 VPID 4ec PCRPID 4ec
CHANNEL ID ffffffff NAME "Deutsche Bank / T2" SATID ffffff TPID 4d SID 2 TYPE 1 VPID 4ec PCRPID 4ec
CHANNEL ID 93 NAME "Channel Three" SATID ffffff TPID 4d SID 3 TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 94 NAME "Channel Four" SATID ffffff TPID 4d SID 4 TYPE 0 VPID 5b4 PCRPID 5b4
CHANNEL ID 95 NAME "Channel Five" SATID ffffff TPID 4d SID 5 TYPE 0 VPID 618 PCRPID 618
CHANNEL ID 96 NAME "Channel 6 = Sat 7 Arabic" SATID ffffff TPID 4d SID 6 TYPE 0 VPID 67c PCRPID 67c
CHANNEL ID 97 NAME "Channel Seven" SATID ffffff TPID 4d SID 7 TYPE 0 VPID 6e0 PCRPID 6e0
CHANNEL ID 98 NAME "Q German" SATID ffffff TPID 4d SID 47 TYPE 0 VPID 6e0 PCRPID 6e0
CHANNEL ID 99 NAME "Q French" SATID ffffff TPID 4d SID 48 TYPE 0 VPID 6e0 PCRPID 6e0
CHANNEL ID 9a NAME "Q Dutch" SATID ffffff TPID 4d SID 49 TYPE 0 VPID 6e0 PCRPID 6e0
CHANNEL ID 1b8 NAME "DTAG / T11" SATID ffffff TPID 4d SID b TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 1b9 NAME "DTAG 50 / T12" SATID ffffff TPID 4d SID c TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 1ba NAME "Telekom TV" SATID ffffff TPID 4d SID d TYPE 1 VPID 5b4 PCRPID 5b4
CHANNEL ID 1bb NAME "Gerling / T26" SATID ffffff TPID 4d SID 1a TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 1bc NAME "Hornbach-D / T36" SATID ffffff TPID 4d SID 24 TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 1bd NAME "Hornbach-NL / T38" SATID ffffff TPID 4d SID 26 TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 1be NAME "Hornbach-CZ / T39" SATID ffffff TPID 4d SID 27 TYPE 1 VPID 550 PCRPID 550
CHANNEL ID 1bf NAME "Testkanal" SATID ffffff TPID 4d SID 63 TYPE 0 VPID 67c PCRPID 67c
CHANNEL ID 1c0 NAME "KENCAST" SATID ffffff TPID 4d SID 6f TYPE 0 PCRPID 42e
TRANSPONDER ID 1f40 SATID 0000 TYPE 1 FREQ 12302880 POL V SRATE 27500000 FEC 8
CHANNEL ID 1c1 NAME "SLO-TV1" SATID ffffff TPID 1f40 SID c81 TYPE 1 VPID c8 PCRPID c8
CHANNEL ID 1c2 NAME "SLO-TV2" SATID ffffff TPID 1f40 SID c82 TYPE 1 VPID cb PCRPID cb
CHANNEL ID 1c3 NAME "POLONIA 1" SATID ffffff TPID 1f40 SID c83 TYPE 0 VPID cd PCRPID cd
CHANNEL ID 1c4 NAME "SLO-RA1-INF" SATID ffffff TPID 1f40 SID c84 TYPE 0 APID fa PCRPID fa
CHANNEL ID 1c5 NAME "SLO-RA2" SATID ffffff TPID 1f40 SID c85 TYPE 0 APID fb PCRPID fb
CHANNEL ID 1c6 NAME "SLO-RA3" SATID ffffff TPID 1f40 SID c86 TYPE 0 APID fc PCRPID fc
CHANNEL ID 1c7 NAME "SUPER 1" SATID ffffff TPID 1f40 SID c87 TYPE 0 VPID cf PCRPID cf
CHANNEL ID 1c8 NAME "NAPOLI INT." SATID ffffff TPID 1f40 SID c8a TYPE 0 VPID f0 PCRPID f0
CHANNEL ID 1c9 NAME "MAGIC" SATID ffffff TPID 1f40 SID c8b TYPE 0 VPID f5 PCRPID f5
CHANNEL ID 1ca NAME "COUNTDOWN" SATID ffffff TPID 1f40 SID c8c TYPE 0 VPID eb PCRPID eb
CHANNEL ID 1cb NAME "TBNE" SATID ffffff TPID 1f40 SID c8d TYPE 0 VPID e6 PCRPID e6
CHANNEL ID 1cc NAME "SICILSAT" SATID ffffff TPID 1f40 SID c8e TYPE 0 VPID e1 PCRPID e1
TRANSPONDER ID 1fa4 SATID 0000 TYPE 1 FREQ 10892000 POL H SRATE 27500000 FEC 8
CHANNEL ID 1cd NAME "TVP1" SATID ffffff TPID 1fa4 SID 1 TYPE 1 VPID 101 APID 102 APID 17df TTPID 103 PCRPID 101
CHANNEL ID 1ce NAME "TVP2" SATID ffffff TPID 1fa4 SID 2 TYPE 1 VPID 141 APID 142 PCRPID 141
CHANNEL ID 1cf NAME "POLSAT1" SATID ffffff TPID 1fa4 SID 3 TYPE 1
CHANNEL ID 1d0 NAME "TV4" SATID ffffff TPID 1fa4 SID 4 TYPE 1 VPID 101 APID 102 APID 17df TTPID 103 PCRPID 101
CHANNEL ID 1d1 NAME "POLSAT2" SATID ffffff TPID 1fa4 SID 5 TYPE 1 VPID 141 APID 142 PCRPID 141
CHANNEL ID 1d2 NAME "WOT" SATID ffffff TPID 1fa4 SID 6 TYPE 1
CHANNEL ID 1d3 NAME "DISCOVERY" SATID ffffff TPID 1fa4 SID f TYPE 1 VPID 101 APID 102 APID 17df TTPID 103 PCRPID 101
CHANNEL ID 1d4 NAME "ANIMAL PLANET" SATID ffffff TPID 1fa4 SID 10 TYPE 1 VPID 141 APID 142 PCRPID 141
CHANNEL ID 1d5 NAME "EpgOpenTV" SATID ffffff TPID 1fa4 SID e66 TYPE 0
TRANSPONDER ID 2008 SATID 0000 TYPE 1 FREQ 12341001 POL V SRATE 27500000 FEC 8
CHANNEL ID 1d6 NAME "P10" SATID ffffff TPID 2008 SID 2d51 TYPE 1 VPID a0 APID 50 APID 51 PCRPID b0
CHANNEL ID 1d7 NAME "P11" SATID ffffff TPID 2008 SID 2d53 TYPE 1 VPID a1 APID 54 APID 55 PCRPID b0
CHANNEL ID 1d8 NAME "P12" SATID ffffff TPID 2008 SID 2d55 TYPE 1 VPID a2 APID 58 APID 59 PCRPID b0
CHANNEL ID 1d9 NAME "P13" SATID ffffff TPID 2008 SID 2d57 TYPE 1 VPID a3 APID 5c APID 5d PCRPID b0
CHANNEL ID 1da NAME "P14" SATID ffffff TPID 2008 SID 2d59 TYPE 1 VPID a4 APID 60 APID 61 PCRPID b0
CHANNEL ID 1db NAME "P15" SATID ffffff TPID 2008 SID 2d5b TYPE 1 VPID a5 APID 64 APID 65 PCRPID b0
CHANNEL ID 1dc NAME "P16" SATID ffffff TPID 2008 SID 2d5d TYPE 1 VPID a6 APID 68 APID 69 PCRPID b0
CHANNEL ID 1dd NAME "PREMIUM" SATID ffffff TPID 2008 SID 2d5f TYPE 1 PCRPID af
CHANNEL ID 1de NAME "+F1" SATID ffffff TPID 2008 SID 2d61 TYPE 1 VPID a0 APID 51 APID 298 PCRPID b0
CHANNEL ID 1df NAME "+F1" SATID ffffff TPID 2008 SID 2d63 TYPE 1 VPID a1 APID 29a APID 55 PCRPID b0
CHANNEL ID 1e0 NAME "+F1" SATID ffffff TPID 2008 SID 2d65 TYPE 1 VPID a2 APID 59 APID 29b PCRPID b0
CHANNEL ID 1e1 NAME "+F1" SATID ffffff TPID 2008 SID 2d67 TYPE 1 VPID a3 APID 5d APID 2a2 PCRPID b0
CHANNEL ID 1e2 NAME "+F1" SATID ffffff TPID 2008 SID 2d69 TYPE 1 VPID a4 APID 61 APID 60 PCRPID b0
CHANNEL ID 1e3 NAME "+F1" SATID ffffff TPID 2008 SID 2d6b TYPE 1 VPID a5 APID 65 APID 2a4 PCRPID b0
CHANNEL ID 1e4 NAME "+F1" SATID ffffff TPID 2008 SID 2d6d TYPE 1 VPID a6 APID 69 APID 29a PCRPID b0
CHANNEL ID 1e5 NAME "RMC" SATID ffffff TPID 2008 SID 2d6f TYPE 1 PCRPID b8
CHANNEL ID 1e6 NAME "R101" SATID ffffff TPID 2008 SID 2d70 TYPE 1 PCRPID b8
CHANNEL ID 1e7 NAME "RRAD" SATID ffffff TPID 2008 SID 2d71 TYPE 1 PCRPID b8
TRANSPONDER ID 206c SATID 0000 TYPE 1 FREQ 10892000 POL H SRATE 27500000 FEC 8
CHANNEL ID 1e8 NAME "ON" SATID ffffff TPID 206c SID 7 TYPE 1 VPID 161 APID 162 PCRPID 161
CHANNEL ID 1e9 NAME "DLA-CIEBIE" SATID ffffff TPID 206c SID 8 TYPE 1 VPID 211 APID 212 PCRPID 211
CHANNEL ID 1ea NAME "KOMEDIA" SATID ffffff TPID 206c SID 9 TYPE 1 VPID 161 APID 162 PCRPID 161
CHANNEL ID 1eb NAME "SMYK" SATID ffffff TPID 206c SID a TYPE 1 VPID 211 APID 212 PCRPID 211
CHANNEL ID 1ec NAME "RELAKS" SATID ffffff TPID 206c SID b TYPE 1 VPID 161 APID 162 PCRPID 161
CHANNEL ID 1ed NAME "INFO" SATID ffffff TPID 206c SID c TYPE 1 VPID 211 APID 212 PCRPID 211
CHANNEL ID 1ee NAME "POLSAT SPORT" SATID ffffff TPID 206c SID d TYPE 1 VPID 161 APID 162 PCRPID 161
TRANSPONDER ID 20d0 SATID 0000 TYPE 1 FREQ 12379000 POL V SRATE 27500000 FEC 8
CHANNEL ID 1ef NAME "Paris Première" SATID ffffff TPID 20d0 SID bb9 TYPE 1 VPID bcd APID bd7 PCRPID bcd
CHANNEL ID 1f0 NAME "OCC HB3" SATID ffffff TPID 20d0 SID bba TYPE 0 VPID bce APID bd8 PCRPID bce
CHANNEL ID 1f1 NAME "TELE 24 Switzerland" SATID ffffff TPID 20d0 SID bbb TYPE 0 VPID bcf APID bd9 PCRPID bcf
CHANNEL ID 1f2 NAME "AIR MEDIA" SATID ffffff TPID 20d0 SID c0f TYPE 0 APID dd1 PCRPID dd1
CHANNEL ID 1f3 NAME "Abu Dhabi TV" SATID ffffff TPID 20d0 SID bbc TYPE 0 VPID bd0 APID bda PCRPID bd0
CHANNEL ID 1f4 NAME "EMIRAT FM 1" SATID ffffff TPID 20d0 SID c0b TYPE 0 APID dcd PCRPID dcd
CHANNEL ID 1f5 NAME "EMIRAT FM2" SATID ffffff TPID 20d0 SID c0c TYPE 0 APID dce PCRPID dce
CHANNEL ID 1f6 NAME "Radio Italia " SATID ffffff TPID 20d0 SID c09 TYPE 0 APID dcb PCRPID dcb
CHANNEL ID 1f7 NAME "EQUIDIA INTER." SATID ffffff TPID 20d0 SID beb TYPE 1 VPID cf9 APID d03 APID d0d APID d17 PCRPID cf9
CHANNEL ID 1f8 NAME "RTV MONTENEGRO" SATID ffffff TPID 20d0 SID bbe TYPE 0 VPID bd2 APID bdc PCRPID bd2
CHANNEL ID 1f9 NAME "Radio Montenegro" SATID ffffff TPID 20d0 SID c10 TYPE 0 APID dd2 PCRPID dd2
CHANNEL ID 1fa NAME "SERTE TEST" SATID ffffff TPID 20d0 SID bbd TYPE 0 VPID bd1 PCRPID bd1
CHANNEL ID 1fb NAME "GAME 1" SATID ffffff TPID 20d0 SID bbf TYPE 1 VPID bd3 APID bdd PCRPID bd3
TRANSPONDER ID 0055 SATID 0000 TYPE 1 FREQ 12398781 POL H SRATE 27500000 FEC 8
CHANNEL ID 1fc NAME "SF 2" SATID ffffff TPID 55 SID 38b TYPE 1 VPID a3 APID 5c APID 5d TTPID 29 PCRPID a3
CHANNEL ID 1fd NAME "SRG SSR Sat Access" SATID ffffff TPID 55 SID 38e TYPE 0 VPID a5 APID 62 APID 63 TTPID 2f PCRPID a5
CHANNEL ID 1fe NAME "SF 1" SATID ffffff TPID 55 SID 385 TYPE 1 VPID a0 APID 50 APID 51 TTPID 20 PCRPID a0
CHANNEL ID 1ff NAME "TSR 1" SATID ffffff TPID 55 SID 386 TYPE 1 VPID a1 APID 54 APID 55 TTPID 23 PCRPID a1
CHANNEL ID 200 NAME "TSI 1" SATID ffffff TPID 55 SID 387 TYPE 1 VPID a2 APID 58 APID 59 TTPID 26 PCRPID a2
CHANNEL ID 201 NAME "TSR 2" SATID ffffff TPID 55 SID 38c TYPE 1 VPID a4 APID 60 APID 61 TTPID 2c PCRPID a4
CHANNEL ID 202 NAME "TSI 2" SATID ffffff TPID 55 SID 38d TYPE 1 VPID a6 APID 64 APID 65 TTPID 32 PCRPID a6
CHANNEL ID 203 NAME "OPTION MUSIQUE" SATID ffffff TPID 55 SID 3bd TYPE 0 APID cc PCRPID cc
CHANNEL ID 204 NAME "ESPACE 2" SATID ffffff TPID 55 SID 3be TYPE 0 APID cd PCRPID cd
CHANNEL ID 205 NAME "SRI-F-I" SATID ffffff TPID 55 SID 3b7 TYPE 0 APID c7 PCRPID c7
CHANNEL ID 206 NAME "SRI-EUROPA" SATID ffffff TPID 55 SID 3b9 TYPE 0 VPID 230 APID c8 PCRPID c8
TRANSPONDER ID 2198 SATID 0000 TYPE 1 FREQ 12341001 POL V SRATE 27500000 FEC 8
CHANNEL ID 207 NAME "POLO" SATID ffffff TPID 2198 SID 2db5 TYPE 1 VPID a0 APID 50 PCRPID a0
CHANNEL ID 208 NAME "PLANETE" SATID ffffff TPID 2198 SID 2db7 TYPE 1 VPID a1 APID 54 PCRPID a1
CHANNEL ID 209 NAME "JIMMY" SATID ffffff TPID 2198 SID 2db9 TYPE 1 VPID a2 APID 58 PCRPID a2
CHANNEL ID 20a NAME "INN" SATID ffffff TPID 2198 SID 2dbb TYPE 1 VPID a3 APID 5c PCRPID a3
CHANNEL ID 20b NAME "CIN1" SATID ffffff TPID 2198 SID 2dbd TYPE 1 VPID a4 APID 60 PCRPID a4
CHANNEL ID 20c NAME "CIN2" SATID ffffff TPID 2198 SID 2dbf TYPE 1 VPID a5 APID 64 PCRPID a5
CHANNEL ID 20d NAME "CINC" SATID ffffff TPID 2198 SID 2dc1 TYPE 1 VPID a6 APID 68 PCRPID a6
CHANNEL ID 20e NAME "SEASONS" SATID ffffff TPID 2198 SID 2dc3 TYPE 1 VPID a7 APID 6c PCRPID a7
CHANNEL ID 20f NAME "WISHLINE" SATID ffffff TPID 2198 SID 2dc5 TYPE 1 VPID a8 APID 55 APID 5d APID 59 PCRPID a8
CHANNEL ID 210 NAME "MARCOPOLO" SATID ffffff TPID 2198 SID 2dc7 TYPE 1 VPID a0 APID 50 APID 51 PCRPID a0
TRANSPONDER ID 0049 SATID 0000 TYPE 1 FREQ 12436999 POL H SRATE 27500000 FEC 8
CHANNEL ID 211 NAME "JAAM-E-JAM 1" SATID ffffff TPID 49 SID 1 TYPE 0 VPID a0 APID 50 APID 51 PCRPID a0
CHANNEL ID 212 NAME "JAAM-E-JAM 2" SATID ffffff TPID 49 SID 2 TYPE 0 VPID a1 APID 52 APID 53 TTPID 21 PCRPID a1
CHANNEL ID 213 NAME "SAHAR" SATID ffffff TPID 49 SID 3 TYPE 0 VPID a2 APID 54 APID 55 PCRPID a2
CHANNEL ID 214 NAME "TEST(SAHAR)" SATID ffffff TPID 49 SID 4 TYPE 0 VPID a3 APID 56 APID 57 PCRPID a3
CHANNEL ID 215 NAME "IRINN" SATID ffffff TPID 49 SID 5 TYPE 0 VPID a4 APID 58 APID 59 PCRPID a4
CHANNEL ID 216 NAME "TEST 2" SATID ffffff TPID 49 SID 6 TYPE 0 VPID a5 APID 5a PCRPID a5
CHANNEL ID 217 NAME "IRIB1 RADIO" SATID ffffff TPID 49 SID 7 TYPE 0 APID 51 PCRPID a0
CHANNEL ID 218 NAME "IRIB ARABIC /International 1 Radio" SATID ffffff TPID 49 SID 8 TYPE 0 APID 53 PCRPID a1
TRANSPONDER ID 013d SATID 0000 TYPE 1 FREQ 12460000 POL V SRATE 27500000 FEC 8
TRANSPONDER ID 013e SATID 0000 TYPE 1 FREQ 12484000 POL V SRATE 27500000 FEC 8
TRANSPONDER ID 22c4 SATID 0000 TYPE 1 FREQ 12475499 POL H SRATE 27500000 FEC 8
CHANNEL ID 219 NAME "INT1 FAMILY RADIO" SATID ffffff TPID 22c4 SID 2977 TYPE 0 APID 3c1 PCRPID 3c1
CHANNEL ID 21a NAME "RADIO 74" SATID ffffff TPID 22c4 SID 2974 TYPE 0 APID 399 PCRPID 399
CHANNEL ID 21b NAME "R 74 INT." SATID ffffff TPID 22c4 SID 2975 TYPE 0 APID 3a3 PCRPID 3a3
CHANNEL ID 21c NAME "FAMILY Radio" SATID ffffff TPID 22c4 SID 2976 TYPE 0 APID 3b7 PCRPID 3b7
CHANNEL ID 21d NAME "Temp" SATID ffffff TPID 22c4 SID 296f TYPE 0 VPID 303 PCRPID 300
CHANNEL ID 21e NAME "SPREE Radio" SATID ffffff TPID 22c4 SID 299c TYPE 0 APID 1f5 PCRPID 1f5
CHANNEL ID 21f NAME " RVI ( VRT ) " SATID ffffff TPID 22c4 SID 2972 TYPE 0 APID 385 PCRPID 385
CHANNEL ID 220 NAME "EbS" SATID ffffff TPID 22c4 SID 2969 TYPE 0 VPID 65 APID c9 APID ca APID cb APID cc APID cd APID ce APID cf APID d0 APID d1 APID d2 APID d3 APID d4 APID d5 APID d6 APID d7 APID d8 TTPID 12d PCRPID 65
CHANNEL ID 221 NAME "MOU.2" SATID ffffff TPID 22c4 SID 296a TYPE 0 VPID 2a PCRPID 2a
CHANNEL ID 222 NAME "MIZIK TROPICAL" SATID ffffff TPID 22c4 SID 296e TYPE 0 VPID 1b3 APID 1b4 PCRPID 1b3
CHANNEL ID 223 NAME "MIZIK TROPICAL Radio" SATID ffffff TPID 22c4 SID 2970 TYPE 0 APID 321 PCRPID 321
CHANNEL ID 224 NAME "Framboise Nord (CH)" SATID ffffff TPID 22c4 SID 2978 TYPE 0 APID 3cb PCRPID 3cb
CHANNEL ID 225 NAME "Framboise Sud (CH)" SATID ffffff TPID 22c4 SID 2979 TYPE 0 APID 3d5 PCRPID 3d5
CHANNEL ID 226 NAME "PINK PLUS" SATID ffffff TPID 22c4 SID 296d TYPE 1 VPID 134 APID 100 APID 101 PCRPID 24
CHANNEL ID 227 NAME "LIBERTYTV.COM" SATID ffffff TPID 22c4 SID 296b TYPE 0 VPID 3ad APID 3ae PCRPID 3ad
CHANNEL ID 228 NAME "KURDSAT" SATID ffffff TPID 22c4 SID 297a TYPE 0 VPID 258 APID 259 PCRPID 1ffe
CHANNEL ID 229 NAME "test2" SATID ffffff TPID 22c4 SID 297c TYPE 0 VPID bb8 APID bb9 TTPID bba PCRPID bb8
TRANSPONDER ID 2328 SATID 0000 TYPE 1 FREQ 12519840 POL V SRATE 27500000 FEC 8
CHANNEL ID 22a NAME "HRT-TV1" SATID ffffff TPID 2328 SID 206d TYPE 1 VPID 64 APID 65 TTPID 66 PCRPID 64
CHANNEL ID 22b NAME "HRT-TV2" SATID ffffff TPID 2328 SID 206e TYPE 1 VPID 67 APID 68 TTPID 66 PCRPID 67
CHANNEL ID 22c NAME "HRT-TV3" SATID ffffff TPID 2328 SID 206f TYPE 1 VPID 69 APID 6a TTPID 66 PCRPID 69
CHANNEL ID 22d NAME "HRT-HR1" SATID ffffff TPID 2328 SID 2071 TYPE 0 APID 96 PCRPID 96
CHANNEL ID 22e NAME "HRT-HR2" SATID ffffff TPID 2328 SID 2072 TYPE 0 APID 97 PCRPID 97
CHANNEL ID 22f NAME "HRT-HR3" SATID ffffff TPID 2328 SID 2073 TYPE 0 APID 98 PCRPID 98
CHANNEL ID 230 NAME "SICILIA INTERNATIONAL" SATID ffffff TPID 2328 SID 2075 TYPE 0 VPID 1f5 PCRPID 1f5
CHANNEL ID 231 NAME "HRT-NATIONAL" SATID ffffff TPID 2328 SID 2070 TYPE 1 VPID 6b APID 6c TTPID 66 PCRPID 6b
CHANNEL ID 232 NAME "HRT-TEST" SATID ffffff TPID 2328 SID 2074 TYPE 1 VPID 6d APID 6e TTPID 66 PCRPID 6d
CHANNEL ID 233 NAME "SARDEGNA UNO" SATID ffffff TPID 2328 SID 2076 TYPE 0 VPID 1f7 PCRPID 1f7
CHANNEL ID 234 NAME "R-HRVATSKA" SATID ffffff TPID 2328 SID 2077 TYPE 0 APID 99 PCRPID 99
CHANNEL ID 235 NAME "EuroMed" SATID ffffff TPID 2328 SID 2078 TYPE 0 VPID 1fe PCRPID 1fe
CHANNEL ID 236 NAME "TGRT" SATID ffffff TPID 2328 SID 2079 TYPE 0 VPID 1f9 PCRPID 1f9
CHANNEL ID 237 NAME "HR-TEST" SATID ffffff TPID 2328 SID 207a TYPE 0 APID 9a PCRPID 9a
CHANNEL ID 238 NAME "MINI-BVN" SATID ffffff TPID 2328 SID 207b TYPE 0 VPID d2 PCRPID d6
TRANSPONDER ID 238c SATID 0000 TYPE 1 FREQ 12713000 POL H SRATE 27500000 FEC 8
CHANNEL ID 239 NAME "SIMS 91 LARIO" SATID ffffff TPID 238c SID 2262 TYPE 0
CHANNEL ID 23a NAME "SKYPLEX TXP91" SATID ffffff TPID 238c SID 2261 TYPE 0
CHANNEL ID 23b NAME "Skygate 18" SATID ffffff TPID 238c SID 2 TYPE 0
CHANNEL ID 23c NAME "MA12_2905" SATID ffffff TPID 238c SID 226a TYPE 0 PCRPID 1113
CHANNEL ID 23d NAME "ES13_1107" SATID ffffff TPID 238c SID 226b TYPE 0 PCRPID 1114
CHANNEL ID 23e NAME "ASTONv0107" SATID ffffff TPID 238c SID 226f TYPE 0 PCRPID 1112
CHANNEL ID 23f NAME "sisal" SATID ffffff TPID 238c SID 1 TYPE 1 VPID 1104 PCRPID 1104
CHANNEL ID 240 NAME "service" SATID ffffff TPID 238c SID 3 TYPE 1 VPID 1104 PCRPID 1104
CHANNEL ID 241 NAME "Skyplex 19" SATID ffffff TPID 238c SID 231f TYPE 0
CHANNEL ID 242 NAME "Network" SATID ffffff TPID 238c SID 2320 TYPE 0
CHANNEL ID 243 NAME "www.travel" SATID ffffff TPID 238c SID 2321 TYPE 0 VPID 49c APID 49f APID 4a0 TTPID 49d PCRPID 49c
CHANNEL ID 244 NAME "MagicStar" SATID ffffff TPID 238c SID 2322 TYPE 0 APID 4a4 PCRPID 4a4
CHANNEL ID 245 NAME "Skygate 8" SATID ffffff TPID 238c SID 22de TYPE 0
CHANNEL ID 246 NAME "UDLR" SATID ffffff TPID 238c SID 22df TYPE 0 APID 19fd
CHANNEL ID 247 NAME "UDLR UDcast" SATID ffffff TPID 238c SID 22e0 TYPE 0
CHANNEL ID 248 NAME "Skygate 17" SATID ffffff TPID 238c SID 2264 TYPE 0
CHANNEL ID 249 NAME "Netshow" SATID ffffff TPID 238c SID 226d TYPE 0
CHANNEL ID 24a NAME "MEDIOLANUM" SATID ffffff TPID 238c SID 226e TYPE 0 VPID 1006 PCRPID 1006
CHANNEL ID 24b NAME "Skygate 10" SATID ffffff TPID 238c SID 22c5 TYPE 0
CHANNEL ID 24c NAME "HitCast Data 1" SATID ffffff TPID 238c SID 22c6 TYPE 0
CHANNEL ID 24d NAME "HitCast S.Amer." SATID ffffff TPID 238c SID 22c7 TYPE 0
CHANNEL ID 24e NAME "Skygate 1" SATID ffffff TPID 238c SID 22ac TYPE 0
CHANNEL ID 24f NAME "MonteCarloSat" SATID ffffff TPID 238c SID 22ad TYPE 0 VPID 1407 APID 1402 PCRPID 1407
CHANNEL ID 250 NAME "Bulgaria Radio" SATID ffffff TPID 238c SID 227c TYPE 0 APID 1207
CHANNEL ID 251 NAME "skygate 600" SATID ffffff TPID 238c SID 227a TYPE 0
TRANSPONDER ID 23f0 SATID 0000 TYPE 1 FREQ 12558201 POL V SRATE 27500000 FEC 8
CHANNEL ID 252 NAME "SKYPLEX TXP92" SATID ffffff TPID 23f0 SID 238d TYPE 0
CHANNEL ID 253 SATID ffffff TPID 23f0 SID 2491 TYPE 0
CHANNEL ID 254 SATID ffffff TPID 23f0 SID 2492 TYPE 0 VPID b09 APID b02 TTPID b0a PCRPID b09
CHANNEL ID 255 SATID ffffff TPID 23f0 SID 2493 TYPE 0 VPID b09 TTPID b0a PCRPID b0d
CHANNEL ID 256 SATID ffffff TPID 23f0 SID 2494 TYPE 0 VPID b09 TTPID b0a PCRPID b04
CHANNEL ID 257 NAME "SKY_4" SATID ffffff TPID 23f0 SID 2487 TYPE 0
CHANNEL ID 258 NAME "ESP Int'l" SATID ffffff TPID 23f0 SID 2488 TYPE 1 VPID a0f APID a02 APID a03 TTPID a10 PCRPID a0f
CHANNEL ID 259 NAME "ESP Romanian" SATID ffffff TPID 23f0 SID 2489 TYPE 1 APID a09 PCRPID a2c
CHANNEL ID 25a NAME "ESP Dutch" SATID ffffff TPID 23f0 SID 248a TYPE 1 VPID a0f APID a04 TTPID a10 PCRPID a2c
CHANNEL ID 25b NAME "ESP PolisI" SATID ffffff TPID 23f0 SID 248b TYPE 1 APID a05 PCRPID a2c
CHANNEL ID 25c SATID ffffff TPID 23f0 SID 248c TYPE 0 VPID a0f APID a06 TTPID a10 PCRPID a2c
CHANNEL ID 25d SATID ffffff TPID 23f0 SID 248d TYPE 0 VPID a0f APID a04 TTPID a10 PCRPID a2c
CHANNEL ID 25e SATID ffffff TPID 23f0 SID 248e TYPE 0 VPID a0f APID a08 TTPID a10 PCRPID a2c
CHANNEL ID 25f SATID ffffff TPID 23f0 SID 248f TYPE 0 APID a02 APID a03 APID a04 APID a05 PCRPID a0f
CHANNEL ID 260 SATID ffffff TPID 23f0 SID 2423 TYPE 0
TRANSPONDER ID 0143 SATID 0000 TYPE 1 FREQ 12573000 POL H SRATE 27500000 FEC 8
TRANSPONDER ID 0144 SATID 0000 TYPE 1 FREQ 12590000 POL H SRATE 27500000 FEC 8
TRANSPONDER ID 24b8 SATID 0000 TYPE 1 FREQ 12596560 POL V SRATE 27500000 FEC 8
CHANNEL ID 261 NAME "JSTV 1" SATID ffffff TPID 24b8 SID 2015 TYPE 0 VPID 7d0 APID 7d2 APID 7d3 APID 7d2 PCRPID 7d0
CHANNEL ID 262 NAME "JSTV 2" SATID ffffff TPID 24b8 SID 2016 TYPE 0 VPID 7db APID 7dc APID 7dd APID 7dd PCRPID 7db
CHANNEL ID 263 NAME "MBC" SATID ffffff TPID 24b8 SID 2009 TYPE 0 VPID a0 APID 50 APID 51 TTPID 20 PCRPID a0
CHANNEL ID 264 NAME "Service 2" SATID ffffff TPID 24b8 SID 200a TYPE 0 VPID a1 APID 54 PCRPID a1
CHANNEL ID 265 NAME "NITV" SATID ffffff TPID 24b8 SID 200c TYPE 0 VPID a3 APID 5c PCRPID a3
CHANNEL ID 266 NAME "SIMAYE AZADI" SATID ffffff TPID 24b8 SID 200f TYPE 0 VPID a6 APID 6a PCRPID a6
CHANNEL ID 267 NAME "BET" SATID ffffff TPID 24b8 SID 2010 TYPE 0 VPID a7 APID 6c APID 6d PCRPID a7
CHANNEL ID 268 NAME "CNNI" SATID ffffff TPID 24b8 SID 2011 TYPE 1 VPID a8 APID 70 APID 71 TTPID 38 PCRPID a8
CHANNEL ID 269 NAME "EuroNews" SATID ffffff TPID 24b8 SID 2013 TYPE 0 VPID 8ad APID 8b7 APID 8b8 APID 8b9 APID 8ba APID 8bb APID 8bc APID 8bd APID 8be TTPID 300 PCRPID 8ad
CHANNEL ID 26a NAME "Canal Rural" SATID ffffff TPID 24b8 SID 2014 TYPE 0 VPID 911 APID 91b APID 91c PCRPID 911
CHANNEL ID 26b NAME "MediaHW" SATID ffffff TPID 24b8 SID 2063 TYPE 0 PCRPID fa0
TRANSPONDER ID 251c SATID 0000 TYPE 1 FREQ 12615000 POL H SRATE 27500000 FEC 8
CHANNEL ID 26c SATID ffffff TPID 251c SID fffe TYPE 0
CHANNEL ID 26d NAME "MMOV" SATID ffffff TPID 251c SID f46 TYPE 1 VPID a10 PCRPID a00
CHANNEL ID 26e NAME "MMOV" SATID ffffff TPID 251c SID f49 TYPE 1 VPID a12 PCRPID a01
CHANNEL ID 26f NAME "MMOV" SATID ffffff TPID 251c SID f4d TYPE 1 VPID a14 PCRPID a02
CHANNEL ID 270 NAME "MMOV" SATID ffffff TPID 251c SID f4e TYPE 1 VPID a16 PCRPID a03
CHANNEL ID 271 NAME "MMOV" SATID ffffff TPID 251c SID f4f TYPE 1 VPID a18 PCRPID a04
CHANNEL ID 272 NAME "MMOV" SATID ffffff TPID 251c SID f50 TYPE 1 VPID a1a PCRPID a05
CHANNEL ID 273 NAME "SC 1" SATID ffffff TPID 251c SID f51 TYPE 1 VPID a07 PCRPID a06
CHANNEL ID 274 NAME "SC 2" SATID ffffff TPID 251c SID f54 TYPE 1 VPID a0a PCRPID a06
CHANNEL ID 275 NAME "SC 3" SATID ffffff TPID 251c SID f57 TYPE 1 VPID a0d PCRPID a06
CHANNEL ID 276 NAME "MC20" SATID ffffff TPID 251c SID f5f TYPE 1 APID 900 PCRPID 900
CHANNEL ID 277 NAME "MC21" SATID ffffff TPID 251c SID f62 TYPE 1 APID 901 PCRPID 901
CHANNEL ID 278 NAME "MC22" SATID ffffff TPID 251c SID f65 TYPE 1 APID 902 PCRPID 902
CHANNEL ID 279 NAME "MC23" SATID ffffff TPID 251c SID f68 TYPE 1 APID 903 PCRPID 903
CHANNEL ID 27a NAME "MC24" SATID ffffff TPID 251c SID f6b TYPE 1 APID 904 PCRPID 904
CHANNEL ID 27b NAME "MC25" SATID ffffff TPID 251c SID f6e TYPE 1 APID 905 PCRPID 905
CHANNEL ID 27c NAME "MC26" SATID ffffff TPID 251c SID f71 TYPE 1 APID 906 PCRPID 906
CHANNEL ID 27d NAME "MC27" SATID ffffff TPID 251c SID f74 TYPE 1 APID 907 PCRPID 907
CHANNEL ID 27e NAME "MC28" SATID ffffff TPID 251c SID f77 TYPE 1 APID 908 PCRPID 908
CHANNEL ID 27f NAME "MC29" SATID ffffff TPID 251c SID f7a TYPE 1 APID 909 PCRPID 909
CHANNEL ID 280 NAME "MC30" SATID ffffff TPID 251c SID f7d TYPE 1 APID 90a PCRPID 90a
CHANNEL ID 281 NAME "MC31" SATID ffffff TPID 251c SID f80 TYPE 1 APID 90b PCRPID 90b
CHANNEL ID 282 NAME "MC32" SATID ffffff TPID 251c SID f83 TYPE 1 APID 90c PCRPID 90c
CHANNEL ID 283 NAME "MC33" SATID ffffff TPID 251c SID f86 TYPE 1 APID 90d PCRPID 90d
CHANNEL ID 284 NAME "MC34" SATID ffffff TPID 251c SID f89 TYPE 1 APID 90e PCRPID 90e
CHANNEL ID 285 NAME "MC35" SATID ffffff TPID 251c SID f8c TYPE 1 APID 90f PCRPID 90f
CHANNEL ID 286 NAME "MC36" SATID ffffff TPID 251c SID f8f TYPE 1 APID 910 PCRPID 910
CHANNEL ID 287 NAME "MC37" SATID ffffff TPID 251c SID f92 TYPE 1 APID 911 PCRPID 911
CHANNEL ID 288 NAME "MC38" SATID ffffff TPID 251c SID f95 TYPE 1 APID 912 PCRPID 912
CHANNEL ID 289 NAME "MC39" SATID ffffff TPID 251c SID f98 TYPE 1 APID 913 PCRPID 913
TRANSPONDER ID 2580 SATID 0000 TYPE 1 FREQ 12635000 POL V SRATE 27500000 FEC 8
CHANNEL ID 28a SATID ffffff TPID 2580 SID fffe TYPE 0
CHANNEL ID 28b NAME "SC 4" SATID ffffff TPID 2580 SID fa1 TYPE 1 VPID a90 PCRPID a83
CHANNEL ID 28c NAME "SC 5" SATID ffffff TPID 2580 SID fa2 TYPE 1 VPID a88 PCRPID a83
CHANNEL ID 28d NAME "SC 6" SATID ffffff TPID 2580 SID fa3 TYPE 1 VPID a8d PCRPID a83
CHANNEL ID 28e NAME "MMOV" SATID ffffff TPID 2580 SID fa7 TYPE 1 VPID a84 PCRPID a80
CHANNEL ID 28f NAME "MMOV" SATID ffffff TPID 2580 SID faa TYPE 1 VPID a86 PCRPID a81
CHANNEL ID 290 NAME "MMOV" SATID ffffff TPID 2580 SID fb0 TYPE 1 VPID a93 PCRPID a82
CHANNEL ID 291 NAME "MMOV" SATID ffffff TPID 2580 SID fb3 TYPE 1 VPID a95 PCRPID a8b
CHANNEL ID 292 NAME "MMOV" SATID ffffff TPID 2580 SID fb6 TYPE 1 VPID a97 PCRPID a8c
CHANNEL ID 293 NAME "MMOV" SATID ffffff TPID 2580 SID fb9 TYPE 1 VPID b03 PCRPID b00
CHANNEL ID 294 NAME "MMOV" SATID ffffff TPID 2580 SID fbc TYPE 1 VPID b05 PCRPID b01
TRANSPONDER ID 25e4 SATID 0000 TYPE 1 FREQ 12654000 POL H SRATE 27500000 FEC 8
CHANNEL ID 295 NAME "Sharjah Arabsat Bouquet" SATID ffffff TPID 25e4 SID 1 TYPE 0 VPID 488 PCRPID 488
CHANNEL ID 296 NAME "Qatar Arabsat Bouquet" SATID ffffff TPID 25e4 SID 2 TYPE 0 VPID 4ec PCRPID 4ec
CHANNEL ID 297 NAME "Saudi 1 Arabsat Bouquet" SATID ffffff TPID 25e4 SID 3 TYPE 0 VPID 550 PCRPID 550
CHANNEL ID 298 NAME "Kuwait Arabsat Bouquet" SATID ffffff TPID 25e4 SID 4 TYPE 0 VPID 5b4 PCRPID 5b4
CHANNEL ID 299 NAME "Libya Arabsat Bouquet" SATID ffffff TPID 25e4 SID 5 TYPE 0 VPID 618 PCRPID 618
CHANNEL ID 29a NAME "Sudan Arabsat Bouquet" SATID ffffff TPID 25e4 SID 6 TYPE 0 VPID 67c PCRPID 67c
CHANNEL ID 29b NAME "Oman Arabsat Bouquet" SATID ffffff TPID 25e4 SID 7 TYPE 0 VPID 6e0 PCRPID 6e0
CHANNEL ID 29c NAME "Jordan Arabsat Bouquet" SATID ffffff TPID 25e4 SID 8 TYPE 0 VPID 744 PCRPID 744
CHANNEL ID 29d NAME "IRAQ TV" SATID ffffff TPID 25e4 SID 9 TYPE 0 VPID 7a8 PCRPID 7a8
CHANNEL ID 29e NAME "Dubai Sport" SATID ffffff TPID 25e4 SID a TYPE 0 VPID 424 PCRPID 424
CHANNEL ID 29f NAME "Qatar A2 Arabsat Bouquet" SATID ffffff TPID 25e4 SID c TYPE 0 APID 4c5 PCRPID 4c5
CHANNEL ID 2a0 NAME "Saudi1 A2 Arabsat Bouquet" SATID ffffff TPID 25e4 SID d TYPE 0 APID 529 PCRPID 529
CHANNEL ID 2a1 NAME "Kuwait A2 Arabsat Bouquet" SATID ffffff TPID 25e4 SID e TYPE 0 APID 58d PCRPID 58d
CHANNEL ID 2a2 NAME "Jordan A2 Arabsat Bouquet" SATID ffffff TPID 25e4 SID 12 TYPE 0 APID 71d PCRPID 71d
CHANNEL ID 2a3 NAME "Radio dubai sport" SATID ffffff TPID 25e4 SID 13 TYPE 0 APID 3fd PCRPID 3fd
TRANSPONDER ID 2648 SATID 0000 TYPE 1 FREQ 12673000 POL V SRATE 27500000 FEC 8
CHANNEL ID 2a4 NAME "Digitaly" SATID ffffff TPID 2648 SID 106b TYPE 0 VPID dc APID dd APID de PCRPID dc
CHANNEL ID 2a5 NAME "Telemarket" SATID ffffff TPID 2648 SID 1073 TYPE 0 VPID 15e APID 15f PCRPID 15e
CHANNEL ID 2a6 NAME "Internet data 1" SATID ffffff TPID 2648 SID 1074 TYPE 0 TTPID 11f
CHANNEL ID 2a7 NAME "eVision" SATID ffffff TPID 2648 SID 1076 TYPE 0 VPID 168 APID 169 APID 16a APID 1be6 PCRPID 168
CHANNEL ID 2a8 NAME "ANNI 60" SATID ffffff TPID 2648 SID 1086 TYPE 0 APID fa PCRPID fa
CHANNEL ID 2a9 NAME "R. Reporter" SATID ffffff TPID 2648 SID 1087 TYPE 0 APID fb PCRPID fb
CHANNEL ID 2aa NAME "Radio Italia S.M.I." SATID ffffff TPID 2648 SID 1088 TYPE 0 APID fc PCRPID fc
CHANNEL ID 2ab NAME "R. Tour" SATID ffffff TPID 2648 SID 1089 TYPE 0 APID fd PCRPID fd
CHANNEL ID 2ac NAME "R.Rinascente" SATID ffffff TPID 2648 SID 108a TYPE 0 APID fe PCRPID fe
CHANNEL ID 2ad NAME "R. Cooky" SATID ffffff TPID 2648 SID 108b TYPE 0 APID ff PCRPID ff
CHANNEL ID 2ae NAME "RadioBaby" SATID ffffff TPID 2648 SID 108c TYPE 0 APID 100 PCRPID 100
CHANNEL ID 2af NAME "McDonalds" SATID ffffff TPID 2648 SID 108d TYPE 0 APID 101 PCRPID 101
CHANNEL ID 2b0 NAME "TRBuonconsiglio" SATID ffffff TPID 2648 SID 108e TYPE 0 APID 191 PCRPID 191
CHANNEL ID 2b1 NAME "R-Radio" SATID ffffff TPID 2648 SID 108f TYPE 0 APID 192 PCRPID 192
CHANNEL ID 2b2 NAME "R. Donna" SATID ffffff TPID 2648 SID 1090 TYPE 0 APID 193 PCRPID 193
CHANNEL ID 2b3 NAME "R. Reporter 2" SATID ffffff TPID 2648 SID 1091 TYPE 0 APID 194 PCRPID 194
CHANNEL ID 2b4 NAME "R. West" SATID ffffff TPID 2648 SID 1092 TYPE 0 APID 195 PCRPID 195
CHANNEL ID 2b5 NAME "Melodia Russia" SATID ffffff TPID 2648 SID 1093 TYPE 0 VPID 19f6 APID 196 PCRPID 196
CHANNEL ID 2b6 NAME "Padre Pio" SATID ffffff TPID 2648 SID 1094 TYPE 0 APID 197 PCRPID 197
CHANNEL ID 2b7 NAME "Thai TV5" SATID ffffff TPID 2648 SID 1069 TYPE 0 VPID c8 APID c9 APID ca PCRPID c8
CHANNEL ID 2b8 NAME "Studio Europa" SATID ffffff TPID 2648 SID 106c TYPE 0 VPID e6 APID e7 PCRPID e6
CHANNEL ID 2b9 NAME "Video Italia" SATID ffffff TPID 2648 SID 1072 TYPE 0 VPID 154 APID 155 APID 156 PCRPID 154
TRANSPONDER ID 26ac SATID 0000 TYPE 1 FREQ 12692000 POL H SRATE 27500000 FEC 8
CHANNEL ID 2ba NAME "PASSIONS" SATID ffffff TPID 26ac SID 1f5 TYPE 0 VPID a0 PCRPID a0
CHANNEL ID 2bb NAME "ONYX" SATID ffffff TPID 26ac SID 1f6 TYPE 0 VPID a1 PCRPID a1
CHANNEL ID 2bc NAME "MANGAS" SATID ffffff TPID 26ac SID 1f7 TYPE 1 VPID a2 APID 58 TTPID 26 PCRPID a2
CHANNEL ID 2bd NAME "ENCYCLOPEDIA" SATID ffffff TPID 26ac SID 1f8 TYPE 1 VPID a3 APID 5c TTPID 29 PCRPID a3
CHANNEL ID 2be NAME "POLAR" SATID ffffff TPID 26ac SID 1f9 TYPE 1 VPID a4 APID 60 TTPID 2c PCRPID a4
CHANNEL ID 2bf NAME "CINE PALACE" SATID ffffff TPID 26ac SID 1fa TYPE 1 VPID a5 APID 64 TTPID 2f PCRPID a5
CHANNEL ID 2c0 NAME "ROMANCE" SATID ffffff TPID 26ac SID 1fb TYPE 1 VPID a6 APID 68 TTPID 32 PCRPID a6
CHANNEL ID 2c1 NAME "RIRE" SATID ffffff TPID 26ac SID 1fc TYPE 1 VPID a7 APID 6c TTPID 35 PCRPID a7
CHANNEL ID 2c2 NAME "ACTION" SATID ffffff TPID 26ac SID 1fd TYPE 1 VPID a8 APID 70 TTPID 38 PCRPID a8
CHANNEL ID 2c3 NAME "ABsat test RADIO" SATID ffffff TPID 26ac SID 1fe TYPE 1 APID 65 PCRPID a5
TRANSPONDER ID 2710 SATID 0000 TYPE 1 FREQ 12713000 POL V SRATE 27500000 FEC 8
CHANNEL ID 2c4 SATID ffffff TPID 2710 SID fffe TYPE 0
CHANNEL ID 2c5 NAME "MMOV" SATID ffffff TPID 2710 SID 10d0 TYPE 1 VPID a03 PCRPID a00
CHANNEL ID 2c6 NAME "MMOV" SATID ffffff TPID 2710 SID 10d3 TYPE 1 VPID a05 PCRPID a01
CHANNEL ID 2c7 NAME "MMOV" SATID ffffff TPID 2710 SID 10d6 TYPE 1 VPID a07 PCRPID a02
CHANNEL ID 2c8 NAME "MMOV" SATID ffffff TPID 2710 SID 10d9 TYPE 1 VPID 904 PCRPID 900
CHANNEL ID 2c9 NAME "MMOV" SATID ffffff TPID 2710 SID 10dc TYPE 1 VPID 90a PCRPID 901
CHANNEL ID 2ca NAME "MMOV" SATID ffffff TPID 2710 SID 10e4 TYPE 1 VPID 906 PCRPID 902
CHANNEL ID 2cb NAME "MMOV" SATID ffffff TPID 2710 SID 10e7 TYPE 1 VPID 908 PCRPID 903
TRANSPONDER ID 2774 SATID 0000 TYPE 1 FREQ 12713000 POL H SRATE 27500000 FEC 8
CHANNEL ID 2cc SATID ffffff TPID 2774 SID fffe TYPE 0
CHANNEL ID 2cd NAME "SINT" SATID ffffff TPID 2774 SID 2262 TYPE 1
CHANNEL ID 2ce NAME "info" SATID ffffff TPID 2774 SID 2264 TYPE 1 VPID 205 PCRPID 1ffe
CHANNEL ID 2cf NAME "SINT" SATID ffffff TPID 2774 SID 2266 TYPE 1
CHANNEL ID 2d0 NAME "CFN" SATID ffffff TPID 2774 SID 2269 TYPE 1 VPID 20b PCRPID 1ffe
CHANNEL ID 2d1 NAME "SINT" SATID ffffff TPID 2774 SID 226c TYPE 1
CHANNEL ID 2d2 NAME "duel" SATID ffffff TPID 2774 SID 226f TYPE 1 VPID 206 PCRPID 1ffe
CHANNEL ID 2d3 NAME "comedy" SATID ffffff TPID 2774 SID 2272 TYPE 1 VPID 203 PCRPID 1ffe
CHANNEL ID 2d4 NAME "fox kids" SATID ffffff TPID 2774 SID 2275 TYPE 1 VPID 201 PCRPID 1ffe

View File

@ -1,799 +0,0 @@
DISCOVERY:10719:v:1:27500:8190:8190:0:4402
RTL7:10719:v:1:27500:8190:8190:0:4403
TV POLONIA:10719:v:1:27500:8190:8190:0:4404
EUROSPORT:10719:v:1:27500:8190:8190:0:4405
PLANETE:10719:v:1:27500:8190:8190:0:4406
SEASONS:10719:v:1:27500:8190:8190:0:4407
VIVA Polska:10719:v:1:27500:8190:8190:0:4408
MULTIMUSIC 4:10719:v:1:27500:8190:123:0:4440
EPG:10719:v:1:27500:8190:8190:0:4450
CYFRA+ GRY:10719:v:1:27500:8190:8190:0:4460
Guide LC:0:v:1:27500:8190:8030:0:2000
Cinestar 1:0:v:1:27500:120:130:0:1201
Cinestar 2:0:v:1:27500:220:230:0:1202
Cinetoile:0:v:1:27500:320:330:0:1203
Shopping Avenue:0:v:1:27500:420:430:0:1204
Série Club :0:v:1:27500:520:530:0:1205
FUN TV:0:v:1:27500:620:630:0:1206
Teva:0:v:1:27500:720:730:0:1207
M6 Music:0:v:1:27500:820:830:0:1208
Club Téléachat:0:v:1:27500:920:930:0:1209
INFOSPORT:0:v:1:27500:120:130:0:1401
Régions:0:v:1:27500:220:230:0:1402
Mezzo:0:v:1:27500:320:330:0:1403
01 01 15 97:0:v:1:27500:8190:8190:0:1483
01 01 17 97:0:v:1:27500:8190:8190:0:1485
01 02 17 97:0:v:1:27500:8190:8190:0:1486
01 02 15 97:0:v:1:27500:8190:8190:0:1488
01 02 15 96:0:v:1:27500:8190:8190:0:1489
01 03 17 10:0:v:1:27500:8190:8190:0:1490
01 03 15 10:0:v:1:27500:8190:8190:0:1491
Festival:0:v:1:27500:420:430:0:1404
HISTOIRE :0:v:1:27500:520:530:0:1405
Télétoon:0:v:1:27500:620:630:0:1406
Odyssée :0:v:1:27500:720:730:0:1407
France Musiques:0:v:1:27500:8190:830:0:1418
Hector:0:v:1:27500:8190:831:0:1419
FIP:0:v:1:27500:8190:832:0:1420
France Inter:0:v:1:27500:8190:833:0:1421
France Info:0:v:1:27500:8190:834:0:1422
Elisa:0:v:1:27500:8190:835:0:1423
France Culture:0:v:1:27500:8190:836:0:1424
Radio Bleue:0:v:1:27500:8190:837:0:1425
Le Mouv:0:v:1:27500:8190:838:0:1426
TV5:0:v:1:27500:920:930:0:1409
CENTRONICS:0:v:1:27500:8190:8190:0:2000
FRANCE 2 :0:v:1:27500:320:8190:0:1104
FRANCE 3:0:v:1:27500:520:8190:0:1106
Crédit Agricole:0:v:1:27500:8190:5333:0:5301
tps foot:0:v:1:27500:8190:5230:0:5200
LCI:0:v:1:27500:120:130:0:1101
EUROSPORT:0:v:1:27500:220:230:0:1102
FRANCE 2:0:v:1:27500:320:8190:0:1103
FRANCE 3:0:v:1:27500:520:8190:0:1105
I TELEVISION:0:v:1:27500:820:830:0:1108
TV Mail alphatest:0:v:1:27500:8190:8190:0:5701
CHAINE FI:0:v:1:27500:8190:5331:0:5300
caisse d'épargne:0:v:1:27500:8190:8190:0:5303
TV Mail:0:v:1:27500:8190:8190:0:5700
CANAL+:10892:h:1:27500:8190:8190:0:4801
CANAL+ ¯Ó£TY:10892:h:1:27500:8190:8190:0:4802
TMT:10892:h:1:27500:8190:8190:0:4804
ALE KINO!:10892:h:1:27500:8190:8190:0:4805
MINIMAX:10892:h:1:27500:8190:8190:0:4806
TVP 1:10892:h:1:27500:8190:8190:0:4807
TVP 2:10892:h:1:27500:8190:8190:0:4808
CANAL+ NIEBIESKI:10892:h:1:27500:8190:8190:0:4809
EPG:10892:h:1:27500:8190:8190:0:4850
Multivision:0:v:1:27500:320:8190:0:1603
Grand Classique:0:v:1:27500:8190:830:0:1650
Symphonies:0:v:1:27500:8190:831:0:1651
Baroque:0:v:1:27500:8190:832:0:1652
Opéra:0:v:1:27500:8190:833:0:1653
Contemporain:0:v:1:27500:8190:834:0:1654
Relaxation:0:v:1:27500:8190:835:0:1655
Blues:0:v:1:27500:8190:836:0:1656
Jazz:0:v:1:27500:8190:837:0:1657
Big Band:0:v:1:27500:8190:838:0:1658
Jazz Moderne:0:v:1:27500:8190:839:0:1659
Les Tubes Français:0:v:1:27500:8190:840:0:1660
RFO SAT:0:v:1:27500:120:130:0:1601
Appli D1 LC:0:v:1:27500:8190:8190:0:1680
Cinefaz:0:v:1:27500:220:230:0:1602
TurboPC:0:v:1:27500:8190:8190:0:2801
MTV2:0:v:1:27500:720:730:0:1607
Rire et chansons:0:v:1:27500:8190:930:0:1630
Radio J:0:v:1:27500:8190:931:0:1631
Mosqueteiros:0:v:1:27500:8190:932:0:1632
Abysse:0:v:1:27500:8190:933:0:1633
RMC:0:v:1:27500:8190:935:0:1635
Radio Junior:0:v:1:27500:8190:936:0:1636
NETRADIO:0:v:1:27500:8190:937:0:1637
Nostalgie:0:v:1:27500:8190:938:0:1638
Skyrock:0:v:1:27500:8190:939:0:1639
Radio Coutoisie:0:v:1:27500:8190:940:0:1640
La Voix des Pays:0:v:1:27500:8190:941:0:1641
INFO EXPRESS:0:v:1:27500:8190:5530:0:5500
METEO:0:v:1:27500:8190:5830:0:5800
X X L:0:v:1:27500:8190:8190:0:5400
Multivision Cinéma:0:v:1:27500:8190:8190:0:7200
Multivision Sport:0:v:1:27500:8190:8190:0:7300
Multivision Spectacle:0:v:1:27500:8190:8190:0:7400
Test OTV8:12673:h:1:27500:8190:8190:0:7527
Test OTV9:12673:h:1:27500:8190:8190:0:7528
Test OTV10:12673:h:1:27500:8190:8190:0:7529
Test OTV11:12673:h:1:27500:513:8190:0:7530
Test31:12673:h:1:27500:512:650:0:7501
CNN:12673:h:1:27500:513:660:0:7502
Q24:12673:h:1:27500:514:691:0:7503
Test34:12673:h:1:27500:515:680:0:7504
Test35:12673:h:1:27500:516:690:0:7505
Test OTV1:12673:h:1:27500:8190:8190:0:7520
Test OTV2:12673:h:1:27500:8190:8190:0:7521
Test OTV3:12673:h:1:27500:8190:8190:0:7522
Test OTV4:12673:h:1:27500:8190:8190:0:7523
Test OTV5:12673:h:1:27500:8190:8190:0:7524
Test OTV6:12673:h:1:27500:8190:8190:0:7525
Test OTV7:12673:h:1:27500:8190:8190:0:7526
Test OTV7:12673:h:1:27500:8190:8190:0:7540
Test OTV7:12673:h:1:27500:8190:8190:0:7541
Telekom TV:11095:h:1:27500:32:8190:0:3711
FantasticOverOpal:11095:h:1:27500:32:8190:0:3712
Gilat:11095:h:1:27500:32:8190:0:3713
Siemens TV:11095:h:1:27500:32:8190:0:3716
S-TV:11095:h:1:27500:32:8190:0:3717
Optibase Encoder:11095:h:1:27500:32:8190:0:3718
FantasticOverOpal:11095:h:1:27500:8190:8190:0:3702
Deutsche Bank / T1:11303:h:1:27500:1160:8190:0:1
Animal Planet:11303:h:1:27500:1160:8190:0:10
Discovery E Europe-English:11303:h:1:27500:1260:8190:0:20
Wuerth KG / T21:11303:h:1:27500:1360:8190:0:21
Discovery Italy:11303:h:1:27500:1360:8190:0:30
BTI / T31:11303:h:1:27500:1360:8190:0:31
Discovery Russia:11303:h:1:27500:1460:8190:0:40
K-TV (MetroMux) / T41:11303:h:1:27500:1960:8190:0:41
Animal Planet EE:11303:h:1:27500:1560:8190:0:50
Animal Planet - Russian:11303:h:1:27500:1560:8190:0:51
Discovery Netherlands:11303:h:1:27500:1660:8190:0:60
Q English:11303:h:1:27500:1760:8190:0:70
Travel and Adventure:11303:h:1:27500:1860:8190:0:80
Travel and Adventure- Russian:11303:h:1:27500:1860:8190:0:81
New DCP:11303:h:1:27500:8190:1220:0:300
CCP:11303:h:1:27500:1260:8190:0:301
Deutsche Bank / T2:11303:h:1:27500:1260:8190:0:2
Channel Three:11303:h:1:27500:1360:8190:0:3
Channel Four:11303:h:1:27500:1460:8190:0:4
Channel Five:11303:h:1:27500:1560:8190:0:5
Channel 6 = Sat 7 Arabic:11303:h:1:27500:1660:8190:0:6
Channel Seven:11303:h:1:27500:1760:8190:0:7
Q German:11303:h:1:27500:1760:8190:0:71
Q French:11303:h:1:27500:1760:8190:0:72
Q Dutch:11303:h:1:27500:1760:8190:0:73
DTAG / T11:11303:h:1:27500:1360:8190:0:11
DTAG 50 / T12:11303:h:1:27500:1360:8190:0:12
Telekom TV:11303:h:1:27500:1460:8190:0:13
Gerling / T26:11303:h:1:27500:1360:8190:0:26
Hornbach-D / T36:11303:h:1:27500:1360:8190:0:36
Hornbach-NL / T38:11303:h:1:27500:1360:8190:0:38
Hornbach-CZ / T39:11303:h:1:27500:1360:8190:0:39
Testkanal:11303:h:1:27500:1660:8190:0:99
KENCAST:11303:h:1:27500:8190:8190:0:111
SAT.1 CH:11604:h:1:27500:101:102:0:601
KBT Channel SUN:11604:h:1:27500:111:112:0:603
big FM:11604:h:1:27500:8190:113:0:604
Event:11604:h:1:27500:160:161:0:602
Deutsche Bank / T1:11642:h:1:27500:1160:8190:0:1
Animal Planet:11642:h:1:27500:1160:8190:0:10
Discovery E Europe-English:11642:h:1:27500:1260:8190:0:20
Wuerth KG / T21:11642:h:1:27500:1360:8190:0:21
Discovery Italy:11642:h:1:27500:1360:8190:0:30
BTI / T31:11642:h:1:27500:1360:8190:0:31
Discovery Russia:11642:h:1:27500:1460:8190:0:40
K-TV (MetroMux) / T41:11642:h:1:27500:1960:8190:0:41
Animal Planet EE:11642:h:1:27500:1560:8190:0:50
Animal Planet - Russian:11642:h:1:27500:1560:8190:0:51
Discovery Netherlands:11642:h:1:27500:1660:8190:0:60
Q English:11642:h:1:27500:1760:8190:0:70
Travel and Adventure:11642:h:1:27500:1860:8190:0:80
Travel and Adventure- Russian:11642:h:1:27500:1860:8190:0:81
New DCP:11642:h:1:27500:8190:1220:0:300
CCP:11642:h:1:27500:1260:8190:0:301
Deutsche Bank / T2:11642:h:1:27500:1260:8190:0:2
Channel Three:11642:h:1:27500:1360:8190:0:3
Channel Four:11642:h:1:27500:1460:8190:0:4
Channel Five:11642:h:1:27500:1560:8190:0:5
Channel 6 = Sat 7 Arabic:11642:h:1:27500:1660:8190:0:6
Channel Seven:11642:h:1:27500:1760:8190:0:7
Q German:11642:h:1:27500:1760:8190:0:71
Q French:11642:h:1:27500:1760:8190:0:72
Q Dutch:11642:h:1:27500:1760:8190:0:73
DTAG / T11:11642:h:1:27500:1360:8190:0:11
DTAG 50 / T12:11642:h:1:27500:1360:8190:0:12
Telekom TV:11642:h:1:27500:1460:8190:0:13
Gerling / T26:11642:h:1:27500:1360:8190:0:26
Hornbach-D / T36:11642:h:1:27500:1360:8190:0:36
Hornbach-NL / T38:11642:h:1:27500:1360:8190:0:38
Hornbach-CZ / T39:11642:h:1:27500:1360:8190:0:39
Testkanal:11642:h:1:27500:1660:8190:0:99
KENCAST:11642:h:1:27500:8190:8190:0:111
AB 1:11681:h:1:27500:160:80:0:201
AB MOTEURS:11681:h:1:27500:161:84:0:202
ANIMAUX:11681:h:1:27500:162:88:0:203
CHASSE ET PECHE:11681:h:1:27500:163:92:0:204
XXL:11681:h:1:27500:164:96:0:205
MUSIQUE CLASSIQUE:11681:h:1:27500:165:100:0:206
ESCALES:11681:h:1:27500:166:104:0:207
FIT/chaîne HISTOIRE:11681:h:1:27500:167:108:0:208
RFM TV:11681:h:1:27500:168:112:0:209
EDTV DRAMA:11744:h:1:27500:4898:8190:0:9504
EDTV RADIO 02:11744:h:1:27500:4898:8190:0:9524
EDTV RADIO 01:11744:h:1:27500:4898:8190:0:9523
EDTV SPORT:11744:h:1:27500:4898:8190:0:9502
EDTV BUSINESS:11744:h:1:27500:4898:8190:0:9503
RAI1:11765:v:1:27500:160:8190:0:3401
RAI2:11765:v:1:27500:161:8190:0:3402
RAI3:11765:v:1:27500:162:8190:0:3403
Rai Way TEST1:11765:v:1:27500:515:8190:0:3404
Rai Way TEST2:11765:v:1:27500:516:8190:0:3405
Rai Way TEST3:11765:v:1:27500:164:8190:0:3406
RAIMOSAICO:11765:v:1:27500:518:8190:0:3407
RAIMOSAICO:11765:v:1:27500:518:8190:0:3490
RAINews24:11765:v:1:27500:516:8190:0:3301
CAMERA DEPUTATI:11765:v:1:27500:517:8190:0:3302
TELEPACE:11765:v:1:27500:515:8190:0:3304
RAISPORTSAT:11765:v:1:27500:512:8190:0:3305
RAINettunoSAT2:11765:v:1:27500:513:8190:0:3306
RAIeducational:11765:v:1:27500:514:8190:0:3307
RAINettunoSAT1:11765:v:1:27500:519:8190:0:3308
SAT2000:11765:v:1:27500:518:8190:0:3309
RADIOUNO:11765:v:1:27500:8190:670:0:3311
RADIODUE:11765:v:1:27500:8190:671:0:3312
RADIOTRE:11765:v:1:27500:8190:672:0:3313
FDleggera:11765:v:1:27500:8190:673:0:3314
FDauditorium:11765:v:1:27500:8190:665:0:3315
BLUSAT 2000:11765:v:1:27500:8190:677:0:3316
GR PARLAMENTO:11765:v:1:27500:8190:664:0:3317
ISORADIO:11765:v:1:27500:8190:661:0:3318
R1:11823:h:1:27500:512:650:0:301
R2:11823:h:1:27500:513:661:0:302
R3:11823:h:1:27500:514:670:0:303
R4:11823:h:1:27500:515:680:0:304
R5:11823:h:1:27500:4682:700:0:306
R6:11823:h:1:27500:518:710:0:307
R7:11823:h:1:27500:519:720:0:308
Love Radio:11823:h:1:27500:8190:711:0:309
Greek Church:11823:h:1:27500:8190:671:0:310
Skai Radio:11823:h:1:27500:8190:741:0:311
MelodiRadio:11823:h:1:27500:8190:701:0:312
ERA 3:11823:h:1:27500:8190:651:0:313
RR1:11823:h:1:27500:8190:681:0:314
RR2:11823:h:1:27500:8190:721:0:315
NOVA CINE:11823:h:1:27500:521:740:0:316
FILM NET:11823:h:1:27500:512:650:0:317
SSportK-T.V:11823:h:1:27500:513:661:0:318
MEGA:11823:h:1:27500:514:670:0:319
ANT-1:11823:h:1:27500:515:680:0:320
STAR:11823:h:1:27500:517:700:0:321
Alter 5:11823:h:1:27500:518:710:0:322
NEW Tempo:11823:h:1:27500:519:720:0:323
Super Sport2:11823:h:1:27500:516:691:0:324
Super Sport2:11843:v:1:27500:516:691:0:65534
INTV:11843:v:1:27500:2324:8190:0:3504
UNIV:11843:v:1:27500:2305:8190:0:3507
CULT:11843:v:1:27500:2307:8190:0:3510
ERSP:11843:v:1:27500:2309:8190:0:3513
SINT:11843:v:1:27500:8190:8190:0:3515
CART:11843:v:1:27500:2433:8190:0:3516
SINT:11843:v:1:27500:8190:8190:0:3519
DISC:11843:v:1:27500:2437:8190:0:3522
SINT:11843:v:1:27500:8190:8190:0:3525
TVL:11843:v:1:27500:2441:8190:0:3528
SINT:11843:v:1:27500:8190:8190:0:3530
ROCK:11843:v:1:27500:8190:2320:0:3550
RDS:11843:v:1:27500:8190:2321:0:3553
RTL:11843:v:1:27500:8190:2322:0:3556
101:11843:v:1:27500:8190:2323:0:3559
RVOY:11843:v:1:27500:8190:2315:0:3562
RKFM:11843:v:1:27500:8190:2317:0:3563
GLOB:11843:v:1:27500:8190:2316:0:3564
ANT1:11843:v:1:27500:8190:2318:0:3565
RRAD:11843:v:1:27500:8190:2319:0:3566
MC01:11843:v:1:27500:8190:2312:0:3568
MC02:11843:v:1:27500:8190:2313:0:3571
MC03:11843:v:1:27500:8190:2314:0:3574
P7:12341:h:1:27500:160:81:0:11301
P8:12341:h:1:27500:161:85:0:11303
P9:12341:h:1:27500:162:89:0:11305
+GIOCHI:12341:h:1:27500:8190:8190:0:11310
MM01:12341:h:1:27500:8190:601:0:11311
MM02:12341:h:1:27500:8190:602:0:11312
MM03:12341:h:1:27500:8190:603:0:11313
MM04:12341:h:1:27500:8190:604:0:11314
MM05:12341:h:1:27500:8190:605:0:11315
MM06:12341:h:1:27500:8190:606:0:11316
MM07:12341:h:1:27500:8190:607:0:11317
MM08:12341:h:1:27500:8190:608:0:11318
MM09:12341:h:1:27500:8190:609:0:11319
MM10:12341:h:1:27500:8190:610:0:11320
MM11:12341:h:1:27500:8190:611:0:11321
MM12:12341:h:1:27500:8190:612:0:11322
MM13:12341:h:1:27500:8190:613:0:11323
MM14:12341:h:1:27500:8190:614:0:11324
MM15:12341:h:1:27500:8190:615:0:11325
MM16:12341:h:1:27500:8190:616:0:11326
MM17:12341:h:1:27500:8190:617:0:11327
MM18:12341:h:1:27500:8190:618:0:11328
MM19:12341:h:1:27500:8190:619:0:11329
MM20:12341:h:1:27500:8190:620:0:11330
MM21:12341:h:1:27500:8190:621:0:11331
MM22:12341:h:1:27500:8190:622:0:11332
MM23:12341:h:1:27500:8190:623:0:11333
MM24:12341:h:1:27500:8190:624:0:11334
MM25:12341:h:1:27500:8190:625:0:11335
MM26:12341:h:1:27500:8190:626:0:11336
MM27:12341:h:1:27500:8190:627:0:11337
MM28:12341:h:1:27500:8190:628:0:11338
MM29:12341:h:1:27500:8190:629:0:11339
MM30:12341:h:1:27500:8190:630:0:11340
RCAP:12341:h:1:27500:8190:631:0:11341
R105:12341:h:1:27500:8190:632:0:11342
RDJ:12341:h:1:27500:8190:633:0:11343
RITA:12341:h:1:27500:8190:634:0:11344
RMC:12341:h:1:27500:8190:635:0:11345
R101:12341:h:1:27500:8190:636:0:11346
RRAD:12341:h:1:27500:8190:637:0:11347
RR:12341:h:1:27500:8190:638:0:11348
RR:12341:h:1:27500:8190:610:0:11361
RR:12341:h:1:27500:8190:620:0:11362
RR:12341:h:1:27500:8190:630:0:11363
RR:12341:h:1:27500:8190:638:0:11364
MULTIMUSICA:12341:h:1:27500:8190:8190:0:11352
RADIO:12341:h:1:27500:8190:8190:0:11353
MULTIMUSIC 1:12341:h:1:27500:8190:609:0:11365
MULTIMUSIC 2:12341:h:1:27500:8190:620:0:11366
MULTIMUSIC 2:12713:v:1:27500:8190:620:0:65534
TEAM:12713:v:1:27500:2305:8190:0:3610
SINT:12713:v:1:27500:8190:8190:0:3613
VIAG:12713:v:1:27500:2308:8190:0:3616
SINT:12713:v:1:27500:8190:8190:0:3619
EURO:12713:v:1:27500:2311:8190:0:3622
SINT:12713:v:1:27500:8190:8190:0:3623
CNN:12713:v:1:27500:2433:8190:0:3625
ante prima:12713:v:1:27500:2435:8190:0:3628
SNAI:12713:v:1:27500:2561:8190:0:3630
MPPV:12713:v:1:27500:2563:8190:0:3632
MC04:12713:v:1:27500:8190:2688:0:3636
MC05:12713:v:1:27500:8190:2689:0:3637
MC06:12713:v:1:27500:8190:2690:0:3638
MC07:12713:v:1:27500:8190:2691:0:3641
MC08:12713:v:1:27500:8190:2692:0:3644
MC09:12713:v:1:27500:8190:2693:0:3647
MC10:12713:v:1:27500:8190:2694:0:3650
MC11:12713:v:1:27500:8190:2695:0:3653
MC12:12713:v:1:27500:8190:2696:0:3656
MC13:12713:v:1:27500:8190:2697:0:3659
MC14:12713:v:1:27500:8190:2698:0:3662
MC15:12713:v:1:27500:8190:2699:0:3665
MC16:12713:v:1:27500:8190:2700:0:3668
MC17:12713:v:1:27500:8190:2701:0:3671
MC18:12713:v:1:27500:8190:2702:0:3674
MOSAICO D+:12341:h:1:27500:161:84:0:11401
MILAN CH.:12341:h:1:27500:162:89:0:11403
INTER CH.:12341:h:1:27500:163:93:0:11405
TST3:12341:h:1:27500:8190:8190:0:11407
I1:11919:v:1:27500:512:650:0:1
C5:11919:v:1:27500:513:660:0:2
R4:11919:v:1:27500:514:670:0:3
Test:11919:v:1:27500:515:680:0:4
NTV:11938:h:1:27500:164:89:0:7105
NTV-PLUS:11938:h:1:27500:165:91:0:7106
NTV Int.-HTB:11938:h:1:27500:160:80:0:7101
NTV Int.-Nashe Kino:11938:h:1:27500:161:82:0:7102
NTV Int.-Detsk. Mir:11938:h:1:27500:162:84:0:7103
DISNEY CHANNEL:12341:v:1:27500:8190:8190:0:10901
DISCOVERY:12341:v:1:27500:161:8190:0:10903
EUSP:12341:v:1:27500:162:89:0:10905
HAPPY CHANNEL:12341:v:1:27500:8190:8190:0:10907
MATCH MUSIC:12341:v:1:27500:8190:8190:0:10909
MTV:12341:v:1:27500:8190:8190:0:10911
R/CINEMA RAISAT:12341:v:1:27500:8190:8190:0:10913
R/CINEMA RAISAT:12713:h:1:27500:8190:8190:0:65534
cine stream:12713:h:1:27500:512:650:0:7704
cine movie:12713:h:1:27500:514:670:0:7707
CLASSICA:12341:v:1:27500:8190:8190:0:11001
R/GAM ROS RAISAT:12341:v:1:27500:8190:8190:0:11003
R/ALBUM RAISAT:12341:v:1:27500:8190:8190:0:11005
HALLMARK:12341:v:1:27500:163:8190:0:11007
R/ART RAISAT:12341:v:1:27500:8190:8190:0:11009
TST1:12341:v:1:27500:8190:8190:0:11011
TMC:12341:v:1:27500:166:8190:0:11013
TMC2:12341:v:1:27500:167:8190:0:11015
ART VARIETY:12015:h:1:27500:160:8190:0:410
ART CHILDREN:12015:h:1:27500:161:8190:0:420
ART MOVIES:12015:h:1:27500:162:8190:0:430
ART MUSIC:12015:h:1:27500:163:8190:0:440
ART EUROPE:12015:h:1:27500:164:8190:0:450
LBC EUROPE:12015:h:1:27500:165:8190:0:460
EGYPT SAT. CH. 2:12015:h:1:27500:166:8190:0:470
ART SPORT:12015:h:1:27500:167:8190:0:472
IQRA:12015:h:1:27500:168:8190:0:474
T+ BIANCO:12341:v:1:27500:160:81:0:11101
T+ NERO:12341:v:1:27500:161:85:0:11103
T+ GRIGIO:12341:v:1:27500:162:89:0:11105
R4:12341:v:1:27500:163:8190:0:24
16|9 TELE+:12341:v:1:27500:164:97:0:11107
VETRINA D+:12341:v:1:27500:8190:8190:0:11109
R/RAGAZZI RAISAT:12341:v:1:27500:8190:8190:0:11111
CNN:12341:h:1:27500:8190:8190:0:11501
BBC:12341:h:1:27500:8190:8190:0:11503
BLOOMBERG:12341:h:1:27500:8190:8190:0:11505
CNBC:12341:h:1:27500:8190:8190:0:11507
SKYNews:12341:h:1:27500:8190:8190:0:11509
TST2:12341:h:1:27500:8190:8190:0:11511
TV5:12341:h:1:27500:8190:8190:0:11513
EPG:12341:h:1:27500:8190:8190:0:11515
CNN:12341:h:1:27500:160:80:0:11517
CNBC:12341:h:1:27500:163:92:0:11519
TV5:12341:h:1:27500:166:104:0:11521
BBC WORLD:12341:h:1:27500:161:84:0:11523
BBC WORLD:12341:h:1:27500:161:84:0:11595
BBC WORLD:12341:h:1:27500:161:84:0:9980
BBC WORLD:12341:h:1:27500:161:84:0:9981
Telekom TV:11095:v:1:27500:32:8190:0:3711
FantasticOverOpal:11095:v:1:27500:32:8190:0:3712
Gilat:11095:v:1:27500:32:8190:0:3713
Siemens TV:11095:v:1:27500:32:8190:0:3716
S-TV:11095:v:1:27500:32:8190:0:3717
Optibase Encoder:11095:v:1:27500:32:8190:0:3718
Bolsa:12091:h:1:27500:8190:8190:0:8750
Testw:12091:h:1:27500:8190:8190:0:8751
SIRE:12091:h:1:27500:8190:8190:0:8752
Telesierra:12091:h:1:27500:4160:4161:0:8704
vtv:12091:h:1:27500:4112:4115:0:8701
Satisfaction:12091:h:1:27500:4192:4193:0:8706
C. Milagro:12091:h:1:27500:4368:4369:0:8711
Fiesta:12091:h:1:27500:4432:4434:0:8720
TVE Internacional:12091:h:1:27500:4208:4209:0:8707
TV Galicia:12091:h:1:27500:8190:4240:0:8708
Radio Gallega:12091:h:1:27500:8190:4240:0:8709
Retelsat:12091:h:1:27500:4464:4465:0:8722
Musicam 1:12091:h:1:27500:8190:4406:0:8713
Musicam 2:12091:h:1:27500:8190:4403:0:8714
Musicam 3:12091:h:1:27500:8190:4406:0:8715
Musicam 4:12091:h:1:27500:8190:4402:0:8716
Musicam 5:12091:h:1:27500:8190:4406:0:8717
HBCH FUCINO:12673:v:1:27500:200:201:0:701
NTVi:12673:v:1:27500:210:212:0:702
Test Telespazio:12673:v:1:27500:220:221:0:703
Test Telespazio:12673:v:1:27500:230:231:0:704
ARMENIA TV:12673:v:1:27500:240:242:0:705
MEDNET:12673:v:1:27500:260:261:0:707
AL JAZEERA:12673:v:1:27500:270:271:0:708
TIRRENO SAT:12673:v:1:27500:280:301:0:709
RADIO ROCK:12673:v:1:27500:8190:212:0:711
RADIO ARMENIA:12673:v:1:27500:8190:242:0:712
Coming Soon TV:12673:v:1:27500:8190:40:0:717
AH-EDP1:12149:v:1:27500:96:97:0:7201
AH-EDP2:12149:v:1:27500:112:113:0:7202
AH-EDP3:12149:v:1:27500:36:37:0:7203
AH-EMP4-DATA:12149:v:1:27500:8190:8190:0:7204
Alice:12149:v:1:27500:160:161:0:7220
Nuvolari:12149:v:1:27500:176:177:0:7221
Leonardo:12149:v:1:27500:128:129:0:7222
Discovery:12169:h:1:27500:512:8190:0:351
R9:12169:h:1:27500:513:8190:0:352
BBC World:12169:h:1:27500:514:8190:0:353
CNN:12169:h:1:27500:515:8190:0:354
CCTV:12169:h:1:27500:516:8190:0:355
R10:12169:h:1:27500:518:8190:0:357
R8:12169:h:1:27500:519:8190:0:358
FILM SAT:12169:h:1:27500:520:8190:0:359
Cartoon:12169:h:1:27500:515:8190:0:360
Promo:12169:h:1:27500:521:8190:0:361
Tempo:12169:h:1:27500:1440:651:0:362
Tempo:12169:h:1:27500:8190:661:0:363
Tempo:12169:h:1:27500:8190:671:0:364
Tempo:12169:h:1:27500:8190:681:0:365
Tempo:12169:h:1:27500:8190:691:0:366
NOVA INFO:12169:h:1:27500:8190:8190:0:367
NOVA INFO:12169:h:1:27500:8190:8190:0:369
NOVA INFO:12169:h:1:27500:8190:8190:0:370
NOVA INFO:12169:h:1:27500:1067:8190:0:371
NOVA INFO:12169:h:1:27500:8190:8190:0:372
NOVA INFO:12169:h:1:27500:8190:8190:0:373
NOVA Cinema:12169:h:1:27500:8190:8190:0:374
NET:12169:h:1:27500:513:8190:0:376
MAD T.V:12169:h:1:27500:518:8190:0:377
ET-1:12169:h:1:27500:519:8190:0:378
ET-1:12169:h:1:27500:519:8190:0:379
ÂïõëÞ:12169:h:1:27500:517:8190:0:384
Deutsche Bank / T1:12264:v:1:27500:1160:8190:0:1
Animal Planet:12264:v:1:27500:1160:8190:0:10
Discovery E Europe-English:12264:v:1:27500:1260:8190:0:20
Wuerth KG / T21:12264:v:1:27500:1360:8190:0:21
Discovery Italy:12264:v:1:27500:1360:8190:0:30
BTI / T31:12264:v:1:27500:1360:8190:0:31
Discovery Russia:12264:v:1:27500:1460:8190:0:40
K-TV (MetroMux) / T41:12264:v:1:27500:1960:8190:0:41
Animal Planet EE:12264:v:1:27500:1560:8190:0:50
Animal Planet - Russian:12264:v:1:27500:1560:8190:0:51
Discovery Netherlands:12264:v:1:27500:1660:8190:0:60
Q English:12264:v:1:27500:1760:8190:0:70
Travel and Adventure:12264:v:1:27500:1860:8190:0:80
Travel and Adventure- Russian:12264:v:1:27500:1860:8190:0:81
New DCP:12264:v:1:27500:8190:1220:0:300
CCP:12264:v:1:27500:1260:8190:0:301
Deutsche Bank / T2:12264:v:1:27500:1260:8190:0:2
Channel Three:12264:v:1:27500:1360:8190:0:3
Channel Four:12264:v:1:27500:1460:8190:0:4
Channel Five:12264:v:1:27500:1560:8190:0:5
Channel 6 = Sat 7 Arabic:12264:v:1:27500:1660:8190:0:6
Channel Seven:12264:v:1:27500:1760:8190:0:7
Q German:12264:v:1:27500:1760:8190:0:71
Q French:12264:v:1:27500:1760:8190:0:72
Q Dutch:12264:v:1:27500:1760:8190:0:73
DTAG / T11:12264:v:1:27500:1360:8190:0:11
DTAG 50 / T12:12264:v:1:27500:1360:8190:0:12
Telekom TV:12264:v:1:27500:1460:8190:0:13
Gerling / T26:12264:v:1:27500:1360:8190:0:26
Hornbach-D / T36:12264:v:1:27500:1360:8190:0:36
Hornbach-NL / T38:12264:v:1:27500:1360:8190:0:38
Hornbach-CZ / T39:12264:v:1:27500:1360:8190:0:39
Testkanal:12264:v:1:27500:1660:8190:0:99
KENCAST:12264:v:1:27500:8190:8190:0:111
SLO-TV1:12302:v:1:27500:200:8190:0:3201
SLO-TV2:12302:v:1:27500:203:8190:0:3202
POLONIA 1:12302:v:1:27500:205:8190:0:3203
SLO-RA1-INF:12302:v:1:27500:8190:250:0:3204
SLO-RA2:12302:v:1:27500:8190:251:0:3205
SLO-RA3:12302:v:1:27500:8190:252:0:3206
SUPER 1:12302:v:1:27500:207:8190:0:3207
NAPOLI INT.:12302:v:1:27500:240:8190:0:3210
MAGIC:12302:v:1:27500:245:8190:0:3211
COUNTDOWN:12302:v:1:27500:235:8190:0:3212
TBNE:12302:v:1:27500:230:8190:0:3213
SICILSAT:12302:v:1:27500:225:8190:0:3214
TVP1:10892:h:1:27500:257:6111:0:1
TVP2:10892:h:1:27500:321:322:0:2
POLSAT1:10892:h:1:27500:8190:8190:0:3
TV4:10892:h:1:27500:257:6111:0:4
POLSAT2:10892:h:1:27500:321:322:0:5
WOT:10892:h:1:27500:8190:8190:0:6
DISCOVERY:10892:h:1:27500:257:6111:0:15
ANIMAL PLANET:10892:h:1:27500:321:322:0:16
EpgOpenTV:10892:h:1:27500:8190:8190:0:3686
P10:12341:v:1:27500:160:81:0:11601
P11:12341:v:1:27500:161:85:0:11603
P12:12341:v:1:27500:162:89:0:11605
P13:12341:v:1:27500:163:93:0:11607
P14:12341:v:1:27500:164:97:0:11609
P15:12341:v:1:27500:165:101:0:11611
P16:12341:v:1:27500:166:105:0:11613
PREMIUM:12341:v:1:27500:8190:8190:0:11615
+F1:12341:v:1:27500:160:664:0:11617
+F1:12341:v:1:27500:161:85:0:11619
+F1:12341:v:1:27500:162:667:0:11621
+F1:12341:v:1:27500:163:674:0:11623
+F1:12341:v:1:27500:164:96:0:11625
+F1:12341:v:1:27500:165:676:0:11627
+F1:12341:v:1:27500:166:666:0:11629
RMC:12341:v:1:27500:8190:8190:0:11631
R101:12341:v:1:27500:8190:8190:0:11632
RRAD:12341:v:1:27500:8190:8190:0:11633
ON:10892:h:1:27500:353:354:0:7
DLA-CIEBIE:10892:h:1:27500:529:530:0:8
KOMEDIA:10892:h:1:27500:353:354:0:9
SMYK:10892:h:1:27500:529:530:0:10
RELAKS:10892:h:1:27500:353:354:0:11
INFO:10892:h:1:27500:529:530:0:12
POLSAT SPORT:10892:h:1:27500:353:354:0:13
Paris Première:12379:v:1:27500:3021:3031:0:3001
OCC HB3:12379:v:1:27500:3022:3032:0:3002
TELE 24 Switzerland:12379:v:1:27500:3023:3033:0:3003
AIR MEDIA:12379:v:1:27500:8190:3537:0:3087
Abu Dhabi TV:12379:v:1:27500:3024:3034:0:3004
EMIRAT FM 1:12379:v:1:27500:8190:3533:0:3083
EMIRAT FM2:12379:v:1:27500:8190:3534:0:3084
Radio Italia :12379:v:1:27500:8190:3531:0:3081
EQUIDIA INTER.:12379:v:1:27500:3321:3351:0:3051
RTV MONTENEGRO:12379:v:1:27500:3026:3036:0:3006
Radio Montenegro:12379:v:1:27500:8190:3538:0:3088
SERTE TEST:12379:v:1:27500:3025:8190:0:3005
GAME 1:12379:v:1:27500:3027:3037:0:3007
SF 2:12398:h:1:27500:163:93:0:907
SRG SSR Sat Access:12398:h:1:27500:165:99:0:910
SF 1:12398:h:1:27500:160:81:0:901
TSR 1:12398:h:1:27500:161:85:0:902
TSI 1:12398:h:1:27500:162:89:0:903
TSR 2:12398:h:1:27500:164:97:0:908
TSI 2:12398:h:1:27500:166:101:0:909
OPTION MUSIQUE:12398:h:1:27500:8190:204:0:957
ESPACE 2:12398:h:1:27500:8190:205:0:958
SRI-F-I:12398:h:1:27500:8190:199:0:951
SRI-EUROPA:12398:h:1:27500:560:200:0:953
POLO:12341:v:1:27500:160:80:0:11701
PLANETE:12341:v:1:27500:161:84:0:11703
JIMMY:12341:v:1:27500:162:88:0:11705
INN:12341:v:1:27500:163:92:0:11707
CIN1:12341:v:1:27500:164:96:0:11709
CIN2:12341:v:1:27500:165:100:0:11711
CINC:12341:v:1:27500:166:104:0:11713
SEASONS:12341:v:1:27500:167:108:0:11715
WISHLINE:12341:v:1:27500:168:89:0:11717
MARCOPOLO:12341:v:1:27500:160:81:0:11719
JAAM-E-JAM 1:12436:h:1:27500:160:81:0:1
JAAM-E-JAM 2:12436:h:1:27500:161:83:0:2
SAHAR:12436:h:1:27500:162:85:0:3
TEST(SAHAR):12436:h:1:27500:163:87:0:4
IRINN:12436:h:1:27500:164:89:0:5
TEST 2:12436:h:1:27500:165:90:0:6
IRIB1 RADIO:12436:h:1:27500:8190:81:0:7
IRIB ARABIC /International 1 Radio:12436:h:1:27500:8190:83:0:8
INT1 FAMILY RADIO:12475:h:1:27500:8190:961:0:10615
RADIO 74:12475:h:1:27500:8190:921:0:10612
R 74 INT.:12475:h:1:27500:8190:931:0:10613
FAMILY Radio:12475:h:1:27500:8190:951:0:10614
Temp:12475:h:1:27500:771:8190:0:10607
SPREE Radio:12475:h:1:27500:8190:501:0:10652
RVI ( VRT ) :12475:h:1:27500:8190:901:0:10610
EbS:12475:h:1:27500:101:216:0:10601
MOU.2:12475:h:1:27500:42:8190:0:10602
MIZIK TROPICAL:12475:h:1:27500:435:436:0:10606
MIZIK TROPICAL Radio:12475:h:1:27500:8190:801:0:10608
Framboise Nord (CH):12475:h:1:27500:8190:971:0:10616
Framboise Sud (CH):12475:h:1:27500:8190:981:0:10617
PINK PLUS:12475:h:1:27500:308:257:0:10605
LIBERTYTV.COM:12475:h:1:27500:941:942:0:10603
KURDSAT:12475:h:1:27500:600:601:0:10618
test2:12475:h:1:27500:3000:3001:0:10620
HRT-TV1:12519:v:1:27500:100:101:0:8301
HRT-TV2:12519:v:1:27500:103:104:0:8302
HRT-TV3:12519:v:1:27500:105:106:0:8303
HRT-HR1:12519:v:1:27500:8190:150:0:8305
HRT-HR2:12519:v:1:27500:8190:151:0:8306
HRT-HR3:12519:v:1:27500:8190:152:0:8307
SICILIA INTERNATIONAL:12519:v:1:27500:501:8190:0:8309
HRT-NATIONAL:12519:v:1:27500:107:108:0:8304
HRT-TEST:12519:v:1:27500:109:110:0:8308
SARDEGNA UNO:12519:v:1:27500:503:8190:0:8310
R-HRVATSKA:12519:v:1:27500:8190:153:0:8311
EuroMed:12519:v:1:27500:510:8190:0:8312
TGRT:12519:v:1:27500:505:8190:0:8313
HR-TEST:12519:v:1:27500:8190:154:0:8314
MINI-BVN:12519:v:1:27500:210:8190:0:8315
SIMS 91 LARIO:12713:h:1:27500:8190:8190:0:8802
SKYPLEX TXP91:12713:h:1:27500:8190:8190:0:8801
Skygate 18:12713:h:1:27500:8190:8190:0:2
MA12_2905:12713:h:1:27500:8190:8190:0:8810
ES13_1107:12713:h:1:27500:8190:8190:0:8811
ASTONv0107:12713:h:1:27500:8190:8190:0:8815
sisal:12713:h:1:27500:4356:8190:0:1
service:12713:h:1:27500:4356:8190:0:3
Skyplex 19:12713:h:1:27500:8190:8190:0:8991
Network:12713:h:1:27500:8190:8190:0:8992
www.travel:12713:h:1:27500:1180:1184:0:8993
MagicStar:12713:h:1:27500:8190:1188:0:8994
Skygate 8:12713:h:1:27500:8190:8190:0:8926
UDLR:12713:h:1:27500:8190:6653:0:8927
UDLR UDcast:12713:h:1:27500:8190:8190:0:8928
Skygate 17:12713:h:1:27500:8190:8190:0:8804
Netshow:12713:h:1:27500:8190:8190:0:8813
MEDIOLANUM:12713:h:1:27500:4102:8190:0:8814
Skygate 10:12713:h:1:27500:8190:8190:0:8901
HitCast Data 1:12713:h:1:27500:8190:8190:0:8902
HitCast S.Amer.:12713:h:1:27500:8190:8190:0:8903
Skygate 1:12713:h:1:27500:8190:8190:0:8876
MonteCarloSat:12713:h:1:27500:5127:5122:0:8877
Bulgaria Radio:12713:h:1:27500:8190:4615:0:8828
skygate 600:12713:h:1:27500:8190:8190:0:8826
SKYPLEX TXP92:12558:v:1:27500:8190:8190:0:9101
SKYPLEX TXP92:12558:v:1:27500:8190:8190:0:9361
SKYPLEX TXP92:12558:v:1:27500:2825:2818:0:9362
SKYPLEX TXP92:12558:v:1:27500:2825:2818:0:9363
SKYPLEX TXP92:12558:v:1:27500:2825:2818:0:9364
SKY_4:12558:v:1:27500:8190:8190:0:9351
ESP Int'l:12558:v:1:27500:2575:2563:0:9352
ESP Romanian:12558:v:1:27500:8190:2569:0:9353
ESP Dutch:12558:v:1:27500:2575:2564:0:9354
ESP PolisI:12558:v:1:27500:8190:2565:0:9355
ESP PolisI:12558:v:1:27500:2575:2566:0:9356
ESP PolisI:12558:v:1:27500:2575:2564:0:9357
ESP PolisI:12558:v:1:27500:2575:2568:0:9358
ESP PolisI:12558:v:1:27500:2575:2565:0:9359
ESP PolisI:12558:v:1:27500:2575:2565:0:9251
JSTV 1:12596:v:1:27500:2000:2002:0:8213
JSTV 2:12596:v:1:27500:2011:2013:0:8214
MBC:12596:v:1:27500:160:81:0:8201
Service 2:12596:v:1:27500:161:84:0:8202
NITV:12596:v:1:27500:163:92:0:8204
SIMAYE AZADI:12596:v:1:27500:166:106:0:8207
BET:12596:v:1:27500:167:109:0:8208
CNNI:12596:v:1:27500:168:113:0:8209
EuroNews:12596:v:1:27500:2221:2238:0:8211
Canal Rural:12596:v:1:27500:2321:2332:0:8212
MediaHW:12596:v:1:27500:8190:8190:0:8291
MediaHW:12615:h:1:27500:8190:8190:0:65534
MMOV:12615:h:1:27500:2576:8190:0:3910
MMOV:12615:h:1:27500:2578:8190:0:3913
MMOV:12615:h:1:27500:2580:8190:0:3917
MMOV:12615:h:1:27500:2582:8190:0:3918
MMOV:12615:h:1:27500:2584:8190:0:3919
MMOV:12615:h:1:27500:2586:8190:0:3920
SC 1:12615:h:1:27500:2567:8190:0:3921
SC 2:12615:h:1:27500:2570:8190:0:3924
SC 3:12615:h:1:27500:2573:8190:0:3927
MC20:12615:h:1:27500:8190:2304:0:3935
MC21:12615:h:1:27500:8190:2305:0:3938
MC22:12615:h:1:27500:8190:2306:0:3941
MC23:12615:h:1:27500:8190:2307:0:3944
MC24:12615:h:1:27500:8190:2308:0:3947
MC25:12615:h:1:27500:8190:2309:0:3950
MC26:12615:h:1:27500:8190:2310:0:3953
MC27:12615:h:1:27500:8190:2311:0:3956
MC28:12615:h:1:27500:8190:2312:0:3959
MC29:12615:h:1:27500:8190:2313:0:3962
MC30:12615:h:1:27500:8190:2314:0:3965
MC31:12615:h:1:27500:8190:2315:0:3968
MC32:12615:h:1:27500:8190:2316:0:3971
MC33:12615:h:1:27500:8190:2317:0:3974
MC34:12615:h:1:27500:8190:2318:0:3977
MC35:12615:h:1:27500:8190:2319:0:3980
MC36:12615:h:1:27500:8190:2320:0:3983
MC37:12615:h:1:27500:8190:2321:0:3986
MC38:12615:h:1:27500:8190:2322:0:3989
MC39:12615:h:1:27500:8190:2323:0:3992
MC39:12635:v:1:27500:8190:2323:0:65534
SC 4:12635:v:1:27500:2704:8190:0:4001
SC 5:12635:v:1:27500:2696:8190:0:4002
SC 6:12635:v:1:27500:2701:8190:0:4003
MMOV:12635:v:1:27500:2692:8190:0:4007
MMOV:12635:v:1:27500:2694:8190:0:4010
MMOV:12635:v:1:27500:2707:8190:0:4016
MMOV:12635:v:1:27500:2709:8190:0:4019
MMOV:12635:v:1:27500:2711:8190:0:4022
MMOV:12635:v:1:27500:2819:8190:0:4025
MMOV:12635:v:1:27500:2821:8190:0:4028
Sharjah Arabsat Bouquet:12654:h:1:27500:1160:8190:0:1
Qatar Arabsat Bouquet:12654:h:1:27500:1260:8190:0:2
Saudi 1 Arabsat Bouquet:12654:h:1:27500:1360:8190:0:3
Kuwait Arabsat Bouquet:12654:h:1:27500:1460:8190:0:4
Libya Arabsat Bouquet:12654:h:1:27500:1560:8190:0:5
Sudan Arabsat Bouquet:12654:h:1:27500:1660:8190:0:6
Oman Arabsat Bouquet:12654:h:1:27500:1760:8190:0:7
Jordan Arabsat Bouquet:12654:h:1:27500:1860:8190:0:8
IRAQ TV:12654:h:1:27500:1960:8190:0:9
Dubai Sport:12654:h:1:27500:1060:8190:0:10
Qatar A2 Arabsat Bouquet:12654:h:1:27500:8190:1221:0:12
Saudi1 A2 Arabsat Bouquet:12654:h:1:27500:8190:1321:0:13
Kuwait A2 Arabsat Bouquet:12654:h:1:27500:8190:1421:0:14
Jordan A2 Arabsat Bouquet:12654:h:1:27500:8190:1821:0:18
Radio dubai sport:12654:h:1:27500:8190:1021:0:19
Digitaly:12673:v:1:27500:220:222:0:4203
Telemarket:12673:v:1:27500:350:351:0:4211
Internet data 1:12673:v:1:27500:8190:8190:0:4212
eVision:12673:v:1:27500:360:7142:0:4214
ANNI 60:12673:v:1:27500:8190:250:0:4230
R. Reporter:12673:v:1:27500:8190:251:0:4231
Radio Italia S.M.I.:12673:v:1:27500:8190:252:0:4232
R. Tour:12673:v:1:27500:8190:253:0:4233
R.Rinascente:12673:v:1:27500:8190:254:0:4234
R. Cooky:12673:v:1:27500:8190:255:0:4235
RadioBaby:12673:v:1:27500:8190:256:0:4236
McDonalds:12673:v:1:27500:8190:257:0:4237
TRBuonconsiglio:12673:v:1:27500:8190:401:0:4238
R-Radio:12673:v:1:27500:8190:402:0:4239
R. Donna:12673:v:1:27500:8190:403:0:4240
R. Reporter 2:12673:v:1:27500:8190:404:0:4241
R. West:12673:v:1:27500:8190:405:0:4242
Melodia Russia:12673:v:1:27500:6646:406:0:4243
Padre Pio:12673:v:1:27500:8190:407:0:4244
Thai TV5:12673:v:1:27500:200:202:0:4201
Studio Europa:12673:v:1:27500:230:231:0:4204
Video Italia:12673:v:1:27500:340:342:0:4210
PASSIONS:12692:h:1:27500:160:8190:0:501
ONYX:12692:h:1:27500:161:8190:0:502
MANGAS:12692:h:1:27500:162:88:0:503
ENCYCLOPEDIA:12692:h:1:27500:163:92:0:504
POLAR:12692:h:1:27500:164:96:0:505
CINE PALACE:12692:h:1:27500:165:100:0:506
ROMANCE:12692:h:1:27500:166:104:0:507
RIRE:12692:h:1:27500:167:108:0:508
ACTION:12692:h:1:27500:168:112:0:509
ABsat test RADIO:12692:h:1:27500:8190:101:0:510
ABsat test RADIO:12713:v:1:27500:8190:101:0:65534
MMOV:12713:v:1:27500:2563:8190:0:4304
MMOV:12713:v:1:27500:2565:8190:0:4307
MMOV:12713:v:1:27500:2567:8190:0:4310
MMOV:12713:v:1:27500:2308:8190:0:4313
MMOV:12713:v:1:27500:2314:8190:0:4316
MMOV:12713:v:1:27500:2310:8190:0:4324
MMOV:12713:v:1:27500:2312:8190:0:4327
MMOV:12713:h:1:27500:2312:8190:0:65534
SINT:12713:h:1:27500:8190:8190:0:8802
info:12713:h:1:27500:517:8190:0:8804
SINT:12713:h:1:27500:8190:8190:0:8806
CFN:12713:h:1:27500:523:8190:0:8809
SINT:12713:h:1:27500:8190:8190:0:8812
duel:12713:h:1:27500:518:8190:0:8815
comedy:12713:h:1:27500:515:8190:0:8818
fox kids:12713:h:1:27500:513:8190:0:8821

View File

@ -1,151 +0,0 @@
Overview.
=========
The 4 modules in this directory are designed to allow vdr timer
programming via the http://tvtv.de web EPG (Electronic Program Guide).
Once you have these modules properly configured and installed,
you should be able to simply click on the things you want vdr
to record in the http://tvtv.de web EPG and be done with it.
Everything else can be handled automatically.
Module description.
===================
The http://tvtv.de web EPG creates a so-called "merkliste"
("a list of items to remember") containing all the broadcasts
you selected.
1. The perl script "get_merkliste.pl" transfers this "merkliste"
from the http://tvtv.de web site to a local file "merkliste.html".
2. The C++ program "epg2timers" converts this HTML file into vdr's
timers.conf format.
3. The perl script "loadvdr.pl" pumps these new timer entries
into a running vdr using telnet and the SVDRP protocol.
4. The shell script "update_timers" implements the overall
control of the entire process.
It retrieves the latest merkliste from http://tvtv.de,
converts it to timers.conf format and sends the timer entries
to vdr.
Configuration.
==============
get_merkliste.pl requires configuration of the "files_to_fetch"
variable preset.
Log in to your http://tvtv.de account and click on the "Bookmark"
item in the "Setup" submenu of the "Mein Programm" side bar menu.
This will open a window with a URL in the location field that ends
with an ID value. Replace the xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
in the "files_to_fetch" variable preset with your ID value.
If you are using an HTTP proxy, uncomment the line containing
the $ua->proxy call and put your proxy details in.
epg2timers.cxx allows various items to be configured, but it
should work out of the box. See "tvtv.de channel names" below.
update_timers must know where to find the get_merkliste.pl
perl script and the compiled epg2timers binary. Both must be
in a directory pointed to by the TOOLDIR variable.
update_timers also must know where to find vdr's current
channels.conf file. Put that into the CHANPATH.
Depending on the price of your internet access, you may want to
run update_timers more or less frequently. It may also be a good
idea to run it at times where it is unlikely to interfere with
your current use of vdr. Configure a crontab entry according to
these personal preferences. Here is the entry I use:
1 2 * * * /home/cko/bin/update_timers
It runs update_timers only once a night at 02:01 a.m.
Installation.
=============
Create your TOOLDIR directory if it does not already exist.
Copy get_merkliste.pl and loadvdr.pl into it, compile epg2timers.cxx
with the command:
g++ epg2timers.cxx -o epg2timers
and move the epg2timers binary into the TOOLDIR directory.
The get_merkliste.pl script requires certain packages to run.
Besides of course perl, install perl-libwww-perl (at least
that's the name on SuSE 7.2, it may have a different name in
your distribution).
If you have problems with SVDRP and loadvdr.pl, you may want to
try out the update_timers.old script, which replaces the timers.conf
file directly and kills vdr (assuming that it will be restarted
by the runvdr script) to make vdr reload the timers.conf file.
tvtv.de channel names.
======================
The file epg_channel_names contains the names of all channels
currently (as of September 9, 2001) supported by the tvtv.de
web EPG. The variable "channel_map" in epg2timers.cxx maps
these names into PNRs (aka Service IDs). I have initialized
this table with provider names converted from a d-box channel
scan of Astra 19.2E, so the PNRs should be correct for that
satellite, but most of the names propably aren't yet- I simply
had not enough time yet to go through epg_channel_names
and insert all its channel names at the proper places in the
channel map. Consider the map supplied an example. ;-)
If you fix any of the entries, please send me a patch.
For my own humble purposes, the table works well as it is.
Of course, your channels.conf must contain the matching
PNRs (last field in each line).
To Do.
======
These are just ideas. They MAY get implemented.
If you want them to happen, contribute a patch. ;-)
* Support vdr hierarchical directories (after vdr does)
by mapping the http://tvtv.de genre texts into
directory names.
* start_time_safety_margin for epg2timers.
Authors.
========
Carsten Koch: epg2timers.cxx, update_timers, this README file.
Axel Gruber and
Rolf Hakenes: get_merkliste.pl
Peter Ahlert: loadvdr.pl
Credits.
========
I am grateful (in chronological order) to
* Klaus Schmidinger for his excellent vdr program and for
keeping an open mind in all directions.
* Suse (my wife, not the Linux distributor ;-) for encouraging me to
write epg2timers in June 2000 and for her constant patience and support.
* Andreas Steinhauser for periodically criticizing the epg2timers
"manual mode" until I came up with the idea to fully automatize it
and for contributing ideas.
* Axel Gruber for reminding me half a year later, for pushing
the idea until it got implemented, for asking for new features
all the time and for contributing ideas.
* Axel Gruber and Rolf Hakenes for contributing the get_merkliste.pl
perl script.
* Peter Ahlert for contributing the loadvdr.pl perl script.
Carsten, September 2001.

View File

@ -1,656 +0,0 @@
/*
* epg2timers.cxx: Convert an EPG "merkliste" HTML page (http://tvtv.de)
* to timers.conf format for Klaus Schmidinger's vdr
* (http://www.cadsoft.de/people/kls/vdr).
*
* Copyright (C) 2000, 2001 Carsten Koch
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* Or, point your browser to http://www.gnu.org/copyleft/gpl.html
*
* The author can be reached at Carsten.Koch@icem.de
*/
#include <malloc.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
// User-configurable options.
static const int stop_time_safety_margin = 10; // add 10 minutes to stop time in case start was delayed
static const int recording_priority = 50; // vdr recording priority setting for all timer entries generated
static const int recording_lifetime = 98; // vdr recording life time setting for all timer entries generated
// Usually, you should not want to change any of these.
static const int max_title = 256; // maximum length+1 of title file name generated
static const int max_genre = 32; // maximum length+1 of genre text parsed
static const int max_line = 1024; // line buffer (not used when parsing summary text)
static const int max_summary = 9000; // Summary can be up to 9000 bytes long (a bit shorter than vdr's SVDRP command buffer)
static const int max_vdr_channel = 1000; // maximum size+1 of your channels.conf
// The following table maps http://tvtv.de channel names into Astra 19.2E PIDs.
// It is incomplete. Contributions welcome.
typedef struct
{
const char * tvtv_name;
unsigned short pnr;
} map_entry;
static const map_entry channel_map[] =
{
// Deutschsprachig
{"13th Street", 42},
{"3sat", 28007},
{"ARTE", 28109},
{"B1", 28206},
{"BR3", 28107},
{"BR-alpha", 28112},
{"ARD", 28106},
{"Discovery", 14},
{"Disney Channel", 34},
{"Eins Extra", 28201},
{"Eins Festival", 28202},
{"Eins MuXx", 28203},
{"Filmpalast", 516},
{"FOX KIDS", 28},
{"Heimatkanal", 517},
{"HR", 28108},
{"Junior", 19},
{"Kabel 1", 899},
{"Kinderkanal", 28008},
{"Krimi&Co", 23},
{"K-Toon", 12},
{"Liberty TV.com", 12199},
{"MDR", 28204},
{"NDR", 28224},
{"NEUN LIVE", 897},
{"ORB", 28205},
{"ORF1", 13001},
{"ORF2", 13002},
{"Phoenix", 28114},
{"Planet", 13},
{"Premiere 1", 10},
{"Premiere 2", 11},
{"Premiere 3", 43},
{"Premiere Action", 20},
{"Premiere Comedy", 29},
{"Premiere SCI-FI", 41},
{"Premiere Star", 9},
{"PREMIERE WORLD", 8},
{"ProSieben", 898},
{"RTL", 12003},
{"RTL2", 12020},
{"SAT.1", 46},
{"SeaSonS", 33},
{"SR", 28110},
{"Studio Universal", 36},
{"Sunset", 16},
{"Super RTL", 12040},
{"Test-Z1", 28305},
{"TW1", 13013},
{"Via 1 - Schöner Reise", 44},
{"VOX", 12060},
{"WDR", 28111},
{"ZDF", 28006},
{"ZDF.doku", 28014},
{"ZDF.info", 28011},
// Movies
{"AXN", 29506},
{"CANAL+", 29100},
{"CANAL+ AZUL", 29101},
{"CANAL+ ROJO", 29102},
{"CANAL+ VERT", 8208},
{"CANAL+ 16/9", 8204},
{"CANAL+ 16|9", 29024},
{"C+ROOD", 4005},
{"CINE CINEMA I", 8206},
{"CINE CINEMA II", 8002},
{"CINE CINEMA III", 8003},
{"CINE CLASSICS", 8709},
{"CINE CINEMA 16/9", 8301},
{"cinecinemas", 4008},
{"CINECLASSICS", 29203},
{"Cinedom 1", 176},
{"Cinedom 1B", 178},
{"Cinedom 1C", 180},
{"Cinedom 1D", 190},
{"Cinedom 2", 179},
{"Cinedom 2B", 183},
{"Cinedom 2C", 184},
{"Cinedom 2D", 188},
{"Cinedom 2E", 193},
{"Cinedom 3", 182},
{"Cinedom 3B", 185},
{"Cinedom 3C", 192},
{"Cinedom 3D", 195},
{"Cinedom 4", 181},
{"Cinedom 4B", 187},
{"Cinedom 4C", 191},
{"Cinedom 5", 186},
{"Cinedom 5B", 194},
{"Cindedom Deluxe", 189},
{"CINEMANÍA AZUL", 29501},
{"CINEMANÍA ROJO", 29605},
{"CINEMANÍA", 29500},
{"K1", 8401},
{"K2", 8402},
{"K3", 8403},
{"K4", 8404},
{"K5", 8405},
{"K6", 8406},
{"K7", 8407},
{"K9", 8409},
{"K12", 8412},
{"TAQUILLA 1", 29206},
{"TAQUILLA 2", 29207},
{"TAQUILLA 3", 29502},
{"TAQUILLA 4", 29503},
{"TAQUILLA 5", 29504},
{"TAQUILLA 6", 29301},
{"TAQUILLA 7", 29302},
{"TAQUILLA 8", 29303},
{"TAQUILLA 11", 29316},
{"TAQUILLA 12", 29610},
{"TAQUILLA 13", 29402},
{"TAQUILLA 14", 29212},
{"TAQUILLA 16|9", 29606},
// Music
{"40 LATINO", 29031},
{"40 TV", 29110},
{"CANAL+ JAUNE", 8203},
{"CLASSICA", 15},
{"GOLDSTAR TV", 518},
{"MCM 2", 8305},
{"MCM AFRICA", 8307},
{"MCM", 8302},
{"MTV 2", 28649},
{"MTV 6", 28641},
{"MTV Base", 28645},
{"MTV Central", 28643},
{"MTV F", 28642},
{"MTV Hits", 28644},
{"MUZZIK", 8007},
{"RFM TV", 17008},
{"TMF", 5015},
{"VH1 Classic", 28647},
{"VH1", 28646},
{"Video Italia", 12220},
{"VIVA ZWEI", 12120},
{"VIVA", 12732},
{"ZIK'/XXL", 17004},
// News
{"BBC WORLD", 17007},
{"Bloomberg TV", 12160},
{"CNBC", 28010},
{"CNBC", 35},
{"CNBC-NBC", 29202},
{"CNN", 28512},
{"DW-tv", 9005},
{"EuroNews", 28015},
{"FOX NEWS", 29032},
{"N24", 47},
{"n-tv", 12730},
{"Sky News", 3995},
// Netherlands
{"NED1", 4011},
{"NED2", 4012},
{"NED3", 4013},
{"NET5", 5004},
{"RTL4", 2004},
{"RTL5", 2005},
{"SBS6", 5005},
{"V8/Fox Kids", 5020},
{"Yorin", 5010},
// Porn
{"BEATE-UHSE.TV", 21},
{"Blue Movie1", 513},
{"Blue Movie2", 514},
{"Blue Movie3", 515},
{"K10", 8410},
{"TAQUILLA X", 29213},
{"TAQUILLA X", 29602},
{"TAQUILLA XX", 29607},
{"X-ZONE", 4009},
// Sports
{"C+BLAUW", 4006},
{"DSF", 900},
{"EUROSPORT", 8101},
{"Eurosport", 28009},
{"EUROSPORT", 29310},
{"EUROSPORTNEWS", 29037},
{"PATHE SPORT|", 8009},
{"PREMIERE SPORT 1", 17},
{"PREMIERE SPORT 2", 27},
{"SUPERDOM", 26},
// French
{"13EME RUE", 8703},
{"AB 1", 17001},
{"AB MOTEURS", 17000},
{"ACTION", 17010},
{"ALLOCINE TV", 8308},
{"ANIMAUX", 17002},
{"ARTE", 9009},
{"BLOOMBERG TV", 8004},
{"CA TV", 8610},
{"CANAL+", 8201},
{"CANAL+ BLEU", 8202},
{"CANAL J", 8108},
{"CANAL JIMMY", 8006},
{"CANALCLUB", 8812},
{"Cartoon Network", 28511},
{"CLUB TELEACHAT", 8303},
{"COMEDIE !", 8702},
{"CONTACT TV", 8804},
{"CUISINE.TV", 8112},
{"DEMAIN !", 8701},
{"DISNEY CHANNEL", 8207},
{"DT CSAT 10", 9159},
{"ENCYCLOPEDIA", 17003},
{"ESCALES", 17005},
{"EURONEWS", 8505},
{"FORUM", 8707},
{"FRANCE 2", 8801},
{"FRANCE 3", 8802},
{"GAME ONE", 8717},
{"i TELEVISION", 8010},
{"KIOSQUE", 8704},
{"KTO", 8304},
{"LA CHAINE METEO", 8008},
{"LA CINQUIEME", 8501},
{"LaChaîneHistoire", 17006},
{"LCI", 8107},
{"LCP", 8506},
{"L'EQUIPE TV", 8706},
{"LibertyTV.com", 12280},
{"MANGAS", 17011},
{"MONTECARLO TMC", 8102},
{"Motors TV", 12300},
{"NAT GEOGRAPHIC", 8310},
{"PAD", 8211},
{"PARIS PREMIERE", 8104},
{"PLANETE 2", 8507},
{"PLANETE", 8103},
{"PMU sur Canal+", 8210},
{"RFO SAT", 8708},
{"SANTE - VIE", 8110},
{"SEASONS", 8001},
{"TCM", 28515},
{"TEST CDN 1", 8616},
{"TEST CDN 3", 8627},
{"TiJi", 8309},
{"TV 5", 9001},
{"TV BREIZH", 8502},
{"TV Puls", 20601},
{"TV5 Europe", 12240},
{"VOYAGE", 8105},
// Spanish
{"ANDALUCÍA TV", 29011},
{"Bloomberg", 12721},
{"CALLE 13", 29609},
{"Canal Canarias", 29700},
{"Cartoon Network", 29314},
{"CNN+", 29020},
{"DISCOVERY", 29116},
{"DISNEY CHANNEL", 29111},
{"DOCUMANÍA", 29200},
{"ESTILO", 29305},
{"ETB", 29035},
{"FASHION TV", 29115},
{"FOX KIDS", 29209},
{"FOX", 29507},
{"MOSAICO", 29315},
{"MÉTEO", 29014},
{"Nat Geo Channel", 29034},
{"NICK-PARAMOUNT", 29312},
{"RTPI", 9006},
{"SEASONS", 29204},
{"TAQUILLA 0", 29205},
{"TCM.", 28516},
{"TVC INT.", 29701},
{"VIAJAR", 29306},
// Miscellaneous
{"Alice", 12200},
{"Canal Algerie", 9008},
{"CANALPRO TV", 8516},
{"ESC1 - EGYPTE", 9003},
{"FASHION TV.COM", 17009},
{"Home Shopping Euro", 45},
{"Home Shopping Euro", 40},
{"Kabel 1 Austria", 20004},
{"Kabel 1 Schweiz", 20003},
{"Polonia 1/Top Sho", 20366},
{"ProSieben A", 20002},
{"ProSieben Schweiz", 20001},
{"QVC GERMANY", 12100},
{"RAI 1", 9004},
{"REAL MADRID TV", 29019},
{"RealityTV", 20309},
{"RTL TELE Letzebuerg", 3994},
{"RTM - MAROC", 9002},
{"SÜDWEST BW", 28113},
{"SÜDWEST RP", 28231},
{"Super 1", 20364},
{"Travel", 28001},
{"TV7", 9007},
{"TV-NIEP II", 12740},
{"Wishline", 12320}
};
// Nothing user-configurable below this line.
static const char date_line[] = "\t<td align=center valign=middle colspan=3><span id=fb-b10>";
static const char start_time_line[] = " \t\t<td id=\"jobview-box-date\" align=center><nobr>&nbsp;";
static const char stop_time_line[] = "\t\t\t<tr><td id=\"line\" align=center><span id=\"fn-w9\">bis ";
static const char channel_line[] = "\t\t\t<tr><td align=center><span id=\"fb-w9\">";
static const char title_line[] = "\t\t\t\t<td align=left width=100%><span id=\"fb-w10\">";
static const char summary_line[] = "<span id=\"fn-b8\">";
static const char genre_line[] = "\t\t\t\t<td align=right valign=center nowrap><span id=\"fn-w10\">";
static const int month_lengths[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
char map_special_char(const char * const word)
{
if (strcmp(word, "auml") == 0)
return 'ä';
else if (strcmp(word, "ouml") == 0)
return 'ö';
else if (strcmp(word, "uuml") == 0)
return 'ü';
else if (strcmp(word, "Auml") == 0)
return 'Ä';
else if (strcmp(word, "Ouml") == 0)
return 'Ö';
else if (strcmp(word, "Uuml") == 0)
return 'Ü';
else if (strcmp(word, "szlig") == 0)
return 'ß';
else if (strcmp(word, "nbsp") == 0)
return ' ';
else if (strcmp(word, "amp") == 0)
return '&';
return ' ';
}
void read_file_name_and_title(const char * const line, char * const file_name, char * const title)
{
int line_index = sizeof(title_line) - 1;
int title_index = 0;
int file_name_index = 0;
char ch;
do
{
ch = line[line_index++];
if (ch == '&')
{
char word[10];
int i = 0;
while ((line[line_index + i] != ';') && (i < 9))
{
word[i] = line[line_index + i]; i++;
}
if (line[line_index + i] == ';')
{
word[i] = 0;
ch = map_special_char(word);
line_index += i;
}
}
switch (ch)
{
case 'ä': file_name[file_name_index++] = 'a'; file_name[file_name_index++] = 'e'; break;
case 'ö': file_name[file_name_index++] = 'o'; file_name[file_name_index++] = 'e'; break;
case 'ü': file_name[file_name_index++] = 'u'; file_name[file_name_index++] = 'e'; break;
case 'Ä': file_name[file_name_index++] = 'A'; file_name[file_name_index++] = 'e'; break;
case 'Ö': file_name[file_name_index++] = 'O'; file_name[file_name_index++] = 'e'; break;
case 'Ü': file_name[file_name_index++] = 'U'; file_name[file_name_index++] = 'e'; break;
case 'ß': file_name[file_name_index++] = 's'; file_name[file_name_index++] = 's'; break;
case ' ': file_name[file_name_index++] = '_'; break;
case '&':
file_name[file_name_index++] = 'u'; file_name[file_name_index++] = 'n'; file_name[file_name_index++] = 'd';
break;
default:
if (((ch >= 'a') && (ch <= 'z')) || ((ch >= 'A') && (ch <= 'Z')) || ((ch >= '0') && (ch <= '9')) || (ch == '-'))
file_name[file_name_index++] = ch;
}
title[title_index++] = ch;
} while ((file_name_index < max_title-5) && (ch != '<') && (ch != 0));
file_name[file_name_index] = 0;
title[title_index-1] = 0;
}
void read_summary(char * const summary)
{
int summary_index = 0;
int ch;
bool need_space = false;
bool done = false;
do
{
ch = getchar();
switch (ch)
{
case '&':
{
char word[10];
int i = 0;
ch = getchar();
while ((ch != ';') && (ch != EOF) && (i < 9))
{
word[i++] = ch;
ch = getchar();
}
word[i] = 0;
if (need_space) {summary[summary_index++] = ' '; need_space = false;}
summary[summary_index++] = map_special_char(word);
}
break;
case '<':
{
char word[6];
int word_index = 0;
do
{
ch = getchar();
word[word_index++] = ch;
} while ((word_index < 6) && (ch != '>') && (ch != EOF));
while ((ch != '>') && (ch != EOF)) ch = getchar();
if (strncmp("/span", word, 4) == 0)
done = true;
}
break;
default:
{
if (ch <= ' ')
{
if (summary_index > 0) need_space = true;
}
else
{
if (need_space) {summary[summary_index++] = ' '; need_space = false;}
summary[summary_index++] = ch;
}
}
}
} while ((summary_index < max_summary - 2) && (!done) && (ch != EOF));
summary[summary_index] = 0;
}
int find_channel_number(const unsigned short * const vdr_pnrs, const char * const channel_name)
{
for (int tvtv_channel_number = 0; tvtv_channel_number < sizeof(channel_map)/sizeof(map_entry); tvtv_channel_number++)
if (strcmp(channel_name, channel_map[tvtv_channel_number].tvtv_name) == 0)
for (int vdr_channel_number = 0; vdr_pnrs[vdr_channel_number] != 0xFFFF; vdr_channel_number++)
if (vdr_pnrs[vdr_channel_number] == channel_map[tvtv_channel_number].pnr)
return vdr_channel_number;
fprintf(stderr, "Error - channel '%s' not recognized.\n", channel_name);
exit(1);
/*NOTREACHED*/
}
unsigned short * read_vdr_pnrs(const char * const channels_conf_file_name)
{
FILE * channels_conf = fopen(channels_conf_file_name, "r");
if (channels_conf == NULL)
{
perror("unable to open channels.conf.");
exit(1);
}
unsigned short * vdr_pnrs = (unsigned short *) malloc(max_vdr_channel * sizeof(unsigned short));
int vdr_channel_number = 0;
while (!feof(channels_conf) && (vdr_channel_number < max_vdr_channel-1))
{
char line[1024];
fgets(line, sizeof(line)-1, channels_conf);
int pnr;
if ((line[0] != ':') &&
(sscanf(line, "%*[^:]:%*[^:]:%*[^:]:%*[^:]:%*[^:]:%*[^:]:%*[^:]:%*[^:]:%*[^:]:%d", &pnr) == 1))
vdr_pnrs[vdr_channel_number++] = pnr;
}
vdr_pnrs[vdr_channel_number++] = 0xFFFF; // sentinel
fprintf(stderr, "%d pnrs.\n", vdr_channel_number);
return (unsigned short *) realloc(vdr_pnrs, vdr_channel_number * sizeof(unsigned short));
}
void process_input(const unsigned short * const vdr_pnrs)
{
int channel = -1;
int day = -1;
int next_day = -1;
int start_time = -1;
int stop_hour = -1;
int stop_minute= -1;
char genre[max_genre] = {0};
char summary[max_summary] = {0};
char file_name[max_title] = {0};
char title[max_title] = {0};
while (!feof(stdin))
{
char line[max_line];
fgets(line, max_line-1, stdin);
line[max_line-1] = 0;
if (strncmp(line, date_line, sizeof(date_line)-1) == 0)
{
const int month = (line[sizeof(date_line) + 6]- '0') * 10 + line[sizeof(date_line) + 7]-'0';
day = (line[sizeof(date_line) + 3]- '0') * 10 + line[sizeof(date_line) + 4]-'0';
next_day = day == month_lengths[month-1]? 1 : day + 1;
}
else if (strncmp(line, start_time_line, sizeof(start_time_line)-1) == 0)
start_time = (line[sizeof(start_time_line) - 1] - '0') * 1000 +
(line[sizeof(start_time_line) ] - '0') * 100 +
(line[sizeof(start_time_line) + 2] - '0') * 10 +
(line[sizeof(start_time_line) + 3] - '0');
else if (strncmp(line, stop_time_line, sizeof(stop_time_line)-1) == 0)
{
stop_hour = (line[sizeof(stop_time_line) - 1] - '0') * 10 +
(line[sizeof(stop_time_line) ] - '0');
stop_minute = (line[sizeof(stop_time_line) + 2] - '0') * 10 +
(line[sizeof(stop_time_line) + 3] - '0') +
stop_time_safety_margin;
if (stop_minute > 59)
{
stop_minute -= 60;
if (stop_hour == 23)
stop_hour = 0;
else
stop_hour++;
}
if ((day < 0) || (start_time < 0) || (file_name[0] == 0) || (channel == -1))
{
fprintf(stderr, "Input data error.\n");
exit(1);
}
else
printf("1:%03d:%02d:%04d:%02d%02d:%d:%d:%s:\"%s\" %s||%s||||||(epg2timers)\n",
channel+1, start_time < 600? next_day : day, start_time, stop_hour, stop_minute,
recording_priority, recording_lifetime, file_name,
title, genre, summary);
start_time = -1; channel = -1;
file_name[0] = 0; summary[0] = 0; genre[0] = 0;
}
else if (strncmp(line, title_line, sizeof(title_line)-1) == 0)
read_file_name_and_title(line, file_name, title);
else if (strncmp(line, channel_line, sizeof(channel_line)-1) == 0)
{
int i = sizeof(channel_line);
while ((line[i] != '<') && (line[i] != 0)) i++;
line[i] = 0; // end of string
channel = find_channel_number(vdr_pnrs, line + sizeof(channel_line) - 1);
}
else if (strncmp(line, summary_line, sizeof(summary_line)-1) == 0)
read_summary(summary);
else if (strncmp(line, genre_line, sizeof(genre_line)-1) == 0)
{
int genre_index;
for (genre_index = 0; genre_index < max_genre-1; genre_index++)
{
const char ch = line[genre_index + sizeof(genre_line)-1];
if ((ch == 0) || (ch == '&') || (ch == '<'))
break;
genre[genre_index] = ch;
}
genre[genre_index] = 0;
}
}
}
main(int argc, char *argv[])
{
fprintf(stderr, "epg2timers Version 0.5, 15-Sep-2001.\n");
if (argc != 2)
{
fprintf(stderr, "usage: %s channels.conf\n", argv[0]);
exit(1);
}
const unsigned short * const vdr_pnrs = read_vdr_pnrs(argv[1]);
process_input(vdr_pnrs);
exit(0);
}

View File

@ -1,400 +0,0 @@
ATV,at
ORF1,at
ORF2,at
TW1,at
Club RTL,be
Ketnet/Canvas,be
TVI,be
tv1,be
SF1,ch
sf2,ch
13th Street,de
3sat,de,at,ch
ARD,de
ARTE,de
B1,de
BBC World,de
BEATE-UHSE.TV,de
BR-alpha,de
BR3,de
Bet on Jazz,de
Bloomberg TV,de
Blue Movie1,de
Blue Movie2,de
Blue Movie3,de
CNBC,de
CNN,de
Cartoon,de
Cindedom Deluxe,de
Cinedom 1,de
Cinedom 2,de
Cinedom 3,de
Cinedom 4,de
Cinedom 5,de
Classica,de
DSF,de
Discovery,de
Disney Channel,de
Eins Extra,de
Eins Festival,de
Eins MuXx,de
EuroNews,de
Eurosport,de
FOX KIDS,de
Filmpalast,de
Goldstar TV,de
HH-1,de
HR,de
Heimatkanal,de
Junior,de
K-Toon,de
Kabel 1,de
Kinderkanal,de
Krimi&Co,de
MDR,de
MTV,de
MTV2,de
N24,de
NBC,de
NDR,de
NEUN LIVE,de
ONYX,de
ORB,de
Phoenix,de
Planet,de
Premiere 1,de
Premiere 2,de
Premiere 3,de
Premiere Action,de
Premiere Comedy,de
Premiere SCI-FI,de
Premiere Sport1,de
Premiere Sport2,de
Premiere Sport3,de
Premiere Star,de
Premiere analog,de
ProSieben,de
QVC,de
RTL,de
RTL2,de
SAT.1,de
SR,de
SWR BW,de
SWR RP,de
SeaSonS,de
Studio Universal,de
Sunset,de
Super RTL,de
TNT,de
TRT,de,tr
TV.BERLIN,de
Theaterkanal,de
VIVA,de
VIVA2,de
VOX,de
WDR,de
ZDF,de
ZDF.doku,de
ZDF.info,de
n-tv,de
skynews,de
tv.m,de
Danmark 1,dk
TV2 Danmark,dk
MTV3,fi
Nelonen 4,fi
Subtv,fi
TV1,fi
TV2,fi
13ème Rue,fr
AB 1,fr
Arte,fr
Arte Sat,fr
Canal J,fr
Canal Jimmy,fr
Canal+,fr
Canal+ Bel. bleu,fr
Canal+ Bel. jaune,fr
Canal+ Belgique,fr
Canal+ bleu,fr
Canal+ jaune,fr
Canal+ vert,fr
Ciné Cinémas 1,fr
Ciné Cinémas 2,fr
Ciné Cinémas 3,fr
Ciné Classics,fr
Cinéfaz,fr
Cinéstar 1,fr
Cinéstar 2,fr
Cinétoile,fr
Comédie !,fr
Disney Channel,fr
Escale,fr
Eurosport,fr
Festival,fr
Fox Kids,fr
France 2,fr
France 3,fr
Histoire,fr
LCI,fr
La Cinquième Sat,fr
La chaîne histoire,fr
La cinquième,fr
M6,fr
M6 Music,fr
MCM,fr
MTV,fr
Mangas,fr
Mezzo,fr
Muzzik,fr
Odyssée,fr
Paris Première,fr
Pathé sport,fr
Planète,fr
RTBF 1,fr
RTBF 2,fr
RTL 9,fr
Série Club,fr
TCM,fr
TF1,fr
TMC,fr
TSR 1,fr
TSR 2,fr
TV5,fr
Télétoon,fr
Téva,fr
Voyage,fr
XXL,fr
ANIMALplanet,hu
Budapest TV,hu
Duna TV,hu
FILMMÚZEUM,hu
FOX KIDS/SPORTS,hu
FÕNIX TV,hu
Game Channel,hu
HBO,hu
Hallmark,hu
MAGYAR ATV,hu
Minimax,hu
National Geographic,hu
Nickelodeon,hu
RTL Klub,hu
Romantica,hu
SATeLIT,hu
SPORT1,hu
Spektrum TV,hu
TV2,hu
VIASAT3,hu
VIVA+,hu
fix.tv,hu
m1,hu
m2,hu
+ Calcio,it
+ F1,it
Adult +,it
CANALE 5,it
Canal Jimmy,it
Canale Viaggi,it
Cartoon Network,it
Cine Classics,it
CineCinemas 1,it
CineCinemas 2,it
Classica,it
Cult Network,it
Discovery Channel,it
Disney Channel,it
Euro News,it
Eurosport,it
Hallmark,it
Happy Channel,it
ITALIA 1,it
La 7,it
MTV,it
MTV - TMC 2,it
Marcopolo,it
Match Music,it
Milan Channel,it
Nuvolari Motor,it
Odeon,it
Planete,it
Primafila,it
RAI 1,it
RAI 2,it
RAI 3,it
RAI Sat Fiction,it
RETE 4,it
Raisat Album,it
Raisat Art,it
Raisat Cinema,it
Raisat Educational,it
Raisat Gambero Rosso,it
Raisat Nettuno 1,it
Raisat Nettuno 2,it
Raisat Ragazzi,it
Raisat Show,it
Raisat Sport,it
SNAI Sat,it
Salute e benessere,it
Sat 2000,it
Satisfation Club TV,it
Seasons,it
Stream Calcio,it
Stream News,it
Studio Universal,it
TSI 1,it
TSI 2,it
TVL,it
Tele+ 16:9,it
Tele+ Bianco,it
Tele+ Grigio,it
Tele+ Nero,it
VIVA - Rete A,it
Netherland 1,nl
Netherland 2,nl
Netherland 3,nl
ATV Avrupa,tr
Kanal D,tr
Kral TV,tr
NTV Turkey,tr
Show TV,tr
Star TV,tr
Adult Channel,uk
Adventure One,uk
Anglia,uk
BBC Choice,uk
BBC Choice NI,uk
BBC Choice Scotland,uk
BBC Choice Wales,uk
BBC Knowledge,uk
BBC News 24,uk
BBC Parliament,uk
BBC Prime,uk
BBC World,uk
BBC1,uk
BBC1 North. Ireland,uk
BBC1 Scotland,uk
BBC1 Wales,uk
BBC2,uk
BBC2 North. Ireland,uk
BBC2 Scotland,uk
BBC2 Wales,uk
Bangla TV,uk
Bloomberg TV,uk
Border,uk
Bravo (Analogue),uk
Bravo (Digital),uk
British Eurosport,uk
CNBC Europe,uk
CNN,uk
Carlton Central,uk
Carlton Cinema,uk
Carlton Food,uk
Carlton Westcountry,uk
Carlton/LWT,uk
Cartoon Network,uk
Challenge TV,uk
Channel 4,uk
Channel 5,uk
Channel Television,uk
Disc. Animal Planet,uk
Disc. Channel (Ana.),uk
Disc. Civilisations,uk
Disc. Home Leisure,uk
Disc. Sci-Trek,uk
Disc. Travel Advent.,uk
Discovery Channel,uk
Discovery Kids,uk
Discovery Wings,uk
Disney,uk
Euronews,uk
Fantasy Ch. Dig.,uk
Fantasy Channel,uk
Film Four,uk
Fox Kids,uk
Grampian,uk
Granada,uk
Granada Breeze,uk
Granada Men & Motors,uk
Granada Plus,uk
HTV Wales,uk
HTV West,uk
Hallmark,uk
History Channel,uk
ITN News Channel,uk
ITV Sport Channel,uk
ITV Sport Plus,uk
ITV2,uk
Landscape,uk
Living,uk
MTV UK,uk
MUTV,uk
Meridian,uk
National Geographic,uk
Network 2,uk
Nick Junior,uk
Nick Junior Analogue,uk
Nickelodeon (dig.),uk
Nickleodeon (ana.),uk
Pakistani Channel,uk
Paramount Comedy,uk
Performance,uk
Play UK,uk
Playboy TV,uk
QVC,uk
RTE1,uk
Racing Channel,uk
Rapture TV,uk
S2,uk
S4C,uk
S4C digidol,uk
SKY Cinema,uk
SKY Movie Max(SDig.),uk
SKY Movie Max(ana.),uk
SKY News,uk
SKY Premier(Digital),uk
SKY Premier(OnDigi),uk
SKY Sports 1,uk
SKY Sports 2,uk
SKY Sports 3,uk
Sci-Fi Cable,uk
Sci-Fi Satelite,uk
Scottish,uk
Screenshop,uk
Shop!,uk
Sky Movie Max(OnDig),uk
Sky One,uk
Sky One (OnDigital),uk
Sky Premier(Ana.),uk
Sky Sports .com,uk
Sky Sports Extra,uk
Sky Travel,uk
Sony Entertainment,uk
TCM,uk
TCM (Analogue),uk
TG4,uk
TV3,uk
Tara Television,uk
The Box,uk
Trouble Analogue,uk
Trouble Digital,uk
Tyne Tees Television,uk
UK Drama,uk
UK Gold,uk
UK Gold 2,uk
UK Horizons,uk
UK Style,uk
Ulster ,uk
VH1,uk
Yorkshire,uk
Zee TV,uk

View File

@ -1,82 +0,0 @@
#!/usr/bin/perl
# Create a user agent object
use HTML::Entities;
use HTML::Parser;
use LWP::UserAgent;
use IO::Handle;
STDOUT->autoflush(1);
$ua = new LWP::UserAgent;
$ua->agent("Mozilla/9.1 " . $ua->agent);
# $ua->proxy('http', 'http://localhost:8080/');
$filename = "merkliste.html";
$base_url = "http://www.tvtv.de";
# Hier das Bookmark von TVTV eintragen:
@files_to_fetch = ("/cgi-bin/bookmark.cgi?id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
$num = 0;
$state = 0;
$p = HTML::Parser->new( api_version => 3,
start_h => [\&fparser_start, "tagname, attr"],
unbroken_text => 1 );
foreach $url (@files_to_fetch) {
$nurl = $base_url . $url;
print "Getting " . $nurl . "...\n";
$req = new HTTP::Request GET => $nurl;
$res = $ua->request($req);
if ($res->is_success) {
open (OUTFILE, ">" . $filename);
print OUTFILE $res->content;
close (OUTFILE);
$p->parse ($res->content);
$p->eof;
} else {
print "...FAILED\n";
}
}
# Zielordner fuer die Speicherung der Merkliste:
print "...saved to 'merkliste.html'\n";
sub fparser_start {
my($tagname, $attr_t) = @_;
my(%attr) = %$attr_t;
if ($tagname eq "frame") {
if ($state == 1) {
if (($attr{name} eq "frame_main") ||
($attr{name} eq "frame_nav") ||
($attr{name} eq "frame_nav_bottom")) {
push @files_to_fetch, $attr{src};
}
}
if ($state == 2) {
if (($attr{name} eq "frame_content")) {
push @files_to_fetch, $attr{src};
}
}
}
if ($tagname eq "a") {
if ($attr{href} ne "") {
$last_href = $attr{href};
if ($state == 0) {
push @files_to_fetch, $last_href;
$state = 1;
}
}
}
if ($tagname eq "img") {
if ($state == 1) {
if ($attr{src} =~ /b_joblist/i) {
$state = 2;
push @files_to_fetch, $last_href;
}
}
}
}

View File

@ -1,89 +0,0 @@
#!/usr/bin/perl
#
# 0.01 loadvdr (peter)
# 0.02 delete old entries before updating (peter)
# 0.03 dumped Net::Telnet because of lost connections
#
# please submit diffs to petera@gmx.net
#
# ./epg2timers < merkliste.html | perl -w loadvdr.pl
#
#
use Socket;
use Getopt::Std;
@resp = ();
$Dest = "localhost";
$Port = 2001;
$Timeout = 10; # max. seconds to wait for response
$SIG{ALRM} = sub { Error("timeout"); };
alarm($Timeout);
$iaddr = inet_aton($Dest) || Error("no host: $Dest");
$paddr = sockaddr_in($Port, $iaddr);
$proto = getprotobyname('tcp');
socket(SOCK, PF_INET, SOCK_STREAM, $proto) || Error("socket: $!");
connect(SOCK, $paddr) || Error("connect: $!");
select(SOCK); $| = 1;
Receive_void();
Send("lstt");
foreach $item (reverse @resp){
if ($item =~ /^250.(\d{1,2}).*\(epg2timers\)/) {
Send_void("DELT $1");
}
}
while (defined ($line = <STDIN>)) {
chomp $line;
Send_void("UPDT $line");
}
Send("quit");
close(SOCK) || Error("close: $!");
sub Send
{
my $cmd = shift || Error("no command to send");
print SOCK "$cmd\r\n";
Receive();
}
sub Send_void
{
my $cmd = $_[0];
print SOCK "$cmd\r\n";
Receive_void();
}
sub Receive
{
while (<SOCK>) {
chomp;
push @resp,$_;
last if substr($_, 3, 1) ne "-";
}
}
sub Receive_void
{
while (<SOCK>) {
last if substr($_, 3, 1) ne "-";
}
}
sub Error
{
print STDERR "@_\n";
close(SOCK);
exit 0;
}

View File

@ -1,22 +0,0 @@
#!/bin/sh
# update_timers: retrieve a new "merkliste" from http://tvtv.de,
# convert it to vdr format and transmit it to vdr via SVDRP.
TOOLDIR="/home/cko/bin"
CHANPATH="/home/cko/VDR/channels.conf"
cd /tmp
rm -f merkliste.html
# if you have a slow dial up connection to your name server and/or ISP,
# this will avoid a timeout in get_merkliste.pl.
ping -c 2 www.tvtv.de
# get the "merkliste".
$TOOLDIR/get_merkliste.pl
if [ -s merkliste.html ] ; then
# convert merkliste.html to timers.conf format and transmit it to vdr.
$TOOLDIR/epg2timers $CHANPATH < merkliste.html | $TOOLDIR/loadvdr.pl
fi

View File

@ -1,24 +0,0 @@
#!/bin/sh
# update_timers: load a new "merkliste" from http://tvtv.de
# and create a new VDR timer configuration file (timers.conf)
# from it. Restart VDR if the timers have changed.
TOOLDIR="/home/cko/bin"
VDRDIR="/home/cko/VDR"
cd /tmp
rm -f merkliste.html epgtimers.new epgtimers.old vdrtimers.old
ping -c 2 www.tvtv.de
$TOOLDIR/get_merkliste.pl
if [ -s merkliste.html ] ; then
$TOOLDIR/epg2timers $VDRDIR/channels.conf < merkliste.html | sort -t: +2.0 -5.0 > epgtimers.new
fgrep '(epg2timers)' $VDRDIR/timers.conf | sort -t: +2.0 -5.0 > epgtimers.old
if ! cmp -s epgtimers.old epgtimers.new ; then
/sbin/killproc $VDRDIR/vdr
fgrep -v '(epg2timers)' $VDRDIR/timers.conf > vdrtimers.old
cat epgtimers.new vdrtimers.old | sort -t: +2.0 -5.0 > $VDRDIR/timers.conf
echo "Timers updated."
fi
fi
rm -f merkliste.html epgtimers.new epgtimers.old vdrtimers.old

View File

@ -1,70 +0,0 @@
Master-Timer
============
(w) by Matthias Schniedermeyer (ms@citd.de)
1. Einleitung
-------------
Master-Timer ist ein System zum automatischen Aufnehmen von Serien und Filmen.
Beim Aufruf werden die Konfigurationsdateien gelesen, die Datei "epg.data" im
aktuellen Verzeichnis nach passenden Sendungen durchsucht und die ermittelten
Timer per SVDRP in VDR programmiert. Danach beendet sich Master-Timer.
Entsprechend empfiehlt es sich, Master-Timer per cronjob aufzurufen.
2. Konfigurationsdateien
------------------------
Alle Konfigurationsdateien liegen unter "~/.master-timer". Es werden
regulaere Ausdruecke ohne Unterscheidung der Gross-/Kleinschreibung
benutzt.
config: Die Hauptkonfigurationsdatei.
deepblack: Eine Negativliste von Titeln, die man NIEMALS NIMMER sehen will.
Die epg-datensaetze werden beim Parsen einfach entfernt.
subtitle-movies: Eine Liste der "Subtitel", die ein Zeichen fuer einen Film
sind (soweit die von den Sendern richtig ausgefuellt sind). Die
Einstellungen in dieser Datei werden fuer das Makro "MOVIE" in torecord
benutzt.
Kommentarzeilen sind nicht erlaubt.
torecord: Liste der aufzunehmenden Filme.
done: Liste der Titel/Subtitel, die bereits aufgenommen wurden. Timer, die
hier auftauchen, werden in VDR automatisch geloescht.
channels-to-scan: Diese Kanaele werden vom Skript "scan-channels" durch-
geschaltet (zwecks Einlesen der EPG-Daten). Die Datei wird von Master-
Timer selbst nicht benutzt.
3. Anmerkungen
--------------
- einige Sender fuellen die EPG-Felder nicht korrekt aus. Diese Fehler
werden von Master-Timer automatisch korrigiert.
Pro7: Title aus dem Subtitle entfernen '<Title> / <Subtitle>'
Pro7: Timer zwischen 00:00 und 05:00 werden einen Tag in die Zukunft
verschoben (Als unguten Nebeneffekt hat dies zur Folge das zum
aktuellen Tag NICHT die epg-Daten das folgenden Tags (=Das was in
der Fernsehzeitschrift noch auf der gleichen Seite ist) mehr gesendet
werden. Wenn man also "Last Minute" etwas aufnehmen will, dann muss
man (leider) einen Timer "per Hand" in VDR einprogrammieren!)
VOX/VIVA: Subtitle ist in "" eingeschlossen nd nach ". " steht die description
VIVA: Wenn der Subtitle mit einem Space beginnt, dann wird der komplette
Subtitle in die Description verschoben
RTL2: Wenn der EPG-Datensatz eine Dauer von kleiner/gleich 1 Sekunde hat,
wird er einfach verworfen.
Bis auf den jeweils 2ten VIVA&Pro-7 Bug werden die Fixes an jedem
epg-Datensatz ausprobiert.
4. Bekannte Bugs
----------------
- Es wird nicht geprueft ob noch genug DVB-Karten vorhanden sind
- "Joined timers" werden nur automatisch geloescht wenn alle dazugehoerigen
Sendungen "done" sind.

View File

@ -1,58 +0,0 @@
Master-Timer
============
(w) by Matthias Schniedermeyer (ms@citd.de)
1. Introduction
---------------
Master-Timer is a system designed for automatically recording movies.
Upon execution it reads its configuration files, scans the file "epg.data"
in the current directory for matching titles and programs them via SVDRP
into VDR.
You may for example run Master-Timer as a cron job.
2. Config files
---------------
Configuration files are located in "~/.master-timer". Each entry is a
regular expression so you can use all Perl style REs you want. They are
processed case insensitive.
config: Main configuration file.
deepblack: Blacklist of "titles" you NEVER EVER want to see.
subtitle-movies: A list of "Subtitles" which indicate a movie (used
by the "MOVIE" macro in torecord).
For channels that correctly fill out the subtitle e.g. it will not
work with *eRTL*.
torecord: The titles you want to record.
done: The titles/subtitles which are already recorded/should not be recorded
Programmed timers which got inserted into "done" will be deleted
automatically.
channels-to-scan: Used only by the separate "scan-channels" script which
switches through channels in order to get EPG data.
4. Notices
----------
- Recordings overlapping on the same channel will be joined into one timer
- Title/Subtitle/Descriptions are "fixed" for channels that don't fill them
out correctly (Pro-7/VOX/VIVA)
Pro7: Remove the Title from the Subtitle '<Title> / <Subtitle>'
VOX/VIVA: Subtitle is enclosed into "" and after ". " is the description
VIVA: When the Subtitle beginns with space the subtitle is moved to
description
All (except the second VIVA one) fixes are tried onto ALL Subtitles.
5. Known-Bugs
-------------
- It isn't checked if there are enough DVB-Cards
- Overlapping timers on the same channel are always joined
- Joined timers which are "done" don't get deleted automatically

View File

@ -1,18 +0,0 @@
Klaus Schmidinger
- VDR
Malte Kiesel
- Suggestions
- Bug Reports
- Documentation Updates for README/LIESMICH/torecord/deepblack/config
Guido Fiala
- Suggestions
- Bug Repots
- finding bugs i found just before i read that part of his mails
(First the bug, then the errormessages! Otherwise i will search/find
the bug myself :-))) )
Axel Gruber
- Suggestions
- Bug Reports

View File

@ -1,6 +0,0 @@
- "Komfortable" Anzeige, mit Black & Whitelisten, fuer Genres/Titeln usw.
- Abspielen (mit automatischen "killen" des "Frontend"-VDRs) von
Aufzeichnungen
- "View"-Timer d.h. Timer der nicht Aufnimmt sondern nur den Kanal aendert
- "unwichtige" Timer "verdraengen" wenn andere Aufnahmen anstehen.

View File

@ -1,151 +0,0 @@
#!/usr/bin/perl -w
use strict;
# The EPG-Entrys
my (%Entry, %channel, $mode);
# 0 = VDR -> DTV
# 1 = DTV -> VDR
$mode = 0;
read_channel_list();
if ($mode) {
&read_dtv();
&read_epgdata();
} else {
&read_epgdata();
&read_dtv();
}
&print_VDR();
sub read_epgdata {
my ($channel, $duration, $title, $subtitle, $description, $time);
open (FI,"epg.data") or die ("Can't open file \"epg.data\"\n");
while (<FI>) {
# Begin Channel
if (/^C\s(\d+)\s+(.+)/) {
$channel=$2;
while (<FI>) {
# End Channel
if (/^c$/) {
last;
}
# Begin Timer
elsif (/^E\s(\d+)\s+(\d+)\s+(\d+)$/) {
# Undef this Variables because it is possibel that not every timer uses this values
undef $duration;
undef $subtitle;
undef $description;
$time=$2;
$duration=$3;
}
# Title
elsif (/^T\s(.*)/) {
$title=$1;
}
# Subtitle
elsif (/^S\s(.*)/) {
$subtitle=$1;
}
# Description
elsif (/^D\s(.*)/) {
$description=$1;
}
# End Timer
elsif (/^e$/) {
if ($mode) {
# DTV -> VDR
$Entry{$channel}{$time}{subtitle}=$subtitle if ($subtitle);
if ($description) {
if ($Entry{$channel}{$time}{description}) {
$Entry{$channel}{$time}{description} = "DTV: '$Entry{$channel}{$time}{description}' VDR: '$description'";
} else {
$Entry{$channel}{$time}{description} = "DTV: '' VDR: '$description'";
}
}
} else {
# VDR -> DTV
$Entry{$channel}{$time}{title}=$title;
$Entry{$channel}{$time}{duration}=$duration;
$Entry{$channel}{$time}{subtitle}=$subtitle if ($subtitle);
$Entry{$channel}{$time}{description}=$description if ($description);
}
}
}
}
}
close (FI);
}
sub read_dtv {
my ($channel, $time, $duration, $title, $category, $subtitle, $description);
open (FI,$ARGV[0]) or die "Can't open DTV-File";
while (<FI>) {
chomp;
($channel, $time, $duration, $title, $category, $subtitle, $description) = split (/\|/);
if (!$channel{$channel}) {
next;
}
$channel = $channel{$channel};
if ($mode) {
# DTV -> VDR
if (!$subtitle && $description =~ /^\"(.*?)\"\:\s(.*)/) {
$Entry{$channel}{$time}{subtitle} = $1;
$description = $2;
}
$Entry{$channel}{$time}{title} = $title;
$Entry{$channel}{$time}{duration} = $duration;
$Entry{$channel}{$time}{subtitle} = $subtitle if ($subtitle);
$Entry{$channel}{$time}{category} = $category if ($category);
$Entry{$channel}{$time}{description} = $description if ($description);
} else {
# VDR -> DTV
$Entry{$channel}{$time}{category} = $category if ($category);
if ($description) {
if (!$Entry{$channel}{$time}{subtitle} && $description =~ /^\"(.*?)\"\:\s(.*)/) {
$Entry{$channel}{$time}{subtitle} = $1;
$description = $2;
}
if ($Entry{$channel}{$time}{description}) {
$Entry{$channel}{$time}{description} = "DTV: '$description' VDR: '$Entry{$channel}{$time}{description}'";
} else {
$Entry{$channel}{$time}{description} = "DTV: '$description' VDR: ''";
}
}
}
}
close (FI);
}
sub read_channel_list {
my ($old, $new);
open (FI,"$ENV{HOME}/.master-timer/convert-channel-list") or die ("Can't read channel-List");
while (<FI>) {
chomp;
($old, $new) = split (/\|/);
$channel{$old} = $new;
}
close (FI);
}
sub print_VDR() {
my ($channel, $title, $time);
foreach $channel (sort keys %Entry) {
print "C 1 $channel\n";
foreach $time (sort keys %{%Entry->{$channel}}) {
if ($Entry{$channel}{$time}{duration}) {
print "E 1 $time $Entry{$channel}{$time}{duration}\n";
print "K $Entry{$channel}{$time}{category}\n" if ($Entry{$channel}{$time}{category});
print "T $Entry{$channel}{$time}{title}\n";
print "S $Entry{$channel}{$time}{subtitle}\n" if ($Entry{$channel}{$time}{subtitle});
print "D $Entry{$channel}{$time}{description}\n" if ($Entry{$channel}{$time}{description});
print "e\n";
}
}
print "c\n";
}
}

View File

@ -1,61 +0,0 @@
#!/usr/bin/perl
while (<>)
{
chomp;
if ($_ && !(/^\#/))
{
($title, $subtitle, $description, $channel, $timeframe, $prio, $timer_title, $margin, $machine) = split (/\|/,$_);
if ($timer_title) {
print "[$timer_title]\n";
} elsif ($title) {
print "[$title]\n";
} elsif ($subtitle) {
print "[$subtitle]\n";
} elsif ($description) {
print "[$description]\n";
} else {
die ("Illegal Format");
}
# Accept torecord only if it is for the current machine
if ($title)
{
print "Title = $title\n";
}
if ($subtitle)
{
print "Subtitle = $subtitle\n";
}
if ($description)
{
print "Description = $description\n";
}
if ($channel)
{
print "Channel = $channel\n";
}
if ($timeframe)
{
print "Timeframe = $timeframe\n";
}
if ($prio)
{
print "Prio = $prio\n";
}
if ($timer_title)
{
print "Timertitle = $timer_title\n";
}
if ($margin)
{
print "Margin = $margin\n";
}
if ($machine)
{
print "Instance = $machine\n";
}
print "\n";
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,79 +0,0 @@
#!/usr/bin/perl -w
$dir = "/home/ms/.master-timer";
open (FI,"$dir/done") or die "Can't open \"done\"\n";
while (<FI>)
{
chomp;
if ($_)
{
($title,$subtitle) = split (/\|/,$_,2);
$Done{$title}{$subtitle}=1;
}
}
close (FI);
&traverse('/video');
if ($hit)
{
rename ("$dir/done","$dir/done.bak");
open (FO,">$dir/done");
foreach $title (sort keys %Done)
{
foreach $subtitle (sort keys %{%Done->{$title}})
{
print FO "$title\|$subtitle\n";
}
}
}
sub traverse
{
local($dir) = shift;
local($path);
unless (opendir(DIR, $dir))
{
warn "Can't open $dir\n";
closedir(DIR);
return;
}
foreach (readdir(DIR))
{
next if $_ eq '.' || $_ eq '..';
$path = "$dir/$_";
if (-d $path) # a directory
{
&traverse($path);
}
if ($_ eq "summary.vdr")
{
open (FI,"$path") or die "Can't open \"$path\"\n";
@lines = <FI>;
close (FI);
if ($lines[0] =~ /^Title\:\s\"(.*)\"/)
{
@titles = split (/\~/,$1);
if ($lines[2] && $lines[2] =~ /^Subtitle\:\s\"(.*)\"/)
{
@subtitles = split (/\~/,$1);
foreach $num (0 .. $#titles)
{
if ($titles[$num] && $subtitles[$num])
{
if (!$Done{$titles[$num]}{$subtitles[$num]})
{
$Done{$titles[$num]}{$subtitles[$num]}=1;
$hit = 1;
}
}
}
}
}
}
}
closedir(DIR);
}

View File

@ -1,6 +0,0 @@
1
2
3
4
5
49

View File

@ -1,32 +0,0 @@
# Master-Timer config file. Values shown here are defaults.
# How many seconds "too early" should the timer begin
marginstart = 600
# How many seconds "too long" should the timer end
marginstop = 600
# When the Prio isn't provided in the config file use this value
defaultprio = 50
# How many DVB cards are installed in the computer (not used yet)
DVBCards = 1
# IP/Hostname:Port of the destination (space is used for delimiter)
Dest = localhost:2001
# Should timers on the same channels be joined when they overlap (0 = off)
jointimers = 0
# Should the description be transfered to VDR?
description = 0
# Debug level
# 1 : Dump "torecord"
# 2 : Dump all timers
# 4 : Show when a timer will be deleted
# 8 : Dump the "Done" REs
# 16 : Verbose config reading
# 32 : Dump program variables
# 64 : Excessive deepblack/torecord debuging
debug = 0

View File

@ -1,26 +0,0 @@
Kabel 1|Kabel 1
MTV|MTV Central
PRW 13TH Street|13th Street
PRW Discovery Channel|Discovery Channel
PRW Disney Channel|Disney Channel
PRW FOX KIDS|Fox Kids
PRW Junior|Junior
PRW K-Toon|K-Toon
PRW Krimi & Co|Krimi &Co
PRW Planet|Planet
PRW Sci-Fantasy|Premiere Sci-Fi
PRW Studio Universal|Studio Universal
PRW Sunset|Sunset
Premiere Action|Premiere Action
Premiere Comedy|Premiere Comedy
Premiere STAR|Premiere Star
Premiere World 1|Premiere 1
Premiere World 2|Premiere 2
Premiere World 3|premiere 3
Pro Sieben|Pro-7
RTL|RTL
RTL 2|RTL2
Sat.1|Sat.1
Super RTL|Super RTL
Viva|VIVA
Vox|VOX

View File

@ -1,172 +0,0 @@
# [<Anytext>]
# This marks the beginning of a deepblack-entry
# Title = <text>
# This matches a title
# Subtitle = <text>
# This matches a subtitle
# Description = <text>
# This matches a description
# Category = <left>/<right>
# This matches a DTV-Category
# Channel = <Channel>
# Restricts a deepblack-entry to a specific channel.
# A single "!" at start of channel list negates the selection.
# Timeframe = <begin>-<end>
# Restricts a deepblack-entry to a specific timeframe.
# No timers with start time in the timeframe will be programmed.
# minlength = <Number>
# Restricts a deepblack-entry to a specific minimum length
# (postfix "m" for minutes, "h" for hours.)
# maxlength = <Number>
# Restricts a deepblack-entry to a specific maximum length
# (postfix "m" for minutes, "h" for hours.)
# weekday = MTWTFSS
# Restricts a deepblack-entry to a specific weekday
# instance = <Number>
# Only apply this deepblack-entry for a specific Instance
# "s" is a special value used for "-s"-Mode
#
# The "Title", "Subtitle", "Description", "Channel"-Lines can be
# supplied any number of times for a specific entry
#
# To deepblack something at least one of the "Title", "Subtitle" or
# "Description" (If you don't have anything "better" use "Title = ."
# for this matches everything) fields has to be provided.
# These three fields are "include" and the rest are "exclude" fields.
[Blacklist all Talkshows]
Title = .
Category = Talk
[Blacklist all Lifestyles]
Title = .
Category = /Lifestyles
[Blacklist Sport/Tennis]
Title = .
Category = Sport/Tennis
[Record only ZDF and Pro7]
Title = .
Channel = !ZDF
Channel = ProSieben
[Blacklist a timeframe]
Title = .
Timeframe = 1000-1400
[Blacklist everything with less than 5 minutes duration]
Title = .
maxlength = 5m
[Sinnlose Serien]
Title = Für alle Fälle Stefanie
Title = Chicago Hope - Endstation Hoffnung
Title = Chicago Hope
Title = Doppelter Einsatz
Title = Dr. Stefan Frank - Der Arzt, dem die Frauen vertrauen
Title = Ehekriege
Title = Ein Bayer auf Rügen
Title = Emergency Room
Title = Gute Zeiten, schlechte Zeiten
Title = Hallo, Onkel Doc!
Title = Hercules
Title = Hinter Gittern - Der Frauenknast
Title = OP ruft Dr. Bruckner
Title = Wolffs Revier
Title = alphateam
Title = SK Kölsch
Title = ^Becker$
Title = Kommissar Rex
Title = Nur die Liebe zählt
Title = Unsere kleine Farm
Title = Die Waltons
Title = ^Die Zwei$
[Glueckspiele]
Title = Die Quiz Show
Title = Glücksrad
Title = Jeder gegen Jeden
Title = Kochduell
[Infotainment und Boulevardzeug]
Title = 'MAX' - Das ganze Leben!
Title = ^BIZZ$
Title = Big Brother
Title = GIRLSCAMP
Title = Call TV
Title = DIE REDAKTION
Title = EXCLUSIV
Title = EXTRA
Title = Explosiv - Das Magazin
Title = K1 DIE REPORTAGE
Title = K1 Das Magazin
Title = PROSIEBEN REPORTAGE
Title = Fit For Fun TV
Title = peep!
Title = s.a.m.
Title = taff.
Title = ^blitz$
Title = Die Harald Schmidt Show
Title = Spiegel TV-Reportage
[Nachrichten]
Title = 10 vor 11
Title = 17:30 live
Title = 18:30
Title = 24 Stunden
Title = Punkt 12
Title = Punkt 6
Title = Punkt 9
Title = RTL II News
Title = RTL aktuell
Title = RTL-Nachtjournal
Title = K1 Nachrichten
Title = Nachrichten
[Talkshows]
Title = Andreas Türck
Title = Arabella
Title = Britt - Der Talk um Eins
Title = Bärbel Schäfer
Title = Die Oliver Geissen Show
Title = Peter Imhof
Title = Vera am Mittag
Title = Hans Meiser
Title = Nicole - Entscheidung am Nachmittag
Title = Franklin
[So richtig Sinnloses]
Title = Dauerwerbesendungen
Title = Infomercials
Title = Kickers
Title = RTL SHOP
Title = SAT.1-FRÜHSTÜCKSFERNSEHEN
Title = Zapping
[PREMIERE WORLD - Das Programm]
Title = PREMIERE WORLD - Das Programm
Title = Programm ab
Title = Programm von
[Fussball]
Title = fussball
Title = fußball
Title = UEFA Champions
#Sonstiges
[^Sieben$]
Title = ^Sieben$
[Starporträt Kevin Spacey]
Title = Starporträt Kevin Spacey
[All Movies for -s]
Subtitle = MOVIE
Instance = s
[All >= 65m for -s]
Title = .
minlength = 65m
Instance = s

View File

@ -1 +0,0 @@
Alles Routine|Komödie

View File

@ -1,52 +0,0 @@
^Abenteuerfilm$
^Actionfilm$
^Actionkomödie$
^Actionthriller$
^Agentenfilm$
^Beziehungskomödie$
^Biografie$
^Biographie$
^Computeranimation$
^Drama$
^Episodenfilm$
^Erotikfilm$
^Familiendrama$
^Fantasy$
^Fantasykomödie$
^Fantasy-Komödie$
^Gangsterfilm$
^Gerichtsfilm$
^Gesellschaftsdrama$
^Historiendrama$
^Horrorfilm$
^Horrorkomödie$
^Jugenddrama$
^Kinderfilm$
^Komödie$
^Kriegsfilm$
^Krimikomödie$
^Kriminalfilm$
^Liebesfilm$
^Liebeskomödie$
^Melodram$
^Melodrama$
^Monumentalfilm$
^Musical$
^Politthriller$
^Psychothriller$
^Road Movie$
^Romanze$
^Satire$
^Science-Fiction$
^Science-Fiction-Komödie$
^Spielfilm$
^TV Movie$
^TV-Drama$
^Teil .$
^Teil 0.$
^Thriller$
^Tragikomödie$
^Western$
^Westernkomödie$
^Zeichentrick$
^Zeichentrickkomödie$

View File

@ -1,90 +0,0 @@
# [<Anytext>]
# This marks the beginning of a timer entry
# Title = <text>
# This matches a title
# Subtitle = <text>
# This matches a subtitle.
# You may use the magic "MOVIE" or "!MOVIE" which matches
# all entries from file "subtitle-movie".
# Description = <text>
# This matches a description
# Category = <left>/<right>
# This matches a DTV-Category
# Channel = <Channel>
# Restricts a time to a specific channel.
# A single "!" at start of channel list negates the selection.
# Timeframe = <begin>-<end>
# Restricts timer to a specific timeframe.
# Only timers with start time in the timeframe will be programmed.
# minlength = <Number>
# Restricts timer entry to a specific minimum length
# (postfix "m" for minutes, "h" for hours.)
# maxlength = <Number>
# Restricts a timer entry to a specific maximum length
# (postfix "m" for minutes, "h" for hours.)
# weekday = MTWTFSS
# Restricts a timer to a specific weekday
# Timertitle = <text>
# The title used for this timer.
# If this is not provided "Title" will be used.
# If "Title" is not provided the EPG title will be used.
# Margin = <Number>;<Number>
# Seconds added to the beginning and end of the timer.
# Positive numbers will lengthen the recording.
# instance = <Number>
# The instance of VDR for which this timer is.
# If this is not provided the timer is valid for ALL instances.
#
# The "Title", "Subtitle", "Description", "Channel"-Lines can be
# supplied any number of times for a specific entry
#
# To record something at least one of the "Title", "Subtitle" or "Description"
# fields has to be provided. These three fields are "include" and the rest are
# "exclude" fields!
[Dies ist ein Test-Timer]
Title = Titel
Subtitle = Subtitel
Description = Description
Category = Serie/Krimi
Channel = Pro-7
Channel = VIVA
Timeframe = 1230-1830
Prio = 50
Lifetime = 50
minlength = 10m
maxlength = 3h
weekday = ---T---
Timertitle = Test
Margin = 600;600
instance = 2
# Record Babylon 5 only if NOT playing on Pro 7;
# recording starts one minute too early and ends
# one minute too early (to skip following ads).
[Babylon 5]
Title = Babylon 5
Channel = !Pro-7
Prio = 99
Margin = 60;-60
[DS9]
Title = Deep Space Nine
Prio = 99
Timertitle = DS9
Margin = 60;-60
[Seven Days]
Title = Seven Days
Prio = 99
[Stargate]
Title = Stargate
Prio = 99
[Aniston]
Description = Aniston
Prio = 99
[Matrix]
Title = Matrix

View File

@ -1,8 +0,0 @@
#!/bin/sh
old=`svdrpsend.pl chan | grep 250 | cut -d " " -f2`
for dat in `cat $HOME/.master-timer/channels-to-scan`
do
svdrpsend.pl "chan $dat"
sleep 30s
done
svdrpsend.pl "chan $old"

View File

@ -1,111 +0,0 @@
Sammlung von "Hilfs"-Scripten
von Matthias Schniedermeyer
ms@citd.de
Diese Sammlung an "Hilfs"-Scripten habe ich mir zum scheiden und anderen
Zwecken zusammengeschrieben.
Das ganze unterliegt natuerlich der GPL.
Ich bin nicht sonderlich gut im "Dokumentieren". Also gilt die Devise
"Hilf dir selbst".
Ein paar Worte zu den "Hart"-Codierten Pfaden.
/dvb/video
/dvb2/video
Sind die 2 DVB-Rechner.
/x1/video
Ist das Verzeichniss in das die Video zum schneiden verschoben werden.
/x1/temp
/x2/temp
Sind die beim schneiden verwendeten Temporaer-Verzeichnisse
Enthalten sind folgende Scripte:
cutall -> "Master"-Script zum starten des Scheide vorgangs.
Ist ein "find" nach "cut" -Dateien
cutt -> Das "eigentliche" Schnitt-Script
Bei einem einzelnen Block wird diese direkt
gesplitet und dann zu einem ISO-Image verarbeitet
Wenn mehrere Teile (=War mit Werbung) vorhanden
sind, dann werden zuerst die einzelnen Teile,
legt nummerierte Verzeichniss ein und kopiert bzw
splitet die einzelnen Dateien in die Verzeichniss
und macht dann daraus die ISO-Images
(Leider funktioniert das aus irgendwelche Gruenden
(noch) nicht mit Serien die nur eine CD gross sind
aber das wird noch)
index.php -> PHP-Script zum finden der Schnitt-Punkte, mit
Testmoeglichkeit ob erfolgreich an diesem Punkt
geschnitten werden kann
mv2 -> Zum Moven der Aufnahmen von meinen DVB-Rechnern
auf mein "Arbeitsrechner"
play -> Zum Abspielen einer Aufnahme von meinem Recher auf
dem "Frontend" DVB-Rechner
schnitt.pl -> Extraiert ein einzelnes Bild um es anzuzeigen
(Fuer index.php)
schnitt2.pl -> Gibt alles zwischen 2 Schnittpunkten auf STDOUT aus
schnitt3.pl -> Testet ob erfolgreich geschnitten werden kann.
schnitt3.pl.new -> Version fuer PES-Datenstroeme
schnitt4.pl -> "Beschleunigtes" Schnitt-Programm fuer VIVA
aufnahmen. 1 "VIDEO" pro Zeile erzeugt
"a", "b" ... Dateien
schnitt5.pl -> Gibt Datei-Nummern von einer Schnittmarke
+- 15000 Frames aus
schnitt6.pl -> Loescht alle Dateien die nicht von in einer von
schnitt5.pl abgedeckt ist. (Damit mv2 nicht so
lange braucht)
show -> Wird auf einem X-Display gestartet und zeigt das
aktuelle Bild von "schnitt.pl" an
vdr-remote.pl -> "Skeleton" um ueber SVDR-Kommandos zu schicken
vdr2 -> Start-Script
vmount -> Mounten aller zusammengehoeriger ISO-Images zum
abspielen
Hilfsscripte:
------------
cut.pl -> Entspricht weitestgehend "split" aber mit
"Nummer" anstatt Buchstaben
cut2 -> Entfernt escapende Backslashes
cut2.pl/cut3.pl -> Fuer Aufnehmen die aus mehreren Bloecken bestehen
(=Mit Werbung)
cutall2 -> Springt ins Schnitt-Verzeichniss und ruft das
"eigentliche" Schnitt-Script auf
cutall3.pl -> Wenn in einem Verzeichniss mehrere Aufnahmen sind
splitet dies Programm diese und ruft fuer jede
Aufnahme das "cutt"-Script auf
schnittcommon.pli -> Das "Common" Script fuer schnitt?.pl
getpreviframe.pl -> Findet das vorherige I-Frame.
unsort -> Macht das Gegenteil von sort.
dump.c -> Muss in der "libmpeg3"-Verzeichniss des
"mpeg2-movie"-Packets kopiert werden und dann mit
"make" compilieren
Dieses C-Programm ist dafuer da um fuer das
PHP-Script das Bild anzuzeigen wo man gerade ist.
Da mir der "urspruengliche" Source-Code dafuer
abhanden gekommen ist und ich den Patch neumachen
musste (Wie immer mit "Verbesserungen") ist index.php
nocht nicht auf die neue Version angepasst. Die
Anpassung besteht aber nur darin eine "1" an die
Kommandozeile anzuhaengen.
Im Gegensatz zur "alten"-Version ist diese Version "vollstaendig"
einsatzfaehig!
Wenn jemand Fragen zum Einsatz hat dann "loechern Sie mich"
ms@citd.de
Ich kann auch gerne die Einrichtung per "Fernwartung" (=ssh) uebernehmen.
(Wenn noetig compiliere ich auch auch apache mit PHP usw.)

View File

@ -1,35 +0,0 @@
#!/usr/bin/perl
chdir ($ARGV[0]) if ($ARGV[0]);
$read = $size = 1024*1024;
$filenum = "1";
$count = 0;
$fi = sprintf ("part%d",$filenum);
open (FI,">$fi");
while ($read == $size)
{
if ($count < 660*1024*1024)
{
$read = read (STDIN,$data,$size);
print FI $data;
$count += $size;
$a = $count /1024/1024;
if ($a % 10 == 0) {
print stderr "File: $filenum Size: ${a}MB\n";
}
}
else
{
close (FI);
$filenum++;
$fi = sprintf ("part%d",$filenum);
open (FI,">$fi");
$count = 0;
}
}
close FI;

View File

@ -1,2 +0,0 @@
#!/bin/sh
cat cut2 | head -n 1 | tr -d [\\\\]

View File

@ -1,39 +0,0 @@
#!/usr/bin/perl
$titel = $ARGV[0];
chdir ("/x2/temp");
@files=<teil*.mpg>;
$cd = 1;
mkdir "/x2/temp/$cd";
open (FF,">/x2/temp/$cd/$titel\ CD\ $cd");
close (FF);
foreach $file (@files)
{
$size = -s $file;
$total += $size;
if ($total <= 660*1024*1024)
{
print "Moving $file\n";
system ("mv /x2/temp/$file /x2/temp/$cd/$file");
}
else
{
print "Splitting $file\n";
$file =~ s/\.mpg$//;
$total -= $size;
$size = (660*1024*1024) - $total;
$cd = `cut3.pl /x2/temp $cd $file $size \'$titel\' < $file.mpg`;
chomp $cd;
$total = 0;
@files2=</x2/temp/$cd/teil*>;
foreach $file2 (@files2)
{
$total += -s $file2;
}
print "CD: $cd Total $total\n";
unlink "$file.mpg";
}
}

View File

@ -1,40 +0,0 @@
#!/usr/bin/perl
$read = $size = 1024*1024;
$dir = $ARGV[0];
$subdir = $ARGV[1];
$teil = $ARGV[2];
$count1 = $ARGV[3];
$title = $ARGV[4];
$filenum = "1";
$count = 0;
open (FI,">$dir/$subdir/$teil.$filenum.mpg");
while ($read == $size)
{
if (($filenum == 1 && $count < $count1) || ($filenum > 1 && $count < 660*1024*1024))
{
$read = read (STDIN,$data,$size);
print FI $data;
$count += $size;
$a = $count /1024/1024;
}
else
{
close (FI);
$filenum++;
$subdir++;
mkdir ("$dir/$subdir");
open (FF,">$dir/$subdir/$title\ CD\ $subdir");
close (FF);
open (FI,">$dir/$subdir/$teil.$filenum.mpg");
$count = 0;
}
}
close FI;
print "$subdir\n";

View File

@ -1,2 +0,0 @@
#!/bin/sh
find /x1/video/ -name "cut" -exec cutall2 {} \;

View File

@ -1,5 +0,0 @@
#!/bin/sh
a=`echo $1 | cut -d / -f1-5`
cd $a
cutall3.pl
mv cut cut.bak

View File

@ -1,31 +0,0 @@
#!/usr/bin/perl
open (FI,"cut") or die "Kann Cut-Datei nicht oeffnen\n";
outer: while (<FI>)
{
chomp;
if (! ($_ > 1 || $_ eq "0"))
{
open (FO,">cut2");
print FO "$_\n";
while (<FI>)
{
chomp;
if ($_ > 1 || $_ eq "0")
{
print FO "$_\n";
}
else
{
system ("cutt");
redo outer;
}
}
}
}
if ( -f "cut2")
{
system ("cutt");
unlink "cut2";
}

View File

@ -1,106 +0,0 @@
#!/bin/sh
DIRA=/x2/temp
DIRB=/x1/temp
if [ ! -f cut2 ]; then
echo Keine Beschreibungsdatei
exit 1
else
name="`cut2`"
echo $name
count=`cat cut2 | wc -l`
let count=count-1
let test=count%2
if [ "$test" == "1" ]; then
echo Ungerade Anzahl von Markierungen
exit 1
fi
file=1
if [ "$count" == "2" ]; then
start=`cat cut2 | tail -n $count | head -n 1`
let count=count-1
end=`cat cut2 | tail -n $count | head -n 1`
schnitt2.pl $start $end | avpes2mpeg | cut.pl $DIRA
secondway=2
else
while [ "$count" != "0" ]
do
start=`cat cut2 | tail -n $count | head -n 1`
let count=count-1
end=`cat cut2 | tail -n $count | head -n 1`
let count=count-1
echo Cutting \& Converting from $start to $end
schnitt2.pl $start $end | avpes2mpeg > $DIRA/teil$file.mpg
# schnitt2.pl $start $end | pvademux $DIRA teil$file
let file=file+1
done
fi
fi
# Ab hier mkimg
rm cut2
sync
if [ "$secondway" != "2" ]; then
cd $DIRA
cut2.pl "$name"
if [ -d 2 ]; then
count=1
cond=0
while [ "$cond" != "1" ]
do
echo mkisofs Teil $count
mkisofs -r -o $DIRB/image1.raw $count
rm -rf $count
mv -- $DIRB/image1.raw "$DIRB/${name} CD $count"
sync
let count=count+1
if [ ! -d $count ]; then
cond=1
fi
done
else
echo mkisofs
mkisofs -r -o $DIRB/image1.raw $count
rm -rf $count
mv -- $DIRB/image1.raw "$DIRB/${name}"
fi
else
cd $DIRA
if [ -f part2 ]; then
count=1
cond=0
while [ "$cond" != "1" ]
do
mkdir a
mv "part$count" "a/${name} CD $count.mpg"
echo mkisofs Teil $count
mkisofs -r -o $DIRB/image1.raw a
rm -rf a
mv -- $DIRB/image1.raw "$DIRB/${name} CD $count"
sync
let count=count+1
if [ ! -f "part$count" ]; then
cond=1
fi
done
else
mkdir a
mv part1 "a/${name}.mpg"
echo mkisofs
mkisofs -r -o $DIRB/image1.raw a
rm -rf a
mv -- $DIRB/image1.raw "$DIRB/${name}"
fi
fi

View File

@ -1,65 +0,0 @@
#include "libmpeg3.h"
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
int main(int argc, char *argv[])
{
mpeg3_t *file;
int x,y,ii,i,j,result,out;
int howmany;
unsigned char *output, **output_rows;
char filename[100];
char header[100];
char temp;
howmany = atoi (argv[2]);
if ((file = mpeg3_open(argv[1])) == NULL)
{
printf ("Open failed\n");
return 1;
}
mpeg3_set_cpus(file,1);
mpeg3_set_mmx(file,0);
if (mpeg3_has_video == 0)
{
printf ("Stream has no Video\n");
return 1;
}
x = mpeg3_video_width(file,0);
y = mpeg3_video_height(file, 0);
output = malloc (x*y*3 + 4);
output_rows = malloc (sizeof(unsigned char*) * y);
for(i = 0; i < y; i++)
output_rows[i] = &output[i * x * 3];
for (ii = 0; ii < howmany; ii++)
{
result = mpeg3_read_frame(file,output_rows,0,0,x,y,x,y,0,0);
sprintf (filename,"/x2/temp/output%03i.ppm",ii);
sprintf (header,"P6\n%i %i\n255\n\r",x,y);
/* printf ("Opening %s\n",filename); */
if ((out = open (filename,O_CREAT|O_WRONLY|O_TRUNC,0755)) == -1)
{
printf ("Can't open %s\n",filename);
return 1;
}
write (out,header,strlen(header));
for (i = 0; i < y; i++)
for (j = 0; j < x; j++)
{
temp = output [(i*x+j)*3 + 1];
output[(i*x+j)*3 + 1] = output [(i*x+j)*3 + 0];
output[(i*x+j)*3 + 0] = temp;
}
write (out, output, x*y*3);
close (out);
}
}

View File

@ -1,25 +0,0 @@
#!/usr/bin/perl
require "/usr/local/bin/my/schnittcommon.pli";
if (!open (INDEX,"index.vdr"))
{
exit 1;
}
$index = $oindex = $ARGV[0];
if ($index > 0)
{
&prevI;
if ($oindex != $index)
{
print "$index\n";
}
else
{
print "$oindex\n";
}
}
else
{
print "0\n";
}

View File

@ -1,215 +0,0 @@
<html>
<head>
<title>Schneiden</title>
</head>
<body bgcolor=#C0C0C0>
<?
if ($level == 0)
{
$dircount=0;
$handle=opendir('/x1/video');
while ($file = readdir($handle)) {
if ($file != "." && $file != ".." && $file != "epg.data") {
$dir=$file;
$dircount++;
}
}
if ($dircount == 1) {
$level=1;
}
else
{
?>
<center><h1>Sender</h1></center>
<form action="index.php" method="post">
<input type=hidden name=level value="1">
<?
$handle=opendir('/x1/video');
while ($file = readdir($handle)) {
if ($file != "." && $file != ".." && $file != "epg.data") {
echo "<input type=submit name=dir value=\"$file\">\n";
}
}
closedir($handle);
?>
</form>
<?
}
}
if ($level == 1)
{
$dircount=0;
$handle=opendir("/x1/video/$dir");
while ($file = readdir($handle)) {
if ($file != "." && $file != "..") {
$dira="$dir/$file";
$dircount++;
}
}
if ($dircount == 1) {
$dir = $dira;
$level = 2;
}
else
{
?>
<form action="index.php" method="post">
<input type=hidden name=level value="2">
<?
echo "<center><h1>Filme/Serien fuer den Sender $dir</h1></center>";
$handle=opendir("/x1/video/$dir");
while ($file = readdir($handle)) {
if ($file != "." && $file != "..") {
echo "<input type=submit name=dir value=\"$dir/$file\"><br>\n";
}
}
closedir($handle);
?>
</form>
<?
}
}
if ($level == 2)
{
if ($aindex)
$index = $aindex;
else if (!$index)
$index = 0;
if ($dir)
chdir ("/x1/video/$dir");
switch ($cindex) {
case "-10000":
if ($index >=10000)
$index -= 10000;
break;
case "-4000":
if ($index >=4000)
$index -= 4000;
break;
case "-2000":
if ($index >=2000)
$index -= 2000;
break;
case "-1000":
if ($index >=1000)
$index -= 1000;
break;
case "-500":
if ($index >=500)
$index -= 500;
break;
case "-100":
if ($index >=100)
$index -= 100;
break;
case "Vorheriges I-Frame":
$pindex = $index - 1;
$fp = popen ("/usr/local/bin/my/getpreviframe.pl $pindex","r");
$i = fgets($fp,1000);
$index = chop ($i);
pclose ($fp);
break;
case "Naechstes I-Frame":
$index ++;
break;
case "+100":
$index += 100;
break;
case "+500":
$index += 500;
break;
case "+1000":
$index += 1000;
break;
case "+2000":
$index += 2000;
break;
case "+4000":
$index += 4000;
break;
case "+10000":
$index += 10000;
break;
}
if ($test)
{
$fp = popen ("/usr/local/bin/my/schnitt3.pl $index","r");
$i = fgets($fp,1000);
pclose ($fp);
$index = chop ($i);
}
if ($name)
{
$fp = fopen ("cut","w");
fputs ($fp,"$name\n");
fclose ($fp);
}
if ($cut)
{
$fp = fopen ("cut","a");
fputs ($fp,"$index\n");
fclose ($fp);
}
$fp = popen ("/usr/local/bin/my/schnitt.pl $index","r");
$i = fgets($fp,1000);
pclose ($fp);
$index = chop ($i);
system ("/usr/local/bin/my/dumpframe /x2/temp/bild.m2v");
system ("mv output.ppm /x2/temp");
system ("touch /x2/temp/newpic");
system ("killall sleep");
?>
<form action="index.php" method="post">
<input type=hidden name=level value="2">
<input type=hidden name=dir value="<?=$dir?>">
<input type=hidden name=index value=<?=$index?>>
<table width=90% align=center>
<tr>
<td><h1>Index <?=$index?></h1></td>
<td><h1>Dir: <?=$dir?></h1></td>
</tr>
</table>
<table width=80% align=center>
<tr>
<td><input type=submit name=cindex value="-10000"></td>
<td><input type=submit name=cindex value="-4000"></td>
<td><input type=submit name=cindex value="-2000"></td>
<td><input type=submit name=cindex value="-1000"></td>
<td><input type=submit name=cindex value="-500"></td>
<td><input type=submit name=cindex value="-100"></td>
<td><input type=submit name=cindex value="Vorheriges I-Frame"></td>
<td><input type=submit name=cindex value="Naechstes I-Frame"</td>
<td><input type=submit name=cindex value="+100"></td>
<td><input type=submit name=cindex value="+500"></td>
<td><input type=submit name=cindex value="+1000"></td>
<td><input type=submit name=cindex value="+2000"></td>
<td><input type=submit name=cindex value="+4000"></td>
<td><input type=submit name=cindex value="+10000"></td>
</tr>
</table>
<table>
<tr>
<td>Absoluter Index: <input type=text name=aindex size=6></td>
<td><input type=submit name=test value="Schnitt-Test"></td>
<td><input type=submit name=cut value="Mark"></td>
</form>
<form action="index.php" method="post">
<input type=hidden name=level value="2">
<input type=hidden name=dir value="<?=$dir?>">
<input type=hidden name=index value=<?=$index?>>
<td>Titel: <input type=text name=name size=50 maxlength=255></td>
</form>
</tr>
</table>
<?
}
?>
</body>
</html>

View File

@ -1,51 +0,0 @@
#! /usr/bin/perl
### Calculate the number of CPUs we want to keep busy
open IN, "/proc/cpuinfo";
$cpus = grep /processor.*:/, <IN>;
close IN;
### This is a list of files to encode
@names = @ARGV;
$dira = shift @names;
$dirb = shift @names;
### This is the name of the encoder to use.
$coder = "/usr/local/bin/mplex ";
###
###
###
###
# Encode a single file
sub do_one {
my($m2v) = shift;
# Make mp3 from wav
$m2v =~ s/\.m2v$//;
# In a subprocess, encode the file
printf "Multiplexing ${m2v}\n";
unless($pid = fork) {
system ("$coder ${dira}/${m2v}.m2v ${dira}/${m2v}.mp2 ${dirb}/${m2v}.mpg");
exit;
}
}
# Go ahead and prefork $cpus encoders
foreach $i (0 .. $cpus-1) {
&do_one($names[0]) if ($names[0] ne "");
shift @names;
}
# Wait for the end of each encoder, start a new one...
foreach $i (@names) {
wait;
&do_one($i);
}
# Wait for everything to close down.
while(wait > 0) {
;
}

View File

@ -1,30 +0,0 @@
#!/bin/sh
#
# Move files from DVB-Computer(s) to localmachine into $LOCALDIR
#
LOCALDIR=/x1/video
if [ ! "$UID" = 0 ]; then
if [ -d "$1" ]; then
if [ -f "$1/index.vdr" ]; then
cd $LOCALDIR
recdir=`echo "$1" | cut -d / -f4-`
mkdir -p "$recdir"
cd "$recdir"
dvbcomp=`echo "$1" | cut -d / -f2`
(echo cd "/video/video0/$recdir"; echo mget \*)| ftp -i $dvbcomp
cd $LOCALDIR
ssh $dvbcomp ls -Ls /video/video0/$recdir > /tmp/dvb
ls -Ls $recdir > /tmp/local
diff -u /tmp/dvb /tmp/local &> /dev/null && rm -rfv /$dvbcomp/video?/$recdir
rm /tmp/dvb
rm /tmp/local
rmdir --ignore-fail-on-non-empty `find /$dvbcomp/video?/ -type d -mindepth 1 | cut -d \/ -f-4 | grep -v temp | sort | uniq`
fi
fi
else
echo Not as root
fi
/usr/local/bin/my/process_summary.pl

View File

@ -1,10 +0,0 @@
#!/bin/sh
if [ "$1" != "" ]; then
vmount "$1"
fi
ssh dvb2 /usr/local/bin/my/novdr
sleep 1s
cat /mnt/*/* | buffer -b 1000 -S 1024 | ssh dvb2 play2
ssh dvb2 rm /tmp/novdr
umount /mnt/*

View File

@ -1,27 +0,0 @@
#!/usr/bin/perl
require "/usr/local/bin/my/schnittcommon.pli";
if (!open (INDEX,"index.vdr"))
{
exit 1;
}
$index = $ARGV[0];
&nextI;
$offset1 = $offset;
&readnext;
$off = $offset - $offset1;
close (FI);
$fi = sprintf ("%03d.vdr",$file);
open (FI,$fi);
open (FO,">bild");
sysseek (FI,$offset1,0);
sysread (FI,$temp,200000);
syswrite (FO,$temp,200000);
close (FI);
close (FO);
`cat bild | /usr/local/bin/avpes2mpeg > avpes`;
`/usr/local/bin/my/dumpframe avpes 1`;
#`/usr/local/bin/pes2av_pes bild | /usr/local/bin/pvademux /x2/temp bild`;
print "$index\n";

View File

@ -1,93 +0,0 @@
#!/usr/bin/perl
require "/usr/local/bin/my/schnittcommon.pli";
if (!open (INDEX,"index.vdr"))
{
print "Error opening index.vdr";
exit 1;
}
$index = $ARGV[0];
&nextI;
#&readnext;
$file1 = $file;
$offset1 = $offset;
$index = $ARGV[1];
&nextI;
#&readnext;
$file2 = $file;
$offset2 = $offset;
if ($file1 == $file2)
{
$count = $offset2 - $offset1;
$cond = 0;
$size = 1024*1024;
$fi = sprintf ("%03d.vdr",$file);
open (FI,$fi);
sysseek (FI,$offset1,0);
while ($cond == 0)
{
if ($count > $size)
{
$read = sysread (FI,$data,$size);
print $data;
$count -= $size;
}
else
{
$read = sysread (FI,$data,$count);
print $data;
$cond = 1;
}
}
}
else
{
$count = $offset2;
$cond = 0;
$read = $size = 1024*1024;
$fi = sprintf ("%03d.vdr",$file1);
open (FI,$fi);
sysseek (FI,$offset1,0);
while ($read == $size)
{
$read = sysread (FI,$data,$size);
print $data;
}
close (FI);
$file1++;
while ($file1 != $file2)
{
$fi = sprintf ("%03d.vdr",$file1);
open (FI,$fi);
$read = 1024*1024;
while ($read == $size)
{
$read = sysread (FI,$data,$size);
print $data;
}
close (FI);
$file1++;
}
$fi = sprintf ("%03d.vdr",$file2);
open (FI,$fi);
while ($cond == 0)
{
if ($count > $size)
{
$read = sysread (FI,$data,$size);
print $data;
$count -= $size;
}
else
{
$read = sysread (FI,$data,$count);
print $data;
$cond = 1;
}
}
}

View File

@ -1,64 +0,0 @@
#!/usr/bin/perl
require "/usr/local/bin/my/schnittcommon.pli";
open (INDEX,"index.vdr");
$index = $ARGV[0];
&nextI;
$oldindex = $index;
$tempindex = $index;
$add = -1;
$fi = sprintf ("%03d.vdr",$file);
open (FI2,$fi);
open (FO,">test");
sysseek (FI2,$offset,0);
sysread (FI2,$temp,3000000);
syswrite (FO,$temp,3000000);
close (FI2);
close (FO);
`/usr/local/bin/pvademux.old . test`;
if ( -s "test.mp2")
{
`rm test*`;
print "$index\n";
exit 0;
}
while (1)
{
if ($index == 0)
{
$add = 1;
}
if ($add = -1)
{
$index--;
&prevI;
}
else
{
nextI;
}
$fi = sprintf ("%03d.vdr",$file);
open (FI2,$fi);
open (FO,">test");
sysseek (FI2,$offset,0);
sysread (FI2,$temp,3000000);
syswrite (FO,$temp,3000000);
close (FI2);
close (FO);
`/usr/local/bin/pvademux.old . test`;
if ( -s "test.mp2")
{
`rm test*`;
if ($index < 0)
{
$index *= -1;
}
print "$index\n";
exit 0;
}
}

View File

@ -1,77 +0,0 @@
#!/usr/bin/perl
require "/usr/local/bin/my/schnittcommon.pli";
open (INDEX,"index.vdr");
$index = $ARGV[0];
&nextI;
$oldindex = $index;
$tempindex = $index;
$add = -1;
$fi = sprintf ("%03d.vdr",$file);
open (FI2,$fi);
open (FO,">test2");
sysseek (FI2,$offset,0);
sysread (FI2,$temp,3000000);
syswrite (FO,$temp,3000000);
close (FI2);
close (FO);
system ("pes2av_pes test2 > test 2>/dev/null");
open (PVA,"/usr/local/bin/pvademux.old . test 2>&1 |");
@a=<PVA>; close PVA;
@b=split (/\s/,$a[2]);
if (!($b[4] =~ /\-/) && $b[4] < 2000)
{
unlink <test*>;
print "$index\n";
exit 0;
}
while (1)
{
if ($index == 0)
{
$add = 1;
}
if ($add = -1)
{
$index--;
&prevI;
}
else
{
nextI;
}
$fi = sprintf ("%03d.vdr",$file);
open (FI2,$fi);
open (FO,">test2");
sysseek (FI2,$offset,0);
sysread (FI2,$temp,3000000);
syswrite (FO,$temp,3000000);
close (FI2);
close (FO);
system ("/usr/local/bin/pes2av_pes test2 > test 2>/dev/null");
open (PVA,"/usr/local/bin/pvademux.old . test 2>&1 |");
@a=<PVA>; close PVA;
@b=split (/\s/,$a[2]);
if (!($b[4] =~ /\-/) && $b[4] < 2000)
{
unlink <test*>;
if ($index < 0)
{
$index *= -1;
}
print "$index\n";
exit 0;
}
}

View File

@ -1,13 +0,0 @@
#!/usr/bin/perl
open (FI,$ARGV[0]) or die "Kann Input-Datei nicht oeffnen";
$count = 1;
while (<FI>)
{
chomp;
$char = sprintf ("%c",$count + 96);
print "Cutting from/to $_ into /x2/clips/$char\n";
system ("/usr/local/bin/my/schnitt2.pl $_ > /x2/clips/$char");
$count++;
}

View File

@ -1,16 +0,0 @@
#!/usr/bin/perl
require "/usr/local/bin/my/schnittcommon.pli";
open (INDEX,"index.vdr");
$index = $ARGV[0] - 15000;
&nextI;
$file1 = $file;
$index += 30000;
&nextI;
$file2 = $file;
print "$file1 $file2\n";

View File

@ -1,30 +0,0 @@
#!/usr/bin/perl
open (FI,"a");
while (<FI>)
{
open (SCH,"/usr/local/bin/my/schnitt5.pl $_|");
$files = <SCH>;
chomp $files;
($a,$b) = split (/\s/,$files);
$files[$a] = 1;
$files[$b] = 1;
close (SCH);
}
while (<0*.vdr>)
{
$_ =~ /\d(\d\d)\.vdr/;
if ($files[$1])
{
print "Keeping $1\n";
}
else
{
print "Deleting $_\n";
unlink $_;
}
}
close (FI);

View File

@ -1,64 +0,0 @@
sub nextI
{
if (!$size)
{
$size = -s INDEX;
}
local ($a,$b,$c,$dummy);
$cond = 0;
seek (INDEX,$index * 8,0);
while ($cond == 0)
{
&readnext;
if ($frame == 1)
{
$cond = 1;
}
else
{
$index++;
if ($index > ($size/8-1))
{
$index = $size/8-1;
&prevI;
print "$index\n";
exit 1;
}
}
}
}
sub readnext
{
read (INDEX,$a,4);
read (INDEX,$b,1);
read (INDEX,$c,1);
read (INDEX,$dummy,2);
$offset = unpack ("L",$a);
$frame = unpack ("C",$b);
$file = unpack ("C",$c);
}
sub prevI
{
local ($a,$b,$c,$dummy);
$cond = 0;
seek (INDEX,$index * 8,0);
while ($cond == 0)
{
&readnext;
if ($frame == 1)
{
$cond = 1;
}
else
{
$index--;
seek (INDEX,$index * 8,0);
}
}
}
1;

View File

@ -1,11 +0,0 @@
#!/bin/sh
cd /x2/temp
while true
do
if [ -f newpic ]; then
killall xli
rm -f newpic
xli output000.ppm &
fi
sleep 24h
done

View File

@ -1,25 +0,0 @@
#!/usr/bin/perl
while (<>)
{
$h{$_}=1;
}
foreach $key (sort shuffle keys %h)
{
print $key;
}
sub shuffle {
$ran = rand(1);
if ($ran > 0.5)
{
return -1;
}
else
{
return 1;
}
}

View File

@ -1,40 +0,0 @@
#!/usr/bin/perl -w
use strict;
use Socket;
my ($dest, $port, $iaddr, $paddr, $proto, $line);
$dest = "localhost";
$port = "2001";
$iaddr = inet_aton($dest) || Error("no host: $dest");
$paddr = sockaddr_in($port, $iaddr);
$proto = getprotobyname('tcp');
socket(SOCK, PF_INET, SOCK_STREAM, $proto) || Error("socket: $!");
connect(SOCK, $paddr) || Error("connect: $!");
select (SOCK); $| = 1;
$a=<SOCK>;
for (;;)
{
open (FI,"/tmp/vdr-keys");
while (<FI>)
{
chomp;
print "$_\r\n";
$a=<SOCK>;
}
close (FI);
}
print "quit\r\n";
$a=<SOCK>;
close (SOCK) || Error("close: $!");
sub Error
{
print STDERR "@_\n";
exit 0;
}

View File

@ -1,2 +0,0 @@
#!/bin/sh
irpty ~/.lircrc-vdr -- vdr -c /home/ms/.vdr -v /video/video0

View File

@ -1,18 +0,0 @@
#!/bin/sh
count=1
cond=0
if [ -f "$1" ]; then
mount "$1" /mnt/1 -o loop
cond=1
else
while [ "$cond" != "1" ]
do
if [ -f "$1$count" ]; then
mount "$1$count" /mnt/$count -o loop
else
cond=1
fi
let count=count+1
done
fi

View File

@ -1,250 +0,0 @@
#!/usr/bin/perl
# Reads the file statdvb.dat produced by the Siemens windows
# software (1.50), which contains the scanned channels of an
# DVB-C (-S). The file ist located in the windows directory.
#
# Output is suitable for VDR (channels.conf). Only tested for
# the cable version. Should work with slight modifications for
# the sat version.
#
# 8. März 2001 - Hans-Peter Raschke
# file structure derived from "DvbGlobalDef.h" of the Siemens
# DVB kit.
# typedef int TABLETYPE;
# enum TunStandard
# {
# PAL_BG, //B/G stereo or mono
# PAL_I, //I mono (with Nicam stereo)
# PAL_DK, //D/K mono
# SECAM_L, //L mono (with Nicam stereo)
# SECAM_LI, //Secam L (with Nicam stereo)
# SECAM_DK,
# SECAM_BG,
# NTSC_M,
# DVB_C,
# DVB_S,
# DVB_T
# };
#
# typedef struct TunProgDataTag //xx bytes+1string
# {
# int nNumber; //logical number of the program
# DWORD dwFrequency; //frequency in khz
# CString csName; //name of the program
# TunStandard eStandard; //standard of the program
# DWORD dwExtraInfo; //specific info, like teletext,reserved data
# //0x8 == external input 1-CVBS
# //0x10 == external input 2-Y/C
# //0x20 == scrambled Program stream
# //0x40 == ASTRA Sattable
# //0x80 == Eutelsat Sattable
# //0xC0 == Sattable from File
# //0x100 == Pulsed switch to other satellite dish
# //0x1000-0xF000 = Other Satellite Nr(if Sattable from File)
# //Digital only params beginning from here
# WORD ProgNr; //DVB Nr for the prog (PAS related)
# WORD wTS_ID; //Transport-Stream ID orig.
# WORD wNW_ID; //Network ID orig.
# WORD wService_ID; //Service /Programm Id
# BYTE nModulation; //Modulation-Type QAM,QPSK,other
# BYTE nFEC_outerinner; //outer(high nibble) and inner(low n.)
# DWORD dwSymbolrate; //in symbol/s
# BOOL b22kHz; //east or west(TRUE) position in Sat
# BOOL bVertical_pos; //horizontal or vertical(TRUE) position in SAT
# BYTE nProgtype; //type of service (e.g. tv, radio)
# WORD wVideo_PID; //video-pid of the channel
# WORD wAudio_PID; //audio-pid of the channel
# WORD wPMT_PID; //PID of the associated PMT
# WORD wTxt_PID; //teletext PID for the program
# WORD wSubtitling_PID; //subtitling PID for the program
# WORD wData_PID; //PID for data broadcast
# BYTE nIPFilter; //filter for different ip's
# DWORD dwReserved1; //Shows some extended Information LOWORD=DataBroadcast_Id,
# //MSB showing Databroadcast, (HIWORD & 0xFF)=ComponentTag from the stream ident desc
# DWORD dwReserved2; //reserved dword
# }DVBTunProgData;
#
use strict;
use FileHandle;
# for a full dump
my @varNames = ("nNumber", # logical number of the program
"dwFrequency", # frequency in khz
"csName", # name of the program
"eStandard", # standard of the program
"dwExtraInfo", # specific info, like teletext,reserved data
# 0x8 == external input 1-CVBS
# 0x10 == external input 2-Y/C
# 0x20 == scrambled Program stream
# 0x40 == ASTRA Sattable
# 0x80 == Eutelsat Sattable
# 0xC0 == Sattable from File
# 0x100 == Pulsed switch to other satellite dish
# 0x1000-0xF000 = Other Satellite Nr(if Sattable from File)
"ProgNr", # DVB Nr for the prog (PAS related)
"wTS_ID", # Transport-Stream ID orig.
"wNW_ID", # Network ID orig.
"wService_ID", # Service /Programm Id
"nModulation", # Modulation-Type QAM,QPSK,other
"nFEC_outerinner", # outer(high nibble) and inner(low n.)
"dwSymbolrate", # in symbol/s
"b22kHz", # east or west(TRUE) position in Sat
"bVertical_pos", # horizontal or vertical(TRUE) position in SAT
"nProgtype", # type of service (e.g. tv, radio)
"wVideo_PID", # video-pid of the channel
"wAudio_PID", # audio-pid of the channel
"wPMT_PID", # PID of the associated PMT
"wTxt_PID", # teletext PID for the program
"wSubtitling_PID", # subtitling PID for the program
"wData_PID"); # PID for data broadcast
my @outVar = ("csName",
"dwFrequency",
"bVertical_pos",
"b22kHz",
"dwSymbolrate",
"wVideo_PID",
"wAudio_PID",
"wTxt_PID",
"dwExtraInfo",
"ProgNr");
# channels that need a valid smartcard
my @addCrypted = ("Extreme Sport",
"Bloomberg",
"Fashion TV",
"BET ON JAZZ",
"LANDSCAPE",
"Einstein",
"Single TV");
my @chNames = (); # list of scanned channels
my $camNo = 1; # number of CI/CAM to use
my %chData; # all channel data
my $buff; # input buffer
my $fh = new FileHandle("$ARGV[0]") or die "Datei $ARGV[0] nicht gefunden!";
binmode($fh); # could be run on windows
$fh->seek(4, 0); # skip id
my $chCnt = 0;
while (!$fh->eof()) {
$chCnt++;
last if ($fh->read($buff, 7) != 7);
my ($nNumber,
$dwFrequency,
$sLen
) = unpack("SLC", $buff);
last if ($fh->read($buff, $sLen) != $sLen);
my ($csName) = unpack("A$sLen", $buff);
$csName =~ s/:/./g;
$csName =~ s/^\s+//;
$csName =~ s/\s+$//;
last if ($fh->read($buff, 54) != 54);
my ($eStandard,
$dwExtraInfo,
$ProgNr,
$wTS_ID,
$wNW_ID,
$wService_ID,
$nModulation,
$nFEC_outerinner,
$dwSymbolrate,
$b22kHz,
$bVertical_pos,
$nProgtype,
$wVideo_PID,
$wAudio_PID,
$wPMT_PID,
$wTxt_PID,
$wSubtitling_PID,
$wData_PID
) = unpack("LLSSSSCCLLLCSSSSSS", $buff);
# some modifications for VDR
$dwFrequency /= 1000;
$bVertical_pos = $bVertical_pos ? "v" : "h";
$dwSymbolrate /= 1000;
$dwExtraInfo = ($dwExtraInfo == 32 || grep(($_ cmp $csName) == 0, @addCrypted)) ? $camNo : 0;
my $x = 1;
my $orgName = $csName;
while (exists($chData{$csName})) {
$csName = "$orgName" . "_$x";
$x++;
}
push(@chNames, $csName);
my %tmp = ("nNumber" => $nNumber,
"dwFrequency" => $dwFrequency,
"csName" => $orgName,
"eStandard" => $eStandard,
"dwExtraInfo" => $dwExtraInfo,
"ProgNr" => $ProgNr,
"wTS_ID" => $wTS_ID,
"wNW_ID" => $wNW_ID,
"wService_ID" => $wService_ID,
"nModulation" => $nModulation,
"nFEC_outerinner" => $nFEC_outerinner,
"dwSymbolrate" => $dwSymbolrate,
"b22kHz" => $b22kHz,
"bVertical_pos" => $bVertical_pos,
"nProgtype" => $nProgtype,
"wVideo_PID" => $wVideo_PID,
"wAudio_PID" => $wAudio_PID,
"wPMT_PID" => $wPMT_PID,
"wTxt_PID" => $wTxt_PID,
"wSubtitling_PID" => $wSubtitling_PID,
"wData_PID" => $wData_PID);
$chData{$csName} = {%tmp};
}
print STDERR "$chCnt channels found!\n";
# now we print the channels.conf
# crypted TV
print ":verschlüsselte Fernsehprogramme\n";
for my $n (@chNames) {
my %tmp = %{$chData{$n}};
printChannel($chData{$n}) if ($tmp{"nProgtype"} == 1 && $tmp{"dwExtraInfo"});
}
# TV
print ":Fernsehprogramme\n";
for my $n (@chNames) {
my %tmp = %{$chData{$n}};
printChannel($chData{$n}) if ($tmp{"nProgtype"} == 1 && !$tmp{"dwExtraInfo"});
}
# crypted radio
print ":verschlüsselte Radioprogramme\n";
for my $n (@chNames) {
my %tmp = %{$chData{$n}};
printChannel($chData{$n}) if ($tmp{"nProgtype"} == 2 && $tmp{"dwExtraInfo"});
}
# radio
print ":Radioprogramme\n";
for my $n (@chNames) {
my %tmp = %{$chData{$n}};
printChannel($chData{$n}) if ($tmp{"nProgtype"} == 2 && !$tmp{"dwExtraInfo"});
}
sub printChannel {
my $p = shift;
my @tmp = ();
for my $n (@outVar) {
push(@tmp, ${$p}{$n});
}
print join(":", @tmp), "\n";
}

View File

@ -1,16 +0,0 @@
#
# Makefile for xtvrc2vdr utility
#
OBJS = xtvrc2vdr.o
%.o: %.c
gcc -g -O2 -Wall -c $(DEFINES) $<
all: xtvrc2vdr
xtvrc2vdr: $(OBJS)
gcc -g -O2 $(OBJS) -o xtvrc2vdr
clean:
-rm -f $(OBJS) xtvrc2vdr

View File

@ -1,191 +0,0 @@
TV Polonia:10719:v:1:27500:163:92:0:0
Credit Agricole:10834:v:1:27500:5321:5333:0:0
La Chaine Parlementaire:10873:v:1:27500:1020:1030:0:0
TMT:10892:v:1:27500:163:92:0:0
Multivision Accueil:10911:v:1:27500:320:330:0:0
RTL:11054:v:1:27500:160:80:0:0
VOX:11054:v:1:27500:500:501:0:0
Sat 1 A:11054:v:1:27500:511:512:0:0
RTL II Austria:11054:v:1:27500:520:521:0:0
NBC Europe:11054:v:1:27500:550:551:0:0
ZDF:11054:v:1:27500:570:571:0:0
K-T9:11054:v:1:27500:580:581:0:0
Sat 1 Schweiz:11604:v:1:27500:101:102:0:0
MKT9:11623:v:1:27500:222:242:0:0
Olisat TV Promo:11623:v:1:27500:226:246:0:0
Bloomberg TV Germany:11642:v:1:27500:1460:1420:0:0
Bloomberg TV UK:11642:v:1:27500:1560:1520:0:0
SAT 7:11642:v:1:27500:1660:1620:0:0
Multivision 1:11662:v:1:27500:120:130:0:0
Dubai EDT9:11746:v:1:27500:4130:4131:0:0
Dubai Sport Channel:11746:v:1:27500:4386:4387:0:0
Dubai Business Channel:11746:v:1:27500:4642:4643:0:0
Dubai EDT9:11746:v:1:27500:4898:4899:0:0
RAI Uno:11766:v:1:27500:160:80:0:0
RAI Due:11766:v:1:27500:161:84:0:0
RAI Tre:11766:v:1:27500:162:88:0:0
RAI Mosaico:11766:v:1:27500:518:8191:0:0
RAI SportSat:11804:v:1:27500:512:650:0:0
RAI Nettuno Sat 2:11804:v:1:27500:513:651:0:0
RAI Educational:11804:v:1:27500:514:652:0:0
TelePace :11804:v:1:27500:515:653:0:0
RAI News24:11804:v:1:27500:516:654:0:0
Camera dei Deputati:11804:v:1:27500:517:655:0:0
SAT 2000:11804:v:1:27500:518:656:0:0
RAI NettunoSat 1:11804:v:1:27500:519:657:0:0
ERT Sat:11823:v:1:27500:521:740:0:0
INT9:11843:v:1:27500:2324:2325:0:0
TVL:11843:v:1:27500:2441:2442:0:0
Team TV :11881:v:1:27500:2305:2306:0:0
Ante Prima:11881:v:1:27500:2435:2436:0:0
SNAI:11881:v:1:27500:2561:2562:0:0
Italia 1 :11919:v:1:27500:512:650:0:0
Canale 5:11919:v:1:27500:513:660:0:0
Rete 4 :11919:v:1:27500:514:670:0:0
ART Europe:12015:v:1:27500:164:96:0:0
ESC 2:12015:v:1:27500:166:104:0:0
ART Iqra:12015:v:1:27500:168:112:0:0
Vetrina D+:12034:v:1:27500:166:105:0:0
D+ Info:12073:v:1:27500:160:80:0:0
Palco Promo:12073:v:1:27500:161:84:0:0
Vacaciones T9:12092:v:1:27500:4112:4113:0:0
TvL - TV Locale:12092:v:1:27500:4160:4161:0:0
Satisfaction T9:12092:v:1:27500:4192:4193:0:0
TVE Internacional:12092:v:1:27500:4208:4209:0:0
TVG - TV de Galicia :12092:v:1:27500:4224:4225:0:0
La Cadena Del Milagro:12092:v:1:27500:4368:4369:0:0
Fiesta:12092:v:1:27500:4432:4433:0:0
Visions Europe:12092:v:1:27500:4416:4417:0:0
SateliTV/TV Sex Channel:12092:v:1:27500:4480:4481:0:0
Krisma:12111:v:1:27500:200:201:0:0
NT9:12111:v:1:27500:210:211:0:0
Armenia TV 1:12111:v:1:27500:240:241:0:0
SMAU Channel :12111:v:1:27500:260:261:0:0
JSC - Al Jazeera Satellite Ch :12111:v:1:27500:270:271:0:0
Il Tirreno Sat:12111:v:1:27500:280:301:0:0
Coming Soon T9:12111:v:1:27500:310:311:0:0
Alice:12149:v:1:27500:160:161:0:0
Nuvolari Promo:12149:v:1:27500:176:177:0:0
CCTV 4:12169:v:1:27500:516:690:0:0
Kanali Vuolis:12169:v:1:27500:517:700:0:0
Nova Promo:12169:v:1:27500:521:740:0:0
ERT Sat :12188:v:1:27500:514:652:0:0
Kanali Voulis:12188:v:1:27500:515:653:0:0
OTE Promo:12188:v:1:27500:517:655:0:0
TV 5 Europe:12245:v:1:27500:121:131:0:0
Fashion T9:12245:v:1:27500:123:133:0:0
TV Ajara:12245:v:1:27500:127:137:0:0
Telekom T9:12265:v:1:27500:1460:1420:0:0
SLO-TV1:12303:v:1:27500:200:201:0:0
Polonia 1:12303:v:1:27500:205:206:0:0
Super 1:12303:v:1:27500:207:208:0:0
Sicilia Internacional:12303:v:1:27500:210:211:0:0
SicilSat:12303:v:1:27500:225:226:0:0
TBNE Italy:12303:v:1:27500:230:231:0:0
Countdown T9:12303:v:1:27500:235:236:0:0
Napoli International:12303:v:1:27500:240:241:0:0
Magic T9:12303:v:1:27500:245:246:0:0
TEST:12341:v:1:27500:165:108:0:0
Colour Bars:12380:v:1:27500:3022:3032:0:0
Tele 24 :12380:v:1:27500:3023:3033:0:0
Abu Dhabi TV :12380:v:1:27500:3024:3034:0:0
LCA:12380:v:1:27500:3025:3035:0:0
RTV Montenegro:12380:v:1:27500:3026:3036:0:0
SRG SSR Sat Access :12399:v:1:27500:165:98:0:0
Jam-e-Jam Network 1 (IRIB 1):12437:v:1:27500:160:80:0:0
Jam-e-Jam Network 2 (IRIB 2):12437:v:1:27500:161:82:0:0
Sahar University Network:12437:v:1:27500:162:84:0:0
Maharishi Open University:12476:v:1:27500:42:43:0:0
Europe by Satellite:12476:v:1:27500:101:201:0:0
Pink Backup:12476:v:1:27500:308:256:0:0
Mizik Tropical:12476:v:1:27500:435:436:0:0
TLI info card:12476:v:1:27500:771:768:0:0
Liberty T9:12476:v:1:27500:941:942:0:0
HRT TV 1:12520:v:1:27500:100:101:0:0
HRT National:12520:v:1:27500:107:108:0:0
BVN TV:12520:v:1:27500:210:211:0:0
Sicilia International:12520:v:1:27500:501:502:0:0
Sardegna Uno:12520:v:1:27500:503:504:0:0
TGRT:12520:v:1:27500:505:506:0:0
Euro Mediterraneo:12520:v:1:27500:510:511:0:0
WWWTravel T9:12540:v:1:27500:1180:1183:0:0
WWWTravel T9:12540:v:1:27500:1180:1184:0:0
WWWTravel T9:12540:v:1:27500:1180:1185:0:0
Bulgaria T9:12540:v:1:27500:4612:4613:0:0
MC Sat Monte Carlo:12540:v:1:27500:5126:5122:0:0
MBC:12597:v:1:27500:160:80:0:0
SIMA-YEH-MOGHAVEMENT:12597:v:1:27500:161:84:0:0
NITV (National Iran TV ):12597:v:1:27500:163:92:0:0
BET International:12597:v:1:27500:167:108:0:0
JSTV 2 Info Card:12597:v:1:27500:2011:2012:0:0
EuroNews:12597:v:1:27500:2221:2231:0:0
EuroNews:12597:v:1:27500:2221:2232:0:0
EuroNews:12597:v:1:27500:2221:2233:0:0
EuroNews:12597:v:1:27500:2221:2234:0:0
EuroNews:12597:v:1:27500:2221:2235:0:0
EuroNews:12597:v:1:27500:2221:2236:0:0
EuroNews:12597:v:1:27500:2221:2237:0:0
Canal Agro Rual:12597:v:1:27500:2321:2331:0:0
MMO9:12616:v:1:27500:2561:2562:0:0
Dubai Sport Channel:12654:v:1:27500:1060:1020:0:0
Sharjah TV :12654:v:1:27500:1160:1120:0:0
Qatar T9:12654:v:1:27500:1260:1220:0:0
Saudi Channel 1 :12654:v:1:27500:1360:1320:0:0
Kuwait Space Channel :12654:v:1:27500:1460:1420:0:0
Libya T9:12654:v:1:27500:1560:1520:0:0
Sudan T9:12654:v:1:27500:1660:1620:0:0
Oman T9:12654:v:1:27500:1760:1720:0:0
Jordan Satellite Channel:12654:v:1:27500:1860:1820:0:0
Iraq Satellite Channel:12654:v:1:27500:1960:1920:0:0
Thai TV 5 Global Network :12673:v:1:27500:200:201:0:0
DigItaly:12673:v:1:27500:220:221:0:0
Studio Europa:12673:v:1:27500:230:231:0:0
Game Network:12673:v:1:27500:291:292:0:0
Video Italia :12673:v:1:27500:340:341:0:0
Telemarket:12673:v:1:27500:350:351:0:0
Evision:12673:v:1:27500:360:361:0:0
AB Passion:12692:v:1:27500:160:80:0:0
Onyx T9:12692:v:1:27500:161:84:0:0
EWTN:10723:v:1:29900:1001:1201:0:0
Test (Newslynx):10723:v:1:29900:1002:1202:0:0
MTA International:10723:v:1:29900:1004:1204:0:0
J TV Test:10992:v:1:27500:2436:2437:0:0
Bloomberg UK Test Card:11242:v:1:27500:162:88:0:0
Channel SUN Test (KBT):11604:v:1:27500:111:112:0:0
Racing Channel Test:11623:v:1:27500:223:243:0:0
Test Card (pgm 4):11623:v:1:27500:224:244:0:0
Olisat TLC test card:11623:v:1:27500:225:245:0:0
Channel SUN Test (KBT):11623:v:1:27500:229:249:0:0
Rai way 3 test card:11766:v:1:27500:164:96:0:0
Rai way 1 test card:11766:v:1:27500:515:653:0:0
Rai way 2 test card:11766:v:1:27500:516:654:0:0
Test (Local Satellite):12092:v:1:27500:4176:4177:0:0
Retelsat Test:12092:v:1:27500:4464:4465:0:0
AIT Test Card:12111:v:1:27500:220:221:0:0
Fucino Test Card:12111:v:1:27500:230:231:0:0
Espresso(Antenna Hungaria Test Card):12149:v:1:27500:36:37:0:0
Antenna Hungaria Test Card:12149:v:1:27500:96:97:0:0
Antenna Hungaria Test Card:12149:v:1:27500:112:113:0:0
Leonardo (Antenna Hungaria Test):12149:v:1:27500:128:129:0:0
Test (Sahar):12437:v:1:27500:163:86:0:0
Test 1:12437:v:1:27500:164:88:0:0
Test 2:12437:v:1:27500:165:90:0:0
CNES-Toulouse test:12558:v:1:27500:6143:6142:0:0
Test Card:12597:v:1:27500:161:84:0:0
FEED:11242:v:1:27500:167:108:0:0
Feed :11623:v:1:27500:221:241:0:0
Quantum 24 :10913:v:1:3998:1160:1120:0:0
Quantum 24:10913:v:1:3998:1160:1220:0:0
VIVA Polska:11131:v:1:4340:98:99:0:0
Deutsche Welle T9:11196:v:1:9096:101:102:0:0
Canal 24 Horas :11205:v:1:4000:4130:4131:0:0
TV 5 Asie :11338:v:1:5632:512:640:0:0
RAI4IFA:11548:v:1:4398:512:650:0:0
Pro TV International:12201:v:1:5632:1160:1120:0:0
TVN Polnoc:12211:v:1:5632:4194:4195:0:0
WorldNet Europe:12484:v:1:8298:4260:4220:0:0
WorldNet Europe:12484:v:1:8298:4360:4320:0:0
WorldNet Europe:12484:v:1:8298:4460:4420:0:0
WorldNet Europe:12484:v:1:8298:4560:4520:0:0
TVN Polnoc:12573:v:1:5632:4194:4195:0:0
APTN:12582:v:1:5632:308:256:0:0

File diff suppressed because it is too large Load Diff

View File

@ -1,146 +0,0 @@
/*
* * xtvrc2vdr.c: Converts 'xtvrc' files to 'vdr' channel format
* *
* * Copyright (C) 2000 Plamen Ganev
* *
* * This program is free software; you can redistribute it and/or
* * modify it under the terms of the GNU General Public License
* * as published by the Free Software Foundation; either version 2
* * of the License, or (at your option) any later version.
* *
* * This program is distributed in the hope that it will be useful,
* * but WITHOUT ANY WARRANTY; without even the implied warranty of
* * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* * GNU General Public License for more details.
* *
* * You should have received a copy of the GNU General Public License
* * along with this program; if not, write to the Free Software
* * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* * Or, point your browser to http://www.gnu.org/copyleft/gpl.html
* *
* * The author can be reached at pganev@comm.it
* *
* */
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#define MAX_LINE_LEN 1024
#define MAX_NAME 100
#define TOKS ": \n\r"
#define NAMETOKS ":\n\r"
typedef struct {
char Name[MAX_NAME+1];
int freq;
int color, hue, bright, saturation ;
int nitv, input ;
int pol, srate, fec, vpid, apid, lnbnum, type;
} CHANNEL_DATA ;
void strlwr( char *s ){
while ( s && *s ){
*s = tolower(*s);
s++;
}
}
int ReadChannel( FILE *f, CHANNEL_DATA *channel ) {
static char s[MAX_LINE_LEN+1];
char *p;
memset( channel, sizeof( CHANNEL_DATA ), 0 ) ;
while ((p=fgets( s, MAX_LINE_LEN, f ))!=NULL){
// printf("%s", s ) ;
if (s[0] == '*')
break ;
}
if ( !p ) { /* EOF? */
// printf("EOF\n");
return 0 ;
}
while (fgets( s, MAX_LINE_LEN, f )){
if ( s[0] == '\n' )
return channel->freq ? 1 : 0;
p = strtok( s, TOKS ) ;
if ( !p ) {
return 0;
}
strlwr( p ) ;
if ( !strcmp( p, "channel" )){
p=strtok( NULL, NAMETOKS );
while ( p && *p==' ')
p++;
strcpy( channel->Name, p );
// printf("%d ", channel->freq ) ;
} else if ( !strcmp( p, "frequency")) {
channel->freq = atoi( p=strtok( NULL, TOKS ));
// printf("%d ", channel->freq ) ;
} else if ( !strcmp( p, "cbhc")) {
channel->color = atoi(p=strtok(NULL,TOKS));
channel->hue = atoi(p=strtok(NULL,TOKS));
channel->bright = atoi(p=strtok(NULL,TOKS));
channel->saturation = atoi(p=strtok(NULL,TOKS));
} else if ( !strcmp( p, "ni")) {
channel->nitv = atoi(p=strtok(NULL,TOKS));
channel->input = atoi(p=strtok(NULL,TOKS));
} else if ( !strcmp( p, "sat")) {
channel->pol = atoi(p=strtok(NULL,TOKS));
channel->srate = atoi(p=strtok(NULL,TOKS));
channel->fec = atoi(p=strtok(NULL,TOKS));
channel->vpid = atoi(p=strtok(NULL,TOKS));
channel->apid = atoi(p=strtok(NULL,TOKS));
channel->lnbnum = atoi(p=strtok(NULL,TOKS));
channel->type = atoi(p=strtok(NULL,TOKS));
} else
printf("Unknown token %s\n", p ) ;
}
return 1 ;
}
int main ( int argc, char *argv[] ){
FILE *f, *fo ;
int cnt = 0;
CHANNEL_DATA channel ;
if ( argc != 3 ){
printf("USAGE: %s <xtvrc file> <vdr file>\n\n", argv[0] ) ;
return 0;
}
if ( !(f=fopen(argv[1], "rt"))){
printf("Can't open %s for reading\n\n", argv[1]);
return 0;
}
if ( !(fo=fopen(argv[2], "wt"))){
printf("Can't open %s for writing\n\n", argv[2]);
return 0;
}
while ( ReadChannel( f, &channel ) ) {
cnt++;
fprintf(fo, "%s:%d:%c:%d:%d:%d:%d:%d:%d\n",
channel.Name ,
channel.freq ,
channel.pol ? 'v' : 'h' ,
1, //channel.lnbnum ,
channel.srate ,
channel.vpid ,
channel.apid ,
0, //channel.type ,
0 ); //channel.fec ) ;
}
printf( "%d channels read.\n\n", cnt ) ;
fclose(f);
fclose(fo);
return 1;
}

View File

@ -22,7 +22,7 @@ ZDF.info:11954:h:0:27500:610:620:0:0:28011
CNN:12168:v:0:27500:165:100:0:0:28512
Super RTL:12188:h:0:27500:165:120:65:0:12040
VOX:12188:h:0:27500:167:136:0:0:12060
DW TV:12363:v:0:27500:305:306:0:0:8905
DW TV:10788:v:0:22000:305:306:0:0:8905
Kabel 1:12480:v:0:27500:511:512:33:0:899
Neun Live:12480:v:0:27500:767:768:0:0:897
DSF:12480:v:0:27500:1023:1024:0:0:900
@ -80,7 +80,7 @@ Cinedom 1A:11758:h:0:27500:511:512,513:0:3:190
Cinedom 1B:12070:h:0:27500:1535:1536,1537:0:3:178
Cinedom 1C:11720:h:0:27500:511:512,513:0:3:180
Cinedom 1D:11720:h:0:27500:1535:1536,1537:0:3:176
Cinedom 2A:11758:h:0:27500:1023:1024:0:3:193
Cinedom 2A:11758:h:0:27500:1023:1024,1025:0:3:193
Cinedom 2B:11720:h:0:27500:1279:1280:0:3:183
Cinedom 2C:12070:h:0:27500:1791:1792:0:3:179
Cinedom 2D:12070:h:0:27500:511:512:0:3:184

View File

@ -1,6 +1,6 @@
:verschlüsselte Fernsehprogramm
PREMIERE ONE:378:h:0:6900:3071:3072:0:1:51
PREMIERE MOVIE 1:370:h:0:6900:511:512:0:1:10
PREMIERE MOVIE 1:370:h:0:6900:511:512;515:0:1:10
PREMIERE MOVIE 2:370:h:0:6900:1791:1792:0:1:11
PREMIERE MOVIE 3:370:h:0:6900:2303:2304:0:1:43
PREMIERE ACTION:370:h:0:6900:1023:1024,1025:0:1:20

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: config.c 1.76 2001/10/20 13:09:38 kls Exp $
* $Id: config.c 1.77 2002/01/19 16:06:42 kls Exp $
*/
#include "config.h"
@ -807,6 +807,7 @@ cSetup::cSetup(void)
DefaultPriority = 50;
DefaultLifetime = 50;
UseSubtitle = 1;
RecordingDirs = 1;
VideoFormat = VIDEO_FORMAT_4_3;
ChannelInfoPos = 0;
OSDwidth = 52;
@ -848,6 +849,7 @@ bool cSetup::Parse(char *s)
else if (!strcasecmp(Name, "DefaultPriority")) DefaultPriority = atoi(Value);
else if (!strcasecmp(Name, "DefaultLifetime")) DefaultLifetime = atoi(Value);
else if (!strcasecmp(Name, "UseSubtitle")) UseSubtitle = atoi(Value);
else if (!strcasecmp(Name, "RecordingDirs")) RecordingDirs = atoi(Value);
else if (!strcasecmp(Name, "VideoFormat")) VideoFormat = atoi(Value);
else if (!strcasecmp(Name, "ChannelInfoPos")) ChannelInfoPos = atoi(Value);
else if (!strcasecmp(Name, "OSDwidth")) OSDwidth = atoi(Value);
@ -924,6 +926,7 @@ bool cSetup::Save(const char *FileName)
fprintf(f, "DefaultPriority = %d\n", DefaultPriority);
fprintf(f, "DefaultLifetime = %d\n", DefaultLifetime);
fprintf(f, "UseSubtitle = %d\n", UseSubtitle);
fprintf(f, "RecordingDirs = %d\n", RecordingDirs);
fprintf(f, "VideoFormat = %d\n", VideoFormat);
fprintf(f, "ChannelInfoPos = %d\n", ChannelInfoPos);
fprintf(f, "OSDwidth = %d\n", OSDwidth);

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: config.h 1.86 2001/11/25 15:57:08 kls Exp $
* $Id: config.h 1.88 2002/01/19 16:06:53 kls Exp $
*/
#ifndef __CONFIG_H
@ -18,7 +18,7 @@
#include "eit.h"
#include "tools.h"
#define VDRVERSION "0.99"
#define VDRVERSION "0.99pre2"
#define MAXPRIORITY 99
#define MAXLIFETIME 99
@ -292,6 +292,7 @@ public:
int PrimaryLimit;
int DefaultPriority, DefaultLifetime;
int UseSubtitle;
int RecordingDirs;
int VideoFormat;
int ChannelInfoPos;
int OSDwidth, OSDheight;

View File

@ -7,7 +7,7 @@
* DVD support initially written by Andreas Schultz <aschultz@warp10.net>
* based on dvdplayer-0.5 by Matjaz Thaler <matjaz.thaler@guest.arnes.si>
*
* $Id: dvbapi.c 1.141 2001/11/25 16:38:09 kls Exp $
* $Id: dvbapi.c 1.146 2002/01/26 15:39:48 kls Exp $
*/
//#define DVDDEBUG 1
@ -116,7 +116,7 @@ public:
cIndexFile(const char *FileName, bool Record);
~cIndexFile();
bool Ok(void) { return index != NULL; }
void Write(uchar PictureType, uchar FileNumber, int FileOffset);
bool Write(uchar PictureType, uchar FileNumber, int FileOffset);
bool Get(int Index, uchar *FileNumber, int *FileOffset, uchar *PictureType = NULL, int *Length = NULL);
int GetNextIFrame(int Index, bool Forward, uchar *FileNumber = NULL, int *FileOffset = NULL, int *Length = NULL, bool StayOffEnd = false);
int Get(uchar FileNumber, int FileOffset);
@ -146,7 +146,7 @@ cIndexFile::cIndexFile(const char *FileName, bool Record)
delta = buf.st_size % sizeof(tIndex);
if (delta) {
delta = sizeof(tIndex) - delta;
esyslog(LOG_ERR, "ERROR: invalid file size (%d) in '%s'", buf.st_size, fileName);
esyslog(LOG_ERR, "ERROR: invalid file size (%ld) in '%s'", buf.st_size, fileName);
}
last = (buf.st_size + delta) / sizeof(tIndex) - 1;
if (!Record && last >= 0) {
@ -249,7 +249,7 @@ bool cIndexFile::CatchUp(int Index)
return false;
}
void cIndexFile::Write(uchar PictureType, uchar FileNumber, int FileOffset)
bool cIndexFile::Write(uchar PictureType, uchar FileNumber, int FileOffset)
{
if (f >= 0) {
tIndex i = { FileOffset, PictureType, FileNumber, 0 };
@ -257,10 +257,11 @@ void cIndexFile::Write(uchar PictureType, uchar FileNumber, int FileOffset)
esyslog(LOG_ERR, "ERROR: can't write to index file");
close(f);
f = -1;
return;
return false;
}
last++;
}
return f >= 0;
}
bool cIndexFile::Get(int Index, uchar *FileNumber, int *FileOffset, uchar *PictureType, int *Length)
@ -506,7 +507,7 @@ cRecordBuffer::~cRecordBuffer()
bool cRecordBuffer::RunningLowOnDiskSpace(void)
{
if (time(NULL) > lastDiskSpaceCheck + DISKCHECKINTERVAL) {
uint Free = FreeDiskSpaceMB(fileName.Name());
int Free = FreeDiskSpaceMB(fileName.Name());
lastDiskSpaceCheck = time(NULL);
if (Free < MINFREEDISKSPACE) {
dsyslog(LOG_INFO, "low disk space (%d MB, limit is %d MB)", Free, MINFREEDISKSPACE);
@ -2305,6 +2306,7 @@ void cTransferBuffer::Output(void)
class cCuttingBuffer : public cThread {
private:
const char *error;
bool active;
int fromFile, toFile;
cFileName *fromFileName, *toFileName;
@ -2315,10 +2317,12 @@ protected:
public:
cCuttingBuffer(const char *FromFileName, const char *ToFileName);
virtual ~cCuttingBuffer();
const char *Error(void) { return error; }
};
cCuttingBuffer::cCuttingBuffer(const char *FromFileName, const char *ToFileName)
{
error = NULL;
active = false;
fromFile = toFile = -1;
fromFileName = toFileName = NULL;
@ -2367,6 +2371,10 @@ void cCuttingBuffer::Action(void)
int FileOffset, Length;
uchar PictureType;
// Make sure there is enough disk space:
AssertFreeDiskSpace();
// Read one frame:
if (fromIndex->Get(Index++, &FileNumber, &FileOffset, &PictureType, &Length)) {
@ -2376,11 +2384,15 @@ void cCuttingBuffer::Action(void)
}
if (fromFile >= 0) {
Length = ReadFrame(fromFile, buffer, Length, sizeof(buffer));
if (Length < 0)
if (Length < 0) {
error = "ReadFrame";
break;
}
}
else
else {
error = "fromFile";
break;
}
}
else
break;
@ -2392,14 +2404,22 @@ void cCuttingBuffer::Action(void)
break;
if (FileSize > MEGABYTE(Setup.MaxVideoFileSize)) {
toFile = toFileName->NextFile();
if (toFile < 0)
if (toFile < 0) {
error = "toFile 1";
break;
}
FileSize = 0;
}
LastIFrame = 0;
}
safe_write(toFile, buffer, Length);
toIndex->Write(PictureType, toFileName->Number(), FileSize);
if (safe_write(toFile, buffer, Length) != Length) {
error = "safe_write";
break;
}
if (!toIndex->Write(PictureType, toFileName->Number(), FileSize)) {
error = "toIndex";
break;
}
FileSize += Length;
if (!LastIFrame)
LastIFrame = toIndex->Last();
@ -2418,8 +2438,10 @@ void cCuttingBuffer::Action(void)
CurrentFileNumber = 0; // triggers SetOffset before reading next frame
if (Setup.SplitEditedFiles) {
toFile = toFileName->NextFile();
if (toFile < 0)
if (toFile < 0) {
error = "toFile 2";
break;
}
FileSize = 0;
}
}
@ -2438,10 +2460,14 @@ void cCuttingBuffer::Action(void)
char *cVideoCutter::editedVersionName = NULL;
cCuttingBuffer *cVideoCutter::cuttingBuffer = NULL;
bool cVideoCutter::error = false;
bool cVideoCutter::ended = false;
bool cVideoCutter::Start(const char *FileName)
{
if (!cuttingBuffer) {
error = false;
ended = false;
cRecording Recording(FileName);
const char *evn = Recording.PrefixFileName('%');
if (evn && RemoveVideoFile(evn) && MakeDirs(evn, true)) {
@ -2456,8 +2482,17 @@ bool cVideoCutter::Start(const char *FileName)
void cVideoCutter::Stop(void)
{
bool Interrupted = cuttingBuffer && cuttingBuffer->Active();
const char *Error = cuttingBuffer ? cuttingBuffer->Error() : NULL;
delete cuttingBuffer;
cuttingBuffer = NULL;
if ((Interrupted || Error) && editedVersionName) {
if (Interrupted)
isyslog(LOG_INFO, "editing process has been interrupted");
if (Error)
esyslog(LOG_ERR, "ERROR: '%s' during editing process", Error);
RemoveVideoFile(editedVersionName); //XXX what if this file is currently being replayed?
}
}
bool cVideoCutter::Active(void)
@ -2465,16 +2500,32 @@ bool cVideoCutter::Active(void)
if (cuttingBuffer) {
if (cuttingBuffer->Active())
return true;
error = cuttingBuffer->Error();
Stop();
cRecordingUserCommand::InvokeCommand(RUC_EDITEDRECORDING, editedVersionName);
if (!error)
cRecordingUserCommand::InvokeCommand(RUC_EDITEDRECORDING, editedVersionName);
delete editedVersionName;
editedVersionName = NULL;
ended = true;
}
return false;
}
// --- cDvbApi ---------------------------------------------------------------
bool cVideoCutter::Error(void)
{
bool result = error;
error = false;
return result;
}
bool cVideoCutter::Ended(void)
{
bool result = ended;
ended = false;
return result;
}
// --- cDvbApi ---------------------------------------------------------------
static const char *OstName(const char *Name, int n)
{
@ -2842,7 +2893,11 @@ void cDvbApi::Open(int w, int h)
}
else if (d == 0) { //XXX full menu
osd->Create(0, 0, w, lineHeight, 2);
osd->Create(0, lineHeight, w, (Setup.OSDheight - 3) * lineHeight, 2, true, clrBackground, clrCyan, clrWhite, clrBlack);
osd->Create(0, lineHeight, w, (Setup.OSDheight - 3) * lineHeight, 2);
osd->AddColor(clrBackground);
osd->AddColor(clrCyan);
osd->AddColor(clrWhite);
osd->AddColor(clrBlack);
osd->Create(0, (Setup.OSDheight - 2) * lineHeight, w, 2 * lineHeight, 4);
}
else { //XXX progress display
@ -3197,7 +3252,7 @@ eSetChannelResult cDvbApi::SetChannel(int ChannelNumber, int Frequency, char Pol
}
}
else
esyslog(LOG_ERR, "ERROR %d in frontend get event", res);
esyslog(LOG_ERR, "ERROR %d in frontend get event (channel %d, card %d)", res, ChannelNumber, CardIndex() + 1);
}
else
esyslog(LOG_ERR, "ERROR: timeout while tuning");

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: dvbapi.h 1.59 2001/11/24 11:03:16 kls Exp $
* $Id: dvbapi.h 1.60 2002/01/26 13:01:16 kls Exp $
*/
#ifndef __DVBAPI_H
@ -69,10 +69,14 @@ class cVideoCutter {
private:
static char *editedVersionName;
static cCuttingBuffer *cuttingBuffer;
static bool error;
static bool ended;
public:
static bool Start(const char *FileName);
static void Stop(void);
static bool Active(void);
static bool Error(void);
static bool Ended(void);
};
class cDvbApi {

185
dvbosd.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: dvbosd.c 1.10 2001/07/24 16:25:34 kls Exp $
* $Id: dvbosd.c 1.12 2002/01/13 16:25:18 kls Exp $
*/
#include "dvbosd.h"
@ -257,25 +257,35 @@ const char *cBitmap::Data(int x, int y)
class cWindow : public cBitmap {
private:
int handle; // the index within the OSD's window array (0...MAXNUMWINDOWS - 1)
int x0, y0;
int bpp;
bool tiled;
bool shown;
public:
cWindow(int x, int y, int w, int h, int Bpp, bool ClearWithBackground = true);
cWindow(int Handle, int x, int y, int w, int h, int Bpp, bool ClearWithBackground, bool Tiled);
int X0(void) { return x0; }
int Y0(void) { return y0; }
int Bpp(void) { return bpp; }
bool Tiled(void) { return tiled; }
bool Shown(void) { bool s = shown; shown = true; return s; }
int Handle(void) { return handle; }
bool Contains(int x, int y);
void Relocate(int x, int y);
void Fill(int x1, int y1, int x2, int y2, eDvbColor Color);
void SetBitmap(int x, int y, const cBitmap &Bitmap);
void Text(int x, int y, const char *s, eDvbColor ColorFg = clrWhite, eDvbColor ColorBg = clrBackground);
const char *Data(int x, int y);
};
cWindow::cWindow(int x, int y, int w, int h, int Bpp, bool ClearWithBackground)
cWindow::cWindow(int Handle, int x, int y, int w, int h, int Bpp, bool ClearWithBackground, bool Tiled)
:cBitmap(w, h, Bpp, ClearWithBackground)
{
handle = Handle;
x0 = x;
y0 = y;
bpp = Bpp;
tiled = Tiled;
shown = false;
}
@ -286,19 +296,39 @@ bool cWindow::Contains(int x, int y)
return x >= 0 && y >= 0 && x < width && y < height;
}
void cWindow::Relocate(int x, int y)
{
x0 = x;
y0 = y;
}
void cWindow::Fill(int x1, int y1, int x2, int y2, eDvbColor Color)
{
cBitmap::Fill(x1 - x0, y1 - y0, x2 - x0, y2 - y0, Color);
if (tiled) {
x1 -= x0;
y1 -= y0;
x2 -= x0;
y2 -= y0;
}
cBitmap::Fill(x1, y1, x2, y2, Color);
}
void cWindow::SetBitmap(int x, int y, const cBitmap &Bitmap)
{
cBitmap::SetBitmap(x - x0, y - y0, Bitmap);
if (tiled) {
x -= x0;
y -= y0;
}
cBitmap::SetBitmap(x, y, Bitmap);
}
void cWindow::Text(int x, int y, const char *s, eDvbColor ColorFg, eDvbColor ColorBg)
{
cBitmap::Text(x - x0, y - y0, s, ColorFg, ColorBg);
if (tiled) {
x -= x0;
y -= y0;
}
cBitmap::Text(x, y, s, ColorFg, ColorBg);
}
const char *cWindow::Data(int x, int y)
@ -325,14 +355,28 @@ cDvbOsd::cDvbOsd(int VideoDev, int x, int y, int w, int h, int Bpp)
cDvbOsd::~cDvbOsd()
{
if (videoDev >= 0) {
while (numWindows > 0) {
Cmd(OSD_SetWindow, 0, numWindows--);
Cmd(OSD_Close);
delete window[numWindows];
}
for (int i = 0; i < numWindows; i++) {
SetWindow(window[i]);
Cmd(OSD_Close);
delete window[i];
}
numWindows = 0;
}
}
bool cDvbOsd::SetWindow(cWindow *Window)
{
// Window handles are counted 0...(MAXNUMWINDOWS - 1), but the actual window
// numbers in the driver are used from 1...MAXNUMWINDOWS.
int Handle = Window->Handle();
if (0 <= Handle && Handle < MAXNUMWINDOWS) {
Cmd(OSD_SetWindow, 0, Handle + 1);
return true;
}
esyslog(LOG_ERR, "ERROR: illegal window handle: %d", Handle);
return -1;
}
void cDvbOsd::Cmd(OSD_Command cmd, int color, int x0, int y0, int x1, int y1, const void *data)
{
if (videoDev >= 0) {
@ -347,62 +391,77 @@ void cDvbOsd::Cmd(OSD_Command cmd, int color, int x0, int y0, int x1, int y1, co
// must block all signals, otherwise the command might not be fully executed
sigset_t set, oldset;
sigfillset(&set);
sigdelset(&set, SIGALRM);
sigprocmask(SIG_BLOCK, &set, &oldset);
ioctl(videoDev, OSD_SEND_CMD, &dc);
usleep(5000); // XXX Workaround for a driver bug (cInterface::DisplayChannel() displayed texts at wrong places
// XXX and sometimes the OSD was no longer displayed).
// XXX Increase the value if the problem still persists on your particular system.
// TODO Check if this is still necessary with driver versions after 0.7.
if (cmd == OSD_SetBlock) // XXX this is the only command that takes longer
usleep(5000); // XXX Workaround for a driver bug (cInterface::DisplayChannel() displayed texts at wrong places
// XXX and sometimes the OSD was no longer displayed).
// XXX Increase the value if the problem still persists on your particular system.
// TODO Check if this is still necessary with driver versions after 0.7.
sigprocmask(SIG_SETMASK, &oldset, NULL);
}
}
bool cDvbOsd::Create(int x, int y, int w, int h, int Bpp, bool ClearWithBackground, eDvbColor Color0, eDvbColor Color1, eDvbColor Color2, eDvbColor Color3)
tWindowHandle cDvbOsd::Create(int x, int y, int w, int h, int Bpp, bool ClearWithBackground, bool Tiled)
{
/* TODO XXX
- check that no two windows overlap
*/
if (numWindows < MAXNUMWINDOWS) {
if (x >= 0 && y >= 0 && w > 0 && h > 0 && (Bpp == 1 || Bpp == 2 || Bpp == 4 || Bpp == 8)) {
if ((w & 0x03) != 0) {
w += 4 - (w & 0x03);
esyslog(LOG_ERR, "ERROR: OSD window width must be a multiple of 4 - increasing to %d", w);
}
cWindow *win = new cWindow(x, y, w, h, Bpp, ClearWithBackground);
if (Color0 != clrTransparent) {
win->Index(Color0);
win->Index(Color1);
win->Index(Color2);
win->Index(Color3);
win->Reset();
cWindow *win = new cWindow(numWindows, x, y, w, h, Bpp, ClearWithBackground, Tiled);
if (SetWindow(win)) {
window[win->Handle()] = win;
Cmd(OSD_Open, Bpp, x0 + x, y0 + y, x0 + x + w - 1, y0 + y + h - 1, (void *)1); // initially hidden!
numWindows++;
return win->Handle();
}
window[numWindows++] = win;
Cmd(OSD_SetWindow, 0, numWindows);
Cmd(OSD_Open, Bpp, x0 + x, y0 + y, x0 + x + w - 1, y0 + y + h - 1, (void *)1); // initially hidden!
else
delete win;
}
else
esyslog(LOG_ERR, "ERROR: illegal OSD parameters");
}
else
esyslog(LOG_ERR, "ERROR: too many OSD windows");
return false;
return -1;
}
void cDvbOsd::AddColor(eDvbColor Color, tWindowHandle Window)
{
cWindow *w = GetWindow(Window);
if (w) {
w->Index(Color);
w->Reset();
}
}
cWindow *cDvbOsd::GetWindow(int x, int y)
{
for (int i = 0; i < numWindows; i++) {
if (window[i]->Contains(x, y))
if (window[i]->Tiled() && window[i]->Contains(x, y))
return window[i];
}
return NULL;
}
cWindow *cDvbOsd::GetWindow(tWindowHandle Window)
{
if (0 <= Window && Window < numWindows)
return window[Window];
if (Window == LAST_CREATED_WINDOW && numWindows > 0)
return window[numWindows - 1];
return NULL;
}
void cDvbOsd::Flush(void)
{
for (int i = 0; i < numWindows; i++) {
int x1 = 0, y1 = 0, x2 = 0, y2 = 0;
if (window[i]->Dirty(x1, y1, x2, y2)) {
Cmd(OSD_SetWindow, 0, i + 1);
SetWindow(window[i]);
int FirstColor = 0, LastColor = 0;
const eDvbColor *pal;
while ((pal = window[i]->Colors(FirstColor, LastColor)) != NULL)
@ -414,28 +473,36 @@ void cDvbOsd::Flush(void)
// Showing the windows in a separate loop to avoid seeing them come up one after another
for (int i = 0; i < numWindows; i++) {
if (!window[i]->Shown()) {
Cmd(OSD_SetWindow, 0, i + 1);
SetWindow(window[i]);
Cmd(OSD_MoveWindow, 0, x0 + window[i]->X0(), y0 + window[i]->Y0());
}
}
}
void cDvbOsd::Clear(void)
void cDvbOsd::Clear(tWindowHandle Window)
{
for (int i = 0; i < numWindows; i++)
window[i]->Clear();
if (Window == ALL_TILED_WINDOWS || Window == ALL_WINDOWS) {
for (int i = 0; i < numWindows; i++)
if (Window == ALL_WINDOWS || window[i]->Tiled())
window[i]->Clear();
}
else {
cWindow *w = GetWindow(Window);
if (w)
w->Clear();
}
}
void cDvbOsd::Fill(int x1, int y1, int x2, int y2, eDvbColor Color)
void cDvbOsd::Fill(int x1, int y1, int x2, int y2, eDvbColor Color, tWindowHandle Window)
{
cWindow *w = GetWindow(x1, y1);
cWindow *w = (Window == ALL_TILED_WINDOWS) ? GetWindow(x1, y1) : GetWindow(Window);
if (w)
w->Fill(x1, y1, x2, y2, Color);
}
void cDvbOsd::SetBitmap(int x, int y, const cBitmap &Bitmap)
void cDvbOsd::SetBitmap(int x, int y, const cBitmap &Bitmap, tWindowHandle Window)
{
cWindow *w = GetWindow(x, y);
cWindow *w = (Window == ALL_TILED_WINDOWS) ? GetWindow(x, y) : GetWindow(Window);
if (w)
w->SetBitmap(x, y, Bitmap);
}
@ -458,10 +525,44 @@ eDvbFont cDvbOsd::SetFont(eDvbFont Font)
return oldFont;
}
void cDvbOsd::Text(int x, int y, const char *s, eDvbColor ColorFg = clrWhite, eDvbColor ColorBg = clrBackground)
void cDvbOsd::Text(int x, int y, const char *s, eDvbColor ColorFg = clrWhite, eDvbColor ColorBg = clrBackground, tWindowHandle Window)
{
cWindow *w = GetWindow(x, y);
cWindow *w = (Window == ALL_TILED_WINDOWS) ? GetWindow(x, y) : GetWindow(Window);
if (w)
w->Text(x, y, s, ColorFg, ColorBg);
}
void cDvbOsd::Relocate(tWindowHandle Window, int x, int y, int NewWidth, int NewHeight)
{
cWindow *w = GetWindow(Window);
if (w) {
SetWindow(w);
if (NewWidth > 0 && NewHeight > 0) {
if ((NewWidth & 0x03) != 0) {
NewWidth += 4 - (NewWidth & 0x03);
esyslog(LOG_ERR, "ERROR: OSD window width must be a multiple of 4 - increasing to %d", NewWidth);
}
Cmd(OSD_Close);
window[w->Handle()] = new cWindow(w->Handle(), x, y, NewWidth, NewHeight, w->Bpp(), w->ClearWithBackground(), w->Tiled());
delete w;
Cmd(OSD_Open, 2, x0 + x, y0 + y, x0 + x + NewWidth - 1, y0 + y + NewHeight - 1, (void *)1); // initially hidden!
}
else {
w->Relocate(x, y);
Cmd(OSD_MoveWindow, 0, x0 + x, y0 + y);
}
}
}
void cDvbOsd::Hide(tWindowHandle Window)
{
if (SetWindow(GetWindow(Window)))
Cmd(OSD_Hide, 0);
}
void cDvbOsd::Show(tWindowHandle Window)
{
if (SetWindow(GetWindow(Window)))
Cmd(OSD_Show, 0);
}

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: dvbosd.h 1.8 2001/07/28 16:22:32 kls Exp $
* $Id: dvbosd.h 1.9 2001/12/09 15:11:05 kls Exp $
*/
#ifndef __DVBOSD_H
@ -75,6 +75,7 @@ protected:
public:
cBitmap(int Width, int Height, int Bpp, bool ClearWithBackground = true);
virtual ~cBitmap();
bool ClearWithBackground(void) { return clearWithBackground; }
eDvbFont SetFont(eDvbFont Font);
bool Dirty(int &x1, int &y1, int &x2, int &y2);
void SetPixel(int x, int y, eDvbColor Color);
@ -93,26 +94,84 @@ public:
class cWindow;
typedef int tWindowHandle;
// '-1' is used as an error return value!
#define ALL_WINDOWS (-2)
#define ALL_TILED_WINDOWS (-3)
#define LAST_CREATED_WINDOW (-4)
class cDvbOsd {
private:
int videoDev;
int numWindows;
int x0, y0;
cWindow *window[MAXNUMWINDOWS];
bool SetWindow(cWindow *Window);
void Cmd(OSD_Command cmd, int color = 0, int x0 = 0, int y0 = 0, int x1 = 0, int y1 = 0, const void *data = NULL);
cWindow *GetWindow(int x, int y);
cWindow *GetWindow(tWindowHandle Window);
public:
cDvbOsd(int VideoDev, int x, int y, int w = -1, int h = -1, int Bpp = -1);
// Initializes the OSD on the given VideoDev, starting at screen coordinates
// (x, y). If w, h and Bpp are given, one window with that width, height and
// color depth will be created - otherwise the actual windows will have to
// be created by separate calls to Create().
~cDvbOsd();
bool Create(int x, int y, int w, int h, int Bpp, bool ClearWithBackground = true, eDvbColor Color0 = clrTransparent, eDvbColor Color1 = clrTransparent, eDvbColor Color2 = clrTransparent, eDvbColor Color3 = clrTransparent);
// Destroys all windows and shuts down the OSD.
tWindowHandle Create(int x, int y, int w, int h, int Bpp, bool ClearWithBackground = true, bool Tiled = true);
// Creates a window at coordinates (x, y), which are relative to the OSD's
// origin given in the constructor, with the given width, height and color
// depth. ClearWithBackground controls whether the window will be filled with
// clrBackground when it is cleared. Setting this to 'false' may be useful
// for windows that don't need clrBackground but want to save this color
// palette entry for a different color. Tiled controls whether this will
// be part of a multi section OSD (with several windows that all have
// different color depths and palettes and form one large OSD area), or
// whether this is a "standalone" window that will be drawn "in front"
// of any windows defined *after* this one (this can be used for highlighting
// certain parts of the OSD, as would be done in a 'cursor').
// Returns a handle that can be used to identify this window.
void AddColor(eDvbColor Color, tWindowHandle Window = LAST_CREATED_WINDOW);
// Adds the Color to the color palette of the given window if it is not
// already contained in the palette (and if the palette still has free
// slots for new colors). The default value LAST_CREATED_WINDOW will
// access the most recently created window, without the need of explicitly
// using a window handle.
void Flush(void);
void Clear(void);
void Fill(int x1, int y1, int x2, int y2, eDvbColor Color);
void SetBitmap(int x, int y, const cBitmap &Bitmap);
// Actually commits all data of all windows to the OSD.
void Clear(tWindowHandle Window = ALL_TILED_WINDOWS);
// Clears the given window. If ALL_TILED_WINDOWS is given, only the tiled
// windows will be cleared, leaving the standalone windows untouched. If
// ALL_WINDOWS is given, the standalone windows will also be cleared.
void Fill(int x1, int y1, int x2, int y2, eDvbColor Color, tWindowHandle Window = ALL_TILED_WINDOWS);
// Fills the rectangle defined by the upper left (x1, y2) and lower right
// (x2, y2) corners with the given Color. If a specific window is given,
// the coordinates are relative to that window's upper left corner.
// Otherwise they are relative to the upper left corner of the entire OSD.
// If all tiled windows are selected, only that window which contains the
// point (x1, y1) will actually be filled.
void SetBitmap(int x, int y, const cBitmap &Bitmap, tWindowHandle Window = ALL_TILED_WINDOWS);
// Sets the pixels within the given window with the data from the given
// Bitmap. See Fill() for details about the coordinates.
int Width(unsigned char c);
// Returns the width (in pixels) of the given character in the current font.
int Width(const char *s);
// Returns the width (in pixels) of the given string in the current font.
eDvbFont SetFont(eDvbFont Font);
void Text(int x, int y, const char *s, eDvbColor ColorFg = clrWhite, eDvbColor ColorBg = clrBackground);
// Sets the current font for subsequent Width() and Text() operations.
void Text(int x, int y, const char *s, eDvbColor ColorFg = clrWhite, eDvbColor ColorBg = clrBackground, tWindowHandle Window = ALL_TILED_WINDOWS);
// Writes the given string at coordinates (x, y) with the given foreground
// and background color into the given window (see Fill() for details
// about the coordinates).
void Relocate(tWindowHandle Window, int x, int y, int NewWidth = -1, int NewHeight = -1);
// Moves the given window to the new location at (x, y). If NewWidth and
// NewHeight are also given, the window will also be resized to the new
// width and height.
void Hide(tWindowHandle Window);
// Hides the given window.
void Show(tWindowHandle Window);
// Shows the given window.
};
#endif //__DVBOSD_H

20
eit.c
View File

@ -16,7 +16,7 @@
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* $Id: eit.c 1.29 2001/10/28 13:51:22 kls Exp $
* $Id: eit.c 1.31 2002/01/13 16:14:31 kls Exp $
***************************************************************************/
#include "eit.h"
@ -473,22 +473,6 @@ void cEventInfo::FixEpgBugs(void)
strreplace(pTitle, '`', '\'');
strreplace(pSubtitle, '`', '\'');
strreplace(pExtendedDescription, '`', '\'');
if (Setup.EPGBugfixLevel <= 2)
return;
// Pro7 and Kabel1 apparently are unable to use a calendar/clock,
// because all events between 00:00 and 06:00 have the date of the
// day before (sometimes even this correction doesn't help).
// Channels are recognized by their ServiceID, which may only work
// correctly on the ASTRA satellite system.
if (uServiceID == 898 // Pro-7
|| uServiceID == 899) { // Kabel 1
struct tm tm_r;
tm *t = localtime_r(&tTime, &tm_r);
if (t->tm_hour * 3600 + t->tm_min * 60 + t->tm_sec <= 6 * 3600)
tTime += 24 * 3600;
}
}
}
@ -1013,8 +997,10 @@ void cSIProcessor::Action()
break;
}
}
/*XXX this just fills up the log file - shouldn't we rather try to re-sync?
else
dsyslog(LOG_INFO, "read incomplete section - seclen = %d, n = %d", seclen, n);
XXX*/
}
}
}

4
eit.h
View File

@ -16,7 +16,7 @@
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* $Id: eit.h 1.12 2001/10/28 12:33:10 kls Exp $
* $Id: eit.h 1.13 2002/01/13 16:18:23 kls Exp $
***************************************************************************/
#ifndef __EIT_H
@ -25,6 +25,8 @@
#include "thread.h"
#include "tools.h"
#define MAXEPGBUGFIXLEVEL 2
class cEventInfo : public cListObject {
friend class cSchedule;
friend class cEIT;

70
i18n.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: i18n.c 1.45 2001/10/28 16:04:58 kls Exp $
* $Id: i18n.c 1.50 2002/01/27 15:52:32 kls Exp $
*
* Slovenian translations provided by Miha Setina <mihasetina@softhome.net>
* Italian translations provided by Alberto Carraro <bertocar@tin.it>
@ -285,6 +285,15 @@ const tPhrase Phrases[] = {
"Résumé",
"Sammendrag",
},
{ "Open",
"Öffnen",
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
},
{ "Switch",
"Umschalten",
"Preklopi",
@ -631,6 +640,15 @@ const tPhrase Phrases[] = {
"Enregistrement en cours!",
"Timer gjør opptak!",
},
{ "Error while accessing recording!",
"Fehler beim ansprechen der Aufzeichnung!",
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
},
{ "Error while deleting recording!",
"Fehler beim Löschen der Aufzeichnung!",
"Napaka pri odstranjevanju posnetka!",
@ -703,6 +721,15 @@ const tPhrase Phrases[] = {
"", // TODO
"", // TODO
},
{ "Low disk space!",
"Platte beinahe voll!",
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
},
// Setup parameters:
{ "OSD-Language",
"OSD-Sprache",
@ -884,6 +911,15 @@ const tPhrase Phrases[] = {
"", // TODO
"", // TODO
},
{ "RecordingDirs",
"Aufn. Verzeichnisse",
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
},
{ "VideoFormat",
"Video Format",
"", // TODO
@ -1293,6 +1329,14 @@ const tPhrase Phrases[] = {
"bas",
"", // TODO
},
{ "free",
"frei",
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
},
{ "Jump: ", // note the trailing blank
"Springen: ",
"", // TODO
@ -1355,6 +1399,30 @@ const tPhrase Phrases[] = {
"Opération de montage lancée",
"Redigeringsprosess startet",
},
{ "Editing process finished",
"Schnitt beendet",
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
},
{ "Editing process failed!",
"Schnitt gescheitert!",
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
},
{ "scanning recordings...",
"Aufzeichnungen werden durchsucht...",
"", // TODO
"", // TODO
"", // TODO
"", // TODO
"", // TODO
},
{ NULL }
};

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: interface.c 1.44 2001/09/01 15:18:46 kls Exp $
* $Id: interface.c 1.47 2002/01/27 15:48:46 kls Exp $
*/
#include "interface.h"
@ -292,8 +292,12 @@ void cInterface::Status(const char *s, eDvbColor FgColor, eDvbColor BgColor)
{
int Line = (abs(height) == 1) ? 0 : -2;
ClearEol(0, Line, s ? BgColor : clrBackground);
if (s)
Write(0, Line, s, FgColor, BgColor);
if (s) {
int x = (Width() - strlen(s)) / 2;
if (x < 0)
x = 0;
Write(x, Line, s, FgColor, BgColor);
}
}
void cInterface::Info(const char *s)
@ -318,7 +322,7 @@ void cInterface::Error(const char *s)
bool cInterface::Confirm(const char *s, int Seconds, bool WaitForTimeout)
{
Open();
Open(Setup.OSDwidth, -1);
isyslog(LOG_INFO, "confirm: %s", s);
Status(s, clrBlack, clrYellow);
eKeys k = Wait(Seconds);
@ -331,13 +335,15 @@ bool cInterface::Confirm(const char *s, int Seconds, bool WaitForTimeout)
void cInterface::HelpButton(int Index, const char *Text, eDvbColor FgColor, eDvbColor BgColor)
{
if (open && Text) {
if (open) {
const int w = Width() / 4;
int l = (w - int(strlen(Text))) / 2;
if (l < 0)
l = 0;
cDvbApi::PrimaryDvbApi->Fill(Index * w, -1, w, 1, BgColor);
cDvbApi::PrimaryDvbApi->Text(Index * w + l, -1, Text, FgColor, BgColor);
cDvbApi::PrimaryDvbApi->Fill(Index * w, -1, w, 1, Text ? BgColor : clrBackground);
if (Text) {
int l = (w - int(strlen(Text))) / 2;
if (l < 0)
l = 0;
cDvbApi::PrimaryDvbApi->Text(Index * w + l, -1, Text, FgColor, BgColor);
}
}
}

208
menu.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: menu.c 1.141 2001/11/24 13:20:37 kls Exp $
* $Id: menu.c 1.146 2002/01/27 15:50:50 kls Exp $
*/
#include "menu.h"
@ -15,6 +15,7 @@
#include "config.h"
#include "eit.h"
#include "i18n.h"
#include "videodir.h"
#define MENUTIMEOUT 120 // seconds
#define MAXWAIT4EPGINFO 10 // seconds
@ -1494,46 +1495,161 @@ eOSState cMenuSchedule::ProcessKey(eKeys Key)
// --- cMenuRecordingItem ----------------------------------------------------
class cMenuRecordingItem : public cOsdItem {
private:
char *fileName;
char *name;
int totalEntries, newEntries;
public:
cRecording *recording;
cMenuRecordingItem(cRecording *Recording);
virtual void Set(void);
cMenuRecordingItem(cRecording *Recording, int Level);
~cMenuRecordingItem();
void IncrementCounter(bool New);
const char *Name(void) { return name; }
const char *FileName(void) { return fileName; }
bool IsDirectory(void) { return name != NULL; }
};
cMenuRecordingItem::cMenuRecordingItem(cRecording *Recording)
cMenuRecordingItem::cMenuRecordingItem(cRecording *Recording, int Level)
{
recording = Recording;
Set();
fileName = strdup(Recording->FileName());
name = NULL;
totalEntries = newEntries = 0;
SetText(Recording->Title('\t', true, Level));
if (*Text() == '\t')
name = strdup(Text() + 2); // 'Text() + 2' to skip the two '\t'
}
void cMenuRecordingItem::Set(void)
cMenuRecordingItem::~cMenuRecordingItem()
{
SetText(recording->Title('\t', true));
delete fileName;
delete name;
}
void cMenuRecordingItem::IncrementCounter(bool New)
{
totalEntries++;
if (New)
newEntries++;
char *buffer = NULL;
asprintf(&buffer, "%d\t%d\t%s", totalEntries, newEntries, name);
SetText(buffer, false);
}
// --- cMenuRecordings -------------------------------------------------------
cMenuRecordings::cMenuRecordings(void)
:cOsdMenu(tr("Recordings"), 6, 6)
cRecordings cMenuRecordings::Recordings;
int cMenuRecordings::helpKeys = -1;
cMenuRecordings::cMenuRecordings(const char *Base, int Level, bool OpenSubMenus)
:cOsdMenu(Base ? Base : tr("Recordings"), 6, 6)
{
if (Recordings.Load()) {
const char *lastReplayed = cReplayControl::LastReplayed();
cRecording *recording = Recordings.First();
while (recording) {
Add(new cMenuRecordingItem(recording), lastReplayed && strcmp(lastReplayed, recording->FileName()) == 0);
recording = Recordings.Next(recording);
}
base = Base ? strdup(Base) : NULL;
level = Setup.RecordingDirs ? Level : -1;
if (!Base) {
Interface->Status(tr("scanning recordings..."));
Interface->Flush();
}
SetHelp(tr("Play"), tr("Rewind"), tr("Delete"), tr("Summary"));
Display();
if (Base || Recordings.Load()) {
const char *LastReplayed = cReplayControl::LastReplayed();
cMenuRecordingItem *LastItem = NULL;
char *LastItemText = NULL;
for (cRecording *recording = Recordings.First(); recording; recording = Recordings.Next(recording)) {
if (!Base || strstr(recording->Name(), Base) == recording->Name()) {
cMenuRecordingItem *Item = new cMenuRecordingItem(recording, level);
if (*Item->Text() && (!LastItem || strcmp(Item->Text(), LastItemText) != 0)) {
Add(Item);
LastItem = Item;
delete LastItemText;
LastItemText = strdup(LastItem->Text()); // must use a copy because of the counters!
}
else
delete Item;
if (LastItem) {
if (LastReplayed && strcmp(LastReplayed, recording->FileName()) == 0)
SetCurrent(LastItem);
if (LastItem->IsDirectory())
LastItem->IncrementCounter(recording->IsNew());
}
}
}
delete LastItemText;
if (Current() < 0)
SetCurrent(First());
else if (OpenSubMenus && Open(true))
return;
}
Display(); // this keeps the higher level menus from showing up briefly when pressing 'Back' during replay
SetHelpKeys();
}
cMenuRecordings::~cMenuRecordings()
{
helpKeys = -1;
delete base;
}
void cMenuRecordings::SetHelpKeys(void)
{
cMenuRecordingItem *ri = (cMenuRecordingItem *)Get(Current());
int NewHelpKeys = helpKeys;
if (ri) {
if (ri->IsDirectory())
NewHelpKeys = 1;
else {
NewHelpKeys = 2;
cRecording *recording = GetRecording(ri);
if (recording && recording->Summary())
NewHelpKeys = 3;
}
}
if (NewHelpKeys != helpKeys) {
switch (NewHelpKeys) {
case 0: SetHelp(NULL); break;
case 1: SetHelp(tr("Open")); break;
case 2:
case 3: SetHelp(tr("Play"), tr("Rewind"), tr("Delete"), NewHelpKeys == 3 ? tr("Summary") : NULL);
}
helpKeys = NewHelpKeys;
}
}
cRecording *cMenuRecordings::GetRecording(cMenuRecordingItem *Item)
{
cRecording *recording = Recordings.GetByName(Item->FileName());
if (!recording)
Interface->Error(tr("Error while accessing recording!"));
return recording;
}
bool cMenuRecordings::Open(bool OpenSubMenus)
{
cMenuRecordingItem *ri = (cMenuRecordingItem *)Get(Current());
if (ri && ri->IsDirectory()) {
const char *t = ri->Name();
char *buffer = NULL;
if (base) {
asprintf(&buffer, "%s~%s", base, t);
t = buffer;
}
AddSubMenu(new cMenuRecordings(t, level + 1, OpenSubMenus));
delete buffer;
return true;
}
return false;
}
eOSState cMenuRecordings::Play(void)
{
cMenuRecordingItem *ri = (cMenuRecordingItem *)Get(Current());
if (ri) {
cReplayControl::SetRecording(ri->recording->FileName(), ri->recording->Title());
return osReplay;
if (ri->IsDirectory())
Open();
else {
cRecording *recording = GetRecording(ri);
if (recording) {
cReplayControl::SetRecording(recording->FileName(), recording->Title());
return osReplay;
}
}
}
return osContinue;
}
@ -1541,9 +1657,9 @@ eOSState cMenuRecordings::Play(void)
eOSState cMenuRecordings::Rewind(void)
{
cMenuRecordingItem *ri = (cMenuRecordingItem *)Get(Current());
if (ri) {
if (ri && !ri->IsDirectory()) {
cDvbApi::PrimaryDvbApi->StopReplay(); // must do this first to be able to rewind the currently replayed recording
cResumeFile ResumeFile(ri->recording->FileName());
cResumeFile ResumeFile(ri->FileName());
ResumeFile.Delete();
return Play();
}
@ -1553,17 +1669,21 @@ eOSState cMenuRecordings::Rewind(void)
eOSState cMenuRecordings::Del(void)
{
cMenuRecordingItem *ri = (cMenuRecordingItem *)Get(Current());
if (ri) {
if (ri && !ri->IsDirectory()) {
//XXX what if this recording's file is currently in use???
//XXX if (!ti->recording) {
if (Interface->Confirm(tr("Delete recording?"))) {
if (ri->recording->Delete()) {
cReplayControl::ClearLastReplayed(ri->recording->FileName());
cOsdMenu::Del(Current());
Display();
cRecording *recording = GetRecording(ri);
if (recording) {
if (recording->Delete()) {
cReplayControl::ClearLastReplayed(ri->FileName());
cOsdMenu::Del(Current());
Recordings.Del(recording);
Display();
}
else
Interface->Error(tr("Error while deleting recording!"));
}
else
Interface->Error(tr("Error while deleting recording!"));
}
//XXX }
//XXX else
@ -1577,8 +1697,11 @@ eOSState cMenuRecordings::Summary(void)
if (HasSubMenu() || Count() == 0)
return osContinue;
cMenuRecordingItem *ri = (cMenuRecordingItem *)Get(Current());
if (ri && ri->recording->Summary() && *ri->recording->Summary())
return AddSubMenu(new cMenuText(tr("Summary"), ri->recording->Summary()));
if (ri && !ri->IsDirectory()) {
cRecording *recording = GetRecording(ri);
if (recording && recording->Summary() && *recording->Summary())
return AddSubMenu(new cMenuText(tr("Summary"), recording->Summary()));
}
return osContinue;
}
@ -1597,6 +1720,8 @@ eOSState cMenuRecordings::ProcessKey(eKeys Key)
default: break;
}
}
if (!HasSubMenu() && Key != kNone)
SetHelpKeys();
return state;
}
@ -1712,13 +1837,14 @@ void cMenuSetup::Set(void)
Add(new cMenuEditIntItem( tr("MarginStart"), &data.MarginStart));
Add(new cMenuEditIntItem( tr("MarginStop"), &data.MarginStop));
Add(new cMenuEditIntItem( tr("EPGScanTimeout"), &data.EPGScanTimeout));
Add(new cMenuEditIntItem( tr("EPGBugfixLevel"), &data.EPGBugfixLevel, 0, 3));
Add(new cMenuEditIntItem( tr("EPGBugfixLevel"), &data.EPGBugfixLevel, 0, MAXEPGBUGFIXLEVEL));
Add(new cMenuEditIntItem( tr("SVDRPTimeout"), &data.SVDRPTimeout));
Add(new cMenuEditBoolItem(tr("SortTimers"), &data.SortTimers));
Add(new cMenuEditIntItem( tr("PrimaryLimit"), &data.PrimaryLimit, 0, MAXPRIORITY));
Add(new cMenuEditIntItem( tr("DefaultPriority"), &data.DefaultPriority, 0, MAXPRIORITY));
Add(new cMenuEditIntItem( tr("DefaultLifetime"), &data.DefaultLifetime, 0, MAXLIFETIME));
Add(new cMenuEditBoolItem(tr("UseSubtitle"), &data.UseSubtitle));
Add(new cMenuEditBoolItem(tr("RecordingDirs"), &data.RecordingDirs));
Add(new cMenuEditBoolItem(tr("VideoFormat"), &data.VideoFormat, "4:3", "16:9"));
Add(new cMenuEditBoolItem(tr("ChannelInfoPos"), &data.ChannelInfoPos, tr("bottom"), tr("top")));
Add(new cMenuEditIntItem( tr("OSDwidth"), &data.OSDwidth, MINOSDWIDTH, MAXOSDWIDTH));
@ -1815,6 +1941,18 @@ cMenuMain::cMenuMain(bool Replaying, eOSState State)
{
digit = 0;
// Title with disk usage:
#define MB_PER_MINUTE 30 // this is just an estimate!
char buffer[40];
int FreeMB;
int Percent = VideoDiskSpace(&FreeMB);
int Hours = int(double(FreeMB) / MB_PER_MINUTE / 60);
int Minutes = (FreeMB / MB_PER_MINUTE) % 60;
snprintf(buffer, sizeof(buffer), "%s - Disk %d%% - %2d:%02d %s", tr("Main"), Percent, Hours, Minutes, tr("free"));
SetTitle(buffer);
// Basic menu items:
Add(new cOsdItem(hk(tr("Schedule")), osSchedule));
@ -1871,7 +2009,7 @@ cMenuMain::cMenuMain(bool Replaying, eOSState State)
// Initial submenus:
switch (State) {
case osRecordings: AddSubMenu(new cMenuRecordings); break;
case osRecordings: AddSubMenu(new cMenuRecordings(NULL, 0, true)); break;
#ifdef DVDSUPPORT
case osDVD: AddSubMenu(new cMenuDVD); break;
#endif //DVDSUPPORT

15
menu.h
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: menu.h 1.34 2001/10/28 15:21:04 kls Exp $
* $Id: menu.h 1.35 2002/01/20 13:38:34 kls Exp $
*/
#ifndef _MENU_H
@ -55,15 +55,24 @@ public:
};
#endif //DVDSUPPORT
class cMenuRecordingItem;
class cMenuRecordings : public cOsdMenu {
private:
cRecordings Recordings;
static cRecordings Recordings;
char *base;
int level;
static int helpKeys;
void SetHelpKeys(void);
cRecording *GetRecording(cMenuRecordingItem *Item);
bool Open(bool OpenSubMenus = false);
eOSState Play(void);
eOSState Rewind(void);
eOSState Del(void);
eOSState Summary(void);
public:
cMenuRecordings(void);
cMenuRecordings(const char *Base = NULL, int Level = 0, bool OpenSubMenus = false);
~cMenuRecordings();
virtual eOSState ProcessKey(eKeys Key);
};

15
osd.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: osd.c 1.18 2001/08/25 13:15:16 kls Exp $
* $Id: osd.c 1.20 2002/01/26 11:09:58 kls Exp $
*/
#include "osd.h"
@ -127,9 +127,7 @@ void cOsdMenu::SetHelp(const char *Red, const char *Green, const char *Yellow, c
helpYellow = Yellow;
helpBlue = Blue;
if (visible)
Display();
//XXX Interface->Help(helpRed, helpGreen, helpYellow, helpBlue);
//XXX must clear unused button areas!
Interface->Help(helpRed, helpGreen, helpYellow, helpBlue);
}
void cOsdMenu::Del(int Index)
@ -150,6 +148,10 @@ void cOsdMenu::Add(cOsdItem *Item, bool Current)
void cOsdMenu::Display(void)
{
if (subMenu) {
subMenu->Display();
return;
}
visible = true;
Interface->Clear();
Interface->SetCols(cols);
@ -179,6 +181,11 @@ void cOsdMenu::Display(void)
Interface->Status(status);
}
void cOsdMenu::SetCurrent(cOsdItem *Item)
{
current = Item ? Item->Index() : -1;
}
void cOsdMenu::RefreshCurrent(void)
{
cOsdItem *item = Get(current);

3
osd.h
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: osd.h 1.24 2001/08/25 12:56:46 kls Exp $
* $Id: osd.h 1.25 2002/01/20 10:42:14 kls Exp $
*/
#ifndef __OSD_H
@ -83,6 +83,7 @@ protected:
bool visible;
virtual void Clear(void);
bool SpecialItem(int idx);
void SetCurrent(cOsdItem *Item);
void RefreshCurrent(void);
void DisplayCurrent(bool Current);
void CursorUp(void);

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: recording.c 1.42 2001/10/20 10:28:28 kls Exp $
* $Id: recording.c 1.48 2002/01/27 15:14:45 kls Exp $
*/
#include "recording.h"
@ -14,6 +14,7 @@
#include <string.h>
#include <sys/stat.h>
#include <unistd.h>
#include "i18n.h"
#include "interface.h"
#include "tools.h"
#include "videodir.h"
@ -37,7 +38,7 @@
#define DELETEDLIFETIME 1 // hours after which a deleted recording will be actually removed
#define REMOVECHECKDELTA 3600 // seconds between checks for removing deleted files
#define DISKCHECKDELTA 300 // seconds between checks for free disk space
#define DISKCHECKDELTA 100 // seconds between checks for free disk space
#define REMOVELATENCY 10 // seconds to wait until next check after removing a file
void RemoveDeletedRecordings(void)
@ -118,7 +119,7 @@ void AssertFreeDiskSpace(int Priority)
return;
}
// Unable to free disk space, but there's nothing we can do about that...
esyslog(LOG_ERR, "low disk space, but no recordings to delete");
Interface->Confirm(tr("Low disk space"), 30);
}
LastFreeDiskCheck = time(NULL);
}
@ -184,6 +185,8 @@ void cResumeFile::Delete(void)
// --- cRecording ------------------------------------------------------------
#define RESUME_NOT_INITIALIZED (-2)
struct tCharExchange { char a; char b; };
tCharExchange CharExchange[] = {
{ '~', '/' },
@ -213,6 +216,7 @@ char *ExchangeChars(char *s, bool ToFileSystem)
cRecording::cRecording(cTimer *Timer, const char *Subtitle, const char *Summary)
{
resume = RESUME_NOT_INITIALIZED;
titleBuffer = NULL;
sortBuffer = NULL;
fileName = NULL;
@ -242,6 +246,7 @@ cRecording::cRecording(cTimer *Timer, const char *Subtitle, const char *Summary)
cRecording::cRecording(const char *FileName)
{
resume = RESUME_NOT_INITIALIZED;
titleBuffer = NULL;
sortBuffer = NULL;
fileName = strdup(FileName);
@ -342,6 +347,15 @@ char *cRecording::SortName(void)
return sortBuffer;
}
int cRecording::GetResume(void)
{
if (resume == RESUME_NOT_INITIALIZED) {
cResumeFile ResumeFile(FileName());
resume = ResumeFile.Read();
}
return resume;
}
bool cRecording::operator< (const cListObject &ListObject)
{
cRecording *r = (cRecording *)&ListObject;
@ -360,27 +374,47 @@ const char *cRecording::FileName(void)
return fileName;
}
const char *cRecording::Title(char Delimiter, bool NewIndicator)
const char *cRecording::Title(char Delimiter, bool NewIndicator, int Level)
{
char New = ' ';
if (NewIndicator) {
cResumeFile ResumeFile(FileName());
if (ResumeFile.Read() <= 0)
New = '*';
}
char New = NewIndicator && IsNew() ? '*' : ' ';
delete titleBuffer;
titleBuffer = NULL;
struct tm tm_r;
struct tm *t = localtime_r(&start, &tm_r);
asprintf(&titleBuffer, "%02d.%02d%c%02d:%02d%c%c%s",
t->tm_mday,
t->tm_mon + 1,
Delimiter,
t->tm_hour,
t->tm_min,
New,
Delimiter,
name);
if (Level < 0 || Level == HierarchyLevels()) {
struct tm tm_r;
struct tm *t = localtime_r(&start, &tm_r);
const char *s;
if (Level > 0 && (s = strrchr(name, '~')) != NULL)
s++;
else
s = name;
asprintf(&titleBuffer, "%02d.%02d%c%02d:%02d%c%c%s",
t->tm_mday,
t->tm_mon + 1,
Delimiter,
t->tm_hour,
t->tm_min,
New,
Delimiter,
s);
}
else if (Level < HierarchyLevels()) {
const char *s = name;
const char *p = s;
while (*++s) {
if (*s == '~') {
if (Level--)
p = s + 1;
else
break;
}
}
titleBuffer = new char[s - p + 3];
*titleBuffer = Delimiter;
*(titleBuffer + 1) = Delimiter;
strn0cpy(titleBuffer + 2, p, s - p + 1);
}
else
return "";
return titleBuffer;
}
@ -395,6 +429,17 @@ const char *cRecording::PrefixFileName(char Prefix)
return NULL;
}
int cRecording::HierarchyLevels(void)
{
const char *s = name;
int level = 0;
while (*++s) {
if (*s == '~')
level++;
}
return level;
}
bool cRecording::WriteSummary(void)
{
if (summary) {
@ -429,6 +474,11 @@ bool cRecording::Delete(void)
bool cRecording::Remove(void)
{
// let's do a final safety check here:
if (!endswith(FileName(), DELEXT)) {
esyslog(LOG_ERR, "attempt to remove recording %s", FileName());
return false;
}
isyslog(LOG_INFO, "removing recording %s", FileName());
return RemoveVideoFile(FileName());
}
@ -446,7 +496,7 @@ bool cRecordings::Load(bool Deleted)
char *s;
while ((s = readline(p)) != NULL) {
cRecording *r = new cRecording(s);
if (r->name)
if (r->Name())
Add(r);
else
delete r;
@ -461,6 +511,15 @@ bool cRecordings::Load(bool Deleted)
return result;
}
cRecording *cRecordings::GetByName(const char *FileName)
{
for (cRecording *recording = First(); recording; recording = Next(recording)) {
if (strcmp(recording->FileName(), FileName) == 0)
return recording;
}
return NULL;
}
// --- cMark -----------------------------------------------------------------
char *cMark::buffer = NULL;
@ -573,7 +632,7 @@ void cRecordingUserCommand::InvokeCommand(const char *State, const char *Recordi
{
if (command) {
char *cmd;
asprintf(&cmd, "%s %s '%s'", command, State, RecordingFileName);
asprintf(&cmd, "%s %s \"%s\"", command, State, strescape(RecordingFileName, "\"$"));
isyslog(LOG_INFO, "executing '%s'", cmd);
SystemExec(cmd);
delete cmd;

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: recording.h 1.18 2001/10/07 10:38:56 kls Exp $
* $Id: recording.h 1.21 2002/01/26 15:18:16 kls Exp $
*/
#ifndef __RECORDING_H
@ -15,7 +15,7 @@
#include "tools.h"
void RemoveDeletedRecordings(void);
void AssertFreeDiskSpace(int Priority);
void AssertFreeDiskSpace(int Priority = 0);
class cResumeFile {
private:
@ -29,8 +29,8 @@ public:
};
class cRecording : public cListObject {
friend class cRecordings;
private:
int resume;
char *titleBuffer;
char *sortBuffer;
char *fileName;
@ -38,6 +38,7 @@ private:
char *summary;
char *StripEpisodeName(char *s);
char *SortName(void);
int GetResume(void);
public:
time_t start;
int priority;
@ -46,10 +47,13 @@ public:
cRecording(const char *FileName);
~cRecording();
virtual bool operator< (const cListObject &ListObject);
const char *Name(void) { return name; }
const char *FileName(void);
const char *Title(char Delimiter = ' ', bool NewIndicator = false);
const char *Title(char Delimiter = ' ', bool NewIndicator = false, int Level = -1);
const char *Summary(void) { return summary; }
const char *PrefixFileName(char Prefix);
int HierarchyLevels(void);
bool IsNew(void) { return GetResume() <= 0; }
bool WriteSummary(void);
bool Delete(void);
// Changes the file name so that it will no longer be visible in the "Recordings" menu
@ -62,6 +66,7 @@ public:
class cRecordings : public cList<cRecording> {
public:
bool Load(bool Deleted = false);
cRecording *GetByName(const char *FileName);
};
class cMark : public cListObject {

80
svdrp.c
View File

@ -10,7 +10,7 @@
* and interact with the Video Disk Recorder - or write a full featured
* graphical interface that sits on top of an SVDRP connection.
*
* $Id: svdrp.c 1.27 2001/11/04 11:25:05 kls Exp $
* $Id: svdrp.c 1.28 2002/01/13 16:07:42 kls Exp $
*/
#include "svdrp.h"
@ -899,49 +899,49 @@ void cSVDRP::Process(void)
}
if (NewConnection)
lastActivity = time(NULL);
if (file.Ready(false)) {
unsigned char c;
int r = safe_read(file, &c, 1);
if (r > 0) {
if (c == '\n' || c == 0x00) {
// strip trailing whitespace:
while (numChars > 0 && strchr(" \t\r\n", cmdLine[numChars - 1]))
cmdLine[--numChars] = 0;
// make sure the string is terminated:
cmdLine[numChars] = 0;
// showtime!
Execute(cmdLine);
numChars = 0;
while (file.Ready(false)) {
unsigned char c;
int r = safe_read(file, &c, 1);
if (r > 0) {
if (c == '\n' || c == 0x00) {
// strip trailing whitespace:
while (numChars > 0 && strchr(" \t\r\n", cmdLine[numChars - 1]))
cmdLine[--numChars] = 0;
// make sure the string is terminated:
cmdLine[numChars] = 0;
// showtime!
Execute(cmdLine);
numChars = 0;
}
else if (c == 0x04 && numChars == 0) {
// end of file (only at beginning of line)
Close();
}
else if (c == 0x08 || c == 0x7F) {
// backspace or delete (last character)
if (numChars > 0)
numChars--;
}
else if (c <= 0x03 || c == 0x0D) {
// ignore control characters
}
else if (numChars < sizeof(cmdLine) - 1) {
cmdLine[numChars++] = c;
cmdLine[numChars] = 0;
}
else {
Reply(501, "Command line too long");
esyslog(LOG_ERR, "SVDRP: command line too long: '%s'", cmdLine);
numChars = 0;
}
lastActivity = time(NULL);
}
else if (c == 0x04 && numChars == 0) {
// end of file (only at beginning of line)
else if (r <= 0) {
isyslog(LOG_INFO, "lost connection to SVDRP client");
Close();
}
else if (c == 0x08 || c == 0x7F) {
// backspace or delete (last character)
if (numChars > 0)
numChars--;
}
else if (c <= 0x03 || c == 0x0D) {
// ignore control characters
}
else if (numChars < sizeof(cmdLine) - 1) {
cmdLine[numChars++] = c;
cmdLine[numChars] = 0;
}
else {
Reply(501, "Command line too long");
esyslog(LOG_ERR, "SVDRP: command line too long: '%s'", cmdLine);
numChars = 0;
}
lastActivity = time(NULL);
}
else if (r <= 0) {
isyslog(LOG_INFO, "lost connection to SVDRP client");
Close();
}
}
else if (Setup.SVDRPTimeout && time(NULL) - lastActivity > Setup.SVDRPTimeout) {
if (Setup.SVDRPTimeout && time(NULL) - lastActivity > Setup.SVDRPTimeout) {
isyslog(LOG_INFO, "timeout on SVDRP connection");
Close(true);
}

48
tools.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: tools.c 1.50 2001/10/19 13:12:45 kls Exp $
* $Id: tools.c 1.53 2002/01/27 12:36:23 kls Exp $
*/
#include "tools.h"
@ -136,6 +136,29 @@ char *compactspace(char *s)
return s;
}
const char *strescape(const char *s, const char *chars)
{
static char *buffer = NULL;
const char *p = s;
char *t = NULL;
while (*p) {
if (strchr(chars, *p)) {
if (!t) {
buffer = (char *)realloc(buffer, 2 * strlen(s) + 1);
t = buffer + (p - s);
s = strcpy(buffer, s);
}
*t++ = '\\';
}
if (t)
*t++ = *p;
p++;
}
if (t)
*t = 0;
return s;
}
bool startswith(const char *s, const char *p)
{
while (*p) {
@ -145,6 +168,17 @@ bool startswith(const char *s, const char *p)
return true;
}
bool endswith(const char *s, const char *p)
{
const char *se = s + strlen(s) - 1;
const char *pe = p + strlen(p) - 1;
while (pe >= p) {
if (*pe-- != *se-- || (se < s && pe >= p))
return false;
}
return true;
}
bool isempty(const char *s)
{
return !(s && *skipspace(s));
@ -189,10 +223,12 @@ const char *AddDirectory(const char *DirName, const char *FileName)
#define DFCMD "df -m -P '%s'"
uint FreeDiskSpaceMB(const char *Directory)
int FreeDiskSpaceMB(const char *Directory, int *UsedMB)
{
//TODO Find a simpler way to determine the amount of free disk space!
uint Free = 0;
if (UsedMB)
*UsedMB = 0;
int Free = 0;
char *cmd = NULL;
asprintf(&cmd, DFCMD, Directory);
FILE *p = popen(cmd, "r");
@ -200,8 +236,10 @@ uint FreeDiskSpaceMB(const char *Directory)
char *s;
while ((s = readline(p)) != NULL) {
if (strchr(s, '/')) {
uint available;
sscanf(s, "%*s %*d %*d %u", &available);
int used, available;
sscanf(s, "%*s %*d %d %d", &used, &available);
if (UsedMB)
*UsedMB = used;
Free = available;
break;
}

10
tools.h
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: tools.h 1.36 2001/09/30 10:20:59 kls Exp $
* $Id: tools.h 1.39 2002/01/26 15:38:10 kls Exp $
*/
#ifndef __TOOLS_H
@ -50,20 +50,22 @@ char *strreplace(char *s, char c1, char c2);
char *skipspace(const char *s);
char *stripspace(char *s);
char *compactspace(char *s);
const char *strescape(const char *s, const char *chars); // returns a statically allocated string!
bool startswith(const char *s, const char *p);
bool endswith(const char *s, const char *p);
bool isempty(const char *s);
int time_ms(void);
void delay_ms(int ms);
bool isnumber(const char *s);
const char *AddDirectory(const char *DirName, const char *FileName);
uint FreeDiskSpaceMB(const char *Directory);
const char *AddDirectory(const char *DirName, const char *FileName); // returns a statically allocated string!
int FreeDiskSpaceMB(const char *Directory, int *UsedMB = NULL);
bool DirectoryOk(const char *DirName, bool LogErrors = false);
bool MakeDirs(const char *FileName, bool IsDirectory = false);
bool RemoveFileOrDir(const char *FileName, bool FollowSymlinks = false);
bool RemoveEmptyDirectories(const char *DirName, bool RemoveThis = false);
char *ReadLink(const char *FileName);
bool SpinUpDisk(const char *FileName);
const char *DayDateTime(time_t t = 0);
const char *DayDateTime(time_t t = 0); // returns a statically allocated string!
class cFile {
private:

22
vdr.c
View File

@ -22,7 +22,7 @@
*
* The project's page is at http://www.cadsoft.de/people/kls/vdr
*
* $Id: vdr.c 1.89 2001/11/03 12:23:45 kls Exp $
* $Id: vdr.c 1.93 2002/01/26 14:07:01 kls Exp $
*/
#include <getopt.h>
@ -314,7 +314,6 @@ int main(int argc, char *argv[])
int LastChannel = -1;
int PreviousChannel = cDvbApi::CurrentChannel();
time_t LastActivity = 0;
time_t LinearTime = time(NULL);
int MaxLatencyTime = 0;
bool ForceShutdown = false;
@ -324,14 +323,6 @@ int main(int argc, char *argv[])
}
while (!Interrupted) {
// Test if we are running in the Einstein continuum:
time_t Now = time(NULL);
time_t LinearDelta = Now - LinearTime;
if (LinearDelta) {
if (LinearDelta < 0 || LinearDelta > 300) // assuming nothing will block for more than 5 minutes
esyslog(LOG_ERR, "ERROR: time warp detected (%d seconds)", LinearDelta);
LinearTime = Now;
}
// Handle emergency exits:
if (cThread::EmergencyExit()) {
esyslog(LOG_ERR, "emergency exit requested - shutting down");
@ -477,7 +468,12 @@ int main(int argc, char *argv[])
}
if (!Menu) {
EITScanner.Process();
cVideoCutter::Active();
if (!cVideoCutter::Active() && cVideoCutter::Ended()) {
if (cVideoCutter::Error())
Interface->Error(tr("Editing process failed!"));
else
Interface->Info(tr("Editing process finished"));
}
}
if (!*Interact && (!cRecordControls::Active() || ForceShutdown)) {
time_t Now = time(NULL);
@ -508,7 +504,7 @@ int main(int argc, char *argv[])
int Channel = timer ? timer->channel : 0;
const char *File = timer ? timer->file : "";
char *cmd;
asprintf(&cmd, "%s %ld %ld %d '%s' %d", Shutdown, Next, Delta, Channel, File, UserShutdown);
asprintf(&cmd, "%s %ld %ld %d \"%s\" %d", Shutdown, Next, Delta, Channel, strescape(File, "\"$"), UserShutdown);
isyslog(LOG_INFO, "executing '%s'", cmd);
SystemExec(cmd);
delete cmd;
@ -518,7 +514,7 @@ int main(int argc, char *argv[])
if (signal(SIGALRM, Watchdog) == SIG_IGN)
signal(SIGALRM, SIG_IGN);
}
LastActivity = Now; // don't try again too soon
LastActivity = time(NULL); // don't try again too soon
continue; // skip the rest of the housekeeping for now
}
}

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: videodir.c 1.6 2001/09/02 14:55:15 kls Exp $
* $Id: videodir.c 1.7 2002/01/27 12:37:26 kls Exp $
*/
#include "videodir.h"
@ -27,7 +27,7 @@ private:
public:
cVideoDirectory(void);
~cVideoDirectory();
uint FreeMB(void);
int FreeMB(int *UsedMB = NULL);
const char *Name(void) { return name ? name : VideoDirectory; }
const char *Stored(void) { return stored; }
int Length(void) { return length; }
@ -53,9 +53,9 @@ cVideoDirectory::~cVideoDirectory()
delete adjusted;
}
uint cVideoDirectory::FreeMB(void)
int cVideoDirectory::FreeMB(int *UsedMB)
{
return FreeDiskSpaceMB(name ? name : VideoDirectory);
return FreeDiskSpaceMB(name ? name : VideoDirectory, UsedMB);
}
bool cVideoDirectory::Next(void)
@ -117,9 +117,9 @@ int OpenVideoFile(const char *FileName, int Flags)
cVideoDirectory Dir;
if (Dir.IsDistributed()) {
// Find the directory with the most free space:
uint MaxFree = Dir.FreeMB();
int MaxFree = Dir.FreeMB();
while (Dir.Next()) {
uint Free = FreeDiskSpaceMB(Dir.Name());
int Free = FreeDiskSpaceMB(Dir.Name());
if (Free > MaxFree) {
Dir.Store();
MaxFree = Free;
@ -166,7 +166,7 @@ bool RemoveVideoFile(const char *FileName)
return RemoveFileOrDir(FileName, true);
}
bool VideoFileSpaceAvailable(unsigned int SizeMB)
bool VideoFileSpaceAvailable(int SizeMB)
{
cVideoDirectory Dir;
if (Dir.IsDistributed()) {
@ -181,6 +181,22 @@ bool VideoFileSpaceAvailable(unsigned int SizeMB)
return Dir.FreeMB() >= SizeMB;
}
int VideoDiskSpace(int *FreeMB, int *UsedMB)
{
int free = 0, used = 0;
cVideoDirectory Dir;
do {
int u;
free += Dir.FreeMB(&u);
used += u;
} while (Dir.Next());
if (FreeMB)
*FreeMB = free;
if (UsedMB)
*UsedMB = used;
return (free + used) ? used * 100 / (free + used) : 0;
}
const char *PrefixVideoFileName(const char *FileName, char Prefix)
{
static char *PrefixedName = NULL;

View File

@ -4,19 +4,22 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: videodir.h 1.3 2001/02/11 13:12:50 kls Exp $
* $Id: videodir.h 1.4 2002/01/27 12:37:20 kls Exp $
*/
#ifndef __VIDEODIR_H
#define __VIDEODIR_H
#include <stdlib.h>
extern const char *VideoDirectory;
int OpenVideoFile(const char *FileName, int Flags);
int CloseVideoFile(int FileHandle);
bool RenameVideoFile(const char *OldName, const char *NewName);
bool RemoveVideoFile(const char *FileName);
bool VideoFileSpaceAvailable(unsigned int SizeMB);
bool VideoFileSpaceAvailable(int SizeMB);
int VideoDiskSpace(int *FreeMB = NULL, int *UsedMB = NULL); // returns the used disk space in percent
const char *PrefixVideoFileName(const char *FileName, char Prefix);
void RemoveEmptyVideoDirectories(void);