Track mapping and deletion fixes
This commit is contained in:
parent
c1400fec42
commit
15801aa7b7
3 changed files with 44 additions and 40 deletions
|
@ -398,10 +398,10 @@ namespace Mist{
|
|||
if (!nProxy.metaPages[trackId].mapped){return -1;}
|
||||
int len = nProxy.metaPages[trackId].len / 8;
|
||||
for (int i = 0; i < len; i++){
|
||||
int * tmpOffset = (int *)(nProxy.metaPages[trackId].mapped + (i * 8));
|
||||
long amountKey = ntohl(tmpOffset[1]);
|
||||
char * tmpOffset = nProxy.metaPages[trackId].mapped + (i * 8);
|
||||
long amountKey = Bit::btohl(tmpOffset+4);
|
||||
if (amountKey == 0){continue;}
|
||||
long tmpKey = ntohl(tmpOffset[0]);
|
||||
long tmpKey = Bit::btohl(tmpOffset);
|
||||
if (tmpKey <= keyNum && ((tmpKey?tmpKey:1) + amountKey) > keyNum){
|
||||
return tmpKey;
|
||||
}
|
||||
|
@ -420,10 +420,10 @@ namespace Mist{
|
|||
int len = nProxy.metaPages[trackId].len / 8;
|
||||
int highest = -1;
|
||||
for (int i = 0; i < len; i++){
|
||||
int * tmpOffset = (int *)(nProxy.metaPages[trackId].mapped + (i * 8));
|
||||
long amountKey = ntohl(tmpOffset[1]);
|
||||
char * tmpOffset = nProxy.metaPages[trackId].mapped + (i * 8);
|
||||
long amountKey = Bit::btohl(tmpOffset+4);
|
||||
if (amountKey == 0){continue;}
|
||||
long tmpKey = ntohl(tmpOffset[0]);
|
||||
long tmpKey = Bit::btohl(tmpOffset);
|
||||
if (tmpKey > highest){highest = tmpKey;}
|
||||
}
|
||||
return highest;
|
||||
|
@ -856,11 +856,15 @@ namespace Mist{
|
|||
return false;
|
||||
}
|
||||
|
||||
DONTEVEN_MSG("Loading track %u (next=%lu), %llu ms", nxt.tid, nxtKeyNum[nxt.tid], nxt.time);
|
||||
DONTEVEN_MSG("Loading track %u (next=%lu), %llu ms, %llub", nxt.tid, nxtKeyNum[nxt.tid], nxt.time, nxt.offset);
|
||||
|
||||
//if we're going to read past the end of the data page, load the next page
|
||||
//this only happens for VoD
|
||||
if (nxt.offset >= nProxy.curPage[nxt.tid].len){
|
||||
if (myMeta.vod && nxt.time >= myMeta.tracks[nxt.tid].lastms){
|
||||
dropTrack(nxt.tid, "end of VoD track reached", false);
|
||||
return false;
|
||||
}
|
||||
if (thisPacket){
|
||||
nxtKeyNum[nxt.tid] = getKeyForTime(nxt.tid, thisPacket.getTime());
|
||||
}
|
||||
|
@ -876,7 +880,7 @@ namespace Mist{
|
|||
buffer.insert(nxt);
|
||||
}
|
||||
}else{
|
||||
dropTrack(nxt.tid, "page load failure", true);
|
||||
dropTrack(nxt.tid, "VoD page load failure");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -931,7 +935,7 @@ namespace Mist{
|
|||
MEDIUM_MSG("Next page for track %u starts at %llu.", nxt.tid, nxt.time);
|
||||
}
|
||||
}else{
|
||||
dropTrack(nxt.tid, "page load failure");
|
||||
dropTrack(nxt.tid, "next page load failure");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue