summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS3
-rw-r--r--ChangeLog3
-rw-r--r--configure.ac2
-rw-r--r--doc/README.dvb62
-rw-r--r--doc/dvb_channels1878
-rw-r--r--src/input/Makefile.am4
-rw-r--r--src/input/dvb/Makefile.am (renamed from src/input/ost/Makefile.am)4
-rw-r--r--src/input/dvb/dmx.h172
-rw-r--r--src/input/dvb/frontend.h262
-rw-r--r--src/input/input_dvb.c625
-rw-r--r--src/input/ost/README9
-rw-r--r--src/input/ost/ca.h84
-rw-r--r--src/input/ost/demux.h346
-rw-r--r--src/input/ost/dmx.h143
-rw-r--r--src/input/ost/frontend.h211
-rw-r--r--src/input/ost/sec.h118
16 files changed, 835 insertions, 3091 deletions
diff --git a/AUTHORS b/AUTHORS
index 3c9782eb4..917e51576 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -318,5 +318,8 @@ Anders D. Wiehe <anders@wiehe.org>
Zoltán Böszörményi <zboszor@freemail.hu>
tremendous help in porting sputext to 1.0 API
+Micael Beronius <micael.beronius@telia.com>
+Chris Purnell <cjp@lost.org.uk>
+ DVB plugin port to new API, DVB-C support, updates, fixes
(let us know if we've forgotten anyone)
diff --git a/ChangeLog b/ChangeLog
index eaa7466da..158372e6d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,7 +11,8 @@
* Dialogic ADPCM audio decoder
* reporting of unhandled codecs
* NSF audio decoding via Nosefart
-
+ * DVB plugin updated to new DVB API, DVB-C and DVB-T support
+
xine-lib (1-beta2)
* what a GOOM! post plugin
* Digital TV (DVB) input plugin (experimental)
diff --git a/configure.ac b/configure.ac
index b8f67e9cf..ec30f8b87 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1188,7 +1188,7 @@ src/dxr3/Makefile
src/input/Makefile
src/input/libdvdnav/Makefile
src/input/libdvdread/Makefile
-src/input/ost/Makefile
+src/input/dvb/Makefile
src/input/librtsp/Makefile
src/input/libreal/Makefile
src/liba52/Makefile
diff --git a/doc/README.dvb b/doc/README.dvb
index 3c487c395..c3a77b99d 100644
--- a/doc/README.dvb
+++ b/doc/README.dvb
@@ -5,19 +5,24 @@ xine Digital TV (DVB)
xine can be used to watch digital television.
xine supports Digital TV (Digital Video Broadcasting - DVB) cards
-using the Linux DVB driver from Convergence (so far this has only been
-tested using a Hauppauge WinTV Nova DVB-S card).
+using the Linux DVB driver from Convergence (http://www.linuxtv.org).
+DVB-S (direct satellite reception), DVB-C (Cable) and DVB-T (Teresstrical)
+cards should be supported (e.g. the Hauppauge WinTV Nova DVB-S card).
driver download and installation
--------------------------------
-Download and install the latest drivers from www.linuxtv.org. You will
-need kernel sources configured for your configuration for a successfull build,
-preferably in /usr/src/linux. Once you have that, unpack the driver sources
+Download and install the drivers from http://www.linuxtv.org CVS:
-# tar xfvz siemens_dvb-0.9.4.tar.gz
+# cvs -d :pserver:anonymous@linuxtv.org:/cvs/linuxtv login
-and compile the driver
+[empty password]
+
+# cvs -d :pserver:anonymous@linuxtv.org:/cvs/linuxtv co DVB
+
+You will need kernel sources configured for your configuration for
+a successfull build, preferably in /usr/src/linux. Once you have that
+you should be ready to compile the driver
# cd DVB/driver
# make
@@ -27,9 +32,12 @@ if that doesn't fail, do a
# make insmod
to load the generated modules into your running kernel. If everything went
-fine, you should have a line like
+fine, you should have something like
-dvb: 1 dvb(s) found!
+DVB: registering new adapter (TT-Budget/WinTV-NOVA-S PCI).
+PCI: Found IRQ 10 for device 00:0d.0
+PCI: Sharing IRQ 10 with 00:0c.0
+DVB: registering frontend 0:0 (stv0299 based (e.g. Alps BSRU6 or LG TDQB-S00x))...
in your dmesg.
@@ -38,40 +46,14 @@ install a channel list
----------------------
xine's dvb input plugin needs a channel/transponder list that fits your
-satellite equipment. If you happen to live in central europe and want to
-watch free channels from the astra 1a position you're lucky - you can simply
-copy the dvb_channels file that comes with libxine (doc directory)
-
-$ mkdir ~/.xine
-$ cp doc/dvb_channels ~/.xine
-
-otherwise you'll probably want to write your own channels file. The file
-format is very simple: for each station add three lines:
-
-Program Name
-A BBBBBBBB C DDDDDDDD E FFF GGG
-(empty line)
-
-with
-
-A - diseqc number
-
-B - Frequency
-
-C - LNB voltage (H/V polarisation switch)
- (4: horizontal, 2: vertical polarisation)
-
-D - Symbol Rate
-
-E - FEC
-
-F - vpid (video program id)
+dvb equipment. xine now uses the channels.conf format of szap, czap and
+tzap as appropriate for DVB-S, DVB-C and DVB-T.
-G - apid (audio program id)
+You should be able to find example channel config files in
-once you have written a working dvb_channels file for your location/satellite,
-you might want to share it with others on the xine-user mailing list :-)
+DVB/apps/szap
+as checked out from CVS.
using xine to watch digital television
--------------------------------------
diff --git a/doc/dvb_channels b/doc/dvb_channels
deleted file mode 100644
index b0932d158..000000000
--- a/doc/dvb_channels
+++ /dev/null
@@ -1,1878 +0,0 @@
-ARD Das Erste
-0 11837000 4 27500000 2 101 102
-EinsMuXx
-0 12109000 4 27500000 2 301 302
-EinsExtra
-0 12109000 4 27500000 2 101 102
-EinsFestival
-0 12109000 4 27500000 2 201 202
-ZDF
-0 11954000 4 27500000 2 110 120
-ZDFtheaterkanal
-0 11954000 4 27500000 2 1110 1120
-RTL Television
-0 12188000 4 27500000 2 163 104
-SAT.1-CH
-0 12148000 4 27500000 2 255 256
-ProSieben
-0 12483000 2 27502000 2 255 256
-RTL2
-0 12188000 4 27500000 2 166 128
-VOX
-0 12188000 4 27500000 2 167 136
-KABEL1
-0 12483000 2 27502000 2 511 512
-Super RTL
-0 12188000 4 27500000 2 165 120
-Tele 5
-0 12480000 2 27500000 3 1535 1536
-NEUN LIVE Television
-0 12483000 2 27502000 2 767 768
-TW1
-0 12692000 4 22000000 3 166 167
-XXP
-2 11095000 4 27500000 2 33 44
-N24
-0 12483000 2 27500000 2 2047 2048
-n-tv
-0 12670000 2 22000000 3 162 96
-CNN Int.
-0 12168000 2 27500000 2 165 100
-EuroNews
-0 11954000 4 27500000 2 2221 2233
-FOX news
-2 10983000 2 27500000 2 523 751
-CNBC
-0 11954000 4 27500000 2 510 520
-CNBC Europe
-0 12610000 2 22000000 3 944 945
-Sky News
-0 12552000 2 22000000 3 305 306
-Phoenix
-0 11837000 4 27500000 2 901 902
-WorldNet Europe
-2 12484000 2 8300000 3 4260 4220
-WorldNet
-2 12484000 2 8300000 3 4560 4520
-DW TV America
-2 11143000 2 5500000 7 33 4010
-DW TV Afghanistan
-2 11143000 2 5500000 7 111 112
-DW-TV
-0 10788000 2 22000000 3 305 306
-EbS - Europe by Satellite
-2 12476000 4 27500000 3 101 202
-NBC Europe
-2 11054000 4 27500000 5 550 551
-NBC
-2 11054000 4 27500000 3 550 551
-Gay TV
-2 12149000 2 27500000 3 36 37
-Fashion TV
-2 12245000 4 27500000 3 123 133
-Bahn TV
-0 12633000 4 22000000 5 201 301
-BR-alpha
-0 11837000 4 27500000 2 701 702
-Bibel TV
-0 10832000 4 22000000 5 32 33
-K-TV
-2 11604000 4 27500000 5 711 712
-LibertyTV.com
-0 12610000 2 22000000 5 941 943
-Motors TV
-0 12610000 2 22000000 5 191 194
-RTL TELE Letzebuerg
-0 12552000 2 22000000 3 168 144
-Nordliicht TV
-0 12552000 2 22000000 3 168 144
-Duna TV
-2 12149000 2 27500000 3 96 97
-EWTN Europe
-2 10723000 4 29900000 3 1001 1201
-MTA International
-2 10723000 4 29900000 3 1004 1304
-arte
-0 11837000 4 27500000 2 401 402
-Bloomberg TV Germany
-0 12552000 2 22000000 3 162 99
-Bloomberg English TV
-2 11647000 4 27500000 2 1560 1520
-ZDFdokukanal
-0 11954000 4 27500000 2 660 670
-ZDFinfokanal
-0 11954000 4 27500000 2 610 620
-MTV Central
-0 12699000 2 22000000 3 3031 3032
-MTV Germany
-0 11739000 2 27500000 3 3031 3032
-MTV Pop
-0 11739000 2 27500000 3 3081 3082
-VIVA
-0 12670000 2 22000000 3 309 310
-VIVA PLUS
-0 12552000 2 22000000 3 171 172
-DeeJay TV
-2 11604000 4 27500000 5 160 161
-VIVA Polska
-2 11604000 4 27500000 5 190 191
-102&5 Hit Channel
-2 11623000 2 27500000 3 224 244
-123 Sat
-2 11623000 2 27500000 3 230 250
-Channel X / Ultra Blue TV
-2 11623000 2 27500000 3 223 243
-TV NRW
-2 11604000 4 27500000 5 111 112
-Arte German
-2 11060000 2 6510000 5 98 99
-3sat
-0 11954000 4 27500000 2 210 220
-SFB1
-0 12109000 4 27500000 2 601 602
-SR Fernsehen Suedwes
-0 11837000 4 27500000 2 501 502
-S&Uuml;DWEST BW
-0 11837000 4 27500000 2 801 802
-WDR FERNSEHEN
-0 11837000 4 27500000 2 601 602
-Bayerisches FS
-0 11837000 4 27500000 2 201 202
-hessen fernsehen
-0 11837000 4 27500000 2 301 302
-MDR FERNSEHEN
-0 12109000 4 27500000 2 401 402
-NDR Fernsehen
-0 12109000 4 27500000 2 2401 2402
-ORB-Fernsehen
-0 12109000 4 27500000 2 501 502
-SUEDWEST RP
-0 12109000 4 27500000 2 3101 3102
-tv.nrw
-2 11604000 4 27500000 3 111 112
-ONTV Regional
-0 12148000 4 27500000 2 2303 2304
-Eurosport
-0 11954000 4 27500000 2 410 420
-Iraq
-2 12654000 4 27500000 2 1960 1920
-Tele5
-0 10832000 4 22000000 3 58 65
-TV POLONIA
-2 10719000 2 27500000 2 163 92
-ALLOCINE INFO
-0 11739000 2 27500000 2 167 108
-Chamber TV
-0 12552000 2 22000000 3 55 56
-LCP
-0 12207000 2 27500000 2 165 100
-TEST
-0 12188000 4 27500000 2 50 51
-FEED
-0 12437000 4 27500000 2 308 256
-RTL2 AUSTRIA
-2 11054000 4 27500000 2 520 521
-ProSieben Schweiz
-0 12051000 2 27500000 2 289 290
-RTL Television
-2 11054000 4 27500000 2 160 80
-RAI 1
-2 10788000 2 22000000 3 289 290
-ESC1 - EGYPTE
-0 10788000 2 22000000 3 163 104
-Canal Algerie
-0 10788000 2 22000000 3 168 138
-Test-R
-0 11837000 4 27500000 2 901 902
-RTM - MAROC
-0 10788000 2 22000000 2 162 96
-RTPI
-0 10788000 2 22000000 2 300 301
-TV 5
-0 10788000 2 22000000 2 164 112
-TV7
-0 10788000 2 22000000 2 166 128
-Polonia 1
-0 10832000 4 22000000 2 54 57
-Tango TV
-0 10832000 4 22000000 2 61 62
-TV Puls
-0 10832000 4 22000000 2 59 60
-FRANCE 5
-0 11608000 2 22000000 2 160 80
-ANDALUC&Iacute;A TV
-0 11686000 2 22000000 2 162 88
-Canal Canarias
-0 11686000 2 22000000 2 160 80
-ETB SAT
-0 11686000 2 22000000 2 163 92
-TM SAT/LA OTRA
-0 11686000 2 22000000 2 164 96
-TVC INT.
-0 11686000 2 22000000 2 161 84
-Kabel 1 Austria
-0 12051000 2 27500000 2 166 167
-Kabel 1 Schweiz
-0 12051000 2 27500000 2 162 163
-ProSieben Austria
-0 12051000 2 27500000 2 161 84
-SAT.1 A
-0 12051000 2 27500000 2 800 801
-FRANCE 5
-0 12207000 2 27500000 2 160 80
-AB SAT / XXL
-0 12266000 4 27500000 2 164 96
-MOTEURS
-0 12266000 4 27500000 2 160 80
-CA TV
-0 12324000 2 27500000 2 165 100
-LE SESAME C+
-0 12324000 2 27500000 2 165 1965
-MOSAIQUE
-0 12324000 2 27500000 2 162 0
-RealityTV
-0 12382000 4 27500000 2 169 110
-K13
-0 12402000 2 27500000 2 163 92
-ANDALUC&Iacute;A TV
-0 12441000 2 27500000 2 162 88
-Canal Canarias
-0 12441000 2 27500000 2 160 80
-ETB SAT
-0 12441000 2 27500000 2 163 92
-TAQUILLA 0
-0 12441000 2 27500000 2 166 104
-TM SAT/LA OTRA
-0 12441000 2 27500000 2 164 96
-TVC INT.
-0 12441000 2 27500000 2 161 84
-DSF
-0 12483000 2 27502000 2 1023 1024
-Sonnenklar TV
-0 12090000 2 27500000 2 1023 1024
-Home Shopping Europe
-0 12483000 2 27502000 2 1279 1280
-RTL Shop
-0 12188000 4 27500000 2 168 137
-QVC GERMANY
-0 12552000 2 22000000 3 165 166
-Travel
-0 12168000 2 27500000 2 163 92
-Promo
-2 12169000 4 27500000 2 521 740
-ASTRA Mosaik
-0 12552000 2 22000000 5 175 176
-ASTRA-Mosaic 2
-0 12552000 2 22000000 5 179 120
-ASTRA-Mosaic 3
-0 12552000 2 22000000 5 182 169
-ASTRA-Mosaic 4
-0 12552000 2 22000000 5 185 170
-ASTRA-Mosaic 5
-0 12552000 2 22000000 5 163 164
-BVN
-0 12574000 4 22000000 2 164 96
-Liberty TV.com
-0 12610000 2 22000000 2 941 943
-RTBF SAT
-0 12610000 2 22000000 2 48 49
-TV5 Europe
-0 12610000 2 22000000 2 45 46
-Wishline
-0 12610000 2 22000000 2 214 215
-No-ZAP TV
-0 12640000 4 22000000 2 160 80
-TV-NIEP II
-0 12670000 2 22000000 2 77 78
-BL-SPIEL 1
-0 11719000 4 27500000 2 255 256
-BL-SPIEL 2
-0 11719000 4 27500000 2 2047 2048
-BL-SPIEL 3
-0 11719000 4 27500000 2 2303 2304
-BL-SPIEL 4
-0 11719000 4 27500000 2 2559 2560
-BL-SPIEL 5
-0 11719000 4 27500000 2 2815 2816
-BL-SPIEL 6
-0 11719000 4 27500000 2 3071 3072
-F1 Box
-0 11719000 4 27500000 2 2559 2560
-F1 Cockpit
-0 11719000 4 27500000 2 2303 2304
-F1 Info
-0 11719000 4 27500000 2 3071 3072
-F1 Portal
-0 11719000 4 27500000 2 255 256
-F1 Super
-0 11719000 4 27500000 2 2047 2048
-F1 Verfolger
-0 11719000 4 27500000 2 2815 2816
-PREM EROTIK 2
-0 11719000 4 27500000 2 1535 1536
-PREM EROTIK 3
-0 11719000 4 27500000 2 1791 1792
-PREM EROTIK 4
-0 11719000 4 27500000 2 3583 3584
-PREMIERE DIREKT 1
-0 11719000 4 27500000 2 1023 1024
-PREMIERE DIREKT 2
-0 11719000 4 27500000 2 767 768
-PREMIERE DIREKT 3
-0 11719000 4 27500000 2 511 512
-PREMIERE DIREKT 3
-0 11719000 4 27500000 2 1279 1280
-PREMIERE SPORT 1
-0 11719000 4 27500000 2 255 256
-CINE CINEMA 16/9
-0 11739000 2 27500000 2 160 80
-CLUB TELEACHAT
-0 11739000 2 27500000 2 162 88
-GOURMET TV
-0 11739000 2 27500000 2 170 120
-KTO
-0 11739000 2 27500000 2 163 92
-MATCH TV
-0 11739000 2 27500000 2 165 100
-MCM
-0 11739000 2 27500000 2 161 84
-MCM 2
-0 11739000 2 27500000 2 164 96
-MCM AFRICA
-0 11739000 2 27500000 2 166 104
-NAT GEOGRAPHIC
-0 11739000 2 27500000 2 169 116
-TiJi
-0 11739000 2 27500000 2 168 112
-13 TH STREET
-0 11758000 4 27500000 2 2303 2304
-BEATE-UHSE.TV
-0 11758000 4 27500000 2 1023 1024
-CLASSICA
-0 11758000 4 27500000 2 767 768
-FOX KIDS
-0 11758000 4 27500000 2 1279 1280
-GOLDSTAR TV
-0 11758000 4 27500000 2 3839 3840
-HEIMATKANAL
-0 11758000 4 27500000 2 1535 1536
-JUNIOR
-0 11758000 4 27500000 2 255 256
-K-TOON
-0 11758000 4 27500000 2 511 512
-CANAL J
-0 11778000 2 27500000 2 167 108
-CUISINE.TV
-0 11778000 2 27500000 2 165 100
-EUROSPORT
-0 11778000 2 27500000 2 160 80
-LCI
-0 11778000 2 27500000 2 166 104
-PARIS PREMIERE
-0 11778000 2 27500000 2 163 92
-PLANETE
-0 11778000 2 27500000 2 162 88
-SANTE - VIE PLUS
-0 11778000 2 27500000 2 168 112
-SANTE-VIE
-0 11778000 2 27500000 2 168 112
-TMC
-0 11778000 2 27500000 2 161 84
-VOYAGE
-0 11778000 2 27500000 2 164 96
-PREMIERE 1
-0 11797000 4 27500000 2 511 512
-PREMIERE 2
-0 11797000 4 27500000 2 1791 1792
-PREMIERE 3
-0 11797000 4 27500000 2 2303 2304
-PREMIERE 4
-0 11797000 4 27500000 2 767 768
-PREMIERE 5
-0 11797000 4 27500000 2 1279 1280
-PREMIERE 6
-0 11797000 4 27500000 2 1535 1536
-PREMIERE 7
-0 11797000 4 27500000 2 1023 1024
-PREMIERE START
-0 11797000 4 27500000 2 255 256
-BLOOMBERG TV
-0 11817000 2 27500000 2 163 92
-CANAL JIMMY
-0 11817000 2 27500000 2 165 100
-CINECINEMAS 2
-0 11817000 2 27500000 2 161 84
-CINECINEMAS 3
-0 11817000 2 27500000 2 162 88
-i TELEVISION
-0 11817000 2 27500000 2 169 116
-LA CHAINE METEO
-0 11817000 2 27500000 2 167 108
-MEZZO
-0 11817000 2 27500000 2 166 104
-MEZZO[esp]
-0 11817000 2 27500000 2 166 104
-PATHE SPORT:
-0 11817000 2 27500000 2 168 112
-SEASONS
-0 11817000 2 27500000 2 160 80
-CANAL+
-0 11856000 2 27500000 2 160 80
-CANAL+ 16/9
-0 11856000 2 27500000 2 163 92
-CANAL+ BLEU
-0 11856000 2 27500000 2 161 84
-CANAL+ JAUNE
-0 11856000 2 27500000 2 162 88
-CANAL+ VERT
-0 11856000 2 27500000 2 167 108
-CINE CLASSICS
-0 11856000 2 27500000 2 2047 0
-CINECINEMAS 1
-0 11856000 2 27500000 2 165 100
-DISNEY CHANNEL
-0 11856000 2 27500000 2 166 104
-EQUIDIA
-0 11856000 2 27500000 2 168 112
-PMU sur Canal+
-0 11856000 2 27500000 2 160 80
-40 LATINO
-0 11934000 2 27500000 2 160 80
-CANAL+ ...30
-0 11934000 2 27500000 2 167 108
-CINECLASSICS
-0 11934000 2 27500000 2 162 88
-CNN+
-0 11934000 2 27500000 2 172 128
-EUROSPORTNEWS
-0 11934000 2 27500000 2 173 132
-FOX NEWS
-0 11934000 2 27500000 2 168 112
-M&Eacute;TEO
-0 11934000 2 27500000 2 169 116
-Nat Geographic
-0 11934000 2 27500000 2 170 120
-REAL MADRID TV
-0 11934000 2 27500000 2 171 124
-40 LATINO
-0 11941000 2 27500000 2 160 80
-CANAL+ ...30
-0 11941000 2 27500000 2 167 108
-CINECLASSICS
-0 11941000 2 27500000 2 162 88
-40 TV
-0 11973000 2 27500000 2 165 100
-CANAL+
-0 11973000 2 27500000 2 160 80
-CANAL+ AZUL
-0 11973000 2 27500000 2 161 84
-CANAL+ ROJO
-0 11973000 2 27500000 2 162 88
-DISCOVERY
-0 11973000 2 27500000 2 166 104
-DISNEY CHANNEL
-0 11973000 2 27500000 2 163 92
-SPORTMAN&Iacute;A
-0 11973000 2 27500000 2 164 96
-SPORTMAN&Iacute;A
-0 11973000 2 27500000 2 164 96
-ATV
-0 11992000 4 27500000 2 163 90
-Avante
-0 11992000 4 27500000 2 162 88
-Discovery Cze
-0 11992000 4 27500000 2 170 112
-Eurosport
-0 11992000 4 27500000 2 160 80
-ExtremeSports
-0 11992000 4 27500000 2 165 98
-Hallmark Cze
-0 11992000 4 27500000 2 702 703
-M2
-0 11992000 4 27500000 2 164 96
-MTV Europe
-0 11992000 4 27500000 2 168 108
-Private Gold
-0 11992000 4 27500000 2 167 106
-SpektrumInt.
-0 11992000 4 27500000 2 169 110
-TV3
-0 11992000 4 27500000 2 166 104
-CANAL EVENEMENT
-0 12012000 2 27500000 2 162 88
-ESPN CLASSIC
-0 12012000 2 27500000 2 169 116
-FRANCE 2
-0 12012000 2 27500000 2 160 80
-FRANCE 3
-0 12012000 2 27500000 2 161 84
-MCM AFRICA
-0 12012000 2 27500000 2 166 104
-TELE MELODY
-0 12012000 2 27500000 2 167 108
-[18]
-0 12012000 2 27500000 2 2047 0
-DISCOVERY CHANNEL
-0 12031000 4 27500000 2 1791 1792
-KRIMI &amp;CO
-0 12031000 4 27500000 2 1535 1536
-PREMIERE DIREKT 1
-0 12031000 4 27500000 2 511 512
-PREMIERE DIREKT 2
-0 12031000 4 27500000 2 255 256
-PREMIERE DIREKT 4
-0 12031000 4 27500000 2 2815 2816
-PREMIERE EROTIK
-0 12031000 4 27500000 2 1279 1280
-PREMIERE NOSTALGIE
-0 12031000 4 27500000 2 2559 2560
-PREMIERE SERIE
-0 12031000 4 27500000 2 1023 1024
-PREMIERE SPORT 2
-0 12031000 4 27500000 2 3839 3840
-BL-KONFERENZ
-0 12070000 4 27500000 2 255 256
-BL-SPIEL 7
-0 12070000 4 27500000 2 3071 3072
-BL-SPIEL 8
-0 12070000 4 27500000 2 3071 3072
-BL-SPIEL 9
-0 12070000 4 27500000 2 3071 3072
-DISNEY CHANNEL
-0 12090000 2 27500000 2 767 768
-PLANET
-0 12090000 2 27500000 2 1279 1280
-STUDIO UNIVERSAL
-0 12090000 2 27500000 2 255 256
-K1
-0 12129000 2 27500000 2 160 80
-K10
-0 12129000 2 27500000 2 169 116
-K11
-0 12129000 2 27500000 2 166 104
-K12
-0 12129000 2 27500000 2 167 108
-K2
-0 12129000 2 27500000 2 161 84
-K3
-0 12129000 2 27500000 2 162 88
-K4
-0 12129000 2 27500000 2 163 92
-K5
-0 12129000 2 27500000 2 164 96
-K6
-0 12129000 2 27500000 2 165 100
-K7
-0 12129000 2 27500000 2 166 104
-K8
-0 12129000 2 27500000 2 167 108
-K9
-0 12129000 2 27500000 2 168 112
-BD 1
-0 12148000 4 27500000 2 1791 1792
-BD 3/PARTNER TV
-0 12148000 4 27500000 2 511 512
-BD 4
-0 12148000 4 27500000 2 2047 2048
-BD_DVB
-0 12148000 4 27500000 2 1023 1024
-BetaBC
-0 12148000 4 27500000 2 1535 1536
-Bloomberg
-0 12168000 2 27500000 2 167 112
-TCM
-0 12168000 2 27500000 2 169 64
-TCM.
-0 12168000 2 27500000 2 164 96
-TVBS
-0 12168000 2 27500000 2 162 88
-CANALPRO TV
-0 12207000 2 27500000 2 170 120
-EURONEWS
-0 12207000 2 27500000 2 164 96
-PLANETE 2
-0 12207000 2 27500000 2 166 104
-TV BREIZH
-0 12207000 2 27500000 2 161 84
-ESTILO
-0 12246000 2 27500000 2 165 100
-EUROSPORT
-0 12246000 2 27500000 2 164 96
-NICK-PARAMOUNT
-0 12246000 2 27500000 2 167 108
-SEASONS
-0 12246000 2 27500000 2 170 120
-TAQUILLA 11
-0 12246000 2 27500000 2 169 116
-TAQUILLA 6
-0 12246000 2 27500000 2 161 84
-TAQUILLA 7
-0 12246000 2 27500000 2 162 88
-TAQUILLA 8
-0 12246000 2 27500000 2 163 92
-TAQUILLA 9
-0 12246000 2 27500000 2 171 124
-VIAJAR
-0 12246000 2 27500000 2 166 104
-AB 1
-0 12266000 4 27500000 2 161 84
-ACTION
-0 12266000 4 27500000 2 170 120
-ANIMAUX
-0 12266000 4 27500000 2 162 88
-ENCYCLOPEDIA
-0 12266000 4 27500000 2 163 92
-ESCALES
-0 12266000 4 27500000 2 165 100
-FIT/CHAINE HISTOIRE
-0 12266000 4 27500000 2 166 104
-MANGA
-0 12266000 4 27500000 2 171 124
-RFM-TV
-0 12266000 4 27500000 2 168 112
-CNBC-NBC
-0 12287000 2 27500000 2 162 88
-DISNEY CH. +1
-0 12287000 2 27500000 2 171 124
-DOCUMAN&Iacute;A
-0 12287000 2 27500000 2 160 80
-FOX KIDS
-0 12287000 2 27500000 2 161 84
-Playhouse Disney
-0 12287000 2 27500000 2 172 128
-TAQUILLA 1
-0 12287000 2 27500000 2 166 104
-TAQUILLA 14
-0 12287000 2 27500000 2 176 144
-TAQUILLA 2
-0 12287000 2 27500000 2 167 108
-TAQUILLA X
-0 12287000 2 27500000 2 170 120
-TOON DISNEY
-0 12287000 2 27500000 2 173 132
-Animal Planet
-0 12304000 4 27500000 2 702 703
-Animal Planet Cze
-0 12304000 4 27500000 2 706 707
-Duna TV
-0 12304000 4 27500000 2 168 108
-Eurosport News
-0 12304000 4 27500000 2 167 106
-FoxKids
-0 12304000 4 27500000 2 163 90
-Hallmark
-0 12304000 4 27500000 2 161 84
-HBO Cze
-0 12304000 4 27500000 2 164 96
-MTV Classic
-0 12304000 4 27500000 2 165 98
-MTV Polska
-0 12304000 4 27500000 2 166 104
-Sport 1 Hun
-0 12304000 4 27500000 2 169 110
-TCM Cartoon
-0 12304000 4 27500000 2 162 88
-Viasat 3
-0 12304000 4 27500000 2 160 80
-CANAL CLUB
-0 12324000 2 27500000 2 160 80
-Animal Planet
-0 12344000 4 27500000 2 164 96
-Discovery
-0 12344000 4 27500000 2 162 88
-NGC
-0 12344000 4 27500000 2 161 84
-RTL4
-0 12344000 4 27500000 2 160 80
-RTL5
-0 12344000 4 27500000 2 163 92
-Club
-0 12382000 4 27500000 2 162 88
-Discovery
-0 12382000 4 27500000 2 163 90
-Filmm&Acirc;uzeum
-0 12382000 4 27500000 2 165 98
-Fox Kids CE
-0 12382000 4 27500000 2 166 104
-HBO Hun
-0 12382000 4 27500000 2 161 82
-National Geographic
-0 12382000 4 27500000 2 164 96
-TA3
-0 12382000 4 27500000 2 167 106
-TCM Cartoon CE
-0 12382000 4 27500000 2 170 114
-13EME RUE
-0 12402000 2 27500000 2 162 88
-CINECLASSICS
-0 12402000 2 27500000 2 168 112
-COMEDIE !
-0 12402000 2 27500000 2 161 84
-CSAT
-0 12402000 2 27500000 2 169 116
-DEMAIN !
-0 12402000 2 27500000 2 160 80
-FOX KIDS
-0 12402000 2 27500000 2 164 96
-GAME ONE
-0 12402000 2 27500000 2 167 108
-KIOSQUE
-0 12402000 2 27500000 2 163 92
-L'EQUIPE TV
-0 12402000 2 27500000 2 165 100
-PLANETE FUTURE
-0 12402000 2 27500000 2 166 104
-RFO SAT
-0 12402000 2 27500000 2 164 96
-C+ Blauw
-0 12515000 4 22000000 2 161 84
-C+ Rood
-0 12515000 4 22000000 2 160 80
-C+16/9
-0 12515000 4 22000000 2 166 104
-NED1
-0 12515000 4 22000000 2 162 88
-NED2
-0 12515000 4 22000000 2 163 92
-NED3
-0 12515000 4 22000000 2 164 96
-The Studio
-0 12515000 4 22000000 2 167 108
-X-ZONE
-0 12515000 4 22000000 2 165 87
-AXN
-0 12522000 2 22000000 2 166 104
-CINEMAN&Iacute;A
-0 12522000 2 22000000 2 160 80
-CINEMAN&Iacute;A AZUL
-0 12522000 2 22000000 2 161 84
-FOX
-0 12522000 2 22000000 2 167 108
-TAQUILLA 3
-0 12522000 2 22000000 2 162 88
-TAQUILLA 4
-0 12522000 2 22000000 2 163 92
-TAQUILLA 5
-0 12522000 2 22000000 2 164 96
-Kindernet/Veronica
-0 12574000 4 22000000 2 166 104
-NET5
-0 12574000 4 22000000 2 165 100
-SBS6
-0 12574000 4 22000000 2 160 80
-TMF
-0 12574000 4 22000000 2 162 88
-V8/Fox Kids
-0 12574000 4 22000000 2 163 92
-Yorin
-0 12574000 4 22000000 2 161 84
-CINEMAN&Iacute;A ROJO
-0 12581000 2 22000000 2 165 100
-TAQUILLA 12
-0 12581000 2 22000000 2 168 112
-TAQUILLA 12
-0 12581000 2 22000000 2 172 128
-TAQUILLA X
-0 12581000 2 22000000 2 163 92
-TAQUILLA XX
-0 12581000 2 22000000 2 161 84
-TAQUILLA XY
-0 12581000 2 22000000 2 162 88
-ORF 1
-0 12692000 4 22000000 2 160 161
-ORF 2
-0 12692000 4 22000000 2 500 501
-ORF 2 B
-0 12692000 4 22000000 2 500 501
-ORF 2 K
-0 12692000 4 22000000 2 500 501
-ORF 2 N
-0 12692000 4 22000000 2 500 501
-ORF 2 O
-0 12692000 4 22000000 2 500 501
-ORF 2 S
-0 12692000 4 22000000 2 500 501
-ORF 2 St
-0 12692000 4 22000000 2 500 501
-ORF 2 T
-0 12692000 4 22000000 2 500 501
-ORF 2 V
-0 12692000 4 22000000 2 500 501
-ORF 2 W
-0 12692000 4 22000000 2 500 501
-MTV 2
-0 12699000 2 22000000 2 3091 3092
-MTV 2.
-0 12699000 2 22000000 2 3091 3092
-MTV Base
-0 12699000 2 22000000 2 3051 3052
-MTV Base.
-0 12699000 2 22000000 2 3051 3052
-MTV ESP
-0 12699000 2 22000000 2 3011 3012
-MTV F
-0 12699000 2 22000000 2 3021 3022
-MTV HITS
-0 12699000 2 22000000 2 3041 3042
-MTV HITS.
-0 12699000 2 22000000 2 3041 3042
-MTV2 Pop Channel
-0 12699000 2 22000000 2 3081 3082
-VH1
-0 12699000 2 22000000 2 3061 3062
-VH1 Classic
-0 12699000 2 22000000 2 3071 3072
-10.722 H
-2 10734000 4 29900000 2 1005 1205
-Cinenova
-2 10734000 4 29900000 2 1003 1203
-Cinenova 2
-2 10734000 4 29900000 2 1002 1202
-Deepam TV
-2 10734000 4 29900000 2 1006 1206
-EWTN
-2 10734000 4 29900000 2 1001 1201
-MTA INTL
-2 10734000 4 29900000 2 1004 1204
-BOULH
-2 10949000 2 27500000 2 7488 7489
-HSE Italia
-2 10983000 2 27500000 2 522 750
-s.verde
-2 10983000 2 27500000 2 2689 2690
-CNN
-2 11054000 4 27500000 2 540 542
-RTL A
-2 11054000 4 27500000 2 580 584
-VOX CH
-2 11054000 4 27500000 2 500 501
-ZDF
-2 11054000 4 27500000 2 570 571
-Kurdsat
-2 11095000 4 27500000 2 38 41
-New Live Channel CNL
-2 11095000 4 27500000 2 51 52
-NOELLO SAT
-2 11095000 4 27500000 2 4194 4195
-professional TV
-2 11095000 4 27500000 2 32 47
-Sailing Channel
-2 11095000 4 27500000 2 37 34
-Spice Platinum
-2 11095000 4 27500000 2 2901 2911
-TVN
-2 11178000 4 22000000 2 512 650
-DW-tv
-2 11196000 2 9100000 2 101 102
-Testcard
-2 11205000 4 4000000 2 4130 4131
-Techniczny 2
-2 11406000 2 27500000 2 515 680
-TVN
-2 11406000 2 27500000 2 512 650
-TVN 24
-2 11406000 2 27500000 2 513 660
-TVN 7
-2 11406000 2 27500000 2 514 670
-RAI INTERNATIONAL
-2 11464000 2 4400000 2 512 650
-ARD &quot;Das Erste&quot;
-2 11604000 4 27500000 2 172 173
-DeeJay TV
-2 11604000 4 27500000 2 160 161
-DW-TV
-2 11604000 4 27500000 2 1000 1001
-K-TV
-2 11604000 4 27500000 2 711 712
-RTL 2 CH
-2 11604000 4 27500000 2 175 176
-Super RTL A
-2 11604000 4 27500000 2 180 181
-VIVA polska
-2 11604000 4 27500000 2 190 191
-102.5 HIT Ch
-2 11623000 2 27500000 2 224 244
-123SAT/69XTV
-2 11623000 2 27500000 2 230 250
-Cartoon Network
-2 11623000 2 27500000 2 3401 3411
-Channel SUN
-2 11623000 2 27500000 2 229 249
-KHALIFA TV
-2 11623000 2 27500000 2 228 248
-PRO SAT
-2 11623000 2 27500000 2 226 246
-TLC SAT
-2 11623000 2 27500000 2 225 245
-TV ROMANIA
-2 11623000 2 27500000 2 227 247
-Ultra Blue TV
-2 11623000 2 27500000 2 223 243
-Bloomberg European T
-2 11647000 4 27500000 2 1360 1320
-Bloomberg French TV
-2 11647000 4 27500000 2 1160 1120
-Bloomberg German TV
-2 11647000 4 27500000 2 1460 1420
-Bloomberg Italian TV
-2 11647000 4 27500000 2 1260 1220
-Tel Sell Homeshoppin
-2 11647000 4 27500000 2 1760 1720
-Test
-2 11647000 4 27500000 2 1660 1620
-EDTV 1
-2 11747000 4 27500000 2 4130 4131
-EDTV BUSINESS
-2 11747000 4 27500000 2 4642 4643
-EDTV DRAMA
-2 11747000 4 27500000 2 4898 4899
-EDTV SPORT
-2 11747000 4 27500000 2 4386 4387
-TEST
-2 11747000 4 27500000 2 7970 7971
-Canale Lavoro
-2 11766000 2 27500000 2 516 654
-RAI1
-2 11766000 2 27500000 2 160 80
-RAI2
-2 11766000 2 27500000 2 161 84
-RAI3
-2 11766000 2 27500000 2 162 88
-RAILAB
-2 11766000 2 27500000 2 517 655
-RaiMed
-2 11766000 2 27500000 2 515 653
-RAIMOSAICO
-2 11766000 2 27500000 2 164 96
-SENATO ITALIANO
-2 11766000 2 27500000 2 163 92
-CANAL 24 HORAS
-2 11789000 4 27500000 2 3569 3570
-CANAL CLASICO
-2 11789000 4 27500000 2 3529 3530
-HISPAVISION
-2 11789000 4 27500000 2 3545 3546
-LIBRE - CARTA
-2 11789000 4 27500000 2 3577 3578
-NOSTALGIA
-2 11789000 4 27500000 2 3561 3562
-TELEDEPORTE
-2 11789000 4 27500000 2 3537 3538
-TVE ASIA-AFRICA
-2 11789000 4 27500000 2 3553 3554
-TVE INTERNACIONAL
-2 11789000 4 27500000 2 3521 3522
-CAMERA DEPUTATI
-2 11804000 2 27500000 2 517 655
-RAIeducational
-2 11804000 2 27500000 2 514 652
-RAINettunoSAT1
-2 11804000 2 27500000 2 519 657
-RAINettunoSAT2
-2 11804000 2 27500000 2 513 651
-RAINews24
-2 11804000 2 27500000 2 516 654
-RAISPORTSAT
-2 11804000 2 27500000 2 512 650
-SAT2000
-2 11804000 2 27500000 2 518 656
-TELEPACE
-2 11804000 2 27500000 2 515 653
-Stream1
-2 11843000 2 27500000 2 512 650
-snai
-2 11881000 2 27500000 2 2561 2562
-stream news
-2 11881000 2 27500000 2 2305 2306
-C5
-2 11919000 2 27500000 2 513 660
-I1
-2 11919000 2 27500000 2 512 650
-R4
-2 11919000 2 27500000 2 514 670
-IQRA
-2 12015000 4 27500000 2 520 730
-LBC EUROPE
-2 12015000 4 27500000 2 517 700
-MA3
-2 12015000 4 27500000 2 522 750
-C. Milagro
-2 12092000 4 27500000 2 4368 4369
-Fiesta
-2 12092000 4 27500000 2 4432 4433
-Italiasat
-2 12092000 4 27500000 2 4520 4521
-LiveSex
-2 12092000 4 27500000 2 4660 4661
-Maharaji
-2 12092000 4 27500000 2 4416 4417
-Sex-View
-2 12092000 4 27500000 2 4630 4631
-Telesierra
-2 12092000 4 27500000 2 4160 4161
-Tizianasat
-2 12092000 4 27500000 2 4600 4601
-UBN
-2 12092000 4 27500000 2 3260 3220
-AL JAZEERA
-2 12111000 2 27500000 2 270 271
-Alice
-2 12111000 2 27500000 2 351 352
-ARM 1
-2 12111000 2 27500000 2 240 241
-Coming Soon TV
-2 12111000 2 27500000 2 310 311
-HB CHANNEL
-2 12111000 2 27500000 2 200 201
-Leonardo
-2 12111000 2 27500000 2 355 356
-Nuvolari
-2 12111000 2 27500000 2 358 359
-TV MODA
-2 12111000 2 27500000 2 220 221
-AH-EDP1
-2 12149000 2 27500000 2 96 900
-Alice
-2 12149000 2 27500000 2 160 161
-GAY.TV
-2 12149000 2 27500000 2 36 37
-Leonardo
-2 12149000 2 27500000 2 128 130
-Nuvolari
-2 12149000 2 27500000 2 176 177
-TV7 Tunis
-2 12149000 2 27500000 2 112 113
-AUGUST
-2 12188000 2 27500000 2 3713 3714
-BALKANIA TV
-2 12188000 2 27500000 2 3969 3970
-ERT SAT
-2 12188000 2 27500000 2 514 652
-EXTRA
-2 12188000 2 27500000 2 516 654
-OTE PROMO
-2 12188000 2 27500000 2 517 655
-RTS SAT
-2 12188000 2 27500000 2 519 657
-TRIAL
-2 12188000 2 27500000 2 513 651
-TV MAGIC
-2 12188000 2 27500000 2 3584 3585
-Acasa TV
-2 12197000 4 12128000 2 1260 1220
-PRO TV
-2 12197000 4 12128000 2 1160 1120
-PRO TV
-2 12197000 4 12128000 2 1160 1120
-ProTv Intl ENG
-2 12197000 4 12128000 2 1360 1322
-ARIRANG TV
-2 12220000 4 6161000 2 33 34
-BK TV
-2 12220000 4 6161000 2 3105 3106
-Ch-3 Arabic IBA TV
-2 12220000 4 6161000 2 1057 1058
-DCTV-german
-2 12235000 2 13400000 2 1160 1123
-DCTV-german
-2 12235000 2 13400000 2 1160 1123
-AJARA TV
-2 12245000 4 27500000 2 127 137
-CFI PECO PRO
-2 12245000 4 27500000 2 121 131
-FASHION
-2 12245000 4 27500000 2 123 133
-XXP
-2 12265000 2 27500000 2 1660 1620
-BVN-TV
-2 12303000 2 27500000 2 209 210
-COUNTDOWN
-2 12303000 2 27500000 2 235 236
-KURDISTAN TV
-2 12303000 2 27500000 2 225 226
-MAGIC
-2 12303000 2 27500000 2 245 246
-NAPOLI INT.
-2 12303000 2 27500000 2 240 241
-RTB INTERNATIONAL
-2 12303000 2 27500000 2 198 199
-SLO-TV1
-2 12303000 2 27500000 2 200 201
-TBNE
-2 12303000 2 27500000 2 230 231
-TELSELL
-2 12303000 2 27500000 2 205 206
-Abu Dhabi TV
-2 12380000 2 27500000 2 3024 3034
-Bangla TV
-2 12380000 2 27500000 2 3301 3311
-EQUIDIA PRO
-2 12380000 2 27500000 2 3321 3331
-EQUIDIA PRO P1
-2 12380000 2 27500000 2 321 0
-EQUIDIA PRO P2
-2 12380000 2 27500000 2 322 0
-RTV MONTENEGRO
-2 12380000 2 27500000 2 3026 3036
-SAT 7
-2 12380000 2 27500000 2 3001 3011
-SERTE TEST 2
-2 12380000 2 27500000 2 3025 3035
-SYRIAN TV
-2 12380000 2 27500000 2 3022 3032
-SRG SSR SAT Access
-2 12399000 4 27500000 2 165 98
-AL-ALAM
-2 12437000 4 27500000 2 165 90
-IRIB1 ENG
-2 12437000 4 27500000 2 160 81
-IRIB1 PER
-2 12437000 4 27500000 2 160 80
-IRIB2 ENG
-2 12437000 4 27500000 2 161 83
-IRIB2 PER
-2 12437000 4 27500000 2 161 82
-IRINN
-2 12437000 4 27500000 2 164 88
-SAHAR1
-2 12437000 4 27500000 2 162 84
-SAHAR2
-2 12437000 4 27500000 2 163 86
-2M Maroc
-2 12476000 4 27500000 2 601 602
-ARY DIGITAL
-2 12476000 4 27500000 2 650 651
-B4U Movies
-2 12476000 4 27500000 2 656 657
-EbS
-2 12476000 4 27500000 2 101 201
-LibertyTV.com
-2 12476000 4 27500000 2 941 942
-MOU.2
-2 12476000 4 27500000 2 42 43
-PINK PLUS
-2 12476000 4 27500000 2 308 256
-Zee Cinema
-2 12476000 4 27500000 2 915 916
-Zee TV
-2 12476000 4 27500000 2 910 911
-CALABRIASAT
-2 12520000 2 27500000 2 52 53
-HRT-TV1
-2 12520000 2 27500000 2 100 101
-LIGURIA SAT
-2 12520000 2 27500000 2 407 408
-NILE TV
-2 12520000 2 27500000 2 56 57
-SARDEGNA UNO
-2 12520000 2 27500000 2 503 504
-SET
-2 12520000 2 27500000 2 501 502
-TELESPAZIO TEST
-2 12520000 2 27500000 2 98 99
-VIDEOLINA
-2 12520000 2 27500000 2 515 516
-Bulgaria TV
-2 12540000 4 27500000 2 4612 4613
-MEDIOLANUM
-2 12540000 4 27500000 2 1131 1132
-sisal
-2 12540000 4 27500000 2 4356 4357
-24ore.tv
-2 12558000 2 27500000 2 6916 6917
-CNES-Toulouse
-2 12558000 2 27500000 2 6143 6142
-ESP Dutch
-2 12558000 2 27500000 2 2577 2564
-ESP News Eng
-2 12558000 2 27500000 2 2825 2823
-Q-CHANNEL
-2 12558000 2 27500000 2 1037 1039
-ANN
-2 12597000 2 27500000 2 161 84
-BBC World
-2 12597000 2 27500000 2 163 92
-CNNI
-2 12597000 2 27500000 2 168 112
-EuroNews
-2 12597000 2 27500000 2 2221 2233
-JSTV 1
-2 12597000 2 27500000 2 2000 2001
-JSTV 2
-2 12597000 2 27500000 2 2011 2012
-MBC
-2 12597000 2 27500000 2 160 80
-Al manar
-2 12654000 4 27500000 2 1060 1020
-ESC
-2 12654000 4 27500000 2 1860 1820
-Kuwait
-2 12654000 4 27500000 2 1460 1420
-Libya
-2 12654000 4 27500000 2 1560 1520
-Oman
-2 12654000 4 27500000 2 1760 1720
-Qatar
-2 12654000 4 27500000 2 1260 1220
-Saudi 1
-2 12654000 4 27500000 2 1360 1320
-Sharjah
-2 12654000 4 27500000 2 1160 1120
-Sudan
-2 12654000 4 27500000 2 1660 1620
-3ABN
-2 12673000 2 27500000 2 210 211
-GAME NETWORK
-2 12673000 2 27500000 2 291 292
-Jordan Tv
-2 12673000 2 27500000 2 310 311
-Studio Europa
-2 12673000 2 27500000 2 230 231
-Telemarket
-2 12673000 2 27500000 2 350 351
-TEST
-2 12673000 2 27500000 2 360 361
-Thai TV5
-2 12673000 2 27500000 2 200 201
-Video Italia
-2 12673000 2 27500000 2 340 341
-ABsat PROMO
-2 12692000 4 27500000 2 169 116
-ONYX
-2 12692000 4 27500000 2 161 84
-PASSIONS
-2 12692000 4 27500000 2 160 80
-DISCOVERY
-2 10719000 2 27500000 2 161 84
-PLANETE
-2 10719000 2 27500000 2 165 100
-RTL7
-2 10719000 2 27500000 2 162 88
-SEASONS
-2 10719000 2 27500000 2 166 104
-TVN
-2 10719000 2 27500000 2 160 80
-VIVA Polska
-2 10719000 2 27500000 2 167 108
-Cin&eacute;star 1
-2 10757000 2 27500000 2 120 130
-Cin&eacute;star 2
-2 10757000 2 27500000 2 220 230
-Cin&eacute;toile
-2 10757000 2 27500000 2 320 330
-Club T&eacute;l&eacute;achat
-2 10757000 2 27500000 2 920 930
-FUN TV
-2 10757000 2 27500000 2 620 630
-Shopping Avenue
-2 10757000 2 27500000 2 420 430
-S&eacute;rie Club
-2 10757000 2 27500000 2 520 530
-Teva
-2 10757000 2 27500000 2 720 730
-Festival
-2 10796000 2 27500000 2 420 430
-Histoire
-2 10796000 2 27500000 2 520 530
-Infosport
-2 10796000 2 27500000 2 120 130
-Loft Story
-2 10796000 2 27500000 2 320 330
-Odyss&eacute;e
-2 10796000 2 27500000 2 720 730
-R&eacute;gions
-2 10796000 2 27500000 2 220 230
-TFJ
-2 10796000 2 27500000 2 1020 1030
-TV5
-2 10796000 2 27500000 2 920 930
-T&eacute;l&eacute;toon
-2 10796000 2 27500000 2 620 630
-CREDIT AGRICOLE
-2 10834000 2 27500000 2 5321 5333
-EUROSPORT
-2 10834000 2 27500000 2 220 230
-FRANCE 2
-2 10834000 2 27500000 2 320 330
-FRANCE 3
-2 10834000 2 27500000 2 520 530
-I TELEVISION
-2 10834000 2 27500000 2 820 830
-LCI
-2 10834000 2 27500000 2 120 130
-TPS star
-2 10834000 2 27500000 2 420 430
-ALLO CINE INFO
-2 10873000 2 27500000 2 520 530
-BBC PRIME
-2 10873000 2 27500000 2 620 630
-EQUIDIA
-2 10873000 2 27500000 2 320 330
-ESPN CLASSIC SPORT
-2 10873000 2 27500000 2 420 430
-LA CHAINE PARLEMENTA
-2 10873000 2 27500000 2 1020 1030
-RTM
-2 10873000 2 27500000 2 120 130
-SIC
-2 10873000 2 27500000 2 220 230
-TV BREIZH
-2 10873000 2 27500000 2 720 730
-ALE KINO!
-2 10892000 4 27500000 2 164 96
-AVANTE
-2 10892000 4 27500000 2 169 114
-CANAL+
-2 10892000 4 27500000 2 160 80
-CANAL+ NIEBIESKI
-2 10892000 4 27500000 2 168 112
-CANAL+ ZOLTY
-2 10892000 4 27500000 2 161 85
-FOX KIDS
-2 10892000 4 27500000 2 162 88
-MINIMAX
-2 10892000 4 27500000 2 165 100
-TMT
-2 10892000 4 27500000 2 163 92
-TVP 1
-2 10892000 4 27500000 2 166 104
-TVP 2
-2 10892000 4 27500000 2 167 108
-Cin&eacute;faz
-2 10911000 2 27500000 2 220 230
-Multivision
-2 10911000 2 27500000 2 320 330
-TF6
-2 10911000 2 27500000 2 720 730
-TPS star
-2 10911000 2 27500000 2 120 130
-AnimalPlanet
-2 10930000 4 27500000 2 517 700
-Appl. Ch
-2 10930000 4 27500000 2 516 690
-Big Bro
-2 10930000 4 27500000 2 512 650
-Big Bro
-2 10930000 4 27500000 2 515 680
-CNBC
-2 10930000 4 27500000 2 513 660
-FILM SAT
-2 10930000 4 27500000 2 518 710
-Nat. Geo
-2 10930000 4 27500000 2 513 660
-NOVA CINE
-2 10930000 4 27500000 2 514 670
-SS Extra
-2 10930000 4 27500000 2 516 690
-Test
-2 10930000 4 27500000 2 516 690
-Test
-2 10930000 4 27500000 2 516 690
-ALPHA TV
-2 10949000 2 27500000 2 7456 7457
-ALPHA CINEMA 1
-2 10949000 2 27500000 2 7476 7477
-ALPHA KIDS
-2 10949000 2 27500000 2 7464 7465
-ALPHA PROMO
-2 10949000 2 27500000 2 7452 7453
-ALPHA SPORTS 1
-2 10949000 2 27500000 2 7468 7469
-ALPHA SPORTS 2
-2 10949000 2 27500000 2 7472 7473
-ALPHA TEST 1
-2 10949000 2 27500000 2 7460 7461
-&Acirc;&Iuml;&Otilde;&Euml;&Ccedil;
-2 10949000 2 27500000 2 7496 7497
-&ETH;&Iuml;&Euml;&Eacute;&Oacute; TV
-2 10949000 2 27500000 2 7492 7493
-mtch
-2 10983000 2 27500000 2 2817 2818
-ALGERIAN TV
-2 11034000 2 27500000 2 1020 1030
-ARTE
-2 11034000 2 27500000 2 420 430
-FRANCE 5
-2 11034000 2 27500000 2 120 130
-M6
-2 11034000 2 27500000 2 520 530
-PARIS PREMIERE
-2 11034000 2 27500000 2 820 830
-RFO SAT
-2 11034000 2 27500000 2 320 330
-TF1
-2 11034000 2 27500000 2 220 230
-TF1
-2 11034000 2 27500000 2 620 630
-Bloomberg
-2 11241000 2 27500000 2 162 88
-MTV 1
-2 11241000 2 27500000 2 165 100
-MTV 5
-2 11241000 2 27500000 2 169 116
-MTV F
-2 11241000 2 27500000 2 168 112
-MTV H
-2 11241000 2 27500000 2 164 96
-MTV Nordic
-2 11241000 2 27500000 2 163 92
-MTV2 Pop Channel
-2 11241000 2 27500000 2 160 80
-NL Test
-2 11241000 2 27500000 2 161 84
-Program 8 / SF
-2 11241000 2 27500000 2 167 108
-VH1
-2 11241000 2 27500000 2 166 104
-DISNEY CHANNEL
-2 11262000 4 27500000 2 1030 1034
-PLANET
-2 11262000 4 27500000 2 1100 1104
-SEASONS
-2 11262000 4 27500000 2 1040 1044
-STUDIO UNIVERSAL
-2 11262000 4 27500000 2 1050 1054
-CYFRA+ INFO
-2 11283000 2 27500000 2 163 92
-EUROSPORT
-2 11283000 2 27500000 2 162 88
-FORMULA 1
-2 11283000 2 27500000 2 168 116
-HALLMARK
-2 11283000 2 27500000 2 161 84
-HBO
-2 11283000 2 27500000 2 160 80
-HBO
-2 11283000 2 27500000 2 160 80
-MTV CLASSIC
-2 11283000 2 27500000 2 165 100
-NATIONAL GEO
-2 11283000 2 27500000 2 166 104
-REALITY TV
-2 11283000 2 27500000 2 167 108
-TVN 24
-2 11283000 2 27500000 2 164 96
-ADVENTURE 1
-2 11311000 4 30000000 2 859 860
-AVANTE
-2 11311000 4 30000000 2 855 856
-CARTOON / TCM
-2 11311000 4 30000000 2 875 876
-CLUB
-2 11311000 4 30000000 2 871 872
-CNBC Europe
-2 11311000 4 30000000 2 895 896
-EXTREME SPORTS
-2 11311000 4 30000000 2 879 880
-NATIONAL GEOGRAPHIC
-2 11311000 4 30000000 2 863 864
-PAOK Channel
-2 11311000 4 30000000 2 891 892
-PLAYBOY / SPICE
-2 11311000 4 30000000 2 887 888
-PRIVATE BLUE / GOLD
-2 11311000 4 30000000 2 883 884
-REALITY
-2 11311000 4 30000000 2 867 868
-Multivision 1
-2 11661000 2 27500000 2 120 130
-Multivision 2
-2 11661000 2 27500000 2 220 230
-Multivision 3
-2 11661000 2 27500000 2 320 330
-Multivision 4
-2 11661000 2 27500000 2 420 430
-Multivision 5
-2 11661000 2 27500000 2 520 530
-Multivision 6
-2 11661000 2 27500000 2 620 630
-Multivision 7
-2 11661000 2 27500000 2 720 730
-AB 1
-2 11681000 4 27500000 2 160 80
-AB MOTEURS
-2 11681000 4 27500000 2 161 84
-ACTION
-2 11681000 4 27500000 2 169 116
-ANIMAUX
-2 11681000 4 27500000 2 162 88
-CHASSE &amp; PECHE
-2 11681000 4 27500000 2 163 92
-ENCYCLOPEDIA
-2 11681000 4 27500000 2 171 124
-ESCALES
-2 11681000 4 27500000 2 166 104
-FIT/CHAINE HISTOIRE
-2 11681000 4 27500000 2 167 108
-MANGAS
-2 11681000 4 27500000 2 170 120
-MUSIQUE CLASSIQUE
-2 11681000 4 27500000 2 165 100
-RFM-TV
-2 11681000 4 27500000 2 168 112
-RTL9
-2 11681000 4 27500000 2 172 128
-XXL
-2 11681000 4 27500000 2 164 96
-cart
-2 11843000 2 27500000 2 2433 2434
-cult
-2 11843000 2 27500000 2 2307 2308
-disc
-2 11843000 2 27500000 2 2436 2437
-ersp
-2 11843000 2 27500000 2 2317 2309
-tvl
-2 11843000 2 27500000 2 2439 2440
-univ
-2 11843000 2 27500000 2 2305 2306
-MOSAICO
-2 11862000 4 27500000 2 160 0
-P8
-2 11862000 4 27500000 2 163 96
-P9
-2 11862000 4 27500000 2 162 88
-P9 OFDM
-2 11862000 4 27500000 2 162 88
-cnn
-2 11881000 2 27500000 2 2433 2434
-euro
-2 11881000 2 27500000 2 2311 2312
-info
-2 11881000 2 27500000 2 517 700
-MPPV_PFShow
-2 11881000 2 27500000 2 2563 2564
-viag
-2 11881000 2 27500000 2 2308 2309
-CANAL D+
-2 11900000 4 27500000 2 165 100
-INTER CH.
-2 11900000 4 27500000 2 163 92
-MILAN CH.
-2 11900000 4 27500000 2 162 88
-MOSAICO
-2 11900000 4 27500000 2 160 0
-TST3
-2 11900000 4 27500000 2 164 96
-Test
-2 11919000 2 27500000 2 515 680
-E5500 Test
-2 11938000 4 27500000 2 34 33
-E5710 Test
-2 11938000 4 27500000 2 308 256
-NTV Int.-Detsky Mir
-2 11938000 4 27500000 2 162 84
-NTV Int.-HTB
-2 11938000 4 27500000 2 160 80
-NTV Int.-Nashe Kino
-2 11938000 4 27500000 2 161 82
-RTV
-2 11938000 4 27500000 2 101 89
-DISCOVERY
-2 11958000 2 27500000 2 161 84
-DISNEY CHANNEL
-2 11958000 2 27500000 2 160 80
-EUROSPORT
-2 11958000 2 27500000 2 162 88
-HAPPY CHANNEL
-2 11958000 2 27500000 2 163 92
-MATCH MUSIC
-2 11958000 2 27500000 2 164 96
-MTV
-2 11958000 2 27500000 2 165 100
-RaiSat CINEMA
-2 11958000 2 27500000 2 166 104
-RaiSat SHOW
-2 11958000 2 27500000 2 167 108
-cine movie
-2 11976000 4 27500000 2 2691 2692
-cine stream
-2 11976000 4 27500000 2 2689 2690
-s.verde
-2 11976000 4 27500000 2 2561 2562
-Stream2
-2 11976000 4 27500000 2 2433 2434
-mtch
-2 11977000 4 27500000 2 2435 2436
-s.verde
-2 11977000 4 27500000 2 2561 2562
-CLASSICA
-2 11996000 2 27500000 2 160 80
-HALLMARK
-2 11996000 2 27500000 2 163 92
-La 7
-2 11996000 2 27500000 2 166 104
-RaiSat ALBUM
-2 11996000 2 27500000 2 162 88
-RaiSat ART
-2 11996000 2 27500000 2 164 96
-RaiSat FICTION
-2 11996000 2 27500000 2 165 100
-RaiSat GAMBERO
-2 11996000 2 27500000 2 161 84
-TMC2
-2 11996000 2 27500000 2 167 108
-ALGERIAN TV
-2 12015000 4 27500000 2 521 740
-ART CHILDREN/TARAB
-2 12015000 4 27500000 2 513 660
-ART MOVIES
-2 12015000 4 27500000 2 514 670
-ART MUSIC
-2 12015000 4 27500000 2 515 680
-ART SPORT
-2 12015000 4 27500000 2 519 720
-LBC EUROPE
-2 12015000 4 27500000 2 165 100
-NILE DRAMA
-2 12015000 4 27500000 2 516 690
-NILE VARIETY
-2 12015000 4 27500000 2 518 710
-VARIETY EUROPE
-2 12015000 4 27500000 2 512 650
-CARTOON Network
-2 12034000 2 27500000 2 167 108
-RaiSat RAGAZZI
-2 12034000 2 27500000 2 166 104
-T+ 16:9
-2 12034000 2 27500000 2 164 96
-T+ BIANCO
-2 12034000 2 27500000 2 160 80
-T+ GRIGIO
-2 12034000 2 27500000 2 162 88
-T+ NERO
-2 12034000 2 27500000 2 161 84
-VETRINA
-2 12034000 2 27500000 2 165 100
-BBC
-2 12053000 4 27500000 2 161 84
-BBC WORLD
-2 12053000 4 27500000 2 161 84
-BLOOMBERG
-2 12053000 4 27500000 2 162 88
-CNBC
-2 12053000 4 27500000 2 163 92
-CNBC
-2 12053000 4 27500000 2 163 92
-CNN
-2 12053000 4 27500000 2 160 80
-CNN
-2 12053000 4 27500000 2 160 80
-ROCK TV
-2 12053000 4 27500000 2 165 100
-SKYNews
-2 12053000 4 27500000 2 164 96
-TV5
-2 12053000 4 27500000 2 166 104
-TV5
-2 12053000 4 27500000 2 166 104
-P2
-2 12072000 2 27500000 2 163 92
-P3
-2 12072000 2 27500000 2 164 96
-P4
-2 12072000 2 27500000 2 165 100
-P5
-2 12072000 2 27500000 2 166 104
-P6
-2 12072000 2 27500000 2 167 108
-PALCO 16:9
-2 12072000 2 27500000 2 162 88
-Satisfaction
-2 12092000 4 27500000 2 4192 4193
-BBC World
-2 12169000 4 27500000 2 514 670
-Cartoon
-2 12169000 4 27500000 2 515 680
-CCTV
-2 12169000 4 27500000 2 516 690
-Discovery
-2 12169000 4 27500000 2 512 650
-ET-1
-2 12169000 4 27500000 2 519 720
-MAD T.V
-2 12169000 4 27500000 2 518 710
-NET
-2 12169000 4 27500000 2 520 730
-SS Extra
-2 12169000 4 27500000 2 513 660
-TCM
-2 12169000 4 27500000 2 515 680
-&Acirc;&iuml;&otilde;&euml;&THORN;
-2 12169000 4 27500000 2 517 700
-GOURMET TV
-2 12245000 4 27500000 2 126 136
-MCM Europe
-2 12245000 4 27500000 2 122 132
-MEZZO
-2 12245000 4 27500000 2 125 135
-TTN
-2 12245000 4 27500000 2 124 134
-SLO-TV1
-2 12303000 2 27500000 2 200 201
-SLO-TV2
-2 12303000 2 27500000 2 203 204
-P10
-2 12341000 2 27500000 2 160 80
-P11
-2 12341000 2 27500000 2 161 84
-P12
-2 12341000 2 27500000 2 162 88
-P13
-2 12341000 2 27500000 2 163 92
-P14
-2 12341000 2 27500000 2 164 96
-P15
-2 12341000 2 27500000 2 165 100
-P16
-2 12341000 2 27500000 2 166 104
-PREMIUM
-2 12341000 2 27500000 2 167 108
-GAME ONE
-2 12380000 2 27500000 2 3027 3037
-Paris Premi&egrave;re
-2 12380000 2 27500000 2 3021 3031
-SF1
-2 12399000 4 27500000 2 160 80
-SF2
-2 12399000 4 27500000 2 163 92
-SFi
-2 12399000 4 27500000 2 167 102
-TSI1
-2 12399000 4 27500000 2 162 88
-TSI2
-2 12399000 4 27500000 2 166 100
-TSR1
-2 12399000 4 27500000 2 161 84
-TSR2
-2 12399000 4 27500000 2 164 96
-CANAL JIMMY
-2 12418000 2 27500000 2 162 88
-CINECINEMA1
-2 12418000 2 27500000 2 164 96
-CINECINEMA2
-2 12418000 2 27500000 2 165 100
-CINECLASSICS
-2 12418000 2 27500000 2 166 104
-INN
-2 12418000 2 27500000 2 163 92
-MARCOPOLO
-2 12418000 2 27500000 2 160 80
-MARCOPOLO
-2 12418000 2 27500000 2 160 80
-PLANETE
-2 12418000 2 27500000 2 161 84
-SEASONS
-2 12418000 2 27500000 2 167 108
-SEASONS POL
-2 12418000 2 27500000 2 167 109
-WISHLINE
-2 12418000 2 27500000 2 168 85
-HRT-TV1
-2 12520000 2 27500000 2 100 101
-HRT-TV2
-2 12520000 2 27500000 2 103 104
-HRT-TV3
-2 12520000 2 27500000 2 105 106
-MMOV_PF1
-2 12616000 4 27500000 2 2823 2822
-MMOV_PF2
-2 12616000 4 27500000 2 2825 2824
-MMOV_PF3
-2 12616000 4 27500000 2 2827 2826
-MMOV_PF4
-2 12616000 4 27500000 2 2829 2828
-MMOV_PF5
-2 12616000 4 27500000 2 2831 2830
-MMOV_PF6
-2 12616000 4 27500000 2 2833 2832
-sc 1
-2 12616000 4 27500000 2 2561 2562
-sc 2
-2 12616000 4 27500000 2 2564 2565
-sc 3
-2 12616000 4 27500000 2 2567 2568
-calcio ch.
-2 12635000 2 27500000 2 2697 2694
-MMOV_PF10
-2 12635000 2 27500000 2 2565 2564
-MMOV_PF7
-2 12635000 2 27500000 2 2947 2946
-MMOV_PF8
-2 12635000 2 27500000 2 2949 2948
-MMOV_PF9
-2 12635000 2 27500000 2 2563 2562
-sc 4
-2 12635000 2 27500000 2 2689 2690
-sc 5
-2 12635000 2 27500000 2 2696 2692
-CINE PALACE
-2 12692000 4 27500000 2 165 100
-ENCYCLOPEDIA
-2 12692000 4 27500000 2 163 92
-MANGAS
-2 12692000 4 27500000 2 162 88
-MEDYA TV
-2 12692000 4 27500000 2 168 112
-POLAR
-2 12692000 4 27500000 2 164 96
-RIRE
-2 12692000 4 27500000 2 167 108
-ROMANCE
-2 12692000 4 27500000 2 166 104
-MMOV_PF11
-2 12713000 2 27500000 2 2818 2819
-MMOV_PF12
-2 12713000 2 27500000 2 2820 2821
-MMOV_PF13
-2 12713000 2 27500000 2 2693 2692
-MMOV_PF14
-2 12713000 2 27500000 2 2691 2690
-MMOV_PF15
-2 12713000 2 27500000 2 2691 2690
-MMOV_PF16
-2 12713000 2 27500000 2 2691 2690
-cfn
-2 12731000 4 27500000 2 523 760
-comedy
-2 12731000 4 27500000 2 2308 2309
-duel
-2 12731000 4 27500000 2 2689 2690
-fox kids
-2 12731000 4 27500000 2 2691 2692
-nat geo
-2 12731000 4 27500000 2 2693 2694
-roma ch
-2 12731000 4 27500000 2 2310 2311
-RTL9
-0 12012000 2 27500000 2 164 96
-CNNI
-2 10930000 4 27500000 2 515 680
-FOX NEWS
-0 12441000 2 27500000 2 167 108
-FOX NEWS
-0 11686000 2 22000000 3 167 108
-BBC WORLD
-0 12266000 4 27500000 3 167 108
-Cartoon Network
-0 12246000 2 27500000 2 160 80
-Cartoon Network
-0 12168000 2 27500000 2 161 84
-MTV 2
-0 11608000 2 22000000 3 3091 3092
-MTV Base
-0 11608000 2 22000000 2 3051 3052
-MTV ESP
-0 11608000 2 22000000 2 3011 3012
-MTV Hits
-0 11608000 2 22000000 2 3041 3042
-VH1
-0 11608000 2 22000000 2 3061 3062
-VH1 Classic
-0 11608000 2 22000000 2 3071 3072
-KiKa
-0 11954000 4 27500000 3 310 320
-EUROSPORTNEWS
-2 11996000 2 27500000 2 168 112
-M6 Music
-2 10757000 2 27500000 2 820 830
diff --git a/src/input/Makefile.am b/src/input/Makefile.am
index 103c656d8..4985ba18b 100644
--- a/src/input/Makefile.am
+++ b/src/input/Makefile.am
@@ -3,9 +3,9 @@
##
if HAVE_DVDNAV
-SUBDIRS = ost libreal librtsp libdvdread
+SUBDIRS = dvb libreal librtsp libdvdread
else
-SUBDIRS = ost libreal librtsp libdvdread libdvdnav
+SUBDIRS = dvb libreal librtsp libdvdread libdvdnav
endif
LIBTOOL = $(SHELL) $(top_builddir)/libtool-nofpic
diff --git a/src/input/ost/Makefile.am b/src/input/dvb/Makefile.am
index 7c179a4af..b3682a971 100644
--- a/src/input/ost/Makefile.am
+++ b/src/input/dvb/Makefile.am
@@ -1,8 +1,6 @@
noinst_HEADERS = \
- demux.h \
dmx.h \
- frontend.h \
- sec.h
+ frontend.h
debug:
@list='$(SUBDIRS)'; for subdir in $$list; do \
diff --git a/src/input/dvb/dmx.h b/src/input/dvb/dmx.h
new file mode 100644
index 000000000..1c0f990c7
--- /dev/null
+++ b/src/input/dvb/dmx.h
@@ -0,0 +1,172 @@
+/*
+ * dmx.h
+ *
+ * Copyright (C) 2000 Marcus Metzler <marcus@convergence.de>
+ * & Ralph Metzler <ralph@convergence.de>
+ for convergence integrated media GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser 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.
+ *
+ */
+
+#ifndef _DMX_H_
+#define _DMX_H_
+
+#ifdef __KERNEL__
+#include <linux/types.h>
+#else
+#include <stdint.h>
+#endif
+
+#define DMX_FILTER_SIZE 16
+
+typedef enum
+{
+ DMX_OUT_DECODER, /* Streaming directly to decoder. */
+ DMX_OUT_TAP, /* Output going to a memory buffer */
+ /* (to be retrieved via the read command).*/
+ DMX_OUT_TS_TAP /* Output multiplexed into a new TS */
+ /* (to be retrieved by reading from the */
+ /* logical DVR device). */
+} dmx_output_t;
+
+
+typedef enum
+{
+ DMX_IN_FRONTEND, /* Input from a front-end device. */
+ DMX_IN_DVR /* Input from the logical DVR device. */
+} dmx_input_t;
+
+
+typedef enum
+{
+ DMX_PES_AUDIO0,
+ DMX_PES_VIDEO0,
+ DMX_PES_TELETEXT0,
+ DMX_PES_SUBTITLE0,
+ DMX_PES_PCR0,
+
+ DMX_PES_AUDIO1,
+ DMX_PES_VIDEO1,
+ DMX_PES_TELETEXT1,
+ DMX_PES_SUBTITLE1,
+ DMX_PES_PCR1,
+
+ DMX_PES_AUDIO2,
+ DMX_PES_VIDEO2,
+ DMX_PES_TELETEXT2,
+ DMX_PES_SUBTITLE2,
+ DMX_PES_PCR2,
+
+ DMX_PES_AUDIO3,
+ DMX_PES_VIDEO3,
+ DMX_PES_TELETEXT3,
+ DMX_PES_SUBTITLE3,
+ DMX_PES_PCR3,
+
+ DMX_PES_OTHER
+} dmx_pes_type_t;
+
+#define DMX_PES_AUDIO DMX_PES_AUDIO0
+#define DMX_PES_VIDEO DMX_PES_VIDEO0
+#define DMX_PES_TELETEXT DMX_PES_TELETEXT0
+#define DMX_PES_SUBTITLE DMX_PES_SUBTITLE0
+#define DMX_PES_PCR DMX_PES_PCR0
+
+
+typedef enum
+{
+ DMX_SCRAMBLING_EV,
+ DMX_FRONTEND_EV
+} dmx_event_t;
+
+
+typedef enum
+{
+ DMX_SCRAMBLING_OFF,
+ DMX_SCRAMBLING_ON
+} dmx_scrambling_status_t;
+
+
+typedef struct dmx_filter
+{
+ uint8_t filter[DMX_FILTER_SIZE];
+ uint8_t mask[DMX_FILTER_SIZE];
+ uint8_t mode[DMX_FILTER_SIZE];
+} dmx_filter_t;
+
+
+struct dmx_sct_filter_params
+{
+ uint16_t pid;
+ dmx_filter_t filter;
+ uint32_t timeout;
+ uint32_t flags;
+#define DMX_CHECK_CRC 1
+#define DMX_ONESHOT 2
+#define DMX_IMMEDIATE_START 4
+#define DMX_KERNEL_CLIENT 0x8000
+};
+
+
+struct dmx_pes_filter_params
+{
+ uint16_t pid;
+ dmx_input_t input;
+ dmx_output_t output;
+ dmx_pes_type_t pes_type;
+ uint32_t flags;
+};
+
+
+struct dmx_event
+{
+ dmx_event_t event;
+ time_t timeStamp;
+ union
+ {
+ dmx_scrambling_status_t scrambling;
+ } u;
+};
+
+typedef struct dmx_caps {
+ uint32_t caps;
+ int num_decoders;
+} dmx_caps_t;
+
+typedef enum {
+ DMX_SOURCE_FRONT0 = 0,
+ DMX_SOURCE_FRONT1,
+ DMX_SOURCE_FRONT2,
+ DMX_SOURCE_FRONT3,
+ DMX_SOURCE_DVR0 = 16,
+ DMX_SOURCE_DVR1,
+ DMX_SOURCE_DVR2,
+ DMX_SOURCE_DVR3
+} dmx_source_t;
+
+
+#define DMX_START _IO('o',41)
+#define DMX_STOP _IO('o',42)
+#define DMX_SET_FILTER _IOW('o',43,struct dmx_sct_filter_params)
+#define DMX_SET_PES_FILTER _IOW('o',44,struct dmx_pes_filter_params)
+#define DMX_SET_BUFFER_SIZE _IO('o',45)
+#define DMX_GET_EVENT _IOR('o',46,struct dmx_event)
+#define DMX_GET_PES_PIDS _IOR('o',47,uint16_t[5])
+#define DMX_GET_CAPS _IOR('o',48,dmx_caps_t)
+#define DMX_SET_SOURCE _IOW('o',49,dmx_source_t)
+
+#endif /*_DMX_H_*/
+
diff --git a/src/input/dvb/frontend.h b/src/input/dvb/frontend.h
new file mode 100644
index 000000000..550d3b42c
--- /dev/null
+++ b/src/input/dvb/frontend.h
@@ -0,0 +1,262 @@
+/*
+ * frontend.h
+ *
+ * Copyright (C) 2000 Marcus Metzler <marcus@convergence.de>
+ * Ralph Metzler <ralph@convergence.de>
+ * Holger Waechtler <holger@convergence.de>
+ * Andre Draszik <ad@convergence.de>
+ * for convergence integrated media GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser 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.
+ *
+ */
+
+#ifndef _FRONTEND_H_
+#define _FRONTEND_H_
+
+#ifdef __KERNEL__
+#include <linux/types.h>
+#else
+#include <stdint.h>
+#endif
+
+
+typedef enum {
+ FE_QPSK,
+ FE_QAM,
+ FE_OFDM
+} fe_type_t;
+
+
+typedef enum {
+ FE_IS_STUPID = 0,
+ FE_CAN_INVERSION_AUTO = 0x1,
+ FE_CAN_FEC_1_2 = 0x2,
+ FE_CAN_FEC_2_3 = 0x4,
+ FE_CAN_FEC_3_4 = 0x8,
+ FE_CAN_FEC_4_5 = 0x10,
+ FE_CAN_FEC_5_6 = 0x20,
+ FE_CAN_FEC_6_7 = 0x40,
+ FE_CAN_FEC_7_8 = 0x80,
+ FE_CAN_FEC_8_9 = 0x100,
+ FE_CAN_FEC_AUTO = 0x200,
+ FE_CAN_QPSK = 0x400,
+ FE_CAN_QAM_16 = 0x800,
+ FE_CAN_QAM_32 = 0x1000,
+ FE_CAN_QAM_64 = 0x2000,
+ FE_CAN_QAM_128 = 0x4000,
+ FE_CAN_QAM_256 = 0x8000,
+ FE_CAN_QAM_AUTO = 0x10000,
+ FE_CAN_TRANSMISSION_MODE_AUTO = 0x20000,
+ FE_CAN_BANDWIDTH_AUTO = 0x40000,
+ FE_CAN_GUARD_INTERVAL_AUTO = 0x80000,
+ FE_CAN_HIERARCHY_AUTO = 0x100000,
+ FE_CAN_MUTE_TS = 0x80000000,
+ FE_CAN_CLEAN_SETUP = 0x40000000
+} fe_caps_t;
+
+
+struct dvb_frontend_info {
+ char name[128];
+ fe_type_t type;
+ uint32_t frequency_min;
+ uint32_t frequency_max;
+ uint32_t frequency_stepsize;
+ uint32_t frequency_tolerance;
+ uint32_t symbol_rate_min;
+ uint32_t symbol_rate_max;
+ uint32_t symbol_rate_tolerance; /* ppm */
+ uint32_t notifier_delay; /* ms */
+ fe_caps_t caps;
+};
+
+
+/**
+ * Check out the DiSEqC bus spec available on http://www.eutelsat.org/ for
+ * the meaning of this struct...
+ */
+struct dvb_diseqc_master_cmd {
+ uint8_t msg [6]; /* { framing, address, command, data [3] } */
+ uint8_t msg_len; /* valid values are 3...6 */
+};
+
+
+struct dvb_diseqc_slave_reply {
+ uint8_t msg [4]; /* { framing, data [3] } */
+ uint8_t msg_len; /* valid values are 0...4, 0 means no msg */
+ int timeout; /* return from ioctl after timeout ms with */
+}; /* errorcode when no message was received */
+
+
+typedef enum {
+ SEC_VOLTAGE_13,
+ SEC_VOLTAGE_18
+} fe_sec_voltage_t;
+
+
+typedef enum {
+ SEC_TONE_ON,
+ SEC_TONE_OFF
+} fe_sec_tone_mode_t;
+
+
+typedef enum {
+ SEC_MINI_A,
+ SEC_MINI_B
+} fe_sec_mini_cmd_t;
+
+
+typedef enum {
+ FE_HAS_SIGNAL = 0x01, /* found something above the noise level */
+ FE_HAS_CARRIER = 0x02, /* found a DVB signal */
+ FE_HAS_VITERBI = 0x04, /* FEC is stable */
+ FE_HAS_SYNC = 0x08, /* found sync bytes */
+ FE_HAS_LOCK = 0x10, /* everything's working... */
+ FE_TIMEDOUT = 0x20, /* no lock within the last ~2 seconds */
+ FE_REINIT = 0x40 /* frontend was reinitialized, */
+} fe_status_t; /* application is recommned to reset */
+ /* DiSEqC, tone and parameters */
+
+typedef enum {
+ INVERSION_OFF,
+ INVERSION_ON,
+ INVERSION_AUTO
+} fe_spectral_inversion_t;
+
+
+typedef enum {
+ FEC_NONE = 0,
+ FEC_1_2,
+ FEC_2_3,
+ FEC_3_4,
+ FEC_4_5,
+ FEC_5_6,
+ FEC_6_7,
+ FEC_7_8,
+ FEC_8_9,
+ FEC_AUTO
+} fe_code_rate_t;
+
+
+typedef enum {
+ QPSK,
+ QAM_16,
+ QAM_32,
+ QAM_64,
+ QAM_128,
+ QAM_256,
+ QAM_AUTO
+} fe_modulation_t;
+
+
+typedef enum {
+ TRANSMISSION_MODE_2K,
+ TRANSMISSION_MODE_8K,
+ TRANSMISSION_MODE_AUTO
+} fe_transmit_mode_t;
+
+typedef enum {
+ BANDWIDTH_8_MHZ,
+ BANDWIDTH_7_MHZ,
+ BANDWIDTH_6_MHZ,
+ BANDWIDTH_AUTO
+} fe_bandwidth_t;
+
+
+typedef enum {
+ GUARD_INTERVAL_1_32,
+ GUARD_INTERVAL_1_16,
+ GUARD_INTERVAL_1_8,
+ GUARD_INTERVAL_1_4,
+ GUARD_INTERVAL_AUTO
+} fe_guard_interval_t;
+
+
+typedef enum {
+ HIERARCHY_NONE,
+ HIERARCHY_1,
+ HIERARCHY_2,
+ HIERARCHY_4,
+ HIERARCHY_AUTO
+} fe_hierarchy_t;
+
+
+struct dvb_qpsk_parameters {
+ uint32_t symbol_rate; /* symbol rate in Symbols per second */
+ fe_code_rate_t fec_inner; /* forward error correction (see above) */
+};
+
+
+struct dvb_qam_parameters {
+ uint32_t symbol_rate; /* symbol rate in Symbols per second */
+ fe_code_rate_t fec_inner; /* forward error correction (see above) */
+ fe_modulation_t modulation; /* modulation type (see above) */
+};
+
+
+struct dvb_ofdm_parameters {
+ fe_bandwidth_t bandwidth;
+ fe_code_rate_t code_rate_HP; /* high priority stream code rate */
+ fe_code_rate_t code_rate_LP; /* low priority stream code rate */
+ fe_modulation_t constellation; /* modulation type (see above) */
+ fe_transmit_mode_t transmission_mode;
+ fe_guard_interval_t guard_interval;
+ fe_hierarchy_t hierarchy_information;
+};
+
+
+struct dvb_frontend_parameters {
+ uint32_t frequency; /* (absolute) frequency in Hz for QAM/OFDM */
+ /* intermediate frequency in kHz for QPSK */
+ fe_spectral_inversion_t inversion;
+ union {
+ struct dvb_qpsk_parameters qpsk;
+ struct dvb_qam_parameters qam;
+ struct dvb_ofdm_parameters ofdm;
+ } u;
+};
+
+
+struct dvb_frontend_event {
+ fe_status_t status;
+ struct dvb_frontend_parameters parameters;
+};
+
+
+
+#define FE_GET_INFO _IOR('o', 61, struct dvb_frontend_info)
+
+#define FE_DISEQC_RESET_OVERLOAD _IO('o', 62)
+#define FE_DISEQC_SEND_MASTER_CMD _IOW('o', 63, struct dvb_diseqc_master_cmd)
+#define FE_DISEQC_RECV_SLAVE_REPLY _IOR('o', 64, struct dvb_diseqc_slave_reply)
+#define FE_DISEQC_SEND_BURST _IO('o', 65) /* fe_sec_mini_cmd_t */
+
+#define FE_SET_TONE _IO('o', 66) /* fe_sec_tone_mode_t */
+#define FE_SET_VOLTAGE _IO('o', 67) /* fe_sec_voltage_t */
+#define FE_ENABLE_HIGH_LNB_VOLTAGE _IO('o', 68) /* int */
+
+#define FE_READ_STATUS _IOR('o', 69, fe_status_t)
+#define FE_READ_BER _IOR('o', 70, uint32_t)
+#define FE_READ_SIGNAL_STRENGTH _IOR('o', 71, uint16_t)
+#define FE_READ_SNR _IOR('o', 72, uint16_t)
+#define FE_READ_UNCORRECTED_BLOCKS _IOR('o', 73, uint32_t)
+
+#define FE_SET_FRONTEND _IOW('o', 76, struct dvb_frontend_parameters)
+#define FE_GET_FRONTEND _IOR('o', 77, struct dvb_frontend_parameters)
+#define FE_GET_EVENT _IOR('o', 78, struct dvb_frontend_event)
+
+
+#endif /*_FRONTEND_H_*/
+
diff --git a/src/input/input_dvb.c b/src/input/input_dvb.c
index 4bf69b4cd..7dd052e54 100644
--- a/src/input/input_dvb.c
+++ b/src/input/input_dvb.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2000-2002 the xine project
+ * Copyright (C) 2000-2003 the xine project
*
* This file is part of xine, a free video player.
*
@@ -38,9 +38,9 @@
#include <sys/ioctl.h>
#include <sys/poll.h>
-#include "ost/dmx.h"
-#include "ost/sec.h"
-#include "ost/frontend.h"
+/* These will eventually be #include <linux/dvb/...> */
+#include "dvb/dmx.h"
+#include "dvb/frontend.h"
#include "xine_internal.h"
#include "xineutils.h"
@@ -51,43 +51,34 @@
#define LOG
*/
-#define FRONTEND_DEVICE "/dev/ost/frontend"
-#define SEC_DEVICE "/dev/ost/sec"
-#define DEMUX_DEVICE "/dev/ost/demux"
-#define DVR_DEVICE "/dev/ost/dvr"
+#define FRONTEND_DEVICE "/dev/dvb/adapter0/frontend0"
+#define DEMUX_DEVICE "/dev/dvb/adapter0/demux0"
+#define DVR_DEVICE "/dev/dvb/adapter0/dvr0"
#define BUFSIZE 4096
#define NOPID 0xffff
typedef struct {
- int fd_frontend;
- int fd_sec;
- int fd_demuxa, fd_demuxv, fd_demuxtt;
+ int fd_frontend;
+ int fd_demuxa, fd_demuxv;
- FrontendInfo feinfo;
- FrontendParameters front_param;
+ struct dvb_frontend_info feinfo;
- struct secCommand scmd;
- struct secCmdSequence scmds;
- struct dmxPesFilterParams pesFilterParamsV;
- struct dmxPesFilterParams pesFilterParamsA;
- struct dmxPesFilterParams pesFilterParamsTT;
+ struct dmx_pes_filter_params pesFilterParamsV;
+ struct dmx_pes_filter_params pesFilterParamsA;
} tuner_t;
typedef struct {
char *name;
- int freq; /* freq - lof */
- int tone; /* SEC_TONE_ON/OFF */
- int volt; /* SC_VOLTAGE_13/18 */
- int diseqcnr;
- int srate;
- int fec;
- int vpid;
- int apid;
-
+ struct dvb_frontend_parameters front_param;
+ int vpid;
+ int apid;
+ int sat_no;
+ int tone;
+ int pol;
} channel_t;
typedef struct {
@@ -106,13 +97,13 @@ typedef struct {
dvb_input_class_t *cls;
xine_stream_t *stream;
-
+
char *mrl;
off_t curpos;
nbc_t *nbc;
-
+
tuner_t *tuner;
channel_t *channels;
int fd;
@@ -127,10 +118,84 @@ typedef struct {
/* scratch buffer for forward seeking */
char seek_buf[BUFSIZE];
- int out_fd; /* recording function */
-
} dvb_input_plugin_t;
+typedef struct {
+ char *name;
+ int value;
+} Param;
+
+static const Param inversion_list [] = {
+ { "INVERSION_OFF", INVERSION_OFF },
+ { "INVERSION_ON", INVERSION_ON },
+ { "INVERSION_AUTO", INVERSION_AUTO },
+ { NULL, 0 }
+};
+
+static const Param bw_list [] = {
+ { "BANDWIDTH_6_MHZ", BANDWIDTH_6_MHZ },
+ { "BANDWIDTH_7_MHZ", BANDWIDTH_7_MHZ },
+ { "BANDWIDTH_8_MHZ", BANDWIDTH_8_MHZ },
+ { NULL, 0 }
+};
+
+static const Param fec_list [] = {
+ { "FEC_1_2", FEC_1_2 },
+ { "FEC_2_3", FEC_2_3 },
+ { "FEC_3_4", FEC_3_4 },
+ { "FEC_4_5", FEC_4_5 },
+ { "FEC_5_6", FEC_5_6 },
+ { "FEC_6_7", FEC_6_7 },
+ { "FEC_7_8", FEC_7_8 },
+ { "FEC_8_9", FEC_8_9 },
+ { "FEC_AUTO", FEC_AUTO },
+ { "FEC_NONE", FEC_NONE },
+ { NULL, 0 }
+};
+
+static const Param guard_list [] = {
+ {"GUARD_INTERVAL_1_16", GUARD_INTERVAL_1_16},
+ {"GUARD_INTERVAL_1_32", GUARD_INTERVAL_1_32},
+ {"GUARD_INTERVAL_1_4", GUARD_INTERVAL_1_4},
+ {"GUARD_INTERVAL_1_8", GUARD_INTERVAL_1_8},
+ { NULL, 0 }
+};
+
+static const Param hierarchy_list [] = {
+ { "HIERARCHY_1", HIERARCHY_1 },
+ { "HIERARCHY_2", HIERARCHY_2 },
+ { "HIERARCHY_4", HIERARCHY_4 },
+ { "HIERARCHY_NONE", HIERARCHY_NONE },
+ { NULL, 0 }
+};
+
+static const Param qam_list [] = {
+ { "QPSK", QPSK },
+ { "QAM_128", QAM_128 },
+ { "QAM_16", QAM_16 },
+ { "QAM_256", QAM_256 },
+ { "QAM_32", QAM_32 },
+ { "QAM_64", QAM_64 },
+ { NULL, 0 }
+};
+
+static const Param transmissionmode_list [] = {
+ { "TRANSMISSION_MODE_2K", TRANSMISSION_MODE_2K },
+ { "TRANSMISSION_MODE_8K", TRANSMISSION_MODE_8K },
+ { NULL, 0 }
+};
+
+static void tuner_dispose (tuner_t *this) {
+
+ if (this->fd_frontend >= 0)
+ close (this->fd_frontend);
+ if (this->fd_demuxa >= 0)
+ close (this->fd_demuxa);
+ if (this->fd_demuxv >= 0)
+ close (this->fd_demuxv);
+
+ free (this);
+}
static tuner_t *tuner_init () {
@@ -138,69 +203,52 @@ static tuner_t *tuner_init () {
this = malloc (sizeof (tuner_t));
+ this->fd_frontend = -1;
+ this->fd_demuxa = -1;
+ this->fd_demuxv = -1;
+
if ((this->fd_frontend = open(FRONTEND_DEVICE, O_RDWR)) < 0){
- perror("FRONTEND DEVICE: ");
- free (this);
+ perror("FRONTEND DEVICE");
+ tuner_dispose(this);
return NULL;
}
- ioctl (this->fd_frontend, FE_GET_INFO, &this->feinfo);
- if (this->feinfo.type==FE_QPSK) {
-
- if ((this->fd_sec = open (SEC_DEVICE, O_RDWR)) < 0) {
- perror ("SEC DEVICE: ");
- free (this);
- return NULL;
- }
- }
-
- this->fd_demuxtt = open (DEMUX_DEVICE, O_RDWR);
- if (this->fd_demuxtt < 0) {
- perror ("DEMUX DEVICE tt: ");
- free (this);
+ if ((ioctl (this->fd_frontend, FE_GET_INFO, &this->feinfo)) < 0) {
+ perror("FE_GET_INFO");
+ tuner_dispose(this);
return NULL;
}
this->fd_demuxa = open (DEMUX_DEVICE, O_RDWR);
if (this->fd_demuxa < 0) {
- perror ("DEMUX DEVICE audio: ");
- free (this);
+ perror ("DEMUX DEVICE audio");
+ tuner_dispose(this);
return NULL;
}
this->fd_demuxv=open (DEMUX_DEVICE, O_RDWR);
if (this->fd_demuxv < 0) {
- perror ("DEMUX DEVICE video: ");
- free (this);
+ perror ("DEMUX DEVICE video");
+ tuner_dispose(this);
return NULL;
}
return this;
}
-static void tuner_dispose (tuner_t *this) {
-
- close (this->fd_frontend);
- close (this->fd_sec);
- close (this->fd_demuxa);
- close (this->fd_demuxv);
- close (this->fd_demuxtt);
-
- free (this);
-}
static void tuner_set_vpid (tuner_t *this, ushort vpid) {
if (vpid==0 || vpid==NOPID || vpid==0x1fff) {
- ioctl (this->fd_demuxv, DMX_STOP, 0);
+ ioctl (this->fd_demuxv, DMX_STOP);
return;
}
- this->pesFilterParamsV.pid = vpid;
- this->pesFilterParamsV.input = DMX_IN_FRONTEND;
- this->pesFilterParamsV.output = DMX_OUT_TS_TAP;
- this->pesFilterParamsV.pesType = DMX_PES_VIDEO;
- this->pesFilterParamsV.flags = DMX_IMMEDIATE_START;
+ this->pesFilterParamsV.pid = vpid;
+ this->pesFilterParamsV.input = DMX_IN_FRONTEND;
+ this->pesFilterParamsV.output = DMX_OUT_TS_TAP;
+ this->pesFilterParamsV.pes_type = DMX_PES_VIDEO;
+ this->pesFilterParamsV.flags = DMX_IMMEDIATE_START;
if (ioctl(this->fd_demuxv, DMX_SET_PES_FILTER,
&this->pesFilterParamsV) < 0)
perror("set_vpid");
@@ -208,155 +256,100 @@ static void tuner_set_vpid (tuner_t *this, ushort vpid) {
static void tuner_set_apid (tuner_t *this, ushort apid) {
if (apid==0 || apid==NOPID || apid==0x1fff) {
- ioctl (this->fd_demuxa, DMX_STOP, apid);
+ ioctl (this->fd_demuxa, DMX_STOP);
return;
}
-
- this->pesFilterParamsA.pid = apid;
- this->pesFilterParamsA.input = DMX_IN_FRONTEND;
- this->pesFilterParamsA.output = DMX_OUT_TS_TAP;
- this->pesFilterParamsA.pesType = DMX_PES_AUDIO;
- this->pesFilterParamsA.flags = DMX_IMMEDIATE_START;
+
+ this->pesFilterParamsA.pid = apid;
+ this->pesFilterParamsA.input = DMX_IN_FRONTEND;
+ this->pesFilterParamsA.output = DMX_OUT_TS_TAP;
+ this->pesFilterParamsA.pes_type = DMX_PES_AUDIO;
+ this->pesFilterParamsA.flags = DMX_IMMEDIATE_START;
if (ioctl (this->fd_demuxa, DMX_SET_PES_FILTER,
&this->pesFilterParamsA) < 0)
perror("set_apid");
}
-static void tuner_set_ttpid (tuner_t *this, ushort ttpid) {
+static int tuner_set_diseqc(tuner_t *this, channel_t *c)
+{
+ struct dvb_diseqc_master_cmd cmd =
+ {{0xe0, 0x10, 0x38, 0xf0, 0x00, 0x00}, 4};
- if (ttpid==0 || ttpid== NOPID || ttpid==0x1fff) {
- ioctl (this->fd_demuxtt, DMX_STOP, 0);
- return;
- }
- this->pesFilterParamsTT.pid = ttpid;
- this->pesFilterParamsTT.input = DMX_IN_FRONTEND;
- this->pesFilterParamsTT.output = DMX_OUT_DECODER;
- this->pesFilterParamsTT.pesType = DMX_PES_TELETEXT;
- this->pesFilterParamsTT.flags = DMX_IMMEDIATE_START;
- if (ioctl(this->fd_demuxtt, DMX_SET_PES_FILTER,
- &this->pesFilterParamsTT) < 0) {
- /* printf("PID=%04x\n", ttpid); */
- perror("set_ttpid");
- }
-}
+ cmd.msg[3] = 0xf0 | ((c->sat_no * 4) & 0x0f) |
+ (c->tone ? 1 : 0) | (c->pol ? 0 : 2);
-static void tuner_get_front (tuner_t *this) {
- tuner_set_vpid (this, 0);
- tuner_set_apid (this, 0);
- tuner_set_ttpid(this, 0);
- this->scmds.voltage = SEC_VOLTAGE_13;
- this->scmds.miniCommand = SEC_MINI_NONE;
- this->scmds.continuousTone = SEC_TONE_OFF;
- this->scmds.numCommands = 1;
- this->scmds.commands = &this->scmd;
-}
-
-static void tuner_set_diseqc_nr (tuner_t *this, int nr) {
+ if (ioctl(this->fd_frontend, FE_SET_TONE, SEC_TONE_OFF) < 0)
+ return 0;
+ if (ioctl(this->fd_frontend, FE_SET_VOLTAGE,
+ c->pol ? SEC_VOLTAGE_13 : SEC_VOLTAGE_18) < 0)
+ return 0;
+ usleep(15000);
+ if (ioctl(this->fd_frontend, FE_DISEQC_SEND_MASTER_CMD, &cmd) < 0)
+ return 0;
+ usleep(15000);
+ if (ioctl(this->fd_frontend, FE_DISEQC_SEND_BURST,
+ (c->sat_no / 4) % 2 ? SEC_MINI_B : SEC_MINI_A) < 0)
+ return 0;
+ usleep(15000);
+ if (ioctl(this->fd_frontend, FE_SET_TONE,
+ c->tone ? SEC_TONE_ON : SEC_TONE_OFF) < 0)
+ return 0;
- this->scmd.type=0;
- this->scmd.u.diseqc.addr = 0x10;
- this->scmd.u.diseqc.cmd = 0x38;
- this->scmd.u.diseqc.numParams = 1;
- this->scmd.u.diseqc.params[0] = 0xF0 | ((nr * 4) & 0x0F) |
- (this->scmds.continuousTone == SEC_TONE_ON ? 1 : 0) |
- (this->scmds.voltage==SEC_VOLTAGE_18 ? 2 : 0);
+ return 1;
}
-static void tuner_set_tp (tuner_t *this, int freq, int tone,
- int volt, int diseqcnr,
- int srate, int fec) {
-
- static const uint8_t rfectab[9] = {1,2,3,0,4,0,5,0,0};
-
- this->front_param.Frequency = freq;
- this->scmds.continuousTone = tone;
- this->scmds.voltage = volt;
- tuner_set_diseqc_nr (this, diseqcnr);
- this->front_param.u.qpsk.SymbolRate = srate;
- this->front_param.u.qpsk.FEC_inner = (CodeRate)rfectab[fec];
- this->front_param.Inversion = INVERSION_AUTO;
-}
+static int tuner_tune_it (tuner_t *this, struct dvb_frontend_parameters
+ *front_param) {
+ fe_status_t status;
-static int tuner_tune_it (tuner_t *this, FrontendParameters *front_param) {
- FrontendEvent event;
- struct pollfd pfd[1];
-
- if (ioctl(this->fd_frontend, FE_SET_FRONTEND, front_param) <0)
+ if (ioctl(this->fd_frontend, FE_SET_FRONTEND, front_param) <0) {
perror("setfront front");
+ }
- pfd[0].fd=this->fd_frontend;
- pfd[0].events=POLLIN;
- if (poll(pfd,1,2000)) {
- if (pfd[0].revents & POLLIN){
- if (ioctl(this->fd_frontend, FE_GET_EVENT, &event)
- == -EBUFFEROVERFLOW){
- perror("fe get event");
- return 0;
- }
- switch(event.type){
- case FE_UNEXPECTED_EV:
- perror("unexpected event\n");
- return 0;
- case FE_FAILURE_EV:
- perror("failure event\n");
- return 0;
-
- case FE_COMPLETION_EV:
- fprintf(stderr, "completion event\n");
- return 1;
- }
+ do {
+ if (ioctl(this->fd_frontend, FE_READ_STATUS, &status) < 0) {
+ perror("fe get event");
+ return 0;
+ }
+ printf("input_dvb: status: %x\n", status);
+ if (status & FE_HAS_LOCK) {
+ return 1;
}
+ usleep(500000);
}
- return 0;
-}
-
+ while (!(status & FE_TIMEDOUT));
-static int tuner_set_front (tuner_t *this) {
- this->scmds.miniCommand = SEC_MINI_NONE;
- this->scmds.numCommands=1;
- this->scmds.commands=&this->scmd;
-
- tuner_set_vpid (this, 0);
- tuner_set_apid (this, 0);
- tuner_set_ttpid(this,0);
-
- if (this->feinfo.type==FE_QPSK) {
- if (ioctl(this->fd_sec, SEC_SEND_SEQUENCE, &this->scmds) < 0)
- perror("setfront sec");
- usleep(70000);
- }
- return tuner_tune_it(this, &this->front_param);
+ return 0;
}
static void print_channel (channel_t *channel) {
-
- printf ("input_dvb: channel '%s' diseqc %d freq %d volt %d srate %d fec %d vpid %d apid %d\n",
+ printf ("input_dvb: channel '%s' freq %d vpid %d apid %d\n",
channel->name,
- channel->diseqcnr,
- channel->freq,
- channel->volt,
- channel->srate,
- channel->fec,
+ channel->front_param.frequency,
channel->vpid,
channel->apid);
-
}
-static int tuner_set_channel (tuner_t *this,
+static int tuner_set_channel (tuner_t *this,
channel_t *c) {
print_channel (c);
- tuner_get_front (this);
- tuner_set_tp (this, c->freq, c->tone, c->volt, c->diseqcnr, c->srate, c->fec);
- if (!tuner_set_front (this))
+ tuner_set_vpid (this, 0);
+ tuner_set_apid (this, 0);
+
+ if (this->feinfo.type==FE_QPSK) {
+ if (!tuner_set_diseqc(this, c))
+ return 0;
+ }
+
+ if (!tuner_tune_it (this, &c->front_param))
return 0;
-
+
tuner_set_vpid (this, c->vpid);
tuner_set_apid (this, c->apid);
- tuner_set_ttpid (this, 0);
-
+
return 1; /* fixme: error handling */
}
@@ -364,15 +357,15 @@ static void osd_show_channel (dvb_input_plugin_t *this) {
int i, channel ;
- this->stream->osd_renderer->filled_rect (this->osd, 0, 0, 395, 400, 2);
+ this->stream->osd_renderer->filled_rect (this->osd, 0, 0, 395, 400, 2);
channel = this->channel - 5;
for (i=0; i<11; i++) {
if ( (channel >= 0) && (channel < this->num_channels) )
- this->stream->osd_renderer->render_text (this->osd, 10, 10+i*35,
- this->channels[channel].name,
+ this->stream->osd_renderer->render_text (this->osd, 10, 10+i*35,
+ this->channels[channel].name,
OSD_TEXT3);
channel ++;
}
@@ -394,7 +387,7 @@ static void switch_channel (dvb_input_plugin_t *this) {
pthread_mutex_lock (&this->mutex);
close (this->fd);
-
+
if (!tuner_set_channel (this->tuner, &this->channels[this->channel])) {
printf ("input_dvb: tuner_set_channel failed\n");
pthread_mutex_unlock (&this->mutex);
@@ -408,11 +401,11 @@ static void switch_channel (dvb_input_plugin_t *this) {
event.data_length = sizeof (xine_pids_data_t);
printf ("input_dvb: sending event\n");
-
+
xine_event_send (this->stream, &event);
this->fd = open (DVR_DEVICE, O_RDONLY);
-
+
pthread_mutex_unlock (&this->mutex);
this->stream->osd_renderer->hide (this->osd, 0);
@@ -440,27 +433,27 @@ static void dvb_event_handler (dvb_input_plugin_t *this) {
this->channel++;
osd_show_channel (this);
break;
-
+
case XINE_EVENT_INPUT_PREVIOUS:
if (this->channel>0)
this->channel--;
osd_show_channel (this);
break;
-
+
case XINE_EVENT_INPUT_DOWN:
if (this->channel < (this->num_channels-1)) {
this->channel++;
switch_channel (this);
}
break;
-
+
case XINE_EVENT_INPUT_UP:
if (this->channel>0) {
this->channel--;
switch_channel (this);
}
break;
-
+
case XINE_EVENT_INPUT_SELECT:
switch_channel (this);
break;
@@ -469,7 +462,7 @@ static void dvb_event_handler (dvb_input_plugin_t *this) {
this->stream->osd_renderer->hide (this->osd, 0);
break;
-#if 0
+#if 0
default:
printf ("input_dvb: got an event, type 0x%08x\n", event->type);
#endif
@@ -479,7 +472,9 @@ static void dvb_event_handler (dvb_input_plugin_t *this) {
}
}
-static off_t dvb_plugin_read (input_plugin_t *this_gen,
+
+
+static off_t dvb_plugin_read (input_plugin_t *this_gen,
char *buf, off_t len) {
dvb_input_plugin_t *this = (dvb_input_plugin_t *) this_gen;
off_t n, total;
@@ -511,14 +506,11 @@ static off_t dvb_plugin_read (input_plugin_t *this_gen,
}
}
- if (this->out_fd>0)
- write (this->out_fd, buf, total);
-
pthread_mutex_unlock( &this->mutex );
return total;
}
-static buf_element_t *dvb_plugin_read_block (input_plugin_t *this_gen,
+static buf_element_t *dvb_plugin_read_block (input_plugin_t *this_gen,
fifo_buffer_t *fifo, off_t todo) {
/* dvb_input_plugin_t *this = (dvb_input_plugin_t *) this_gen; */
buf_element_t *buf = fifo->buffer_pool_alloc (fifo);
@@ -527,7 +519,7 @@ static buf_element_t *dvb_plugin_read_block (input_plugin_t *this_gen,
buf->content = buf->mem;
buf->type = BUF_DEMUX_BLOCK;
-
+
total_bytes = dvb_plugin_read (this_gen, buf->content, todo);
if (total_bytes != todo) {
@@ -540,7 +532,7 @@ static buf_element_t *dvb_plugin_read_block (input_plugin_t *this_gen,
return buf;
}
-static off_t dvb_plugin_seek (input_plugin_t *this_gen, off_t offset,
+static off_t dvb_plugin_seek (input_plugin_t *this_gen, off_t offset,
int origin) {
dvb_input_plugin_t *this = (dvb_input_plugin_t *) this_gen;
@@ -593,12 +585,11 @@ static void dvb_plugin_dispose (input_plugin_t *this_gen) {
this->nbc = NULL;
}
- if (this->out_fd>0)
- close (this->out_fd);
-
xine_event_dispose_queue (this->event_queue);
free (this->mrl);
+ free (this->channels);
+ tuner_dispose ( ((dvb_input_plugin_t *)this)->tuner );
free (this);
}
@@ -608,21 +599,28 @@ static char* dvb_plugin_get_mrl (input_plugin_t *this_gen) {
return this->mrl;
}
-static int dvb_plugin_get_optional_data (input_plugin_t *this_gen,
+static int dvb_plugin_get_optional_data (input_plugin_t *this_gen,
void *data, int data_type) {
return INPUT_OPTIONAL_UNSUPPORTED;
}
-static channel_t *load_channels (int *num_ch) {
+static int find_param(const Param *list, const char *name)
+{
+ while (list->name && strcmp(list->name, name))
+ list++;
+ return list->value;;
+}
+
+static channel_t *load_channels (int *num_ch, fe_type_t fe_type) {
- FILE *f;
- unsigned char str[BUFSIZE];
- unsigned char filename[BUFSIZE];
- channel_t *channels;
- int num_channels;
+ FILE *f;
+ char str[BUFSIZE];
+ char filename[BUFSIZE];
+ channel_t *channels;
+ int num_channels;
- snprintf (filename, BUFSIZE, "%s/.xine/dvb_channels", xine_get_homedir());
+ snprintf (filename, BUFSIZE, "%s/.xine/channels.conf", xine_get_homedir());
f = fopen (filename, "rb");
if (!f) {
@@ -635,7 +633,6 @@ static channel_t *load_channels (int *num_ch) {
*/
num_channels = 0;
while ( fgets (str, BUFSIZE, f)) {
- fgets (str, BUFSIZE, f);
num_channels++;
}
fclose (f);
@@ -650,53 +647,175 @@ static channel_t *load_channels (int *num_ch) {
f = fopen (filename, "rb");
num_channels = 0;
while ( fgets (str, BUFSIZE, f)) {
-
- int freq;
-
- channels[num_channels].name = strdup (str);
-
- fgets (str, BUFSIZE, f);
-
- sscanf (str, "%d %d %d %d %d %d %d\n",
- &channels[num_channels].diseqcnr,
- &freq,
- &channels[num_channels].volt,
- &channels[num_channels].srate,
- &channels[num_channels].fec,
- &channels[num_channels].vpid,
- &channels[num_channels].apid);
-
- if (freq > 11700000) {
- channels[num_channels].freq = freq - 10600000;
- channels[num_channels].tone = SEC_TONE_ON;
- } else {
- channels[num_channels].freq = freq - 9750000;
- channels[num_channels].tone = SEC_TONE_OFF;
+
+ unsigned long freq;
+ char *field, *tmp;
+
+ tmp = str;
+ if (!(field = strsep(&tmp, ":")))
+ continue;
+
+ channels[num_channels].name = strdup(field);
+
+ if (!(field = strsep(&tmp, ":")))
+ continue;
+
+ freq = strtoul(field, NULL, 0);
+
+ switch (fe_type)
+ {
+ case FE_QPSK:
+
+ if (freq > 11700) {
+ channels[num_channels].front_param.frequency = (freq - 10600)*1000;
+ channels[num_channels].tone = 1;
+ } else {
+ channels[num_channels].front_param.frequency = (freq - 9750)*1000;
+ channels[num_channels].tone = 0;
+ }
+
+ channels[num_channels].front_param.inversion = INVERSION_OFF;
+
+ if (!(field = strsep(&tmp, ":")))
+ break;
+
+ channels[num_channels].pol = (field[0] == 'h' ? 0 : 1);
+
+ if (!(field = strsep(&tmp, ":")))
+ break;
+
+ channels[num_channels].sat_no = strtoul(field, NULL, 0);
+
+ if (!(field = strsep(&tmp, ":")))
+ break;
+
+ channels[num_channels].front_param.u.qpsk.symbol_rate =
+ strtoul(field, NULL, 0) * 1000;
+
+ channels[num_channels].front_param.u.qpsk.fec_inner = FEC_AUTO;
+
+ break;
+
+ case FE_QAM:
+
+ channels[num_channels].front_param.frequency = freq;
+
+ if (!(field = strsep(&tmp, ":")))
+ break;
+
+ channels[num_channels].front_param.inversion =
+ find_param(inversion_list, field);
+
+ if (!(field = strsep(&tmp, ":")))
+ break;
+
+ channels[num_channels].front_param.u.qam.symbol_rate =
+ strtoul(field, NULL, 0);
+
+ if (!(field = strsep(&tmp, ":")))
+ break;
+
+ channels[num_channels].front_param.u.qam.fec_inner =
+ find_param(fec_list, field);
+
+ if (!(field = strsep(&tmp, ":")))
+ break;
+
+ channels[num_channels].front_param.u.qam.modulation =
+ find_param(qam_list, field);
+
+ break;
+
+ case FE_OFDM:
+
+ channels[num_channels].front_param.frequency = freq;
+
+ if (!(field = strsep(&tmp, ":")))
+ break;
+
+ channels[num_channels].front_param.inversion =
+ find_param(inversion_list, field);
+
+ if (!(field = strsep(&tmp, ":")))
+ break;
+
+ channels[num_channels].front_param.u.ofdm.bandwidth =
+ find_param(bw_list, field);
+
+ if (!(field = strsep(&tmp, ":")))
+ break;
+
+ channels[num_channels].front_param.u.ofdm.code_rate_HP =
+ find_param(fec_list, field);
+
+ if (!(field = strsep(&tmp, ":")))
+ break;
+
+ channels[num_channels].front_param.u.ofdm.code_rate_LP =
+ find_param(fec_list, field);
+
+ if (!(field = strsep(&tmp, ":")))
+ break;
+
+ channels[num_channels].front_param.u.ofdm.constellation =
+ find_param(qam_list, field);
+
+
+ if (!(field = strsep(&tmp, ":")))
+ break;
+
+ channels[num_channels].front_param.u.ofdm.transmission_mode =
+ find_param(transmissionmode_list, field);
+
+ if (!(field = strsep(&tmp, ":")))
+ break;
+
+ channels[num_channels].front_param.u.ofdm.guard_interval =
+ find_param(guard_list, field);
+
+ if (!(field = strsep(&tmp, ":")))
+ break;
+
+ channels[num_channels].front_param.u.ofdm.hierarchy_information =
+ find_param(hierarchy_list, field);
+
+ break;
+
}
+ if (!(field = strsep(&tmp, ":")))
+ continue;
+
+ channels[num_channels].vpid = strtoul(field, NULL, 0);
+
+ if (!(field = strsep(&tmp, ":")))
+ continue;
+
+ channels[num_channels].apid = strtoul(field, NULL, 0);
+
#ifdef LOG
printf ("input: dvb channel %s loaded\n", channels[num_channels].name);
#endif
num_channels++;
- }
+ }
*num_ch = num_channels;
return channels;
}
-static input_plugin_t *open_plugin (input_class_t *cls_gen,
- xine_stream_t *stream,
+static input_plugin_t *open_plugin (input_class_t *cls_gen,
+ xine_stream_t *stream,
const char *data) {
- dvb_input_class_t *cls = (dvb_input_class_t *) cls_gen;
+ dvb_input_class_t *cls = (dvb_input_class_t *) cls_gen;
dvb_input_plugin_t *this;
tuner_t *tuner;
channel_t *channels;
int num_channels;
char *mrl = (char *) data;
- if (strncasecmp (mrl, "dvb:/",5))
+ if (strncasecmp (mrl, "dvb:/",5))
return NULL;
if ( !(tuner = tuner_init()) ) {
@@ -704,11 +823,11 @@ static input_plugin_t *open_plugin (input_class_t *cls_gen,
return NULL;
}
- if ( !(channels = load_channels(&num_channels)) ) {
+ if ( !(channels = load_channels(&num_channels, tuner->feinfo.type)) ) {
tuner_dispose (tuner);
return NULL;
}
-
+
this = (dvb_input_plugin_t *) xine_xmalloc (sizeof(dvb_input_plugin_t));
this->tuner = tuner;
@@ -719,17 +838,21 @@ static input_plugin_t *open_plugin (input_class_t *cls_gen,
if (!tuner_set_channel (this->tuner, &this->channels[this->channel])) {
printf ("input_dvb: tuner_set_channel failed\n");
+ tuner_dispose(this->tuner);
+ free(this->channels);
free (this);
return NULL;
}
if ((this->fd = open (DVR_DEVICE, O_RDONLY)) < 0){
printf ("input_dvb: cannot open dvr device '%s'\n", DVR_DEVICE);
+ tuner_dispose(this->tuner);
+ free(this->channels);
free (this);
return NULL;
}
- this->mrl = strdup(mrl);
+ this->mrl = strdup(mrl);
this->curpos = 0;
this->nbc = nbc_init (stream);
@@ -755,15 +878,9 @@ static input_plugin_t *open_plugin (input_class_t *cls_gen,
pthread_mutex_init (&this->mutex, NULL);
-#if 0
- this->out_fd = open ("foo.ts", O_CREAT | O_WRONLY | O_TRUNC, 0644);
-#else
- this->out_fd = 0;
-#endif
-
this->event_queue = xine_event_new_queue (this->stream);
- this->osd = this->stream->osd_renderer->new_object (this->stream->osd_renderer,
+ this->osd = this->stream->osd_renderer->new_object (this->stream->osd_renderer,
410, 410);
this->stream->osd_renderer->set_position (this->osd, 20, 20);
this->stream->osd_renderer->set_font (this->osd, "cetus", 32);
@@ -787,9 +904,7 @@ static char *dvb_class_get_identifier (input_class_t *this_gen) {
}
static void dvb_class_dispose (input_class_t *this_gen) {
-
- dvb_input_class_t *cls = (dvb_input_class_t *) this_gen;
-
+ dvb_input_class_t *cls = (dvb_input_class_t *) this_gen;
free (cls);
}
@@ -797,9 +912,9 @@ static int dvb_class_eject_media (input_class_t *this_gen) {
return 1;
}
-static char ** dvb_class_get_autoplay_list (input_class_t *this_gen,
+static char ** dvb_class_get_autoplay_list (input_class_t *this_gen,
int *num_files) {
- dvb_input_class_t *cls = (dvb_input_class_t *) this_gen;
+ dvb_input_class_t *cls = (dvb_input_class_t *) this_gen;
*num_files = 1;
return cls->mrls;
@@ -835,7 +950,7 @@ static void *init_class (xine_t *xine, void *data) {
*/
plugin_info_t xine_plugin_info[] = {
- /* type, API, "name", version, special_info, init_function */
+ /* type, API, "name", version, special_info, init_function */
{ PLUGIN_INPUT, 11, "DVB", XINE_VERSION_CODE, NULL, init_class },
{ PLUGIN_NONE, 0, "", 0, NULL, NULL }
};
diff --git a/src/input/ost/README b/src/input/ost/README
deleted file mode 100644
index 5fc680215..000000000
--- a/src/input/ost/README
+++ /dev/null
@@ -1,9 +0,0 @@
-This directories contains header files for the Linux DVB drivers
-from convergence integrated media GmbH
-
- Copyright (C) 2000 Ralph Metzler <ralph@convergence.de>
- & Marcus Metzler <marcus@convergence.de>
- for convergence integrated media GmbH
-
-released under the LGPL license. For details see the individual
-header files.
diff --git a/src/input/ost/ca.h b/src/input/ost/ca.h
deleted file mode 100644
index 226ef5c09..000000000
--- a/src/input/ost/ca.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * ca.h
- *
- * Copyright (C) 2000 Ralph Metzler <ralph@convergence.de>
- * & Marcus Metzler <marcus@convergence.de>
- for convergence integrated media GmbH
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Lesser Public License
- * as published by the Free Software Foundation; either version 2.1
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser 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.
- *
- */
-
-#ifndef _OST_CA_H_
-#define _OST_CA_H_
-
-/* slot interface types and info */
-
-typedef struct ca_slot_info_s {
- int num; /* slot number */
-
- int type; /* CA interface this slot supports */
-#define CA_CI 1 /* CI high level interface */
-#define CA_CI_LINK 2 /* CI link layer level interface */
-#define CA_CI_PHYS 4 /* CI physical layer level interface */
-#define CA_SC 128 /* simple smart card interface */
-
- unsigned int flags;
-#define CA_CI_MODULE_PRESENT 1 /* module (or card) inserted */
-#define CA_CI_MODULE_READY 2
-} ca_slot_info_t;
-
-
-/* descrambler types and info */
-
-typedef struct ca_descr_info_s {
- unsigned int num; /* number of available descramblers (keys) */
- unsigned int type; /* type of supported scrambling system */
-#define CA_ECD 1
-#define CA_NDS 2
-#define CA_DSS 4
-} ca_descr_info_t;
-
-typedef struct ca_cap_s {
- unsigned int slot_num; /* total number of CA card and module slots */
- unsigned int slot_type; /* OR of all supported types */
- unsigned int descr_num; /* total number of descrambler slots (keys) */
- unsigned int descr_type; /* OR of all supported types */
-} ca_cap_t;
-
-/* a message to/from a CI-CAM */
-typedef struct ca_msg_s {
- unsigned int index;
- unsigned int type;
- unsigned int length;
- unsigned char msg[256];
-} ca_msg_t;
-
-typedef struct ca_descr_s {
- unsigned int index;
- unsigned int parity;
- unsigned char cw[8];
-} ca_descr_t;
-
-#define CA_RESET _IOW('o', 128, int)
-#define CA_GET_CAP _IOR('o', 129, ca_cap_t *)
-#define CA_GET_SLOT_INFO _IOR('o', 130, ca_slot_info_t *)
-#define CA_GET_DESCR_INFO _IOR('o', 131, ca_descr_info_t *)
-#define CA_GET_MSG _IOR('o', 132, ca_msg_t *)
-#define CA_SEND_MSG _IOW('o', 133, ca_msg_t *)
-#define CA_SET_DESCR _IOW('o', 134, ca_descr_t *)
-
-#endif
-
diff --git a/src/input/ost/demux.h b/src/input/ost/demux.h
deleted file mode 100644
index 758e921b6..000000000
--- a/src/input/ost/demux.h
+++ /dev/null
@@ -1,346 +0,0 @@
-/* * demux.h * * Copyright (c) 2000 Nokia Research Center
- * Tampere, FINLAND
- *
- * Project:
- * Universal Broadcast Access
- *
- * Contains:
- * Type definitions of a Linux kernel-level API for filtering MPEG-2 TS
- * packets and MPEG-2 sections. Support for PES packet filtering will be
- * added later.
- *
- * History:
- * 12.01.2000/JPL File created - Initial version.
- * 18.02.2000/JPL Minor corrections.
- * 21.02.2000/JPL DMX_NAME_SIZE and dmx_in_use() removed, typos fixed,
- * some names changed.
- * 23.02.2000/JPL Added a parameter indicating the callback source in
- * the callback functions.
- * 10.03.2000/JPL Added the macros DMX_DIR_ENTRY() and DMX_FE_ENTRY().
- * 15.03.2000/JPL Added the capabilities field to dmx_demux_t.
- * 22.03.2000/JPL Corrected the callback parameter in the
- * allocate_x_feed() functions.
- * 03.04.2000/JPL Added support for optional resource conflict resolution
- * and scarce resource handling.
- * 05.04.2000/JPL Changed the dmx_resolve_conflict() to use resource
- * type as a parameter.
- * 12.04.2000/JPL Added a second buffer parameter for dmx_x_callback()
- * functions to better handle buffer wrapping.
- * 26.04.2000/JPL Added functions for section-level descrambling.
- * 03.09.2000/JPL Removed support for conflict resolution and scarce
- * resource handling. Otherwise only minor changes to
- * data structures and function prototypes.
- *
- *
- * Author:
- * Juha-Pekka Luoma (JPL)
- * Nokia Research Center
- *
- * Notes:
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser 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.
- *
- */
-/* $Id: demux.h,v 1.1 2002/12/27 00:53:50 guenter Exp $ */
-
-#ifndef __DEMUX_H
-#define __DEMUX_H
-
-#ifndef __KERNEL__
-#define __KERNEL__
-#endif
-
-#include <linux/types.h> /* __u8, __u16, ... */
-#include <linux/list.h> /* list_entry(), struct list_head */
-#include <linux/time.h> /* struct timespec */
-#include <linux/errno.h> /* Function return values */
-
-/*--------------------------------------------------------------------------*/
-/* Common definitions */
-/*--------------------------------------------------------------------------*/
-
-/*
- * DMX_MAX_FILTER_SIZE: Maximum length (in bytes) of a section/PES filter.
- */
-
-#ifndef DMX_MAX_FILTER_SIZE
-#define DMX_MAX_FILTER_SIZE 18
-#endif
-/*
- * dmx_success_t: Success codes for the Demux Callback API.
- */
-
-typedef enum {
- DMX_OK = 0, /* Received Ok */
- DMX_LENGTH_ERROR, /* Incorrect length */
- DMX_OVERRUN_ERROR, /* Receiver ring buffer overrun */
- DMX_CRC_ERROR, /* Incorrect CRC */
- DMX_FRAME_ERROR, /* Frame alignment error */
- DMX_FIFO_ERROR, /* Receiver FIFO overrun */
- DMX_MISSED_ERROR /* Receiver missed packet */
-} dmx_success_t;
-
-/*--------------------------------------------------------------------------*/
-/* TS packet reception */
-/*--------------------------------------------------------------------------*/
-
-/* TS filter type for set_type() */
-
-#define TS_PACKET 1 /* send TS packets (188 bytes) to callback (default) */
-#define TS_PAYLOAD_ONLY 2 /* in case TS_PACKET is set, only send the TS
- payload (<=184 bytes per packet) to callback */
-#define TS_DECODER 4 /* send stream to built-in decoder (if present) */
-
-/* PES type for filters which write to built-in decoder */
-/* these should be kept identical to the types in dmx.h */
-
-typedef enum
-{
- DMX_TS_PES_AUDIO, /* also send packets to audio decoder (if it exists) */
- DMX_TS_PES_VIDEO, /* ... */
- DMX_TS_PES_TELETEXT,
- DMX_TS_PES_SUBTITLE,
- DMX_TS_PES_PCR,
- DMX_TS_PES_OTHER,
-} dmx_ts_pes_t;
-
-
-struct dmx_ts_feed_s {
- int is_filtering; /* Set to non-zero when filtering in progress */
- struct dmx_demux_s* parent; /* Back-pointer */
- void* priv; /* Pointer to private data of the API client */
- int (*set) (struct dmx_ts_feed_s* feed,
- __u16 pid,
- size_t callback_length,
- size_t circular_buffer_size,
- int descramble,
- struct timespec timeout);
- int (*start_filtering) (struct dmx_ts_feed_s* feed);
- int (*stop_filtering) (struct dmx_ts_feed_s* feed);
- int (*set_type) (struct dmx_ts_feed_s* feed,
- int type,
- dmx_ts_pes_t pes_type);
-};
-
-typedef struct dmx_ts_feed_s dmx_ts_feed_t;
-
-/*--------------------------------------------------------------------------*/
-/* PES packet reception (not supported yet) */
-/*--------------------------------------------------------------------------*/
-
-typedef struct dmx_pes_filter_s {
- struct dmx_pes_s* parent; /* Back-pointer */
- void* priv; /* Pointer to private data of the API client */
-} dmx_pes_filter_t;
-
-typedef struct dmx_pes_feed_s {
- int is_filtering; /* Set to non-zero when filtering in progress */
- struct dmx_demux_s* parent; /* Back-pointer */
- void* priv; /* Pointer to private data of the API client */
- int (*set) (struct dmx_pes_feed_s* feed,
- __u16 pid,
- size_t circular_buffer_size,
- int descramble,
- struct timespec timeout);
- int (*start_filtering) (struct dmx_pes_feed_s* feed);
- int (*stop_filtering) (struct dmx_pes_feed_s* feed);
- int (*allocate_filter) (struct dmx_pes_feed_s* feed,
- dmx_pes_filter_t** filter);
- int (*release_filter) (struct dmx_pes_feed_s* feed,
- dmx_pes_filter_t* filter);
-} dmx_pes_feed_t;
-
-/*--------------------------------------------------------------------------*/
-/* Section reception */
-/*--------------------------------------------------------------------------*/
-
-typedef struct {
- __u8 filter_value [DMX_MAX_FILTER_SIZE];
- __u8 filter_mask [DMX_MAX_FILTER_SIZE];
- struct dmx_section_feed_s* parent; /* Back-pointer */
- void* priv; /* Pointer to private data of the API client */
-} dmx_section_filter_t;
-
-struct dmx_section_feed_s {
- int is_filtering; /* Set to non-zero when filtering in progress */
- struct dmx_demux_s* parent; /* Back-pointer */
- void* priv; /* Pointer to private data of the API client */
- int (*set) (struct dmx_section_feed_s* feed,
- __u16 pid,
- size_t circular_buffer_size,
- int descramble,
- int check_crc);
- int (*allocate_filter) (struct dmx_section_feed_s* feed,
- dmx_section_filter_t** filter);
- int (*release_filter) (struct dmx_section_feed_s* feed,
- dmx_section_filter_t* filter);
- int (*start_filtering) (struct dmx_section_feed_s* feed);
- int (*stop_filtering) (struct dmx_section_feed_s* feed);
-};
-typedef struct dmx_section_feed_s dmx_section_feed_t;
-
-/*--------------------------------------------------------------------------*/
-/* Callback functions */
-/*--------------------------------------------------------------------------*/
-
-typedef int (*dmx_ts_cb) ( __u8 * buffer1,
- size_t buffer1_length,
- __u8 * buffer2,
- size_t buffer2_length,
- dmx_ts_feed_t* source,
- dmx_success_t success);
-
-typedef int (*dmx_section_cb) ( __u8 * buffer1,
- size_t buffer1_len,
- __u8 * buffer2,
- size_t buffer2_len,
- dmx_section_filter_t * source,
- dmx_success_t success);
-
-typedef int (*dmx_pes_cb) ( __u8 * buffer1,
- size_t buffer1_len,
- __u8 * buffer2,
- size_t buffer2_len,
- dmx_pes_filter_t* source,
- dmx_success_t success);
-
-/*--------------------------------------------------------------------------*/
-/* DVB Front-End */
-/*--------------------------------------------------------------------------*/
-
-typedef enum {
- DMX_OTHER_FE = 0,
- DMX_SATELLITE_FE,
- DMX_CABLE_FE,
- DMX_TERRESTRIAL_FE,
- DMX_LVDS_FE,
- DMX_ASI_FE, /* DVB-ASI interface */
- DMX_MEMORY_FE
-} dmx_frontend_source_t;
-
-typedef struct {
- /* The following char* fields point to NULL terminated strings */
- char* id; /* Unique front-end identifier */
- char* vendor; /* Name of the front-end vendor */
- char* model; /* Name of the front-end model */
- struct list_head connectivity_list; /* List of front-ends that can
- be connected to a particular
- demux */
- void* priv; /* Pointer to private data of the API client */
- dmx_frontend_source_t source;
-} dmx_frontend_t;
-
-/*--------------------------------------------------------------------------*/
-/* MPEG-2 TS Demux */
-/*--------------------------------------------------------------------------*/
-
-/*
- * Flags OR'ed in the capabilites field of struct dmx_demux_s.
- */
-
-#define DMX_TS_FILTERING 1
-#define DMX_PES_FILTERING 2
-#define DMX_SECTION_FILTERING 4
-#define DMX_MEMORY_BASED_FILTERING 8 /* write() available */
-#define DMX_CRC_CHECKING 16
-#define DMX_TS_DESCRAMBLING 32
-#define DMX_SECTION_PAYLOAD_DESCRAMBLING 64
-#define DMX_MAC_ADDRESS_DESCRAMBLING 128
-
-/*
- * Demux resource type identifier.
-*/
-
-/*
- * DMX_FE_ENTRY(): Casts elements in the list of registered
- * front-ends from the generic type struct list_head
- * to the type * dmx_frontend_t
- *.
-*/
-
-#define DMX_FE_ENTRY(list) list_entry(list, dmx_frontend_t, connectivity_list)
-
-struct dmx_demux_s {
- /* The following char* fields point to NULL terminated strings */
- char* id; /* Unique demux identifier */
- char* vendor; /* Name of the demux vendor */
- char* model; /* Name of the demux model */
- __u32 capabilities; /* Bitfield of capability flags */
- dmx_frontend_t* frontend; /* Front-end connected to the demux */
- struct list_head reg_list; /* List of registered demuxes */
- void* priv; /* Pointer to private data of the API client */
- int users; /* Number of users */
- int (*open) (struct dmx_demux_s* demux);
- int (*close) (struct dmx_demux_s* demux);
- int (*write) (struct dmx_demux_s* demux, const char* buf, size_t count);
- int (*allocate_ts_feed) (struct dmx_demux_s* demux,
- dmx_ts_feed_t** feed,
- dmx_ts_cb callback);
- int (*release_ts_feed) (struct dmx_demux_s* demux,
- dmx_ts_feed_t* feed);
- int (*allocate_pes_feed) (struct dmx_demux_s* demux,
- dmx_pes_feed_t** feed,
- dmx_pes_cb callback);
- int (*release_pes_feed) (struct dmx_demux_s* demux,
- dmx_pes_feed_t* feed);
- int (*allocate_section_feed) (struct dmx_demux_s* demux,
- dmx_section_feed_t** feed,
- dmx_section_cb callback);
- int (*release_section_feed) (struct dmx_demux_s* demux,
- dmx_section_feed_t* feed);
- int (*descramble_mac_address) (struct dmx_demux_s* demux,
- __u8* buffer1,
- size_t buffer1_length,
- __u8* buffer2,
- size_t buffer2_length,
- __u16 pid);
- int (*descramble_section_payload) (struct dmx_demux_s* demux,
- __u8* buffer1,
- size_t buffer1_length,
- __u8* buffer2, size_t buffer2_length,
- __u16 pid);
- int (*add_frontend) (struct dmx_demux_s* demux,
- dmx_frontend_t* frontend);
- int (*remove_frontend) (struct dmx_demux_s* demux,
- dmx_frontend_t* frontend);
- struct list_head* (*get_frontends) (struct dmx_demux_s* demux);
- int (*connect_frontend) (struct dmx_demux_s* demux,
- dmx_frontend_t* frontend);
- int (*disconnect_frontend) (struct dmx_demux_s* demux);
-
-
- /* added because js cannot keep track of these himself */
- int (*get_pes_pids) (struct dmx_demux_s* demux, __u16 *pids);
-};
-typedef struct dmx_demux_s dmx_demux_t;
-
-/*--------------------------------------------------------------------------*/
-/* Demux directory */
-/*--------------------------------------------------------------------------*/
-
-/*
- * DMX_DIR_ENTRY(): Casts elements in the list of registered
- * demuxes from the generic type struct list_head* to the type dmx_demux_t
- *.
- */
-
-#define DMX_DIR_ENTRY(list) list_entry(list, dmx_demux_t, reg_list)
-
-int dmx_register_demux (dmx_demux_t* demux);
-int dmx_unregister_demux (dmx_demux_t* demux);
-struct list_head* dmx_get_demuxes (void);
-
-#endif /* #ifndef __DEMUX_H */
-
diff --git a/src/input/ost/dmx.h b/src/input/ost/dmx.h
deleted file mode 100644
index 88eebd869..000000000
--- a/src/input/ost/dmx.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * dmx.h
- *
- * Copyright (C) 2000 Marcus Metzler <marcus@convergence.de>
- * & Ralph Metzler <ralph@convergence.de>
- for convergence integrated media GmbH
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser 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.
- *
- */
-
-#ifndef _OST_DMX_H_
-#define _OST_DMX_H_
-
-#ifdef __KERNEL__
-#include <linux/types.h>
-#elif defined(__sun)
-#include <inttypes.h>
-#else
-#include <stdint.h>
-#endif
-
-#ifndef EBUFFEROVERFLOW
-#define EBUFFEROVERFLOW 769
-#endif
-
-/* pid_t conflicts with linux/include/linux/types.h !!!*/
-
-typedef uint16_t dvb_pid_t;
-
-#define DMX_FILTER_SIZE 16
-
-typedef enum
-{
- DMX_OUT_DECODER, /* Streaming directly to decoder. */
- DMX_OUT_TAP, /* Output going to a memory buffer */
- /* (to be retrieved via the read command).*/
- DMX_OUT_TS_TAP /* Output multiplexed into a new TS */
- /* (to be retrieved by reading from the */
- /* logical DVR device). */
-} dmxOutput_t;
-
-
-typedef enum
-{
- DMX_IN_FRONTEND, /* Input from a front-end device. */
- DMX_IN_DVR /* Input from the logical DVR device. */
-} dmxInput_t;
-
-
-typedef enum
-{
- DMX_PES_AUDIO,
- DMX_PES_VIDEO,
- DMX_PES_TELETEXT,
- DMX_PES_SUBTITLE,
- DMX_PES_PCR,
- DMX_PES_OTHER
-} dmxPesType_t;
-
-
-typedef enum
-{
- DMX_SCRAMBLING_EV,
- DMX_FRONTEND_EV
-} dmxEvent_t;
-
-
-typedef enum
-{
- DMX_SCRAMBLING_OFF,
- DMX_SCRAMBLING_ON
-} dmxScramblingStatus_t;
-
-
-typedef struct dmxFilter
-{
- uint8_t filter[DMX_FILTER_SIZE];
- uint8_t mask[DMX_FILTER_SIZE];
-} dmxFilter_t;
-
-
-/*struct dmxFrontEnd
-{
- TBD tbd;
-};*/
-
-
-struct dmxSctFilterParams
-{
- dvb_pid_t pid;
- dmxFilter_t filter;
- uint32_t timeout;
- uint32_t flags;
-#define DMX_CHECK_CRC 1
-#define DMX_ONESHOT 2
-#define DMX_IMMEDIATE_START 4
-#define DMX_KERNEL_CLIENT 0x8000
-};
-
-
-struct dmxPesFilterParams
-{
- dvb_pid_t pid;
- dmxInput_t input;
- dmxOutput_t output;
- dmxPesType_t pesType;
- uint32_t flags;
-};
-
-
-struct dmxEvent
-{
- dmxEvent_t event;
- time_t timeStamp;
- union
- {
- dmxScramblingStatus_t scrambling;
- } u;
-};
-
-
-#define DMX_START _IOW('o',41,int)
-#define DMX_STOP _IOW('o',42,int)
-#define DMX_SET_FILTER _IOW('o',43,struct dmxSctFilterParams *)
-#define DMX_SET_PES_FILTER _IOW('o',44,struct dmxPesFilterParams *)
-#define DMX_SET_BUFFER_SIZE _IOW('o',45,unsigned long)
-#define DMX_GET_EVENT _IOR('o',46,struct dmxEvent *)
-#define DMX_GET_PES_PIDS _IOR('o',47,dvb_pid_t *)
-
-#endif /*_OST_DMX_H_*/
diff --git a/src/input/ost/frontend.h b/src/input/ost/frontend.h
deleted file mode 100644
index f052f9ced..000000000
--- a/src/input/ost/frontend.h
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * frontend.h
- *
- * Copyright (C) 2000 Marcus Metzler <marcus@convergence.de>
- * & Ralph Metzler <ralph@convergence.de>
- * for convergence integrated media GmbH
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser 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.
- *
- */
-
-#ifndef _FRONTEND_H_
-#define _FRONTEND_H_
-
-#if defined(__sun)
-#include <sys/ioccom.h>
-#else
-#include <asm/types.h>
-#endif
-
-#define ENOSIGNAL 768
-#ifndef EBUFFEROVERFLOW
-#define EBUFFEROVERFLOW 769
-#endif
-
-
-typedef uint32_t FrontendStatus;
-
-/* bit definitions for FrontendStatus */
-#define FE_HAS_POWER 1
-#define FE_HAS_SIGNAL 2
-#define FE_SPECTRUM_INV 4
-#define FE_HAS_LOCK 8
-#define FE_HAS_CARRIER 16
-#define FE_HAS_VITERBI 32
-#define FE_HAS_SYNC 64
-#define FE_TUNER_HAS_LOCK 128
-
-
-/* possible values for spectral inversion */
-typedef enum {
- INVERSION_OFF,
- INVERSION_ON,
- INVERSION_AUTO
-} SpectralInversion;
-
-/* possible values for FEC_inner/FEC_outer */
-typedef enum {
- FEC_AUTO,
- FEC_1_2,
- FEC_2_3,
- FEC_3_4,
- FEC_5_6,
- FEC_7_8,
- FEC_NONE
-} CodeRate;
-
-
-typedef enum {
- QPSK,
- QAM_16,
- QAM_32,
- QAM_64,
- QAM_128,
- QAM_256
-} Modulation;
-
-
-typedef enum {
- TRANSMISSION_MODE_2K,
- TRANSMISSION_MODE_8K
-} TransmitMode;
-
-typedef enum {
- BANDWIDTH_8_MHZ,
- BANDWIDTH_7_MHZ,
- BANDWIDTH_6_MHZ
-} BandWidth;
-
-
-typedef enum {
- GUARD_INTERVAL_1_32,
- GUARD_INTERVAL_1_16,
- GUARD_INTERVAL_1_8,
- GUARD_INTERVAL_1_4
-} GuardInterval;
-
-
-typedef enum {
- HIERARCHY_NONE,
- HIERARCHY_1,
- HIERARCHY_2,
- HIERARCHY_4
-} Hierarchy;
-
-
-typedef struct {
- uint32_t SymbolRate; /* symbol rate in Symbols per second */
- CodeRate FEC_inner; /* forward error correction (see above) */
-} QPSKParameters;
-
-
-typedef struct {
- uint32_t SymbolRate; /* symbol rate in Symbols per second */
- CodeRate FEC_inner; /* forward error correction (see above) */
- Modulation QAM; /* modulation type (see above) */
-} QAMParameters;
-
-
-typedef struct {
- BandWidth bandWidth;
- CodeRate HP_CodeRate; /* high priority stream code rate */
- CodeRate LP_CodeRate; /* low priority stream code rate */
- Modulation Constellation; /* modulation type (see above) */
- TransmitMode TransmissionMode;
- GuardInterval guardInterval;
- Hierarchy HierarchyInformation;
-} OFDMParameters;
-
-
-typedef enum {
- FE_QPSK,
- FE_QAM,
- FE_OFDM
-} FrontendType;
-
-
-typedef struct {
- uint32_t Frequency; /* (absolute) frequency in Hz for QAM/OFDM */
- /* intermediate frequency in kHz for QPSK */
- SpectralInversion Inversion; /* spectral inversion */
- union {
- QPSKParameters qpsk;
- QAMParameters qam;
- OFDMParameters ofdm;
- } u;
-} FrontendParameters;
-
-
-typedef enum {
- FE_UNEXPECTED_EV, /* unexpected event (e.g. loss of lock) */
- FE_COMPLETION_EV, /* completion event, tuning succeeded */
- FE_FAILURE_EV /* failure event, we couldn't tune */
-} EventType;
-
-
-typedef struct {
- EventType type; /* type of event, FE_UNEXPECTED_EV, ... */
-
- long timestamp; /* time in seconds since 1970-01-01 */
-
- union {
- struct {
- FrontendStatus previousStatus; /* status before event */
- FrontendStatus currentStatus; /* status during event */
- } unexpectedEvent;
- FrontendParameters completionEvent; /* parameters for which the
- tuning succeeded */
- FrontendStatus failureEvent; /* status at failure (e.g. no lock) */
- } u;
-} FrontendEvent;
-
-typedef struct {
- FrontendType type;
- uint32_t minFrequency;
- uint32_t maxFrequency;
- uint32_t maxSymbolRate;
- uint32_t minSymbolRate;
- uint32_t hwType;
- uint32_t hwVersion;
-} FrontendInfo;
-
-
-typedef enum {
- FE_POWER_ON,
- FE_POWER_STANDBY,
- FE_POWER_SUSPEND,
- FE_POWER_OFF
-} FrontendPowerState;
-
-
-#define FE_SELFTEST _IO('o', 61)
-#define FE_SET_POWER_STATE _IOW('o', 62, FrontendPowerState)
-#define FE_GET_POWER_STATE _IOR('o', 63, FrontendPowerState*)
-#define FE_READ_STATUS _IOR('o', 64, FrontendStatus*)
-#define FE_READ_BER _IOW('o', 65, uint32_t*)
-#define FE_READ_SIGNAL_STRENGTH _IOR('o', 66, __s32*)
-#define FE_READ_SNR _IOR('o', 67, __s32*)
-#define FE_READ_UNCORRECTED_BLOCKS _IOW('o', 68, uint32_t*)
-#define FE_GET_NEXT_FREQUENCY _IOW('o', 69, uint32_t*)
-#define FE_GET_NEXT_SYMBOL_RATE _IOW('o', 70, uint32_t*)
-
-#define FE_SET_FRONTEND _IOW('o', 71, FrontendParameters*)
-#define FE_GET_FRONTEND _IOR('o', 72, FrontendParameters*)
-#define FE_GET_INFO _IOR('o', 73, FrontendInfo*)
-#define FE_GET_EVENT _IOR('o', 74, FrontendEvent*)
-
-#endif /*_FRONTEND_H_*/
-
diff --git a/src/input/ost/sec.h b/src/input/ost/sec.h
deleted file mode 100644
index 8863df268..000000000
--- a/src/input/ost/sec.h
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * sec.h
- *
- * Copyright (C) 2000 Ralph Metzler <ralph@convergence.de>
- * & Marcus Metzler <marcus@convergence.de>
- for convergence integrated media GmbH
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser 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.
- *
- */
-
-#ifndef _OST_SEC_H_
-#define _OST_SEC_H_
-
-#define SEC_MAX_DISEQC_PARAMS 3
-
-struct secDiseqcCmd {
- uint8_t addr;
- uint8_t cmd;
- uint8_t numParams;
- uint8_t params[SEC_MAX_DISEQC_PARAMS];
-};
-
-typedef uint32_t secVoltage;
-
-enum {
- SEC_VOLTAGE_OFF,
- SEC_VOLTAGE_LT,
- SEC_VOLTAGE_13,
- SEC_VOLTAGE_13_5,
- SEC_VOLTAGE_18,
- SEC_VOLTAGE_18_5
-};
-
-#define SEC_VOLTAGE_HORIZONTAL SEC_VOLTAGE_18
-#define SEC_VOLTAGE_VERTICAL SEC_VOLTAGE_13
-
-typedef uint32_t secToneMode;
-
-typedef enum {
- SEC_TONE_ON,
- SEC_TONE_OFF
-} secToneMode_t;
-
-
-typedef uint32_t secMiniCmd;
-
-typedef enum {
- SEC_MINI_NONE,
- SEC_MINI_A,
- SEC_MINI_B
-} secMiniCmd_t;
-
-struct secStatus {
- int32_t busMode;
- secVoltage selVolt;
- secToneMode contTone;
-};
-
-enum {
- SEC_BUS_IDLE,
- SEC_BUS_BUSY,
- SEC_BUS_OFF,
- SEC_BUS_OVERLOAD
-};
-
-struct secCommand {
- int32_t type;
- union {
- struct secDiseqcCmd diseqc;
- uint8_t vsec;
- uint32_t pause;
- } u;
-};
-
-struct secCmdSequence {
- secVoltage voltage;
- secMiniCmd miniCommand;
- secToneMode continuousTone;
-
- uint32_t numCommands;
- struct secCommand* commands;
-};
-
-enum {
- SEC_CMDTYPE_DISEQC,
- SEC_CMDTYPE_VSEC,
- SEC_CMDTYPE_PAUSE
-};
-
-
-#define SEC_GET_STATUS _IOR('o',91,struct secStatus *)
-#define SEC_RESET_OVERLOAD _IOW('o',92,void)
-#define SEC_SEND_SEQUENCE _IOW('o',93,struct secCmdSequence *)
-#define SEC_SET_TONE _IOW('o',94,secToneMode)
-#define SEC_SET_VOLTAGE _IOW('o',95,secVoltage)
-
-typedef enum {
- SEC_DISEQC_SENT,
- SEC_VSEC_SENT,
- SEC_PAUSE_COMPLETE,
- SEC_CALLBACK_ERROR
-} secCallback_t;
-
-
-#endif /*_OST_SEC_H_*/