X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/af6a8a3a102ff0230fcc6d90ad213e2e7d706fa8..40d11af2de7aed77c90970ba2b61dd754a225117:/lib/dvb/dvb.cpp diff --git a/lib/dvb/dvb.cpp b/lib/dvb/dvb.cpp index ad5dfa64..b887dc0d 100644 --- a/lib/dvb/dvb.cpp +++ b/lib/dvb/dvb.cpp @@ -42,6 +42,16 @@ DEFINE_REF(eDVBResourceManager); eDVBResourceManager *eDVBResourceManager::instance; +RESULT eDVBResourceManager::getInstance(ePtr &ptr) +{ + if (instance) + { + ptr = instance; + return 0; + } + return -1; +} + eDVBResourceManager::eDVBResourceManager() :m_releaseCachedChannelTimer(eApp) { @@ -788,7 +798,11 @@ void eDVBChannel::getNextSourceSpan(off_t current_offset, size_t bytes_read, off } if (relative == 1) /* pts relative */ + { pts += now; + if (pts < 0) + pts = 0; + } if (relative != 2) if (pts < 0) @@ -974,6 +988,9 @@ RESULT eDVBChannel::getDemux(ePtr &demux, int cap) RESULT eDVBChannel::getFrontend(ePtr &frontend) { + frontend = 0; + if (!m_frontend) + return -ENODEV; frontend = &m_frontend->get(); if (frontend) return 0;