diff --git a/lib/dtscmeta.cpp b/lib/dtscmeta.cpp index b9a5bccd..c3dfa4da 100644 --- a/lib/dtscmeta.cpp +++ b/lib/dtscmeta.cpp @@ -1258,7 +1258,7 @@ namespace DTSC { //update firstms firstms = keys[0].getTime(); //delete any fragments no longer fully buffered - while (fragments[0].getNumber() < keys[0].getNumber()) { + while (fragments.size() && keys.size() && fragments[0].getNumber() < keys[0].getNumber()) { fragments.pop_front(); fragInsertTime.pop_front(); //and update the missed fragment counter @@ -1658,8 +1658,8 @@ namespace DTSC { writePointer(p, "\340", 1);//Begin track object writePointer(p, "\000\011fragments\002", 12); writePointer(p, convertInt(fragments.size() * PACKED_FRAGMENT_SIZE), 4); - for (std::deque::iterator it = fragments.begin(); it != fragments.end(); it++) { - writePointer(p, it->getData(), PACKED_FRAGMENT_SIZE); + for (; firstFrag != fragments.end(); ++firstFrag) { + writePointer(p, firstFrag->getData(), PACKED_FRAGMENT_SIZE); } writePointer(p, "\000\004keys\002", 7); writePointer(p, convertInt(keys.size() * PACKED_KEY_SIZE), 4);