diff options
| author | ghost <andreas.monzner@multimedia-labs.de> | 2008-11-02 10:42:12 +0100 |
|---|---|---|
| committer | Andreas Oberritter <obi@saftware.de> | 2008-11-06 01:47:04 +0100 |
| commit | a2db874464833311586936a3d658c302d9dde109 (patch) | |
| tree | 528676c6ca41afda38a39a75dea1347d013f45c5 /lib/dvb/pmt.cpp | |
| parent | 8a30b8412a4695aaee0bfad0309b31375600c576 (diff) | |
| download | enigma2-a2db874464833311586936a3d658c302d9dde109.tar.gz enigma2-a2db874464833311586936a3d658c302d9dde109.zip | |
check sid and tsid before start automatic service update (STD update)
Diffstat (limited to 'lib/dvb/pmt.cpp')
| -rw-r--r-- | lib/dvb/pmt.cpp | 17 |
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) |
