git.cweiske.de
/
enigma2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
volume-control:
[enigma2.git]
/
lib
/
dvb
/
pmt.cpp
diff --git
a/lib/dvb/pmt.cpp
b/lib/dvb/pmt.cpp
index 68b1f6c931e5e30eb766c323eb768c7be9130c32..d7186d5c70b88bcd7e23ed3adf51e8783177e325 100644
(file)
--- a/
lib/dvb/pmt.cpp
+++ b/
lib/dvb/pmt.cpp
@@
-44,6
+44,11
@@
void eDVBServicePMTHandler::channelStateChanged(iDVBChannel *channel)
if ( m_service && !m_service->cacheEmpty() )
serviceEvent(eventNewProgramInfo);
}
if ( m_service && !m_service->cacheEmpty() )
serviceEvent(eventNewProgramInfo);
}
+ } else if ((m_last_channel_state != iDVBChannel::state_failed) &&
+ (state == iDVBChannel::state_failed))
+ {
+ eDebug("tune failed.");
+ serviceEvent(eventTuneFailed);
}
}
}
}
@@
-96,6
+101,7
@@
int eDVBServicePMTHandler::getProgramInfo(struct program &program)
program.videoStreams.clear();
program.audioStreams.clear();
program.pcrPid = -1;
program.videoStreams.clear();
program.audioStreams.clear();
program.pcrPid = -1;
+ program.pmtPid = m_pmt_pid < 0x1fff ? m_pmt_pid : -1;
if (!m_PMT.getCurrent(ptr))
{
if (!m_PMT.getCurrent(ptr))
{
@@
-205,6
+211,7
@@
int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref)
eDVBChannelID chid;
ref.getChannelID(chid);
res = m_resourceManager->allocateChannel(chid, m_channel);
eDVBChannelID chid;
ref.getChannelID(chid);
res = m_resourceManager->allocateChannel(chid, m_channel);
+ eDebug("allocate Channel: res %d", res);
} else
{
eDVBMetaParser parser;
} else
{
eDVBMetaParser parser;
@@
-229,6
+236,10
@@
int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref)
m_channelStateChanged_connection);
m_last_channel_state = -1;
channelStateChanged(m_channel);
m_channelStateChanged_connection);
m_last_channel_state = -1;
channelStateChanged(m_channel);
+ } else
+ {
+ serviceEvent(eventTuneFailed);
+ return res;
}
if (m_pvr_channel)
}
if (m_pvr_channel)