Implemented missing DTSC::Track::getFrag function

This commit is contained in:
Thulinma 2018-01-08 00:08:14 +01:00
parent 69e01d7e1f
commit 05c144fb9e

View file

@ -1352,6 +1352,20 @@ namespace DTSC {
return keys[keyNum - keys[0].getNumber()]; return keys[keyNum - keys[0].getNumber()];
} }
///\brief Returns a fragment given its number, or an empty fragment if the number is out of bounds
Fragment & Track::getFrag(unsigned int fragNum) {
static Fragment empty;
if (!fragments.size() || fragNum < fragments[0].getNumber() || fragNum > fragments.rbegin()->getNumber()) {
return empty;
}
for (std::deque<Fragment>::iterator it = fragments.begin(); it != fragments.end(); ++it){
if (fragNum >= it->getNumber() && fragNum <= it->getNumber() + it->getLength()){
return *it;
}
}
return empty;
}
/// Returns the number of the key containing timestamp, or last key if nowhere. /// Returns the number of the key containing timestamp, or last key if nowhere.
unsigned int Track::timeToKeynum(unsigned int timestamp){ unsigned int Track::timeToKeynum(unsigned int timestamp){
unsigned int result = 0; unsigned int result = 0;