mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-09-03 02:41:12 +02:00
fix crypted pip (thx BP)
Origin commit data
------------------
Commit: 2b7ae96a5c
Author: TangoCash <eric@loxat.de>
Date: 2021-04-04 (Sun, 04 Apr 2021)
This commit is contained in:
@@ -224,7 +224,7 @@ bool CCamManager::SetMode(t_channel_id channel_id, enum runmode mode, bool start
|
|||||||
OpenThreads::ScopedLock<OpenThreads::Mutex> m_lock(mutex);
|
OpenThreads::ScopedLock<OpenThreads::Mutex> m_lock(mutex);
|
||||||
|
|
||||||
cammap_iterator_t it = channel_map.find(channel_id);
|
cammap_iterator_t it = channel_map.find(channel_id);
|
||||||
if(it != channel_map.end()) {
|
if (it != channel_map.end()) {
|
||||||
cam = it->second;
|
cam = it->second;
|
||||||
} else if(start) {
|
} else if(start) {
|
||||||
cam = new CCam();
|
cam = new CCam();
|
||||||
@@ -232,7 +232,7 @@ bool CCamManager::SetMode(t_channel_id channel_id, enum runmode mode, bool start
|
|||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if(channel == NULL) {
|
if (channel == NULL) {
|
||||||
printf("CCamManager: channel %" PRIx64 " not found\n", channel_id);
|
printf("CCamManager: channel %" PRIx64 " not found\n", channel_id);
|
||||||
StopCam(channel_id, cam);
|
StopCam(channel_id, cam);
|
||||||
return false;
|
return false;
|
||||||
@@ -243,7 +243,7 @@ bool CCamManager::SetMode(t_channel_id channel_id, enum runmode mode, bool start
|
|||||||
#if ! HAVE_CST_HARDWARE && ! HAVE_GENERIC_HARDWARE
|
#if ! HAVE_CST_HARDWARE && ! HAVE_GENERIC_HARDWARE
|
||||||
CFrontend *frontend = CFEManager::getInstance()->getFrontend(channel);
|
CFrontend *frontend = CFEManager::getInstance()->getFrontend(channel);
|
||||||
#endif
|
#endif
|
||||||
switch(mode) {
|
switch (mode) {
|
||||||
case PLAY:
|
case PLAY:
|
||||||
#if HAVE_CST_HARDWARE
|
#if HAVE_CST_HARDWARE
|
||||||
source = DEMUX_SOURCE_0;
|
source = DEMUX_SOURCE_0;
|
||||||
@@ -259,9 +259,14 @@ bool CCamManager::SetMode(t_channel_id channel_id, enum runmode mode, bool start
|
|||||||
case RECORD:
|
case RECORD:
|
||||||
#if HAVE_SPARK_HARDWARE || HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
#if HAVE_SPARK_HARDWARE || HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||||
// INFO("RECORD/STREAM(%d): fe_num %d rec_dmx %d", mode, frontend ? frontend->getNumber() : -1, channel->getRecordDemux());
|
// INFO("RECORD/STREAM(%d): fe_num %d rec_dmx %d", mode, frontend ? frontend->getNumber() : -1, channel->getRecordDemux());
|
||||||
if(frontend)
|
#ifdef DYNAMIC_DEMUX
|
||||||
|
source = channel->getRecordDemux();
|
||||||
|
demux = channel->getRecordDemux();
|
||||||
|
#else
|
||||||
|
if (frontend)
|
||||||
source = frontend->getNumber();
|
source = frontend->getNumber();
|
||||||
demux = source;
|
demux = source;
|
||||||
|
#endif // DYNAMIC_DEMUX
|
||||||
#else
|
#else
|
||||||
source = channel->getRecordDemux();
|
source = channel->getRecordDemux();
|
||||||
demux = channel->getRecordDemux();
|
demux = channel->getRecordDemux();
|
||||||
@@ -270,9 +275,17 @@ bool CCamManager::SetMode(t_channel_id channel_id, enum runmode mode, bool start
|
|||||||
break;
|
break;
|
||||||
case PIP:
|
case PIP:
|
||||||
#if HAVE_SPARK_HARDWARE || HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
#if HAVE_SPARK_HARDWARE || HAVE_ARM_HARDWARE || HAVE_MIPS_HARDWARE
|
||||||
if(frontend)
|
#ifdef DYNAMIC_DEMUX
|
||||||
source = frontend->getNumber();
|
source = channel->getPipDemux();
|
||||||
|
demux = channel->getPipDemux();
|
||||||
|
#else
|
||||||
|
if (frontend)
|
||||||
|
if (frontend->sameTsidOnid(channel->getTransponderId()))
|
||||||
|
source = frontend->getNumber();
|
||||||
|
else
|
||||||
|
source = frontend->getNumber() + 1;
|
||||||
demux = source;
|
demux = source;
|
||||||
|
#endif // DYNAMIC_DEMUX
|
||||||
#else
|
#else
|
||||||
source = channel->getRecordDemux();
|
source = channel->getRecordDemux();
|
||||||
demux = channel->getPipDemux();
|
demux = channel->getPipDemux();
|
||||||
@@ -282,18 +295,19 @@ bool CCamManager::SetMode(t_channel_id channel_id, enum runmode mode, bool start
|
|||||||
}
|
}
|
||||||
|
|
||||||
oldmask = cam->getCaMask();
|
oldmask = cam->getCaMask();
|
||||||
if(force_update)
|
if (force_update)
|
||||||
newmask = oldmask;
|
newmask = oldmask;
|
||||||
else
|
else
|
||||||
newmask = cam->makeMask(demux, start);
|
newmask = cam->makeMask(demux, start);
|
||||||
|
|
||||||
if(cam->getSource() > 0)
|
if (cam->getSource() > 0)
|
||||||
source = cam->getSource();
|
source = cam->getSource();
|
||||||
|
|
||||||
INFO("channel %" PRIx64 " [%s] mode %d %s src %d mask %d -> %d update %d rmode %d mp %d", channel_id, channel->getName().c_str(),
|
INFO("channel %" PRIx64 " [%s] mode %d %s src %d mask %d -> %d update %d rmode %d mp %d", channel_id, channel->getName().c_str(),
|
||||||
mode, start ? "START" : "STOP", source, oldmask, newmask, force_update, rmode, mp);
|
mode, start ? "START" : "STOP", source, oldmask, newmask, force_update, rmode, mp);
|
||||||
|
|
||||||
//INFO("source %d old mask %d new mask %d force update %s", source, oldmask, newmask, force_update ? "yes" : "no");
|
//INFO("source %d old mask %d new mask %d force update %s", source, oldmask, newmask, force_update ? "yes" : "no");
|
||||||
|
|
||||||
#if ! HAVE_CST_HARDWARE
|
#if ! HAVE_CST_HARDWARE
|
||||||
/* stop decoding if record stops unless it's the live channel. TODO:PIP? */
|
/* stop decoding if record stops unless it's the live channel. TODO:PIP? */
|
||||||
/* all the modes: RECORD, STREAM, PIP except PLAY now stopping here !! */
|
/* all the modes: RECORD, STREAM, PIP except PLAY now stopping here !! */
|
||||||
@@ -306,7 +320,7 @@ bool CCamManager::SetMode(t_channel_id channel_id, enum runmode mode, bool start
|
|||||||
}
|
}
|
||||||
/* clean up channel_map with stopped record/stream/pip services NOT live-tv */
|
/* clean up channel_map with stopped record/stream/pip services NOT live-tv */
|
||||||
it = channel_map.find(channel_id);
|
it = channel_map.find(channel_id);
|
||||||
if(it != channel_map.end() && newmask != 0 && it->second != cam)
|
if (it != channel_map.end() && newmask != 0 && it->second != cam)
|
||||||
{
|
{
|
||||||
delete it->second;
|
delete it->second;
|
||||||
channel_map.erase(channel_id);
|
channel_map.erase(channel_id);
|
||||||
|
Reference in New Issue
Block a user