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

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: Speculative workaround fix for win8_chromium_ng compile error. Created 4 years, 11 months 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
« no previous file with comments | « media/cast/net/rtp/receiver_stats.h ('k') | media/cast/net/rtp/receiver_stats_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 static_cast<uint32_t>(std::abs(jitter_.InMillisecondsRoundedUp())); 67 static_cast<uint32_t>(std::abs(jitter_.InMillisecondsRoundedUp()));
68 68
69 // Reset interval values. 69 // Reset interval values.
70 interval_min_sequence_number_ = 0; 70 interval_min_sequence_number_ = 0;
71 interval_number_packets_ = 0; 71 interval_number_packets_ = 0;
72 interval_wrap_count_ = 0; 72 interval_wrap_count_ = 0;
73 73
74 return ret; 74 return ret;
75 } 75 }
76 76
77 void ReceiverStats::UpdateStatistics(const RtpCastHeader& header) { 77 void ReceiverStats::UpdateStatistics(const RtpCastHeader& header,
78 int rtp_timebase) {
78 const uint16_t new_seq_num = header.sequence_number; 79 const uint16_t new_seq_num = header.sequence_number;
79 80
80 if (interval_number_packets_ == 0) { 81 if (interval_number_packets_ == 0) {
81 // First packet in the interval. 82 // First packet in the interval.
82 interval_min_sequence_number_ = new_seq_num; 83 interval_min_sequence_number_ = new_seq_num;
83 } 84 }
84 if (total_number_packets_ == 0) { 85 if (total_number_packets_ == 0) {
85 // First incoming packet. 86 // First incoming packet.
86 min_sequence_number_ = new_seq_num; 87 min_sequence_number_ = new_seq_num;
87 max_sequence_number_ = new_seq_num; 88 max_sequence_number_ = new_seq_num;
88 } 89 }
89 90
90 if (IsNewerSequenceNumber(new_seq_num, max_sequence_number_)) { 91 if (IsNewerSequenceNumber(new_seq_num, max_sequence_number_)) {
91 // Check wrap. 92 // Check wrap.
92 if (new_seq_num < max_sequence_number_) { 93 if (new_seq_num < max_sequence_number_) {
93 ++sequence_number_cycles_; 94 ++sequence_number_cycles_;
94 ++interval_wrap_count_; 95 ++interval_wrap_count_;
95 } 96 }
96 max_sequence_number_ = new_seq_num; 97 max_sequence_number_ = new_seq_num;
97 } 98 }
98 99
99 // Compute Jitter. 100 // Compute Jitter.
100 base::TimeTicks now = clock_->NowTicks(); 101 const base::TimeTicks now = clock_->NowTicks();
101 base::TimeDelta delta_new_timestamp =
102 base::TimeDelta::FromMilliseconds(header.rtp_timestamp);
103 if (total_number_packets_ > 0) { 102 if (total_number_packets_ > 0) {
103 const base::TimeDelta packet_time_difference =
104 now - last_received_packet_time_;
105 const base::TimeDelta media_time_differerence =
106 (header.rtp_timestamp - last_received_rtp_timestamp_)
107 .ToTimeDelta(rtp_timebase);
108 const base::TimeDelta delta =
109 packet_time_difference - media_time_differerence;
104 // Update jitter. 110 // Update jitter.
105 base::TimeDelta delta =
106 (now - last_received_packet_time_) -
107 ((delta_new_timestamp - last_received_timestamp_) / 90);
108 jitter_ += (delta - jitter_) / 16; 111 jitter_ += (delta - jitter_) / 16;
109 } 112 }
110 last_received_timestamp_ = delta_new_timestamp; 113 last_received_rtp_timestamp_ = header.rtp_timestamp;
111 last_received_packet_time_ = now; 114 last_received_packet_time_ = now;
112 115
113 // Increment counters. 116 // Increment counters.
114 ++total_number_packets_; 117 ++total_number_packets_;
115 ++interval_number_packets_; 118 ++interval_number_packets_;
116 } 119 }
117 120
118 } // namespace cast 121 } // namespace cast
119 } // namespace media 122 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/net/rtp/receiver_stats.h ('k') | media/cast/net/rtp/receiver_stats_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698