From a475556f5a8508a4a07c6554a81c06aafa3312d0 Mon Sep 17 00:00:00 2001 From: "stefan@webrtc.org" Date: Mon, 20 Feb 2012 09:53:55 +0000 Subject: [PATCH] Assume 200 ms RTT if we're only receiving. BUG= TEST= Review URL: https://webrtc-codereview.appspot.com/396012 git-svn-id: http://webrtc.googlecode.com/svn/trunk@1730 4adac7df-926f-26a2-2b94-8c16560cd09d --- src/video_engine/vie_channel.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/video_engine/vie_channel.cc b/src/video_engine/vie_channel.cc index 3c34786f5b..fe1f974683 100644 --- a/src/video_engine/vie_channel.cc +++ b/src/video_engine/vie_channel.cc @@ -2221,8 +2221,14 @@ bool ViEChannel::ChannelDecodeProcess() { if (rtp_rtcp_.RTT(rtp_rtcp_.RemoteSSRC(), &RTT, &avgRTT, &minRTT, &maxRTT) == 0) { vcm_.SetReceiveChannelParameters(RTT); + vcm_rttreported_ = TickTime::Now(); + } else if (!rtp_rtcp_.Sending() && + (TickTime::Now() - vcm_rttreported_).Milliseconds() > 5000) { + // Wait at least 5 seconds before faking a 200 ms RTT. This is to + // make sure we have a chance to start sending before we decide to fake. + vcm_.SetReceiveChannelParameters(200); + vcm_rttreported_ = TickTime::Now(); } - vcm_rttreported_ = TickTime::Now(); } return true; } @@ -2251,6 +2257,10 @@ WebRtc_Word32 ViEChannel::StartDecodeThread() { return -1; } + // Used to make sure that we don't give the VCM a faked RTT + // too early. + vcm_rttreported_ = TickTime::Now(); + WEBRTC_TRACE(kTraceInfo, kTraceVideo, ViEId(engine_id_, channel_id_), "%s: decode thread with id %u started", __FUNCTION__); return 0;