aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-08-06 14:03:49 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-08-06 14:03:49 +0000
commit0d3b6f2c16aec76d38593a9e01d272817fb7fdd4 (patch)
tree29d8dcc2dd4c694057d937429c59f58a9b2e154c /lib
parent7ef9c069ca947922cf36b711f81c1450f409bc80 (diff)
downloadenigma2-0d3b6f2c16aec76d38593a9e01d272817fb7fdd4.tar.gz
enigma2-0d3b6f2c16aec76d38593a9e01d272817fb7fdd4.zip
update workaround for wrong transmitted private data
Diffstat (limited to 'lib')
-rw-r--r--lib/dvb/epgcache.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/lib/dvb/epgcache.cpp b/lib/dvb/epgcache.cpp
index ebf9e2ea..46785de1 100644
--- a/lib/dvb/epgcache.cpp
+++ b/lib/dvb/epgcache.cpp
@@ -2369,13 +2369,20 @@ void eEPGCache::privateSectionRead(const uniqueEPGKey &current_service, const __
int sid = data[ptr++] << 8;
sid |= data[ptr++];
-// WORKAROUND for wrong transmitted epg data
- if ( onid == 0x85 && tsid == 0x11 && sid == 0xd3 ) // premiere sends wrong tsid here
- tsid = 0x1;
- else if ( onid == 0x85 && tsid == 0x3 && sid == 0xf5 ) // premiere sends wrong sid here
- sid = 0xdc;
+// WORKAROUND for wrong transmitted epg data (01.08.2006)
+ if ( onid == 0x85 )
+ {
+ switch( (tsid << 16) | sid )
+ {
+ case 0x0300f0: sid = 0xe0; tsid = 2; break;
+ case 0x0300f1: sid = 0xe1; tsid = 2; break;
+ case 0x0300f5: sid = 0xdc; break;
+ case 0x0400d2: sid = 0xe2; tsid = 0x11; break;
+ case 0x1100d3: sid = 0xe3; break;
+ }
+ }
////////////////////////////////////////////
-
+
uniqueEPGKey service( sid, onid, tsid );
descr_len -= 6;
while( descr_len > 0 )