Indentation fix + last page buffer fix
This commit is contained in:
parent
84798ffaba
commit
17a93fe927
1 changed files with 64 additions and 59 deletions
|
@ -233,67 +233,72 @@ namespace Mist {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
selectedTracks.clear();
|
selectedTracks.clear();
|
||||||
std::stringstream trackSpec;
|
std::stringstream trackSpec;
|
||||||
for (std::map<int, DTSC::Track>::iterator it = myMeta.tracks.begin(); it != myMeta.tracks.end(); it++){
|
for (std::map<int, DTSC::Track>::iterator it = myMeta.tracks.begin(); it != myMeta.tracks.end(); it++){
|
||||||
DEBUG_MSG(DLVL_VERYHIGH, "Track %d encountered", it->first);
|
DEBUG_MSG(DLVL_VERYHIGH, "Track %d encountered", it->first);
|
||||||
if (trackSpec.str() != ""){
|
if (trackSpec.str() != ""){
|
||||||
trackSpec << " ";
|
trackSpec << " ";
|
||||||
}
|
}
|
||||||
trackSpec << it->first;
|
trackSpec << it->first;
|
||||||
DEBUG_MSG(DLVL_VERYHIGH, "Trackspec now %s", trackSpec.str().c_str());
|
DEBUG_MSG(DLVL_VERYHIGH, "Trackspec now %s", trackSpec.str().c_str());
|
||||||
for (std::deque<DTSC::Key>::iterator it2 = it->second.keys.begin(); it2 != it->second.keys.end(); it2++){
|
for (std::deque<DTSC::Key>::iterator it2 = it->second.keys.begin(); it2 != it->second.keys.end(); it2++){
|
||||||
keyTimes[it->first].insert(it2->getTime());
|
keyTimes[it->first].insert(it2->getTime());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
trackSelect(trackSpec.str());
|
trackSelect(trackSpec.str());
|
||||||
|
|
||||||
std::map<int, DTSCPageData> curData;
|
std::map<int, DTSCPageData> curData;
|
||||||
std::map<int, booking> bookKeeping;
|
std::map<int, booking> bookKeeping;
|
||||||
|
|
||||||
seek(0);
|
seek(0);
|
||||||
getNext();
|
getNext();
|
||||||
|
|
||||||
while(lastPack){//loop through all
|
while(lastPack){//loop through all
|
||||||
int tid = lastPack.getTrackId();
|
int tid = lastPack.getTrackId();
|
||||||
if (!tid){
|
if (!tid){
|
||||||
getNext(false);
|
getNext(false);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!bookKeeping.count(tid)){
|
if (!bookKeeping.count(tid)){
|
||||||
bookKeeping[tid].first = 1;
|
bookKeeping[tid].first = 1;
|
||||||
bookKeeping[tid].curPart = 0;
|
bookKeeping[tid].curPart = 0;
|
||||||
bookKeeping[tid].curKey = 0;
|
bookKeeping[tid].curKey = 0;
|
||||||
|
|
||||||
curData[tid].lastKeyTime = 0xFFFFFFFF;
|
curData[tid].lastKeyTime = 0xFFFFFFFF;
|
||||||
curData[tid].keyNum = 1;
|
curData[tid].keyNum = 1;
|
||||||
curData[tid].partNum = 0;
|
curData[tid].partNum = 0;
|
||||||
curData[tid].dataSize = 0;
|
curData[tid].dataSize = 0;
|
||||||
curData[tid].curOffset = 0;
|
curData[tid].curOffset = 0;
|
||||||
curData[tid].firstTime = myMeta.tracks[tid].keys[0].getTime();
|
curData[tid].firstTime = myMeta.tracks[tid].keys[0].getTime();
|
||||||
|
|
||||||
char tmpId[20];
|
char tmpId[20];
|
||||||
sprintf(tmpId, "%d", tid);
|
sprintf(tmpId, "%d", tid);
|
||||||
indexPages[tid].init(config->getString("streamname") + tmpId, 8 * 1024, true);//Pages of 8kb in size, room for 512 parts.
|
indexPages[tid].init(config->getString("streamname") + tmpId, 8 * 1024, true);//Pages of 8kb in size, room for 512 parts.
|
||||||
}
|
}
|
||||||
if (myMeta.tracks[tid].keys[bookKeeping[tid].curKey].getParts() == curData[tid].partNum){
|
if (myMeta.tracks[tid].keys[bookKeeping[tid].curKey].getParts() == curData[tid].partNum){
|
||||||
if (curData[tid].dataSize > 8 * 1024 * 1024){
|
if (curData[tid].dataSize > 8 * 1024 * 1024){
|
||||||
pagesByTrack[tid][bookKeeping[tid].first] = curData[tid];
|
pagesByTrack[tid][bookKeeping[tid].first] = curData[tid];
|
||||||
bookKeeping[tid].first += curData[tid].keyNum;
|
bookKeeping[tid].first += curData[tid].keyNum;
|
||||||
curData[tid].keyNum = 0;
|
curData[tid].keyNum = 0;
|
||||||
curData[tid].dataSize = 0;
|
curData[tid].dataSize = 0;
|
||||||
curData[tid].firstTime = myMeta.tracks[tid].keys[bookKeeping[tid].curKey].getTime();
|
curData[tid].firstTime = myMeta.tracks[tid].keys[bookKeeping[tid].curKey].getTime();
|
||||||
|
}
|
||||||
|
bookKeeping[tid].curKey++;
|
||||||
|
curData[tid].keyNum++;
|
||||||
|
curData[tid].partNum = 0;
|
||||||
|
}
|
||||||
|
curData[tid].dataSize += lastPack.getDataLen();
|
||||||
|
curData[tid].partNum ++;
|
||||||
|
bookKeeping[tid].curPart ++;
|
||||||
|
DEBUG_MSG(DLVL_INSANE, "Track %ld:%llu (%db) on page %d, being part %d of key %d", lastPack.getTrackId(), lastPack.getTime(), lastPack.getDataLen(), bookKeeping[tid].first, curData[tid].partNum, curData[tid].keyNum);
|
||||||
|
getNext(false);
|
||||||
|
}
|
||||||
|
for (std::map<int, DTSC::Track>::iterator it = myMeta.tracks.begin(); it != myMeta.tracks.end(); it++){
|
||||||
|
if (curData.count(it->first) && !pagesByTrack[it->first].count(bookKeeping[it->first].first)){
|
||||||
|
pagesByTrack[it->first][bookKeeping[it->first].first] = curData[it->first];
|
||||||
}
|
}
|
||||||
bookKeeping[tid].curKey++;
|
|
||||||
curData[tid].keyNum++;
|
|
||||||
curData[tid].partNum = 0;
|
|
||||||
}
|
}
|
||||||
curData[tid].dataSize += lastPack.getDataLen();
|
|
||||||
curData[tid].partNum ++;
|
|
||||||
bookKeeping[tid].curPart ++;
|
|
||||||
DEBUG_MSG(DLVL_INSANE, "Track %ld:%llu (%db) on page %d, being part %d of key %d", lastPack.getTrackId(), lastPack.getTime(), lastPack.getDataLen(), bookKeeping[tid].first, curData[tid].partNum, curData[tid].keyNum);
|
|
||||||
getNext(false);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
for (std::map<int, DTSC::Track>::iterator it = myMeta.tracks.begin(); it != myMeta.tracks.end(); it++){
|
for (std::map<int, DTSC::Track>::iterator it = myMeta.tracks.begin(); it != myMeta.tracks.end(); it++){
|
||||||
DEBUG_MSG(DLVL_MEDIUM, "Track %d (%s) split into %lu pages", it->first, myMeta.tracks[it->first].codec.c_str(), pagesByTrack[it->first].size());
|
DEBUG_MSG(DLVL_MEDIUM, "Track %d (%s) split into %lu pages", it->first, myMeta.tracks[it->first].codec.c_str(), pagesByTrack[it->first].size());
|
||||||
|
|
Loading…
Add table
Reference in a new issue