Skip to content

Commit

Permalink
CA: Use descrambling demux when we descramble -> allocate demux from …
Browse files Browse the repository at this point in the history
…start.

This solves an issue for services that are recognised as "pvr"
(fe == nullptr) and need to have a descrambling demux but don't get
one. At this point enigma assumes recordings and streams are always
descrambled (which is obviously not the case (anymore)).

In practice this was only an issue on a very limited set of receivers
where some of the demuxers are non-descrambling.

(cherry picked from commit 0bfbb1e)
Signed-off-by: Erik Slagter <erik@openpli.org>
  • Loading branch information
athoik authored and eriksl committed Nov 8, 2015
1 parent 1cdfec3 commit 4c12411
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 2 deletions.
3 changes: 2 additions & 1 deletion lib/dvb/dvb.cpp
Expand Up @@ -943,8 +943,9 @@ RESULT eDVBResourceManager::allocateDemux(eDVBRegisteredFrontend *fe, ePtr<eDVBA
iDVBAdapter *adapter = fe ? fe->m_adapter : m_adapter.begin(); /* look for a demux on the same adapter as the frontend, or the first adapter for dvr playback */
int source = fe ? fe->m_frontend->getDVBID() : -1;
cap |= capHoldDecodeReference; // this is checked in eDVBChannel::getDemux
if (!fe)
if (!fe && !(cap & iDVBChannel::capDecode))
{
eDebug("[eDVBResourceManager] pvr playback, start with last demux");
/*
* For pvr playback, start with the last demux.
* On some hardware, we have less ca devices than demuxes,
Expand Down
2 changes: 1 addition & 1 deletion lib/dvb/pmt.cpp
Expand Up @@ -773,7 +773,7 @@ int eDVBServicePMTHandler::tuneExt(eServiceReferenceDVB &ref, int use_decode_dem
{
RESULT res=0;
m_reference = ref;
m_use_decode_demux = use_decode_demux;
m_use_decode_demux = (use_decode_demux || descramble);
m_no_pat_entry_delay->stop();
m_service_type = type;

Expand Down

0 comments on commit 4c12411

Please sign in to comment.