aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2008-11-02 10:42:12 +0100
committerAndreas Oberritter <obi@saftware.de>2008-11-06 01:47:04 +0100
commita2db874464833311586936a3d658c302d9dde109 (patch)
tree528676c6ca41afda38a39a75dea1347d013f45c5 /lib
parent8a30b8412a4695aaee0bfad0309b31375600c576 (diff)
downloadenigma2-a2db874464833311586936a3d658c302d9dde109.tar.gz
enigma2-a2db874464833311586936a3d658c302d9dde109.zip
check sid and tsid before start automatic service update (STD update)
Diffstat (limited to 'lib')
-rw-r--r--lib/dvb/pmt.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/lib/dvb/pmt.cpp b/lib/dvb/pmt.cpp
index 6082bf4a..13734e0d 100644
--- a/lib/dvb/pmt.cpp
+++ b/lib/dvb/pmt.cpp
@@ -135,7 +135,19 @@ void eDVBServicePMTHandler::PATready(int)
if (pmtpid == -1)
serviceEvent(eventNoPATEntry);
else
+ { // here we know a pat entry for this service id exist
m_PMT.begin(eApp, eDVBPMTSpec(pmtpid, m_reference.getServiceID().get()), m_demux);
+ if (m_reference.path.empty())
+ { // also check the tsid now before start sdt update
+ eDVBChannelID chid;
+ m_reference.getChannelID(chid);
+ if (eTransportStreamID((*i)->getTableIdExtension()) == chid.transport_stream_id)
+ {
+ m_dvb_scan = new eDVBScan(m_channel, true, false);
+ m_dvb_scan->connectEvent(slot(*this, &eDVBServicePMTHandler::SDTScanEvent), m_scan_event_connection);
+ }
+ }
+ }
} else
serviceEvent(eventNoPAT);
}
@@ -604,10 +616,7 @@ int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux,
m_channelEvent_connection);
if (ref.path.empty())
- {
- m_dvb_scan = new eDVBScan(m_channel, true, false);
- m_dvb_scan->connectEvent(slot(*this, &eDVBServicePMTHandler::SDTScanEvent), m_scan_event_connection);
- }
+ m_dvb_scan = 0;
} else
{
if (res == eDVBResourceManager::errAllSourcesBusy)