From dbd6a6d6531a5e6f11216968c1b7aca61acd86df Mon Sep 17 00:00:00 2001 From: "mikhal@webrtc.org" Date: Wed, 17 Apr 2013 16:23:22 +0000 Subject: [PATCH] Updating delay for first value BUG= Review URL: https://webrtc-codereview.appspot.com/1327005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3865 4adac7df-926f-26a2-2b94-8c16560cd09d --- .../video_coding/main/source/receiver.cc | 2 ++ .../video_coding/main/source/timing.cc | 5 +++- .../modules/video_coding/main/source/timing.h | 26 +++++++++---------- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/webrtc/modules/video_coding/main/source/receiver.cc b/webrtc/modules/video_coding/main/source/receiver.cc index 5155ee5b48..2595fb2b21 100644 --- a/webrtc/modules/video_coding/main/source/receiver.cc +++ b/webrtc/modules/video_coding/main/source/receiver.cc @@ -420,6 +420,8 @@ int VCMReceiver::SetMinReceiverDelay(int desired_delay_ms) { jitter_buffer_.SetMaxJitterEstimate(desired_delay_ms); max_video_delay_ms_ = desired_delay_ms + kMaxVideoDelayMs; timing_->SetMaxVideoDelay(max_video_delay_ms_); + // Initializing timing to the desired delay. + timing_->SetRequiredDelay(desired_delay_ms); return 0; } diff --git a/webrtc/modules/video_coding/main/source/timing.cc b/webrtc/modules/video_coding/main/source/timing.cc index 2a381bde12..1146223482 100644 --- a/webrtc/modules/video_coding/main/source/timing.cc +++ b/webrtc/modules/video_coding/main/source/timing.cc @@ -108,6 +108,10 @@ VCMTiming::SetRequiredDelay(uint32_t requiredDelayMs) "Desired jitter buffer level: %u ms", requiredDelayMs); } _requiredDelayMs = requiredDelayMs; + // When in initial state, set current delay to minimum delay. + if (_currentDelayMs == 0) { + _currentDelayMs = _requiredDelayMs; + } } } @@ -270,7 +274,6 @@ VCMTiming::RenderTimeMsInternal(uint32_t frameTimestamp, int64_t nowMs) const { estimatedCompleteTimeMs = nowMs; } - return estimatedCompleteTimeMs + _currentDelayMs; } diff --git a/webrtc/modules/video_coding/main/source/timing.h b/webrtc/modules/video_coding/main/source/timing.h index 74bec724a4..ae0bd57aca 100644 --- a/webrtc/modules/video_coding/main/source/timing.h +++ b/webrtc/modules/video_coding/main/source/timing.h @@ -95,19 +95,19 @@ protected: uint32_t TargetDelayInternal() const; private: - CriticalSectionWrapper* _critSect; - int32_t _vcmId; - Clock* _clock; - int32_t _timingId; - bool _master; - VCMTimestampExtrapolator* _tsExtrapolator; - VCMCodecTimer _codecTimer; - uint32_t _renderDelayMs; - uint32_t _minTotalDelayMs; - uint32_t _requiredDelayMs; - uint32_t _currentDelayMs; - uint32_t _prevFrameTimestamp; - int _maxVideoDelayMs; + CriticalSectionWrapper* _critSect; + int32_t _vcmId; + Clock* _clock; + int32_t _timingId; + bool _master; + VCMTimestampExtrapolator* _tsExtrapolator; + VCMCodecTimer _codecTimer; + uint32_t _renderDelayMs; + uint32_t _minTotalDelayMs; + uint32_t _requiredDelayMs; + uint32_t _currentDelayMs; + uint32_t _prevFrameTimestamp; + int _maxVideoDelayMs; }; } // namespace webrtc