Optimized performance of DTSC::File::atKeyFrame

This commit is contained in:
Thulinma 2013-09-30 13:24:28 +02:00
parent 5c9574d7eb
commit 31f4509e26

View file

@ -1011,20 +1011,16 @@ bool DTSC::File::atKeyframe(){
if (getJSON().isMember("keyframe")){ if (getJSON().isMember("keyframe")){
return true; return true;
} }
bool inHeader = false; long long int bTime = jsonbuffer["time"].asInt();
for (std::set<int>::iterator selectIt = selectedTracks.begin(); selectIt != selectedTracks.end(); selectIt++){ for (std::set<int>::iterator selectIt = selectedTracks.begin(); selectIt != selectedTracks.end(); selectIt++){
for (JSON::ObjIter oIt = metadata["tracks"].ObjBegin(); oIt != metadata["tracks"].ObjEnd(); oIt++){ JSON::Value & keys = getTrackById((*selectIt))["keys"];
if (oIt->second["trackid"].asInt() == (*selectIt)){ for (JSON::ArrIter aIt = keys.ArrBegin(); aIt != keys.ArrEnd(); aIt++){
for (JSON::ArrIter aIt = oIt->second["keys"].ArrBegin(); aIt != oIt->second["keys"].ArrEnd(); aIt++){ if ((*aIt)["time"].asInt() == bTime){
if ((*aIt)["time"].asInt() == jsonbuffer["time"].asInt()){ return true;
inHeader = true;
break;
}
}
} }
} }
} }
return inHeader; return false;
} }
void DTSC::File::selectTracks(std::set<int> & tracks){ void DTSC::File::selectTracks(std::set<int> & tracks){