aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb/pmt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dvb/pmt.cpp')
-rw-r--r--lib/dvb/pmt.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/dvb/pmt.cpp b/lib/dvb/pmt.cpp
index 6082bf4a..692428d7 100644
--- a/lib/dvb/pmt.cpp
+++ b/lib/dvb/pmt.cpp
@@ -524,8 +524,15 @@ void eDVBServicePMTHandler::SDTScanEvent(int event)
eDebug("no channel list");
else
{
- m_dvb_scan->insertInto(db, true);
- eDebug("sdt update done!");
+ eDVBChannelID chid;
+ m_reference.getChannelID(chid);
+ if (chid == m_dvb_scan->getCurrentChannelID())
+ {
+ m_dvb_scan->insertInto(db, true);
+ eDebug("sdt update done!");
+ }
+ else
+ eDebug("ignore sdt update data.... incorrect transponder tuned!!!");
}
break;
}
@@ -605,6 +612,7 @@ int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux,
if (ref.path.empty())
{
+ m_dvb_scan = 0;
m_dvb_scan = new eDVBScan(m_channel, true, false);
m_dvb_scan->connectEvent(slot(*this, &eDVBServicePMTHandler::SDTScanEvent), m_scan_event_connection);
}