X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fdvb%2Fpmt.cpp;h=d0119508470a6642f9e81c14b5f5081d9b5b99a3;hp=3b7a376f12d6b872aed410c7e08932c15f9deccf;hb=24c472e37de8db4007cdd4c5d67d3fd4e914f0b1;hpb=ea65d88df7ab329f5950a6f5f8fee817c19f78c3 diff --git a/lib/dvb/pmt.cpp b/lib/dvb/pmt.cpp index 3b7a376..d011950 100644 --- a/lib/dvb/pmt.cpp +++ b/lib/dvb/pmt.cpp @@ -100,8 +100,7 @@ void eDVBServicePMTHandler::PMTready(int error) eDVBCAService::register_service(m_reference, demuxes, m_ca_servicePtr); eDVBCIInterfaces::getInstance()->recheckPMTHandlers(); } - else - eDVBCIInterfaces::getInstance()->gotPMT(this); + eDVBCIInterfaces::getInstance()->gotPMT(this); } if (m_ca_servicePtr) { @@ -449,6 +448,11 @@ int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux, ref.getChannelID(chid); res = m_resourceManager->allocateChannel(chid, m_channel); eDebug("allocate Channel: res %d", res); + + ePtr db; + if (!m_resourceManager->getChannelList(db)) + db->getService((eServiceReferenceDVB&)m_reference, m_service); + if (!res) eDVBCIInterfaces::getInstance()->addPMTHandler(this); } else @@ -482,10 +486,6 @@ int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux, m_channel = m_pvr_channel; } - ePtr db; - if (!m_resourceManager->getChannelList(db)) - db->getService((eServiceReferenceDVB&)m_reference, m_service); - if (m_channel) { m_channel->connectStateChange(