Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(511)

Side by Side Diff: media/cast/net/rtp/receiver_stats.cc

Issue 1515433002: Replace uses of raw uint32's with a type-checked RtpTimeTicks data type. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/cast/net/rtp/receiver_stats.h" 5 #include "media/cast/net/rtp/receiver_stats.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "media/cast/cast_defines.h" 8 #include "media/cast/cast_defines.h"
9 #include "media/cast/net/rtp/rtp_defines.h" 9 #include "media/cast/net/rtp/rtp_defines.h"
10 10
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 ret.jitter = static_cast<uint32>(std::abs(jitter_.InMillisecondsRoundedUp())); 66 ret.jitter = static_cast<uint32>(std::abs(jitter_.InMillisecondsRoundedUp()));
67 67
68 // Reset interval values. 68 // Reset interval values.
69 interval_min_sequence_number_ = 0; 69 interval_min_sequence_number_ = 0;
70 interval_number_packets_ = 0; 70 interval_number_packets_ = 0;
71 interval_wrap_count_ = 0; 71 interval_wrap_count_ = 0;
72 72
73 return ret; 73 return ret;
74 } 74 }
75 75
76 void ReceiverStats::UpdateStatistics(const RtpCastHeader& header) { 76 void ReceiverStats::UpdateStatistics(const RtpCastHeader& header,
77 int rtp_timebase) {
77 const uint16 new_seq_num = header.sequence_number; 78 const uint16 new_seq_num = header.sequence_number;
78 79
79 if (interval_number_packets_ == 0) { 80 if (interval_number_packets_ == 0) {
80 // First packet in the interval. 81 // First packet in the interval.
81 interval_min_sequence_number_ = new_seq_num; 82 interval_min_sequence_number_ = new_seq_num;
82 } 83 }
83 if (total_number_packets_ == 0) { 84 if (total_number_packets_ == 0) {
84 // First incoming packet. 85 // First incoming packet.
85 min_sequence_number_ = new_seq_num; 86 min_sequence_number_ = new_seq_num;
86 max_sequence_number_ = new_seq_num; 87 max_sequence_number_ = new_seq_num;
87 } 88 }
88 89
89 if (IsNewerSequenceNumber(new_seq_num, max_sequence_number_)) { 90 if (IsNewerSequenceNumber(new_seq_num, max_sequence_number_)) {
90 // Check wrap. 91 // Check wrap.
91 if (new_seq_num < max_sequence_number_) { 92 if (new_seq_num < max_sequence_number_) {
92 ++sequence_number_cycles_; 93 ++sequence_number_cycles_;
93 ++interval_wrap_count_; 94 ++interval_wrap_count_;
94 } 95 }
95 max_sequence_number_ = new_seq_num; 96 max_sequence_number_ = new_seq_num;
96 } 97 }
97 98
98 // Compute Jitter. 99 // Compute Jitter.
99 base::TimeTicks now = clock_->NowTicks(); 100 const base::TimeTicks now = clock_->NowTicks();
100 base::TimeDelta delta_new_timestamp =
101 base::TimeDelta::FromMilliseconds(header.rtp_timestamp);
102 if (total_number_packets_ > 0) { 101 if (total_number_packets_ > 0) {
102 const base::TimeDelta packet_time_difference =
103 now - last_received_packet_time_;
104 const base::TimeDelta media_time_differerence =
105 (header.rtp_timestamp - last_received_rtp_timestamp_)
106 .ToTimeDelta(rtp_timebase);
107 const base::TimeDelta delta =
108 packet_time_difference - media_time_differerence;
103 // Update jitter. 109 // Update jitter.
104 base::TimeDelta delta =
105 (now - last_received_packet_time_) -
106 ((delta_new_timestamp - last_received_timestamp_) / 90);
107 jitter_ += (delta - jitter_) / 16; 110 jitter_ += (delta - jitter_) / 16;
108 } 111 }
109 last_received_timestamp_ = delta_new_timestamp; 112 last_received_rtp_timestamp_ = header.rtp_timestamp;
110 last_received_packet_time_ = now; 113 last_received_packet_time_ = now;
111 114
112 // Increment counters. 115 // Increment counters.
113 ++total_number_packets_; 116 ++total_number_packets_;
114 ++interval_number_packets_; 117 ++interval_number_packets_;
115 } 118 }
116 119
117 } // namespace cast 120 } // namespace cast
118 } // namespace media 121 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698