From 10aac068866712b7ee649d6cc18002aca1055c5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= Date: Thu, 28 Mar 2019 14:09:58 +0100 Subject: [PATCH] Delete VCMJitterBuffer::IncomingRateStatistics MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bug: webrtc:7408 Change-Id: I2da20bca053bb757957aec56e1fc7f7f915a0b55 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130102 Reviewed-by: Åsa Persson Reviewed-by: Philip Eliasson Commit-Queue: Niels Moller Cr-Commit-Position: refs/heads/master@{#27378} --- modules/video_coding/jitter_buffer.cc | 76 --------------------------- modules/video_coding/jitter_buffer.h | 15 ------ modules/video_coding/receiver.cc | 6 --- modules/video_coding/receiver.h | 1 - 4 files changed, 98 deletions(-) diff --git a/modules/video_coding/jitter_buffer.cc b/modules/video_coding/jitter_buffer.cc index dbd315fcf1..bd9ffb12f0 100644 --- a/modules/video_coding/jitter_buffer.cc +++ b/modules/video_coding/jitter_buffer.cc @@ -228,11 +228,6 @@ VCMJitterBuffer::VCMJitterBuffer(Clock* clock, incomplete_frames_(), last_decoded_state_(), first_packet_since_reset_(true), - incoming_frame_rate_(0), - incoming_frame_count_(0), - time_last_incoming_frame_count_(0), - incoming_bit_count_(0), - incoming_bit_rate_(0), num_consecutive_old_packets_(0), num_packets_(0), num_duplicated_packets_(0), @@ -272,11 +267,6 @@ VCMJitterBuffer::~VCMJitterBuffer() { void VCMJitterBuffer::Start() { rtc::CritScope cs(&crit_sect_); running_ = true; - incoming_frame_count_ = 0; - incoming_frame_rate_ = 0; - incoming_bit_count_ = 0; - incoming_bit_rate_ = 0; - time_last_incoming_frame_count_ = clock_->TimeInMilliseconds(); num_consecutive_old_packets_ = 0; num_packets_ = 0; @@ -334,65 +324,6 @@ int VCMJitterBuffer::num_duplicated_packets() const { return num_duplicated_packets_; } -// Calculate framerate and bitrate. -void VCMJitterBuffer::IncomingRateStatistics(unsigned int* framerate, - unsigned int* bitrate) { - assert(framerate); - assert(bitrate); - rtc::CritScope cs(&crit_sect_); - const int64_t now = clock_->TimeInMilliseconds(); - int64_t diff = now - time_last_incoming_frame_count_; - if (diff < 1000 && incoming_frame_rate_ > 0 && incoming_bit_rate_ > 0) { - // Make sure we report something even though less than - // 1 second has passed since last update. - *framerate = incoming_frame_rate_; - *bitrate = incoming_bit_rate_; - } else if (incoming_frame_count_ != 0) { - // We have received frame(s) since last call to this function - - // Prepare calculations - if (diff <= 0) { - diff = 1; - } - // we add 0.5f for rounding - float rate = 0.5f + ((incoming_frame_count_ * 1000.0f) / diff); - if (rate < 1.0f) { - rate = 1.0f; - } - - // Calculate frame rate - // Let r be rate. - // r(0) = 1000*framecount/delta_time. - // (I.e. frames per second since last calculation.) - // frame_rate = r(0)/2 + r(-1)/2 - // (I.e. fr/s average this and the previous calculation.) - *framerate = (incoming_frame_rate_ + static_cast(rate)) / 2; - incoming_frame_rate_ = static_cast(rate); - - // Calculate bit rate - if (incoming_bit_count_ == 0) { - *bitrate = 0; - } else { - *bitrate = - 10 * ((100 * incoming_bit_count_) / static_cast(diff)); - } - incoming_bit_rate_ = *bitrate; - - // Reset count - incoming_frame_count_ = 0; - incoming_bit_count_ = 0; - time_last_incoming_frame_count_ = now; - - } else { - // No frames since last call - time_last_incoming_frame_count_ = clock_->TimeInMilliseconds(); - *framerate = 0; - *bitrate = 0; - incoming_frame_rate_ = 0; - incoming_bit_rate_ = 0; - } -} - // Returns immediately or a |max_wait_time_ms| ms event hang waiting for a // complete frame, |max_wait_time_ms| decided by caller. VCMEncodedFrame* VCMJitterBuffer::NextCompleteFrame(uint32_t max_wait_time_ms) { @@ -618,7 +549,6 @@ VCMFrameBufferEnum VCMJitterBuffer::InsertPacket(const VCMPacket& packet, frame->InsertPacket(packet, now_ms, frame_data); if (buffer_state > 0) { - incoming_bit_count_ += packet.sizeBytes << 3; if (first_packet_since_reset_) { latest_received_sequence_number_ = packet.seqNum; first_packet_since_reset_ = false; @@ -647,7 +577,6 @@ VCMFrameBufferEnum VCMJitterBuffer::InsertPacket(const VCMPacket& packet, } case kCompleteSession: { if (previous_state != kStateComplete) { - CountFrame(*frame); if (continuous) { // Signal that we have a complete session. frame_event_->Set(); @@ -1057,11 +986,6 @@ bool VCMJitterBuffer::RecycleFramesUntilKeyFrame() { return key_frame_found; } -// Must be called under the critical section |crit_sect_|. -void VCMJitterBuffer::CountFrame(const VCMFrameBuffer& frame) { - incoming_frame_count_++; -} - void VCMJitterBuffer::UpdateAveragePacketsPerFrame(int current_number_packets) { if (frame_counter_ > kFastConvergeThreshold) { average_packets_per_frame_ = diff --git a/modules/video_coding/jitter_buffer.h b/modules/video_coding/jitter_buffer.h index 48079b7fee..c0775f0afd 100644 --- a/modules/video_coding/jitter_buffer.h +++ b/modules/video_coding/jitter_buffer.h @@ -128,9 +128,6 @@ class VCMJitterBuffer { // Gets number of duplicated packets received. int num_duplicated_packets() const; - // Statistics, Calculate frame and bit rates. - void IncomingRateStatistics(unsigned int* framerate, unsigned int* bitrate); - // Wait |max_wait_time_ms| for a complete frame to arrive. // If found, a pointer to the frame is returned. Returns nullptr otherwise. VCMEncodedFrame* NextCompleteFrame(uint32_t max_wait_time_ms); @@ -251,12 +248,6 @@ class VCMJitterBuffer { // completely full. Returns true if a key frame was found. bool RecycleFramesUntilKeyFrame() RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); - // Updates the frame statistics. - // Counts only complete frames, so decodable incomplete frames will not be - // counted. - void CountFrame(const VCMFrameBuffer& frame) - RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); - // Update rolling average of packets per frame. void UpdateAveragePacketsPerFrame(int current_number_packets_); @@ -303,12 +294,6 @@ class VCMJitterBuffer { VCMDecodingState last_decoded_state_ RTC_GUARDED_BY(crit_sect_); bool first_packet_since_reset_; - // Latest calculated frame rates of incoming stream. - unsigned int incoming_frame_rate_; - unsigned int incoming_frame_count_; - int64_t time_last_incoming_frame_count_; - unsigned int incoming_bit_count_; - unsigned int incoming_bit_rate_; // Number of packets in a row that have been too old. int num_consecutive_old_packets_; // Number of packets received. diff --git a/modules/video_coding/receiver.cc b/modules/video_coding/receiver.cc index 7610de2e70..decaa0d392 100644 --- a/modules/video_coding/receiver.cc +++ b/modules/video_coding/receiver.cc @@ -196,12 +196,6 @@ void VCMReceiver::ReleaseFrame(VCMEncodedFrame* frame) { jitter_buffer_.ReleaseFrame(frame); } -void VCMReceiver::ReceiveStatistics(uint32_t* bitrate, uint32_t* framerate) { - assert(bitrate); - assert(framerate); - jitter_buffer_.IncomingRateStatistics(framerate, bitrate); -} - void VCMReceiver::SetNackMode(VCMNackMode nackMode, int64_t low_rtt_nack_threshold_ms, int64_t high_rtt_nack_threshold_ms) { diff --git a/modules/video_coding/receiver.h b/modules/video_coding/receiver.h index d955aa0855..0094e4ce3b 100644 --- a/modules/video_coding/receiver.h +++ b/modules/video_coding/receiver.h @@ -48,7 +48,6 @@ class VCMReceiver { VCMEncodedFrame* FrameForDecoding(uint16_t max_wait_time_ms, bool prefer_late_decoding); void ReleaseFrame(VCMEncodedFrame* frame); - void ReceiveStatistics(uint32_t* bitrate, uint32_t* framerate); // NACK. void SetNackMode(VCMNackMode nackMode,