aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb/dvb.cpp
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2009-05-29 20:31:22 +0200
committerghost <andreas.monzner@multimedia-labs.de>2009-05-29 20:31:22 +0200
commit23876b6f15422655b8c180682b10a09302444bef (patch)
treed5b775a35c37c445f4aa4db4de28fb9a430d5f79 /lib/dvb/dvb.cpp
parent428e33acd1d58d08045993554b81be20b53eb5c4 (diff)
downloadenigma2-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.cpp20
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))