X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/29f60fdaf6f0ff1dd112c9e0e913ec734b304bf1..06ca56e60c8d3e13d161b481b7716303bd3aa9f2:/lib/dvb/epgcache.cpp diff --git a/lib/dvb/epgcache.cpp b/lib/dvb/epgcache.cpp index ee61268c..59c62037 100644 --- a/lib/dvb/epgcache.cpp +++ b/lib/dvb/epgcache.cpp @@ -2118,7 +2118,7 @@ void eEPGCache::PMTready(eDVBServicePMTHandler *pmthandler) if (tmp==3) { eServiceReferenceDVB ref; - if (!pmthandler->getService(ref)) + if (!pmthandler->getServiceReference(ref)) { int pid = (*es)->getPid(); messages.send(Message(Message::got_private_pid, ref, pid)); @@ -2216,6 +2216,14 @@ void eEPGCache::privateSectionRead(const uniqueEPGKey ¤t_service, const __ onid |= data[ptr++]; 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; +//////////////////////////////////////////// + uniqueEPGKey service( sid, onid, tsid ); descr_len -= 6; while( descr_len > 0 )