aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2008-06-06 20:42:01 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2008-06-06 20:42:01 +0000
commit90518479f5cf86c713702cc78e2af583b0234676 (patch)
tree555ada83dc5bc7cc859b2a2b6150dc80b7c886f0 /lib/dvb
parent8a6f72ae207971dcfa13fcb70894cc24c0f93e80 (diff)
downloadenigma2-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.cpp22
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);
}