From d6bd7cd2b1db3c25b30d3b4a785641b01af4b43a Mon Sep 17 00:00:00 2001 From: "mikhal@webrtc.org" Date: Fri, 12 Apr 2013 17:09:51 +0000 Subject: [PATCH] removing redundant calls to cleanframes Review URL: https://webrtc-codereview.appspot.com/1318004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3844 4adac7df-926f-26a2-2b94-8c16560cd09d --- webrtc/modules/video_coding/main/source/jitter_buffer.cc | 7 ------- webrtc/modules/video_coding/main/source/jitter_buffer.h | 1 + webrtc/modules/video_coding/main/source/receiver.cc | 2 +- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/webrtc/modules/video_coding/main/source/jitter_buffer.cc b/webrtc/modules/video_coding/main/source/jitter_buffer.cc index 701f92b37..849d6412f 100644 --- a/webrtc/modules/video_coding/main/source/jitter_buffer.cc +++ b/webrtc/modules/video_coding/main/source/jitter_buffer.cc @@ -512,8 +512,6 @@ VCMEncodedFrame* VCMJitterBuffer::GetCompleteFrameForDecoding( oldest_frame->SetState(kStateDecoding); - CleanUpOldOrEmptyFrames(); - if (oldest_frame->FrameType() == kVideoFrameKey) { waiting_for_key_frame_ = false; } @@ -583,8 +581,6 @@ VCMEncodedFrame* VCMJitterBuffer::GetFrameForDecoding() { // Set as decoding. Propagates the missing_frame bit. oldest_frame->SetState(kStateDecoding); - CleanUpOldOrEmptyFrames(); - if (oldest_frame->FrameType() == kVideoFrameKey) { waiting_for_key_frame_ = false; } @@ -1029,9 +1025,6 @@ VCMEncodedFrame* VCMJitterBuffer::GetFrameForDecodingNACK() { // decoder. oldest_frame->SetState(kStateDecoding); - // Clean up old frames and empty frames. - CleanUpOldOrEmptyFrames(); - if (oldest_frame->FrameType() == kVideoFrameKey) { waiting_for_key_frame_ = false; } diff --git a/webrtc/modules/video_coding/main/source/jitter_buffer.h b/webrtc/modules/video_coding/main/source/jitter_buffer.h index d8bee4209..669089fde 100644 --- a/webrtc/modules/video_coding/main/source/jitter_buffer.h +++ b/webrtc/modules/video_coding/main/source/jitter_buffer.h @@ -161,6 +161,7 @@ class VCMJitterBuffer { // Enable/disable decoding with errors. void DecodeWithErrors(bool enable) {decode_with_errors_ = enable;} int64_t LastDecodedTimestamp() const; + bool decode_with_errors() const {return decode_with_errors_;} private: class SequenceNumberLessThan { diff --git a/webrtc/modules/video_coding/main/source/receiver.cc b/webrtc/modules/video_coding/main/source/receiver.cc index 68696919d..f5e23f7e5 100644 --- a/webrtc/modules/video_coding/main/source/receiver.cc +++ b/webrtc/modules/video_coding/main/source/receiver.cc @@ -309,7 +309,7 @@ VCMEncodedFrame* VCMReceiver::FrameForRendering(uint16_t max_wait_time_ms, // Get a complete frame if possible. VCMEncodedFrame* frame = jitter_buffer_.GetCompleteFrameForDecoding(0); - if (frame == NULL) { + if (frame == NULL && jitter_buffer_.decode_with_errors()) { // Get an incomplete frame. const bool dual_receiver_enabled_and_passive = (dual_receiver != NULL && dual_receiver->State() == kPassive &&