Change "always on" behaviour to simulate always having viewers rather than forcibly keeping inputs active
This commit is contained in:
parent
b3a0e28159
commit
e0eb624e53
3 changed files with 9 additions and 8 deletions
|
@ -1683,13 +1683,13 @@ namespace DTSC{
|
|||
trackLock.open(pageName, O_CREAT | O_RDWR, ACCESSPERMS, 1);
|
||||
if (!trackLock){
|
||||
FAIL_MSG("Could not open semaphore to add track!");
|
||||
return -1;
|
||||
return INVALID_TRACK_ID;
|
||||
}
|
||||
trackLock.wait();
|
||||
if (stream.isExit()){
|
||||
trackLock.post();
|
||||
FAIL_MSG("Not adding track: stream is shutting down");
|
||||
return -1;
|
||||
return INVALID_TRACK_ID;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -511,6 +511,11 @@ namespace SDP{
|
|||
nope = true;
|
||||
tid = myMeta->addTrack();
|
||||
|
||||
if (tid == INVALID_TRACK_ID){
|
||||
WARN_MSG("Could not add new track, skipping");
|
||||
continue;
|
||||
}
|
||||
|
||||
// Strip m=
|
||||
std::stringstream words(to.substr(2));
|
||||
std::string item;
|
||||
|
|
|
@ -761,7 +761,7 @@ namespace Mist{
|
|||
uint64_t currLastUpdate = M.getLastUpdated();
|
||||
if (currLastUpdate > activityCounter){activityCounter = currLastUpdate;}
|
||||
}else{
|
||||
if (connectedUsers && M.getValidTracks().size()){activityCounter = Util::bootSecs();}
|
||||
if ((connectedUsers || isAlwaysOn()) && M.getValidTracks().size()){activityCounter = Util::bootSecs();}
|
||||
}
|
||||
|
||||
inputServeStats();
|
||||
|
@ -813,10 +813,6 @@ namespace Mist{
|
|||
// - INPUT_TIMEOUT seconds haven't passed yet,
|
||||
// - this is a live stream and at least two of the biggest fragment haven't passed yet,
|
||||
bool ret = config->is_active && ((Util::bootSecs() - activityCounter) < INPUT_TIMEOUT);
|
||||
if (!ret && config->is_active && isAlwaysOn()){
|
||||
ret = true;
|
||||
activityCounter = Util::bootSecs();
|
||||
}
|
||||
/*LTS-START*/
|
||||
if (!ret){
|
||||
if (Triggers::shouldTrigger("STREAM_UNLOAD", config->getString("streamname"))){
|
||||
|
@ -1489,7 +1485,7 @@ namespace Mist{
|
|||
for (size_t i = 0; i < keyNum; ++i){partNo += keys.getParts(i);}
|
||||
DTSC::Parts parts(M.parts(idx));
|
||||
while (thisPacket && thisTime < stopTime){
|
||||
if (connectedUsers){activityCounter = Util::bootSecs();}
|
||||
if (connectedUsers || isAlwaysOn()){activityCounter = Util::bootSecs();}
|
||||
if (thisTime >= lastBuffered){
|
||||
if (sourceIdx != idx){
|
||||
if (encryption.find(":") != std::string::npos || M.getEncryption(idx).find(":") != std::string::npos){
|
||||
|
|
Loading…
Add table
Reference in a new issue