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 )
channel.transport_stream_id_lo = *(tmp++);
channel.channel_id_hi = *(tmp++);
channel.channel_id_lo = *(tmp++);
+#warning FIXME hardcoded network_id in mhw2 epg
channel.network_id_hi = 0; // hardcoded astra 19.2
channel.network_id_lo = 1;
m_channels.push_back(channel);