X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/3e45b153a93894c4c382d3ba5ded974c738e9589..c1b1596392a63fbc32d9792dfa8e82ba9d8a7dc4:/lib/dvb/dvb.cpp diff --git a/lib/dvb/dvb.cpp b/lib/dvb/dvb.cpp index f0186de7..3c2c22af 100644 --- a/lib/dvb/dvb.cpp +++ b/lib/dvb/dvb.cpp @@ -429,7 +429,25 @@ RESULT eDVBResourceManager::allocateDemux(eDVBRegisteredFrontend *fe, ePtr unused; - if (m_demux.size() < 5) + if (m_demux.size() == 3) // dm800 / 500hd + { + for (; i != m_demux.end(); ++i, ++n) + { + if (!i->m_inuse) + { + if (!unused) + unused = i; + } + else if (!fe || (i->m_adapter == fe->m_adapter && + i->m_demux->getSource() == fe->m_frontend->getDVBID())) + { + demux = new eDVBAllocatedDemux(i); + return 0; + } + } + + } + else if (m_demux.size() < 5) // ATI { /* FIXME: hardware demux policy */ if (!(cap & iDVBChannel::capDecode)) @@ -1828,7 +1846,7 @@ void eCueSheet::clear() void eCueSheet::addSourceSpan(const pts_t &begin, const pts_t &end) { - assert(begin < end); + ASSERT(begin < end); m_lock.WrLock(); m_spans.push_back(std::pair(begin, end)); m_lock.Unlock();