Merge branch 'development' into LTS_development
This commit is contained in:
commit
9b683f6ee3
1 changed files with 26 additions and 35 deletions
|
@ -272,15 +272,10 @@ namespace Mist {
|
||||||
while (changed) {
|
while (changed) {
|
||||||
changed = false;
|
changed = false;
|
||||||
long long unsigned int time = Util::bootSecs();
|
long long unsigned int time = Util::bootSecs();
|
||||||
for (std::map<unsigned int, DTSC::Track>::iterator it = myMeta.tracks.begin(); it != myMeta.tracks.end(); it++) {
|
|
||||||
bool eraseTrack = false;
|
|
||||||
long long unsigned int compareFirst = 0xFFFFFFFFFFFFFFFFull;
|
long long unsigned int compareFirst = 0xFFFFFFFFFFFFFFFFull;
|
||||||
long long unsigned int compareLast = 0;
|
long long unsigned int compareLast = 0;
|
||||||
if ((time - lastUpdated[it->first]) > 5) {
|
//for tracks that were updated in the last 5 seconds, get the first and last ms edges.
|
||||||
for (std::map<unsigned int, DTSC::Track>::iterator it2 = myMeta.tracks.begin(); it2 != myMeta.tracks.end(); it2++) {
|
for (std::map<unsigned int, DTSC::Track>::iterator it2 = myMeta.tracks.begin(); it2 != myMeta.tracks.end(); it2++) {
|
||||||
if (it2->first == it->first) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if ((time - lastUpdated[it2->first]) > 5) {
|
if ((time - lastUpdated[it2->first]) > 5) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -291,25 +286,21 @@ namespace Mist {
|
||||||
compareFirst = it2->second.firstms;
|
compareFirst = it2->second.firstms;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (compareLast) {
|
for (std::map<unsigned int, DTSC::Track>::iterator it = myMeta.tracks.begin(); it != myMeta.tracks.end(); it++) {
|
||||||
if ((myMeta.tracks[it->first].firstms - compareLast) > ((TIMEOUTMULTIPLIER * bufferTime) / 1000)) {
|
//if not updated for an entire buffer duration, or last updated track and this track differ by an entire buffer duration, erase the track.
|
||||||
eraseTrack = true;
|
if ((time - lastUpdated[it->first]) > (bufferTime / 1000) || (compareLast && (time - lastUpdated[it->first]) > 5 && ((myMeta.tracks[it->first].firstms - compareLast) > bufferTime || (compareFirst - myMeta.tracks[it->first].lastms) > bufferTime))) {
|
||||||
}
|
unsigned int tid = it->first;
|
||||||
if ((compareFirst - myMeta.tracks[it->first].lastms) > ((TIMEOUTMULTIPLIER * bufferTime) / 1000)) {
|
|
||||||
eraseTrack = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ((time - lastUpdated[it->first]) > ((TIMEOUTMULTIPLIER * bufferTime) / 1000)) {
|
|
||||||
eraseTrack = true;
|
|
||||||
}
|
|
||||||
if (eraseTrack) {
|
|
||||||
//erase this track
|
//erase this track
|
||||||
INFO_MSG("Erasing track %d because of timeout", it->first);
|
INFO_MSG("Erasing track %d because of timeout", it->first);
|
||||||
lastUpdated.erase(it->first);
|
lastUpdated.erase(tid);
|
||||||
bufferLocations.erase(it->first);
|
while (bufferLocations[tid].size()){
|
||||||
curPage[it->first].master = true;
|
char thisPageName[NAME_BUFFER_SIZE];
|
||||||
curPage.erase(it->first);
|
snprintf(thisPageName, NAME_BUFFER_SIZE, SHM_TRACK_DATA, config->getString("streamname").c_str(), (unsigned long)tid, bufferLocations[tid].begin()->first);
|
||||||
|
curPage[tid].init(thisPageName, 20971520);
|
||||||
|
curPage[tid].master = true;
|
||||||
|
curPage.erase(tid);
|
||||||
|
bufferLocations[tid].erase(bufferLocations[tid].begin());
|
||||||
|
}
|
||||||
curPageNum.erase(it->first);
|
curPageNum.erase(it->first);
|
||||||
metaPages[it->first].master = true;
|
metaPages[it->first].master = true;
|
||||||
metaPages.erase(it->first);
|
metaPages.erase(it->first);
|
||||||
|
|
Loading…
Add table
Reference in a new issue