diff options
| author | ghost <andreas.monzner@multimedia-labs.de> | 2009-05-29 20:31:22 +0200 |
|---|---|---|
| committer | ghost <andreas.monzner@multimedia-labs.de> | 2009-05-29 20:31:22 +0200 |
| commit | 23876b6f15422655b8c180682b10a09302444bef (patch) | |
| tree | d5b775a35c37c445f4aa4db4de28fb9a430d5f79 /lib/dvb/dvb.cpp | |
| parent | 428e33acd1d58d08045993554b81be20b53eb5c4 (diff) | |
| download | enigma2-23876b6f15422655b8c180682b10a09302444bef.tar.gz enigma2-23876b6f15422655b8c180682b10a09302444bef.zip | |
dvb.cpp: add demux policy for dm800/500hd
Diffstat (limited to 'lib/dvb/dvb.cpp')
| -rw-r--r-- | lib/dvb/dvb.cpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/lib/dvb/dvb.cpp b/lib/dvb/dvb.cpp index 208f51d4..a7428493 100644 --- a/lib/dvb/dvb.cpp +++ b/lib/dvb/dvb.cpp @@ -429,7 +429,25 @@ RESULT eDVBResourceManager::allocateDemux(eDVBRegisteredFrontend *fe, ePtr<eDVBA ePtr<eDVBRegisteredDemux> 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 (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)) |
