Merge branch 'development' into LTS_development

# Conflicts:
#	src/input/input_buffer.cpp
This commit is contained in:
Thulinma 2015-05-21 20:17:37 +02:00
commit 9e10cc621c
2 changed files with 21 additions and 9 deletions

View file

@ -274,8 +274,14 @@ namespace Mist {
void inputBuffer::finish() {
Input::finish();
updateMeta();
if (bufferLocations.size()){
std::set<unsigned long> toErase;
for (std::map<unsigned long, std::map<unsigned long, DTSCPageData> >::iterator it = bufferLocations.begin(); it != bufferLocations.end(); it++){
eraseTrackDataPages(it->first);
toErase.insert(it->first);
}
for (std::set<unsigned long>::iterator it = toErase.begin(); it != toErase.end(); ++it){
eraseTrackDataPages(*it);
}
}
}
@ -602,7 +608,7 @@ namespace Mist {
//Otherwise open and parse the page
//Open the page if it is not yet open
if (!curPageNum.count(tNum) || curPageNum[tNum] != pageNum){
if (!curPageNum.count(tNum) || curPageNum[tNum] != pageNum || !curPage[tNum].mapped){
//DO NOT ERASE THE PAGE HERE, master is not set to true
curPageNum.erase(tNum);
char nextPageName[NAME_BUFFER_SIZE];
@ -618,6 +624,10 @@ namespace Mist {
DTSC::Packet tmpPack;
if (!curPage[tNum].mapped[pageData.curOffset]){
VERYHIGH_MSG("No packet on page %lu for track %lu, waiting...", pageNum, tNum);
return;
}
tmpPack.reInit(curPage[tNum].mapped + pageData.curOffset, 0);
//No new data has been written on the page since last update
if (!tmpPack){
@ -626,7 +636,6 @@ namespace Mist {
lastUpdated[tNum] = Util::bootSecs();
while (tmpPack){
//Update the metadata with this packet
///\todo Why is there an LTS tag here?
myMeta.update(tmpPack, segmentSize);/*LTS*/
//Set the first time when appropriate
if (pageData.firstTime == 0){

View file

@ -531,6 +531,9 @@ namespace Mist {
INFO_MSG("Buffer has indicated that incoming track %lu should start writing on track %lu, page %lu", tid, finalTid, firstPage);
trackMap[tid] = finalTid;
if (myMeta.tracks.count(finalTid) && myMeta.tracks[finalTid].lastms){
myMeta.tracks[finalTid].lastms = 0;
}
trackState[tid] = FILL_ACC;
char pageName[NAME_BUFFER_SIZE];
snprintf(pageName, NAME_BUFFER_SIZE, SHM_TRACK_INDEX, streamName.c_str(), finalTid);