Speeding up DTSC Reading without header

This commit is contained in:
Erik Zandvliet 2013-06-27 10:38:06 +02:00
parent 149fe75b1c
commit d6b503b267
2 changed files with 4 additions and 18 deletions

View file

@ -39,17 +39,9 @@ namespace Analysers {
long long unsigned int bfrm_max = 0; long long unsigned int bfrm_max = 0;
long long unsigned int bps = 0; long long unsigned int bps = 0;
std::set<int> selector;
for (JSON::ObjIter trackIt = meta["tracks"].ObjBegin(); trackIt != meta["tracks"].ObjEnd(); trackIt++){
selector.insert(trackIt->second["trackid"].asInt());
}
F.selectTracks(selector);
F.getMeta().null(); F.getMeta().null();
F.seek_time(0); F.parseNext();
F.seekNext();
while (F.getJSON()){ while (F.getJSON()){
nowpack = F.getJSON()["time"].asInt(); nowpack = F.getJSON()["time"].asInt();
std::cout << F.getJSON().toPrettyString() << std::endl; std::cout << F.getJSON().toPrettyString() << std::endl;
@ -104,7 +96,7 @@ namespace Analysers {
totalvideo += F.getJSON()["data"].asString().size(); totalvideo += F.getJSON()["data"].asString().size();
lastvideo = nowpack; lastvideo = nowpack;
} }
F.seekNext(); F.parseNext();
} }
std::cout << std::endl << "Summary:" << std::endl; std::cout << std::endl << "Summary:" << std::endl;

View file

@ -62,10 +62,7 @@ namespace Converters {
std::string currentID; std::string currentID;
int nextFreeID = 0; int nextFreeID = 0;
std::set<int> tmp;
for (JSON::ObjIter it = meta["tracks"].ObjBegin(); it != meta["tracks"].ObjEnd(); it++){ for (JSON::ObjIter it = meta["tracks"].ObjBegin(); it != meta["tracks"].ObjEnd(); it++){
tmp.insert(it->second["trackid"].asInt());
trackIDs.insert(std::pair<std::string,int>(it->first,it->second["trackid"].asInt())); trackIDs.insert(std::pair<std::string,int>(it->first,it->second["trackid"].asInt()));
trackData[it->first].type = it->second["type"].asString(); trackData[it->first].type = it->second["type"].asString();
trackData[it->first].trackID = it->second["trackid"].asInt(); trackData[it->first].trackID = it->second["trackid"].asInt();
@ -83,10 +80,7 @@ namespace Converters {
it->second.removeMember("keys"); it->second.removeMember("keys");
} }
F.selectTracks(tmp); F.parseNext();
F.seek_time(0);
F.seekNext();
while ( !F.getJSON().isNull()){ while ( !F.getJSON().isNull()){
currentID = ""; currentID = "";
if (F.getJSON()["trackid"].asInt() == 0){ if (F.getJSON()["trackid"].asInt() == 0){
@ -113,7 +107,7 @@ namespace Converters {
trackData[currentID].type = F.getJSON()["datatype"].asString(); trackData[currentID].type = F.getJSON()["datatype"].asString();
}else{ }else{
fprintf(stderr, "Found an unknown package with packetid 0 and datatype %s\n",F.getJSON()["datatype"].asString().c_str()); fprintf(stderr, "Found an unknown package with packetid 0 and datatype %s\n",F.getJSON()["datatype"].asString().c_str());
F.seekNext(); F.parseNext();
continue; continue;
} }
} }