Improved memory usage for VoD files. Temporarily breaks compatibility with Smooth and MP4.
This commit is contained in:
parent
21b25a12ea
commit
6e9f797847
2 changed files with 21 additions and 12 deletions
|
@ -82,8 +82,15 @@ int main(int argc, char** argv){
|
|||
|
||||
DTSC::File source = DTSC::File(conf.getString("filename"));
|
||||
JSON::Value meta = source.getMeta();
|
||||
std::string tmp = meta.toNetPacked();
|
||||
for (JSON::ObjIter oIt = meta["tracks"].ObjBegin(); oIt != meta["tracks"].ObjEnd(); oIt++){
|
||||
for (JSON::ArrIter aIt = oIt->second["keys"].ArrBegin(); aIt != oIt->second["keys"].ArrEnd(); aIt++){
|
||||
(*aIt).removeMember("parts");
|
||||
}
|
||||
}
|
||||
|
||||
//send the header
|
||||
meta.netPrepare();
|
||||
in_out.SendNow(meta.toNetPacked());
|
||||
|
||||
if ( !(meta.isMember("keytime") && meta.isMember("keybpos") && meta.isMember("keynum") && meta.isMember("keylen") && meta.isMember("frags"))
|
||||
|
@ -98,6 +105,8 @@ int main(int argc, char** argv){
|
|||
return 1;
|
||||
}
|
||||
|
||||
std::cerr << meta.toNetPacked().size() << std::endl;
|
||||
|
||||
JSON::Value pausemark;
|
||||
pausemark["datatype"] = "pause_marker";
|
||||
pausemark["time"] = (long long int)0;
|
||||
|
|
|
@ -141,9 +141,9 @@ namespace Converters {
|
|||
meta["tracks"][currentID]["keys"][newNum - 1]["len"] = F.getJSON()["time"].asInt() - meta["tracks"][currentID]["keys"][newNum - 1]["time"].asInt();
|
||||
meta["tracks"][currentID]["keys"][newNum - 1]["size"] = trackData[currentID].totalSize;
|
||||
trackData[currentID].totalSize = 0;
|
||||
for (int i = 0; i < trackData[currentID].parts.size(); i++){
|
||||
meta["tracks"][currentID]["keys"][newNum - 1]["parts"].append(trackData[currentID].parts[i]);
|
||||
}
|
||||
std::string encodeVec = JSON::encodeVector( trackData[currentID].parts );
|
||||
meta["tracks"][currentID]["keys"][newNum - 1]["parts"] = encodeVec;
|
||||
meta["tracks"][currentID]["keys"][newNum - 1]["partsize"] = (long long int)trackData[currentID].parts.size();
|
||||
trackData[currentID].parts.clear();
|
||||
}
|
||||
}
|
||||
|
@ -158,9 +158,9 @@ namespace Converters {
|
|||
meta["tracks"][currentID]["keys"][newNum - 1]["len"] = F.getJSON()["time"].asInt() - meta["tracks"][currentID]["keys"][newNum - 1]["time"].asInt();
|
||||
meta["tracks"][currentID]["keys"][newNum - 1]["size"] = trackData[currentID].totalSize;
|
||||
trackData[currentID].totalSize = 0;
|
||||
for (int i = 0; i < trackData[currentID].parts.size(); i++){
|
||||
meta["tracks"][currentID]["keys"][newNum - 1]["parts"].append(trackData[currentID].parts[i]);
|
||||
}
|
||||
std::string encodeVec = JSON::encodeVector( trackData[currentID].parts );
|
||||
meta["tracks"][currentID]["keys"][newNum - 1]["parts"] = encodeVec;
|
||||
meta["tracks"][currentID]["keys"][newNum - 1]["partsize"] = (long long int)trackData[currentID].parts.size();
|
||||
trackData[currentID].parts.clear();
|
||||
}
|
||||
}
|
||||
|
@ -201,15 +201,15 @@ namespace Converters {
|
|||
meta["tracks"][it->first]["keys"][tmp - 1]["len"] = it->second.lastms;
|
||||
}
|
||||
meta["tracks"][it->first]["keys"][tmp - 1]["size"] = it->second.totalSize;
|
||||
for (int i = 0; i < trackData[it->first].parts.size(); i++){
|
||||
meta["tracks"][it->first]["keys"][tmp - 1]["parts"].append(it->second.parts[i]);
|
||||
}
|
||||
std::string encodeVec = JSON::encodeVector( trackData[currentID].parts );
|
||||
meta["tracks"][currentID]["keys"][tmp - 1]["parts"] = encodeVec;
|
||||
meta["tracks"][currentID]["keys"][tmp - 1]["partsize"] = (long long int)trackData[currentID].parts.size();
|
||||
}else{
|
||||
meta["tracks"][it->first]["keys"][tmp]["len"] = it->second.lastms;
|
||||
meta["tracks"][it->first]["keys"][tmp]["size"] = it->second.totalSize;
|
||||
for (int i = 0; i < trackData[it->first].parts.size(); i++){
|
||||
meta["tracks"][it->first]["keys"][tmp]["parts"].append(it->second.parts[i]);
|
||||
}
|
||||
std::string encodeVec = JSON::encodeVector( trackData[currentID].parts );
|
||||
meta["tracks"][currentID]["keys"][tmp - 1]["parts"] = encodeVec;
|
||||
meta["tracks"][currentID]["keys"][tmp - 1]["partsize"] = (long long int)trackData[currentID].parts.size();
|
||||
}
|
||||
//calculate fragments
|
||||
meta["tracks"][it->first]["frags"].null();
|
||||
|
|
Loading…
Add table
Reference in a new issue