| Index: media/cast/rtp_receiver/receiver_stats.cc
|
| diff --git a/media/cast/rtp_receiver/receiver_stats.cc b/media/cast/rtp_receiver/receiver_stats.cc
|
| deleted file mode 100644
|
| index 7eff86763f88e8255177b41bdb3ac27f57035d72..0000000000000000000000000000000000000000
|
| --- a/media/cast/rtp_receiver/receiver_stats.cc
|
| +++ /dev/null
|
| @@ -1,119 +0,0 @@
|
| -// Copyright 2013 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "media/cast/rtp_receiver/receiver_stats.h"
|
| -
|
| -#include "base/logging.h"
|
| -#include "media/cast/rtp_receiver/rtp_receiver_defines.h"
|
| -
|
| -namespace media {
|
| -namespace cast {
|
| -
|
| -static const uint32 kMaxSequenceNumber = 65536;
|
| -
|
| -ReceiverStats::ReceiverStats(base::TickClock* clock)
|
| - : clock_(clock),
|
| - min_sequence_number_(0),
|
| - max_sequence_number_(0),
|
| - total_number_packets_(0),
|
| - sequence_number_cycles_(0),
|
| - interval_min_sequence_number_(0),
|
| - interval_number_packets_(0),
|
| - interval_wrap_count_(0) {}
|
| -
|
| -ReceiverStats::~ReceiverStats() {}
|
| -
|
| -void ReceiverStats::GetStatistics(uint8* fraction_lost,
|
| - uint32* cumulative_lost,
|
| - uint32* extended_high_sequence_number,
|
| - uint32* jitter) {
|
| - // Compute losses.
|
| - if (interval_number_packets_ == 0) {
|
| - *fraction_lost = 0;
|
| - } else {
|
| - int diff = 0;
|
| - if (interval_wrap_count_ == 0) {
|
| - diff = max_sequence_number_ - interval_min_sequence_number_ + 1;
|
| - } else {
|
| - diff = kMaxSequenceNumber * (interval_wrap_count_ - 1) +
|
| - (max_sequence_number_ - interval_min_sequence_number_ +
|
| - kMaxSequenceNumber + 1);
|
| - }
|
| -
|
| - if (diff < 1) {
|
| - *fraction_lost = 0;
|
| - } else {
|
| - float tmp_ratio =
|
| - (1 - static_cast<float>(interval_number_packets_) / abs(diff));
|
| - *fraction_lost = static_cast<uint8>(256 * tmp_ratio);
|
| - }
|
| - }
|
| -
|
| - int expected_packets_num = max_sequence_number_ - min_sequence_number_ + 1;
|
| - if (total_number_packets_ == 0) {
|
| - *cumulative_lost = 0;
|
| - } else if (sequence_number_cycles_ == 0) {
|
| - *cumulative_lost = expected_packets_num - total_number_packets_;
|
| - } else {
|
| - *cumulative_lost =
|
| - kMaxSequenceNumber * (sequence_number_cycles_ - 1) +
|
| - (expected_packets_num - total_number_packets_ + kMaxSequenceNumber);
|
| - }
|
| -
|
| - // Extended high sequence number consists of the highest seq number and the
|
| - // number of cycles (wrap).
|
| - *extended_high_sequence_number =
|
| - (sequence_number_cycles_ << 16) + max_sequence_number_;
|
| -
|
| - *jitter = static_cast<uint32>(std::abs(jitter_.InMillisecondsRoundedUp()));
|
| -
|
| - // Reset interval values.
|
| - interval_min_sequence_number_ = 0;
|
| - interval_number_packets_ = 0;
|
| - interval_wrap_count_ = 0;
|
| -}
|
| -
|
| -void ReceiverStats::UpdateStatistics(const RtpCastHeader& header) {
|
| - const uint16 new_seq_num = header.sequence_number;
|
| -
|
| - if (interval_number_packets_ == 0) {
|
| - // First packet in the interval.
|
| - interval_min_sequence_number_ = new_seq_num;
|
| - }
|
| - if (total_number_packets_ == 0) {
|
| - // First incoming packet.
|
| - min_sequence_number_ = new_seq_num;
|
| - max_sequence_number_ = new_seq_num;
|
| - }
|
| -
|
| - if (IsNewerSequenceNumber(new_seq_num, max_sequence_number_)) {
|
| - // Check wrap.
|
| - if (new_seq_num < max_sequence_number_) {
|
| - ++sequence_number_cycles_;
|
| - ++interval_wrap_count_;
|
| - }
|
| - max_sequence_number_ = new_seq_num;
|
| - }
|
| -
|
| - // Compute Jitter.
|
| - base::TimeTicks now = clock_->NowTicks();
|
| - base::TimeDelta delta_new_timestamp =
|
| - base::TimeDelta::FromMilliseconds(header.rtp_timestamp);
|
| - if (total_number_packets_ > 0) {
|
| - // Update jitter.
|
| - base::TimeDelta delta =
|
| - (now - last_received_packet_time_) -
|
| - ((delta_new_timestamp - last_received_timestamp_) / 90);
|
| - jitter_ += (delta - jitter_) / 16;
|
| - }
|
| - last_received_timestamp_ = delta_new_timestamp;
|
| - last_received_packet_time_ = now;
|
| -
|
| - // Increment counters.
|
| - ++total_number_packets_;
|
| - ++interval_number_packets_;
|
| -}
|
| -
|
| -} // namespace cast
|
| -} // namespace media
|
|
|