| Index: webrtc/modules/audio_coding/neteq/statistics_calculator.cc
|
| diff --git a/webrtc/modules/audio_coding/neteq/statistics_calculator.cc b/webrtc/modules/audio_coding/neteq/statistics_calculator.cc
|
| index dd63c122253a6912bd69431dc43108353f90cf90..b4d6a6c1dec8b7c3bb3ec907e97b102376211614 100644
|
| --- a/webrtc/modules/audio_coding/neteq/statistics_calculator.cc
|
| +++ b/webrtc/modules/audio_coding/neteq/statistics_calculator.cc
|
| @@ -43,6 +43,32 @@ void StatisticsCalculator::DelayedPacketOutagesPerMinuteCounter::LogToUma()
|
| counter_);
|
| }
|
|
|
| +void StatisticsCalculator::AverageExcessBufferDelayMs::
|
| + RegisterPacketWaitingTime(int time_ms) {
|
| + sum_ += time_ms;
|
| + ++num_packets_;
|
| +}
|
| +
|
| +void StatisticsCalculator::AverageExcessBufferDelayMs::AdvanceClock(
|
| + int step_ms) {
|
| + timer_ += step_ms;
|
| + if (timer_ < kReportIntervalMs) {
|
| + return;
|
| + }
|
| + LogToUma();
|
| + sum_ = 0.0;
|
| + num_packets_ = 0;
|
| + timer_ -= kReportIntervalMs;
|
| + DCHECK_GE(timer_, 0);
|
| +}
|
| +
|
| +void StatisticsCalculator::AverageExcessBufferDelayMs::LogToUma() {
|
| + if (num_packets_ > 0) {
|
| + RTC_HISTOGRAM_COUNTS_1000("WebRTC.Audio.AverageExcessBufferDelayMs",
|
| + static_cast<int>(sum_ / num_packets_));
|
| + }
|
| +}
|
| +
|
| StatisticsCalculator::StatisticsCalculator()
|
| : preemptive_samples_(0),
|
| accelerate_samples_(0),
|
| @@ -108,8 +134,9 @@ void StatisticsCalculator::LostSamples(int num_samples) {
|
| }
|
|
|
| void StatisticsCalculator::IncreaseCounter(int num_samples, int fs_hz) {
|
| - delayed_packet_outage_counter_.AdvanceClock(
|
| - rtc::CheckedDivExact(1000 * num_samples, fs_hz));
|
| + const int time_step_ms = rtc::CheckedDivExact(1000 * num_samples, fs_hz);
|
| + delayed_packet_outage_counter_.AdvanceClock(time_step_ms);
|
| + excess_buffer_delay_.AdvanceClock(time_step_ms);
|
| timestamps_since_last_report_ += static_cast<uint32_t>(num_samples);
|
| if (timestamps_since_last_report_ >
|
| static_cast<uint32_t>(fs_hz * kMaxReportPeriod)) {
|
| @@ -131,6 +158,7 @@ void StatisticsCalculator::LogDelayedPacketOutageEvent(int outage_duration_ms) {
|
| }
|
|
|
| void StatisticsCalculator::StoreWaitingTime(int waiting_time_ms) {
|
| + excess_buffer_delay_.RegisterPacketWaitingTime(waiting_time_ms);
|
| assert(next_waiting_time_index_ < kLenWaitingTimes);
|
| waiting_times_[next_waiting_time_index_] = waiting_time_ms;
|
| next_waiting_time_index_++;
|
|
|