Optimized performance of DTSC::File::atKeyFrame
This commit is contained in:
parent
5c9574d7eb
commit
31f4509e26
1 changed files with 6 additions and 10 deletions
16
lib/dtsc.cpp
16
lib/dtsc.cpp
|
@ -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 false;
|
||||||
}
|
|
||||||
return inHeader;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DTSC::File::selectTracks(std::set<int> & tracks){
|
void DTSC::File::selectTracks(std::set<int> & tracks){
|
||||||
|
|
Loading…
Add table
Reference in a new issue