diff options
Diffstat (limited to 'lib/dvb/pmt.cpp')
| -rw-r--r-- | lib/dvb/pmt.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/dvb/pmt.cpp b/lib/dvb/pmt.cpp index f23696b0..679d7a8f 100644 --- a/lib/dvb/pmt.cpp +++ b/lib/dvb/pmt.cpp @@ -145,7 +145,7 @@ int eDVBServicePMTHandler::getProgramInfo(struct program &program) program.pmtPid = -1; program.textPid = -1; - if (!m_PMT.getCurrent(ptr)) + if ( ((m_service && m_service->usePMT()) || !m_service) && !m_PMT.getCurrent(ptr)) { int cached_apid_ac3 = -1; int cached_apid_mpeg = -1; @@ -413,7 +413,11 @@ int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux, eDebug("allocatePVRChannel failed!\n"); m_channel = m_pvr_channel; } - + + ePtr<iDVBChannelList> db; + if (!m_resourceManager->getChannelList(db)) + db->getService((eServiceReferenceDVB&)m_reference, m_service); + if (m_channel) { m_channel->connectStateChange( @@ -437,10 +441,6 @@ int eDVBServicePMTHandler::tune(eServiceReferenceDVB &ref, int use_decode_demux, m_pvr_channel->playFile(ref.path.c_str()); } - ePtr<iDVBChannelList> db; - if (!m_resourceManager->getChannelList(db)) - db->getService((eServiceReferenceDVB&)m_reference, m_service); - return res; } |
