Better method for setting bufferTime.
This commit is contained in:
parent
f458e4d836
commit
8d4639c8c6
1 changed files with 23 additions and 10 deletions
|
@ -319,24 +319,37 @@ namespace Mist {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool inputBuffer::setup() {
|
bool inputBuffer::setup() {
|
||||||
if (!bufferTime){
|
std::string strName = config->getString("streamname");
|
||||||
bufferTime = config->getInteger("bufferTime");
|
Util::sanitizeName(strName);
|
||||||
}
|
strName = strName.substr(0,(strName.find('+')));
|
||||||
|
|
||||||
IPC::sharedPage serverCfg("!mistConfig", 4*1024*1024); ///< Contains server configuration and capabilities
|
IPC::sharedPage serverCfg("!mistConfig", 4*1024*1024); ///< Contains server configuration and capabilities
|
||||||
IPC::semaphore configLock("!mistConfLock", O_CREAT | O_RDWR, ACCESSPERMS, 1);
|
IPC::semaphore configLock("!mistConfLock", O_CREAT | O_RDWR, ACCESSPERMS, 1);
|
||||||
configLock.wait();
|
configLock.wait();
|
||||||
DTSC::Scan streamCfg = DTSC::Scan(serverCfg.mapped, serverCfg.len).getMember("streams").getMember(config->getString("streamname"));
|
DTSC::Scan streamCfg = DTSC::Scan(serverCfg.mapped, serverCfg.len).getMember("streams").getMember(strName);
|
||||||
|
long long tmpNum;
|
||||||
|
|
||||||
|
//if stream is configured and setting is present, use it, always
|
||||||
if (streamCfg && streamCfg.getMember("DVR")){
|
if (streamCfg && streamCfg.getMember("DVR")){
|
||||||
long long bufTime = streamCfg.getMember("DVR").asInt();
|
tmpNum = streamCfg.getMember("DVR").asInt();
|
||||||
if (bufferTime != bufTime){
|
}else{
|
||||||
DEBUG_MSG(DLVL_DEVEL, "Setting bufferTime from %u to new value of %lli", bufferTime, bufTime);
|
if (streamCfg){
|
||||||
bufferTime = bufTime;
|
//otherwise, if stream is configured use the default
|
||||||
|
tmpNum = config->getOption("bufferTime", true)[0u].asInt();
|
||||||
|
}else{
|
||||||
|
//if not, use the commandline argument
|
||||||
|
tmpNum = config->getOption("bufferTime").asInt();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//if the new value is different, print a message and apply it
|
||||||
|
if (bufferTime != tmpNum){
|
||||||
|
DEBUG_MSG(DLVL_DEVEL, "Setting bufferTime from %u to new value of %lli", bufferTime, tmpNum);
|
||||||
|
bufferTime = tmpNum;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
configLock.post();
|
configLock.post();
|
||||||
configLock.close();
|
configLock.close();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue