Delete VCMJitterBuffer::IncomingRateStatistics

Bug: webrtc:7408
Change-Id: I2da20bca053bb757957aec56e1fc7f7f915a0b55
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130102
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27378}
This commit is contained in:
Niels Möller
2019-03-28 14:09:58 +01:00
committed by Commit Bot
parent db64d99130
commit 10aac06886
4 changed files with 0 additions and 98 deletions

View File

@ -228,11 +228,6 @@ VCMJitterBuffer::VCMJitterBuffer(Clock* clock,
incomplete_frames_(), incomplete_frames_(),
last_decoded_state_(), last_decoded_state_(),
first_packet_since_reset_(true), 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_consecutive_old_packets_(0),
num_packets_(0), num_packets_(0),
num_duplicated_packets_(0), num_duplicated_packets_(0),
@ -272,11 +267,6 @@ VCMJitterBuffer::~VCMJitterBuffer() {
void VCMJitterBuffer::Start() { void VCMJitterBuffer::Start() {
rtc::CritScope cs(&crit_sect_); rtc::CritScope cs(&crit_sect_);
running_ = true; 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_consecutive_old_packets_ = 0;
num_packets_ = 0; num_packets_ = 0;
@ -334,65 +324,6 @@ int VCMJitterBuffer::num_duplicated_packets() const {
return num_duplicated_packets_; 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<unsigned int>(rate)) / 2;
incoming_frame_rate_ = static_cast<unsigned int>(rate);
// Calculate bit rate
if (incoming_bit_count_ == 0) {
*bitrate = 0;
} else {
*bitrate =
10 * ((100 * incoming_bit_count_) / static_cast<unsigned int>(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 // Returns immediately or a |max_wait_time_ms| ms event hang waiting for a
// complete frame, |max_wait_time_ms| decided by caller. // complete frame, |max_wait_time_ms| decided by caller.
VCMEncodedFrame* VCMJitterBuffer::NextCompleteFrame(uint32_t max_wait_time_ms) { 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); frame->InsertPacket(packet, now_ms, frame_data);
if (buffer_state > 0) { if (buffer_state > 0) {
incoming_bit_count_ += packet.sizeBytes << 3;
if (first_packet_since_reset_) { if (first_packet_since_reset_) {
latest_received_sequence_number_ = packet.seqNum; latest_received_sequence_number_ = packet.seqNum;
first_packet_since_reset_ = false; first_packet_since_reset_ = false;
@ -647,7 +577,6 @@ VCMFrameBufferEnum VCMJitterBuffer::InsertPacket(const VCMPacket& packet,
} }
case kCompleteSession: { case kCompleteSession: {
if (previous_state != kStateComplete) { if (previous_state != kStateComplete) {
CountFrame(*frame);
if (continuous) { if (continuous) {
// Signal that we have a complete session. // Signal that we have a complete session.
frame_event_->Set(); frame_event_->Set();
@ -1057,11 +986,6 @@ bool VCMJitterBuffer::RecycleFramesUntilKeyFrame() {
return key_frame_found; 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) { void VCMJitterBuffer::UpdateAveragePacketsPerFrame(int current_number_packets) {
if (frame_counter_ > kFastConvergeThreshold) { if (frame_counter_ > kFastConvergeThreshold) {
average_packets_per_frame_ = average_packets_per_frame_ =

View File

@ -128,9 +128,6 @@ class VCMJitterBuffer {
// Gets number of duplicated packets received. // Gets number of duplicated packets received.
int num_duplicated_packets() const; 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. // Wait |max_wait_time_ms| for a complete frame to arrive.
// If found, a pointer to the frame is returned. Returns nullptr otherwise. // If found, a pointer to the frame is returned. Returns nullptr otherwise.
VCMEncodedFrame* NextCompleteFrame(uint32_t max_wait_time_ms); VCMEncodedFrame* NextCompleteFrame(uint32_t max_wait_time_ms);
@ -251,12 +248,6 @@ class VCMJitterBuffer {
// completely full. Returns true if a key frame was found. // completely full. Returns true if a key frame was found.
bool RecycleFramesUntilKeyFrame() RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_sect_); 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. // Update rolling average of packets per frame.
void UpdateAveragePacketsPerFrame(int current_number_packets_); void UpdateAveragePacketsPerFrame(int current_number_packets_);
@ -303,12 +294,6 @@ class VCMJitterBuffer {
VCMDecodingState last_decoded_state_ RTC_GUARDED_BY(crit_sect_); VCMDecodingState last_decoded_state_ RTC_GUARDED_BY(crit_sect_);
bool first_packet_since_reset_; 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. // Number of packets in a row that have been too old.
int num_consecutive_old_packets_; int num_consecutive_old_packets_;
// Number of packets received. // Number of packets received.

View File

@ -196,12 +196,6 @@ void VCMReceiver::ReleaseFrame(VCMEncodedFrame* frame) {
jitter_buffer_.ReleaseFrame(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, void VCMReceiver::SetNackMode(VCMNackMode nackMode,
int64_t low_rtt_nack_threshold_ms, int64_t low_rtt_nack_threshold_ms,
int64_t high_rtt_nack_threshold_ms) { int64_t high_rtt_nack_threshold_ms) {

View File

@ -48,7 +48,6 @@ class VCMReceiver {
VCMEncodedFrame* FrameForDecoding(uint16_t max_wait_time_ms, VCMEncodedFrame* FrameForDecoding(uint16_t max_wait_time_ms,
bool prefer_late_decoding); bool prefer_late_decoding);
void ReleaseFrame(VCMEncodedFrame* frame); void ReleaseFrame(VCMEncodedFrame* frame);
void ReceiveStatistics(uint32_t* bitrate, uint32_t* framerate);
// NACK. // NACK.
void SetNackMode(VCMNackMode nackMode, void SetNackMode(VCMNackMode nackMode,