Fixed eternal looping at end of some files.

This commit is contained in:
Thulinma 2014-04-18 16:24:47 +02:00
parent af5ad26668
commit 9bdb6c17d6

View file

@ -399,8 +399,12 @@ namespace Mist {
loadPageForKey(nxt.tid, ++nxtKeyNum[nxt.tid]); loadPageForKey(nxt.tid, ++nxtKeyNum[nxt.tid]);
nxt.offset = 0; nxt.offset = 0;
if (curPages.count(nxt.tid) && curPages[nxt.tid].mapped){ if (curPages.count(nxt.tid) && curPages[nxt.tid].mapped){
nxt.time = getDTSCTime(curPages[nxt.tid].mapped, nxt.offset); if (getDTSCTime(curPages[nxt.tid].mapped, nxt.offset) < nxt.time){
buffer.insert(nxt); DEBUG_MSG(DLVL_DEVEL, "Time going backwards in track %u - dropping track.", nxt.tid);
}else{
nxt.time = getDTSCTime(curPages[nxt.tid].mapped, nxt.offset);
buffer.insert(nxt);
}
prepareNext(); prepareNext();
return; return;
} }
@ -420,14 +424,18 @@ namespace Mist {
prepareNext(); prepareNext();
return; return;
} }
Util::sleep(500); if (myMeta.live){
updateMeta(); Util::sleep(500);
if (myMeta && ++emptyCount < 20){ updateMeta();
if (!seek(nxt.tid, currentPacket.getTime(), true)){ if (myMeta && ++emptyCount < 20){
buffer.insert(nxt); if (!seek(nxt.tid, currentPacket.getTime(), true)){
buffer.insert(nxt);
}
}else{
DEBUG_MSG(DLVL_DEVEL, "Empty packet on track %u - could not reload, dropping track.", nxt.tid);
} }
}else{ }else{
DEBUG_MSG(DLVL_DEVEL, "Empty packet on track %u - could not reload, dropping track.", nxt.tid); DEBUG_MSG(DLVL_DEVEL, "Empty packet on track %u - dropping track.", nxt.tid);
} }
prepareNext(); prepareNext();
return; return;