diff --git a/src/output/output.cpp b/src/output/output.cpp index 10464ac3..594eb475 100644 --- a/src/output/output.cpp +++ b/src/output/output.cpp @@ -215,16 +215,13 @@ namespace Mist { } unsigned int Output::getKeyForTime(long unsigned int trackId, long long timeStamp){ - if (!myMeta.tracks[trackId].keys.size()){ + DTSC::Track & trk = myMeta.tracks[trackId]; + if (!trk.keys.size()){ return 0; } - unsigned int keyNo = myMeta.tracks[trackId].keys.begin()->getNumber(); - for (std::deque::iterator it = myMeta.tracks[trackId].keys.begin(); it != myMeta.tracks[trackId].keys.end(); it++){ - if (it->getTime() <= timeStamp){ - keyNo = it->getNumber(); - }else{ - break; - } + unsigned int keyNo = trk.keys.begin()->getNumber(); + for (std::deque::iterator it = trk.keys.begin(); it != trk.keys.end() && it->getTime() <= timeStamp; it++){ + keyNo = it->getNumber(); } return keyNo; } diff --git a/src/output/output_rtmp.cpp b/src/output/output_rtmp.cpp index 96e5d683..54ba23c6 100644 --- a/src/output/output_rtmp.cpp +++ b/src/output/output_rtmp.cpp @@ -194,6 +194,7 @@ namespace Mist { } //send the header + myConn.setBlocking(true); myConn.SendNow(rtmpheader, header_len); //set the header's first byte to the "continue" type chunk, for later use rtmpheader[0] = 0xC4; @@ -216,6 +217,7 @@ namespace Mist { ++steps; } } + myConn.setBlocking(false); //update the sent data counter RTMPStream::snd_cnt += header_len + data_len + steps; }