JSON blocking fix + output reselect fix for early stream times

This commit is contained in:
Thulinma 2018-08-30 13:52:27 +02:00
parent 33488da329
commit 4f7b902453
3 changed files with 16 additions and 8 deletions

View file

@ -279,7 +279,7 @@ namespace Mist{
continue;
}
//autoSeeking and target not in bounds? Drop it too.
if (autoSeek && myMeta.tracks[*it].lastms < seekTarget - 6000){
if (autoSeek && myMeta.tracks[*it].lastms < std::max(seekTarget, 6000lu) - 6000){
toRemove.insert(*it);
}
}
@ -360,7 +360,7 @@ namespace Mist{
if (myMeta.live){
for (std::map<unsigned int, DTSC::Track>::reverse_iterator trit = myMeta.tracks.rbegin(); trit != myMeta.tracks.rend(); trit++){
if ((!byType && trit->second.codec == strRef.substr(shift)) || (byType && trit->second.type == strRef.substr(shift)) || strRef.substr(shift) == "*"){
if (autoSeek && trit->second.lastms < seekTarget - 6000){continue;}
if (autoSeek && trit->second.lastms < std::max(seekTarget, 6000lu) - 6000){continue;}
selectedTracks.insert(trit->first);
found = true;
if (!multiSel){break;}
@ -369,7 +369,7 @@ namespace Mist{
}else{
for (std::map<unsigned int, DTSC::Track>::iterator trit = myMeta.tracks.begin(); trit != myMeta.tracks.end(); trit++){
if ((!byType && trit->second.codec == strRef.substr(shift)) || (byType && trit->second.type == strRef.substr(shift)) || strRef.substr(shift) == "*"){
if (autoSeek && trit->second.lastms < seekTarget - 6000){continue;}
if (autoSeek && trit->second.lastms < std::max(seekTarget, 6000lu) - 6000){continue;}
selectedTracks.insert(trit->first);
found = true;
if (!multiSel){break;}
@ -411,6 +411,7 @@ namespace Mist{
void Output::stop(){
buffer.clear();
parseData = false;
sought = false;
}
unsigned int Output::getKeyForTime(long unsigned int trackId, long long timeStamp){