Reset jitter buffer and timing if frames are getting too much delay.

BUG=chromium/263867
TEST=trybots
R=mikhal@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2177005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4721 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
stefan@webrtc.org 2013-09-11 08:45:26 +00:00
parent 835ef67d14
commit 554d158ce6

View File

@ -156,11 +156,12 @@ VCMEncodedFrame* VCMReceiver::FrameForDecoding(
// Assume that render timing errors are due to changes in the video stream.
if (next_render_time_ms < 0) {
timing_error = true;
} else if (next_render_time_ms < now_ms - max_video_delay_ms_) {
} else if (abs(next_render_time_ms - now_ms) > max_video_delay_ms_) {
WEBRTC_TRACE(webrtc::kTraceWarning, webrtc::kTraceVideoCoding,
VCMId(vcm_id_, receiver_id_),
"This frame should have been rendered more than %u ms ago."
"Flushing jitter buffer and resetting timing.",
"This frame is out of our delay bounds, resetting jitter "
"buffer: %d > %d",
static_cast<int>(abs(next_render_time_ms - now_ms)),
max_video_delay_ms_);
timing_error = true;
} else if (static_cast<int>(timing_->TargetVideoDelay()) >