Fixed real-time playback of VoD streams that do not start at a zero timestamp

This commit is contained in:
Thulinma 2016-07-07 22:31:11 +02:00
parent 5c5ab6c058
commit c78cbc22ea

View file

@ -455,7 +455,6 @@ namespace Mist {
/// Prepares all tracks from selectedTracks for seeking to the specified ms position.
void Output::seek(unsigned long long pos){
sought = true;
firstTime = Util::getMS() - pos;
if (!isInitialized){
initialize();
}
@ -471,6 +470,7 @@ namespace Mist {
seek(*it, pos);
}
}
firstTime = Util::getMS() - buffer.begin()->time;
}
bool Output::seek(unsigned int tid, unsigned long long pos, bool getNextKey){
@ -603,7 +603,7 @@ namespace Mist {
//slow down processing, if real time speed is wanted
if (realTime){
while (thisPacket.getTime() > (((Util::getMS() - firstTime)*1000)+maxSkipAhead)/realTime) {
while (thisPacket.getTime() > (((Util::getMS() - firstTime)*1000)+maxSkipAhead)/realTime && config->is_active && myConn) {
Util::sleep(std::min(thisPacket.getTime() - (((Util::getMS() - firstTime)*1000)+minSkipAhead)/realTime, 1000llu));
stats();
}