X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/b6592b47fa1932132a67a3beabcce7c96856d211..e768f7667ec5da0e331725de8a582365358cf7e3:/lib/dvb/pmt.cpp diff --git a/lib/dvb/pmt.cpp b/lib/dvb/pmt.cpp index 68b1f6c9..e743d266 100644 --- 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); } + } else if ((m_last_channel_state != iDVBChannel::state_failed) && + (state == iDVBChannel::state_failed)) + { + eDebug("tune failed."); + serviceEvent(eventTuneFailed); } } @@ -90,12 +95,12 @@ void eDVBServicePMTHandler::PATready(int) int eDVBServicePMTHandler::getProgramInfo(struct program &program) { - eDebug("got PMT"); ePtr > ptr; program.videoStreams.clear(); program.audioStreams.clear(); program.pcrPid = -1; + program.pmtPid = m_pmt_pid < 0x1fff ? m_pmt_pid : -1; if (!m_PMT.getCurrent(ptr)) { @@ -205,6 +210,7 @@ int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref) eDVBChannelID chid; ref.getChannelID(chid); res = m_resourceManager->allocateChannel(chid, m_channel); + eDebug("allocate Channel: res %d", res); } else { eDVBMetaParser parser; @@ -229,6 +235,10 @@ int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref) m_channelStateChanged_connection); m_last_channel_state = -1; channelStateChanged(m_channel); + } else + { + serviceEvent(eventTuneFailed); + return res; } if (m_pvr_channel) @@ -268,7 +278,7 @@ void eDVBCAService::buildCAPMT() while( i != ptr->getSections().end() ) { - eDebug("append"); +// eDebug("append"); capmt.append(*i++); } @@ -351,11 +361,11 @@ void eDVBCAService::sendCAPMT() case 0xFFFFFFFF: ++m_sendstate; m_retryTimer.start(0,true); - eDebug("[eDVBCAHandler] send failed .. immediate retry"); +// eDebug("[eDVBCAHandler] send failed .. immediate retry"); break; default: m_retryTimer.start(5000,true); - eDebug("[eDVBCAHandler] send failed .. retry in 5 sec"); +// eDebug("[eDVBCAHandler] send failed .. retry in 5 sec"); break; } ++m_sendstate;