diff --git a/src/buffer.cpp b/src/buffer.cpp index fca42223..24284e48 100644 --- a/src/buffer.cpp +++ b/src/buffer.cpp @@ -260,7 +260,6 @@ namespace Buffer { } while (buffer_running && SS.connected() && conf.is_active){ - fprintf(stderr, "Still running\n"); //check for new connections, accept them if there are any //starts a thread for every accepted connection incoming = SS.accept(true); diff --git a/src/conn_http_dynamic.cpp b/src/conn_http_dynamic.cpp index 48461629..7acb7da7 100644 --- a/src/conn_http_dynamic.cpp +++ b/src/conn_http_dynamic.cpp @@ -30,21 +30,21 @@ namespace Connector_HTTP { std::string empty; MP4::ASRT asrt; - if (starttime == 0 && !metadata.isMember("keynum")){ + if (starttime == 0 && metadata.isMember("vod")){ asrt.setUpdate(false); }else{ asrt.setUpdate(true); } asrt.setVersion(1); //asrt.setQualityEntry(empty, 0); - if (metadata.isMember("keynum")){ + if (metadata.isMember("live")){ asrt.setSegmentRun(1, 4294967295, 0); }else{ asrt.setSegmentRun(1, metadata["keytime"].size(), 0); } MP4::AFRT afrt; - if (starttime == 0 && !metadata.isMember("keynum")){ + if (starttime == 0 && metadata.isMember("vod")){ afrt.setUpdate(false); }else{ afrt.setUpdate(true); @@ -53,13 +53,12 @@ namespace Connector_HTTP { afrt.setTimeScale(1000); //afrt.setQualityEntry(empty, 0); MP4::afrt_runtable afrtrun; - if (metadata.isMember("keynum")){ - unsigned long long int firstAvail = metadata["keynum"].size() / 2; - for (int i = firstAvail; i < metadata["keynum"].size(); i++){ + if (metadata.isMember("live")){ + for (int i = 0; i < metadata["keynum"].size(); i++){ afrtrun.firstFragment = metadata["keynum"][i].asInt(); afrtrun.firstTimestamp = metadata["keytime"][i].asInt(); afrtrun.duration = metadata["keylen"][i].asInt(); - afrt.setFragmentRun(afrtrun, i - firstAvail); + afrt.setFragmentRun(afrtrun, i); } }else{ for (int i = 0; i < metadata["keytime"].size(); i++){ @@ -80,7 +79,7 @@ namespace Connector_HTTP { MP4::ABST abst; abst.setVersion(1); - if (metadata.isMember("keynum")){ + if (metadata.isMember("live")){ abst.setBootstrapinfoVersion(metadata["keynum"][metadata["keynum"].size() - 2].asInt()); }else{ abst.setBootstrapinfoVersion(1); @@ -92,7 +91,7 @@ namespace Connector_HTTP { abst.setUpdate(true); } abst.setTimeScale(1000); - if (metadata.isMember("length") && metadata["length"].asInt() > 0){ + if (metadata.isMember("vod")){ abst.setLive(false); if (metadata["lastms"].asInt()){ abst.setCurrentMediaTime(metadata["lastms"].asInt()); @@ -121,7 +120,7 @@ namespace Connector_HTTP { /// Returns a F4M-format manifest file std::string BuildManifest(std::string & MovieId, JSON::Value & metadata){ std::string Result; - if ( !metadata.isMember("keynum")){ + if (metadata.isMember("vod")){ Result = "\n" "\n" @@ -142,6 +141,7 @@ namespace Connector_HTTP { "\n" "\n" "" + MovieId + "\n" + "" "video/mp4\n" "live\n" "streaming\n"