From 1f6888c8077689d530741cac5c7aeb4874ff1c04 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sat, 24 Feb 2001 11:55:10 +0100 Subject: [PATCH] Support for DVB-C --- CONTRIBUTORS | 6 ++ FORMATS | 7 ++- HISTORY | 4 +- INSTALL | 11 ++++ MANUAL | 2 +- channels.conf.cable | 134 ++++++++++++++++++++++++++++++++++++++++++++ dvbapi.c | 19 +++++-- 7 files changed, 173 insertions(+), 10 deletions(-) create mode 100644 channels.conf.cable diff --git a/CONTRIBUTORS b/CONTRIBUTORS index e62f4d9c..7a93b33c 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -54,3 +54,9 @@ Deti Fliegl Dave Chapman for implementing support for the teletext PID + +Hans-Peter Raschke + for his support in adapting VDR to DVB-C + +Peter Hofmann + for his support in adapting VDR to DVB-C diff --git a/FORMATS b/FORMATS index ed63ba72..8554a41b 100644 --- a/FORMATS +++ b/FORMATS @@ -21,8 +21,8 @@ Video Disk Recorder File Formats - Name: the channel's name (if the name originally contains a ':' character it has to be replaced by '|') - Frequency in MHz (as an integer) - - Polarization (one of 'h', 'H', 'v', 'V') - - Diseqc number + - Polarization (one of 'h', 'H', 'v', 'V') ** + - Diseqc number ** - Symbol rate - Video PID - Audio PID @@ -31,6 +31,9 @@ Video Disk Recorder File Formats DVB card, 2 = can be decrypted by the second DVB card) - Program Number + Fields marked with ** are only meaningful for DVB-S (satellite) receivers. + DVB-C receivers simply ignore these. + * timers.conf This file contains the timer setup. diff --git a/HISTORY b/HISTORY index 95580c3a..e6fd496b 100644 --- a/HISTORY +++ b/HISTORY @@ -350,7 +350,7 @@ Video Disk Recorder Revision History - Encrypted channels can now be selected even without knowing the PNR (however, it is still necessary for the EPG info). -2001-02-18: Version 0.71 +2001-02-19: Version 0.71 - Fixed 'Transfer Mode' in cases where a non-primary interface was switched to a channel that only the primary interface can receive (which could happen in @@ -399,3 +399,5 @@ Video Disk Recorder Revision History (default is 300 seconds, can be changed in "Setup"). - The compile time switch VFAT can be used to make VDR avoid the ':' character in file names (VFAT can't handle them). Do 'make VFAT=1' to enable this. +- Support for DVB-C (thanks to Hans-Peter Raschke and Peter Hofmann). + See the INSTALL file for more information about the use of VDR with cable. diff --git a/INSTALL b/INSTALL index 5c445085..b15e7b92 100644 --- a/INSTALL +++ b/INSTALL @@ -144,6 +144,17 @@ As a starting point you can copy the 'channels.conf' file that comes with the VDR archive into your video directory (or into your config directory, respectively, in case you have redirected it with the -c option). +Running VDR with DVB-C (cable): +------------------------------- + +VDR automatically recognizes if the DVB card in use is a cable card. +The only things that needs to be different when using digital cable +is the 'channels.conf' file. The distribution archive contains a default +'channels.conf.cable', which cable users can rename or copy to 'channels.conf' +in order to receive cable channels. The format of this file is exactly the +same as for satellite channels (the fields containing "Polarization" and +"Diseqc" data are ignored in case of DVB-C). + Learning the remote control keys: --------------------------------- diff --git a/MANUAL b/MANUAL index 3593be9a..e16a98ae 100644 --- a/MANUAL +++ b/MANUAL @@ -310,7 +310,7 @@ Video Disk Recorder User's Manual 1 = instant recordings will be marked. LnbFrequLo = 9750 The low and high LNB frequencies (in MHz) - LnbFrequHi = 10600 + LnbFrequHi = 10600 (these have no meaning for DVB-C receivers) SetSystemTime = 0 Defines whether the system time will be set according to the time received from the DVB data stream. diff --git a/channels.conf.cable b/channels.conf.cable new file mode 100644 index 00000000..93fc3761 --- /dev/null +++ b/channels.conf.cable @@ -0,0 +1,134 @@ +Leitseite:346:h:0:6900:2254:0:0:5004 +Extreme Sport:346:h:0:6900:801:802:0:0 +Bloomberg:346:h:0:6900:811:812:0:0 +Fashion TV:346:h:0:6900:821:822:0:0 +LANDSCAPE:346:h:0:6900:831:832:0:0 +BET ON JAZZ:346:h:0:6900:841:842:0:0 +Via 1 - Schöner Reisen:346:h:0:6900:611:612:0:50705 +Single TV:346:h:0:6900:621:622:0:0 +HomeNet:346:h:0:6900:0:0:0:0 +Einstein:346:h:0:6900:623:624:0:0 +BLUE CHANNEL:354:h:0:6900:2559:2560:0:0 +GOLDSTAR TV:354:h:0:6900:3839:3840:1:0 +HEIMATKANAL:354:h:0:6900:2815:2816:1:0 +100,6:354:h:0:6900:0:1312:0:0 +SPORT 1:362:h:0:6900:255:256:1:0 +LOVE SONGS:362:h:0:6900:0:320:1:0 +MUSICALS:362:h:0:6900:0:336:1:0 +EASY LISTENING:362:h:0:6900:0:304:1:0 +HITLISTE:362:h:0:6900:0:784:1:0 +ALTERNATIVE ROCK:362:h:0:6900:0:800:1:0 +DANCE:362:h:0:6900:0:816:1:0 +COUNTRY:362:h:0:6900:0:352:1:0 +CLASSIC ROCK:362:h:0:6900:0:544:1:0 +FILMMUSIK:362:h:0:6900:3552:368:1:0 +DEUTSCHE HITS:362:h:0:6900:3552:384:1:0 +SOUL CLASSICS:362:h:0:6900:3439:400:1:0 +TÜRK MÜZIGI:362:h:0:6900:0:560:1:0 +GOLD:362:h:0:6900:0:576:1:0 +KLASSIK POPULÄR:362:h:0:6900:3552:592:1:0 +KLASS. SYMPHONIEN:362:h:0:6900:0:608:1:0 +OPER & VOKALMUSIK:362:h:0:6900:0:624:1:0 +BAROCKMUSIK:362:h:0:6900:0:640:1:0 +JAZZ:362:h:0:6900:0:656:1:0 +Videotext:362:h:0:6900:0:0:0:0 +PREMIERE WORLD:370:h:0:6900:255:256:0:10 +PREMIERE:370:h:0:6900:511:0:1:0 +STAR KINO:370:h:0:6900:767:768:1:0 +CINE ACTION:370:h:0:6900:1023:1024:1:0 +CINE COMEDY:370:h:0:6900:1279:1280:1:0 +SCI-FANTASY:370:h:0:6900:1535:1536:1:0 +ROMANTIC MOVIES:370:h:0:6900:1791:1792:1:0 +STUDIO UNIVERSAL:370:h:0:6900:2047:2048:1:0 +13 TH STREET:370:h:0:6900:2303:2304:1:0 +FOX KIDS:370:h:0:6900:2559:2560:1:0 +DISNEY CHANNEL:378:h:0:6900:767:768:1:0 +SUNSET:378:h:0:6900:1023:1024:1:0 +COMEDY:378:h:0:6900:1279:1280:1:0 +KRIMI &CO:378:h:0:6900:1535:1536:1:0 +DISCOVERY CHANNEL:378:h:0:6900:1791:1792:1:0 +PLANET:378:h:0:6900:2047:2048:1:0 +SUPERDOM:378:h:0:6900:2303:2304:1:0 +VCR-Setup:378:h:0:6900:0:0:0:0 +Modem-Setup:378:h:0:6900:0:0:0:0 +SCHLAGER:378:h:0:6900:0:320:1:0 +VOLKSMUSIK:378:h:0:6900:0:336:1:0 +OLD GOLD:378:h:0:6900:0:304:1:0 +TM V1.0:378:h:0:6900:0:0:1:0 +JUNIOR:378:h:0:6900:255:256:1:0 +KICK 1:386:h:0:6900:255:256:1:0 +KICK 2:386:h:0:6900:2559:2560:1:0 +ZDF.digitext:394:h:0:6900:0:0:0:0 +ZDF:394:h:0:6900:110:120:0:28006 +DLR-Berlin:394:h:0:6900:0:710:0:0 +DLF-Köln:394:h:0:6900:0:810:0:0 +3sat:394:h:0:6900:210:0:0:28007 +KiKa:394:h:0:6900:0:0:0:28008 +Eurosport:394:h:0:6900:410:0:0:28009 +ZDF.info:394:h:0:6900:610:620:0:28011 +EuroNews:394:h:0:6900:2221:2233:0:28015 +ZDF Theaterkanal:394:h:0:6900:1110:0:0:0 +ZDF.doku:394:h:0:6900:660:670:0:28014 +SEASONS:402:h:0:6900:1040:1044:1:0 +CLASSICA:402:h:0:6900:1030:1034:1:0 +FILMPALAST:402:h:0:6900:1050:1054:1:0 +Blockmaster:402:h:0:6900:0:0:1:0 +Test-R:410:h:0:6900:901:0:0:0 +Bayerisches FS:410:h:0:6900:201:202:0:0 +Bayern 4 Klassik:410:h:0:6900:0:3001:0:0 +B5 aktuell:410:h:0:6900:0:3101:0:0 +WDR FERNSEHEN:410:h:0:6900:601:602:0:28111 +Bremen 2:410:h:0:6900:0:3801:0:0 +arte:410:h:0:6900:401:402:0:28109 +Bayern 1:410:h:0:6900:0:3601:0:0 +NDR 4 Info:410:h:0:6900:0:3701:0:0 +SR Fernsehen Suedwest:410:h:0:6900:501:502:0:28110 +SR 1:410:h:0:6900:0:3901:0:0 +Das Erste:410:h:0:6900:101:102:0:28106 +HR2 plus:410:h:0:6900:0:3401:0:0 +HR2:410:h:0:6900:0:3301:0:0 +hessen fernsehen:410:h:0:6900:301:302:0:28108 +hr-chronos:410:h:0:6900:0:3201:0:0 +HR XXL:410:h:0:6900:0:3501:0:0 +hessen:10160:h:1:6900:301:302:0:28108 +BR:10160:h:1:6900:201:202:0:28107 +BR-alpha:410:h:0:6900:701:702:0:28112 +SWR Fernsehen:410:h:0:6900:801:802:0:28113 +Phoenix:410:h:0:6900:901:902:0:0 +ARD-Online-Kanal:426:h:0:6900:0:1805:0:0 +EinsExtra:426:h:0:6900:101:102:0:28201 +EinsFestival:426:h:0:6900:201:202:0:28202 +EinsMuXx:426:h:0:6900:301:302:0:28203 +MDR FERNSEHEN:426:h:0:6900:401:402:0:28204 +ORB-Fernsehen:426:h:0:6900:501:502:0:28205 +B1 Berlin:426:h:0:6900:601:602:0:28206 +Radio 3:426:h:0:6900:0:701:0:0 +MDR KULTUR:426:h:0:6900:0:801:0:0 +Fritz:426:h:0:6900:0:901:0:0 +JUMP:426:h:0:6900:0:1001:0:0 +MDR info:426:h:0:6900:0:1101:0:0 +SPUTNIK:426:h:0:6900:0:1201:0:0 +SFB4 Multikulti:426:h:0:6900:0:1301:0:0 +SWR-2:426:h:0:6900:0:1401:0:0 +WDR3:426:h:0:6900:0:1501:0:0 +WDR 5:426:h:0:6900:0:1601:0:0 +N3:426:h:0:6900:2401:2402:0:0 +ORF:394:h:1:6900:506:507:0:28010 +TV Polonia:434:h:0:6900:641:642:0:0 +Kanal D:434:h:0:6900:651:652:0:0 +RTP international:434:h:0:6900:661:662:0:0 +ATV:434:h:0:6900:631:632:0:0 +ERT-Sat:434:h:0:6900:691:692:0:0 +MV-Test:442:h:0:6900:0:0:0:0 +ZEE TV:442:h:0:6900:517:773:0:0 +NTV i:442:h:0:6900:514:515:0:0 +All Jazz:442:h:0:6900:0:535:0:0 +Cristal New Age:442:h:0:6900:0:536:0:0 +Movie Sounds:442:h:0:6900:0:537:0:0 +Sinfonica:442:h:0:6900:0:538:0:0 +Opernfestival:442:h:0:6900:0:539:0:0 +Barock Fantasie:442:h:0:6900:0:540:0:0 +Musica Camerata:442:h:0:6900:0:541:0:0 +Musica Antica:442:h:0:6900:0:542:0:0 +Adagio:442:h:0:6900:0:543:0:0 +Jazz Legends:442:h:0:6900:0:544:0:0 diff --git a/dvbapi.c b/dvbapi.c index c1fb6efc..470835ac 100644 --- a/dvbapi.c +++ b/dvbapi.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbapi.c 1.58 2001/02/11 11:04:41 kls Exp $ + * $Id: dvbapi.c 1.59 2001/02/20 17:40:57 kls Exp $ */ #include "dvbapi.h" @@ -2128,11 +2128,17 @@ bool cDvbApi::SetChannel(int ChannelNumber, int FrequencyMHz, char Polarization, struct frontend front; ioctl(videoDev, VIDIOCGFRONTEND, &front); unsigned int freq = FrequencyMHz; - front.ttk = (freq < 11700UL) ? 0 : 1; - if (freq < 11700UL) - freq -= Setup.LnbFrequLo; - else - freq -= Setup.LnbFrequHi; + if (front.type == FRONT_DVBS) { + front.ttk = (freq < 11700UL) ? 0 : 1; + if (freq < 11700UL) { + freq -= Setup.LnbFrequLo; + front.ttk = 0; + } + else { + freq -= Setup.LnbFrequHi; + front.ttk = 1; + } + } front.channel_flags = Ca ? DVB_CHANNEL_CA : DVB_CHANNEL_FTA; front.pnr = Pnr; front.freq = freq * 1000000UL; @@ -2144,6 +2150,7 @@ bool cDvbApi::SetChannel(int ChannelNumber, int FrequencyMHz, char Polarization, front.tt_pid = Tpid; front.fec = 8; front.AFC = 1; + front.qam = 2; ioctl(videoDev, VIDIOCSFRONTEND, &front); if (front.sync & 0x1F == 0x1F) { if (this == PrimaryDvbApi && siProcessor)