Added optimality checks for live streams, equal to VoD optimality checks.
This commit is contained in:
parent
9eb65208db
commit
4c3488564a
1 changed files with 23 additions and 0 deletions
|
@ -165,6 +165,29 @@ namespace Controller {
|
||||||
jit->second["lastms"] = jit->second["meta"]["lastms"];
|
jit->second["lastms"] = jit->second["meta"]["lastms"];
|
||||||
jit->second["last_active"] = currTime;
|
jit->second["last_active"] = currTime;
|
||||||
}
|
}
|
||||||
|
//check H264 tracks for optimality
|
||||||
|
if (jit->second.isMember("meta") && jit->second["meta"].isMember("tracks")){
|
||||||
|
for (JSON::ObjIter trIt = jit->second["meta"]["tracks"].ObjBegin(); trIt != jit->second["meta"]["tracks"].ObjEnd(); trIt++){
|
||||||
|
if (trIt->second["codec"] == "H264"){
|
||||||
|
if (trIt->second.isMember("init")){
|
||||||
|
if (trIt->second["init"].asString().size() < 4){
|
||||||
|
Log("WARN", "Live stream "+jit->first+" does not contain H264 init data that MistServer can interpret.");
|
||||||
|
jit->second["error"] = "Invalid?";
|
||||||
|
}else{
|
||||||
|
if (trIt->second["init"].asString().c_str()[1] != 0x42){
|
||||||
|
Log("WARN", "Live stream "+jit->first+" is not H264 Baseline - convert to baseline profile for best compatibility.");
|
||||||
|
jit->second["error"] = "Not optimal (details in log)";
|
||||||
|
}else{
|
||||||
|
if (trIt->second["init"].asString().c_str()[3] > 30){
|
||||||
|
Log("WARN", "Live stream "+jit->first+" is higher than H264 level 3.0 - convert to a level <= 3.0 for best compatibility.");
|
||||||
|
jit->second["error"] = "Not optimal (details in log)";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
// mark stream as offline if no activity for 5 seconds
|
// mark stream as offline if no activity for 5 seconds
|
||||||
if (jit->second.isMember("last_active") && jit->second["last_active"].asInt() < currTime - 5){
|
if (jit->second.isMember("last_active") && jit->second["last_active"].asInt() < currTime - 5){
|
||||||
jit->second["online"] = 0;
|
jit->second["online"] = 0;
|
||||||
|
|
Loading…
Add table
Reference in a new issue