diff options
Diffstat (limited to 'lib/dvb/dvb.cpp')
| -rw-r--r-- | lib/dvb/dvb.cpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/lib/dvb/dvb.cpp b/lib/dvb/dvb.cpp index 3c2c22af..d30be29c 100644 --- a/lib/dvb/dvb.cpp +++ b/lib/dvb/dvb.cpp @@ -438,14 +438,24 @@ RESULT eDVBResourceManager::allocateDemux(eDVBRegisteredFrontend *fe, ePtr<eDVBA if (!unused) unused = i; } - else if (!fe || (i->m_adapter == fe->m_adapter && - i->m_demux->getSource() == fe->m_frontend->getDVBID())) + else { - demux = new eDVBAllocatedDemux(i); - return 0; + if (fe) + { + if (i->m_adapter == fe->m_adapter && + i->m_demux->getSource() == fe->m_frontend->getDVBID()) + { + demux = new eDVBAllocatedDemux(i); + return 0; + } + } + else if (i->m_demux->getSource() == -1) // PVR + { + demux = new eDVBAllocatedDemux(i); + return 0; + } } } - } else if (m_demux.size() < 5) // ATI { |
