From 05c144fb9ef468d19386b99f241b902d0ef9fa2c Mon Sep 17 00:00:00 2001 From: Thulinma Date: Mon, 8 Jan 2018 00:08:14 +0100 Subject: [PATCH] Implemented missing DTSC::Track::getFrag function --- lib/dtscmeta.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/dtscmeta.cpp b/lib/dtscmeta.cpp index 5f45278a..a1833849 100644 --- a/lib/dtscmeta.cpp +++ b/lib/dtscmeta.cpp @@ -1352,6 +1352,20 @@ namespace DTSC { 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::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. unsigned int Track::timeToKeynum(unsigned int timestamp){ unsigned int result = 0;