Fix the video buffer size should take rtt into consideration

BUG=webrtc:8010

Review-Url: https://codereview.webrtc.org/2980413002
Cr-Commit-Position: refs/heads/master@{#19285}
This commit is contained in:
gustavogb
2017-08-09 05:43:08 -07:00
committed by Commit Bot
parent 5ca60cc91c
commit f1e08d0b58
5 changed files with 22 additions and 1 deletions

View File

@ -147,6 +147,8 @@ FrameBuffer::ReturnReason FrameBuffer::NextFrame(
float rtt_mult = protection_mode_ == kProtectionNackFEC ? 0.0 : 1.0;
timing_->SetJitterDelay(jitter_estimator_->GetJitterEstimate(rtt_mult));
timing_->UpdateCurrentDelay(frame->RenderTime(), now_ms);
} else {
jitter_estimator_->FrameNacked();
}
// Gracefully handle bad RTP timestamps and render time issues.
@ -247,6 +249,11 @@ void FrameBuffer::Stop() {
new_continuous_frame_event_.Set();
}
void FrameBuffer::UpdateRtt(int64_t rtt_ms) {
rtc::CritScope lock(&crit_);
jitter_estimator_->UpdateRtt(rtt_ms);
}
bool FrameBuffer::ValidReferences(const FrameObject& frame) const {
for (size_t i = 0; i < frame.num_references; ++i) {
if (AheadOrAt(frame.references[i], frame.picture_id))

View File

@ -74,6 +74,9 @@ class FrameBuffer {
// return immediately.
void Stop();
// Updates the RTT for jitter buffer estimation.
void UpdateRtt(int64_t rtt_ms);
private:
struct FrameKey {
FrameKey() : picture_id(0), spatial_layer(0) {}