Fix the case when a keyframe is not the first data pushed.

This commit is contained in:
Thulinma 2015-11-12 11:11:32 +01:00
parent b28a619fc6
commit e20761e8c7

View file

@ -60,7 +60,7 @@ namespace Mist {
//If this is not a valid page number on this track, stop buffering this page. //If this is not a valid page number on this track, stop buffering this page.
if (!pagesByTrack[tid].count(pageNumber)){ if (!pagesByTrack[tid].count(pageNumber)){
INFO_MSG("Aborting page buffer start: %lu is not a valid page number on track %lu~>%lu.", pageNumber, tid, mapTid); WARN_MSG("Aborting page buffer start: %lu is not a valid page number on track %lu~>%lu.", pageNumber, tid, mapTid);
std::stringstream test; std::stringstream test;
for (std::map<unsigned long, DTSCPageData>::iterator it = pagesByTrack[tid].begin(); it != pagesByTrack[tid].end(); it++){ for (std::map<unsigned long, DTSCPageData>::iterator it = pagesByTrack[tid].begin(); it != pagesByTrack[tid].end(); it++){
test << it->first << " "; test << it->first << " ";
@ -398,7 +398,7 @@ namespace Mist {
} }
//Determine if we need to open the next page //Determine if we need to open the next page
int nextPageNum = -1; int nextPageNum = -1;
if (isKeyframe) { if (isKeyframe || !pagesByTrack.count(tid) || pagesByTrack[tid].size() == 0) {
//If there is no page, create it //If there is no page, create it
if (!pagesByTrack.count(tid) || pagesByTrack[tid].size() == 0) { if (!pagesByTrack.count(tid) || pagesByTrack[tid].size() == 0) {
nextPageNum = 1; nextPageNum = 1;