diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2008-06-06 20:42:01 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2008-06-06 20:42:01 +0000 |
| commit | 90518479f5cf86c713702cc78e2af583b0234676 (patch) | |
| tree | 555ada83dc5bc7cc859b2a2b6150dc80b7c886f0 /lib/dvb | |
| parent | 8a6f72ae207971dcfa13fcb70894cc24c0f93e80 (diff) | |
| download | enigma2-90518479f5cf86c713702cc78e2af583b0234676.tar.gz enigma2-90518479f5cf86c713702cc78e2af583b0234676.zip | |
add hack for Kabel-BW 618Mhz Transponder.. (tsid is difference in PAT and
SDT)
Diffstat (limited to 'lib/dvb')
| -rw-r--r-- | lib/dvb/scan.cpp | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/lib/dvb/scan.cpp b/lib/dvb/scan.cpp index 20bb9159..25be7005 100644 --- a/lib/dvb/scan.cpp +++ b/lib/dvb/scan.cpp @@ -145,16 +145,30 @@ RESULT eDVBScan::startFilter() if (startSDT && (m_ready_all & readySDT)) { m_SDT = new eTable<ServiceDescriptionSection>(); + int tsid=-1; if (m_ready & readyPAT && m_ready & validPAT) { std::vector<ProgramAssociationSection*>::const_iterator i = m_PAT->getSections().begin(); assert(i != m_PAT->getSections().end()); - int tsid = (*i)->getTableIdExtension(); // in PAT this is the transport stream id - if (m_SDT->start(m_demux, eDVBSDTSpec(tsid, true))) - return -1; + tsid = (*i)->getTableIdExtension(); // in PAT this is the transport stream id + + // KabelBW HACK ... on 618 Mhz the transport stream id in PAT and SDT is different + { + int type; + m_ch_current->getSystem(type); + if (type == iDVBFrontend::feCable) + { + eDVBFrontendParametersCable parm; + m_ch_current->getDVBC(parm); + if (tsid == 0x00d7 & abs(parm.frequency-618000) < 2000) + tsid = -1; + } + } } - else if (m_SDT->start(m_demux, eDVBSDTSpec())) + if (tsid == -1 && m_SDT->start(m_demux, eDVBSDTSpec())) + return -1; + else if (m_SDT->start(m_demux, eDVBSDTSpec(tsid, true))) return -1; CONNECT(m_SDT->tableReady, eDVBScan::SDTready); } |
