Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
| 5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
| 6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 70 if (qp != -1) | 70 if (qp != -1) |
| 71 RTC_LOGGED_HISTOGRAM_COUNTS_200("WebRTC.Video.Decoded.Vp8.Qp", qp); | 71 RTC_LOGGED_HISTOGRAM_COUNTS_200("WebRTC.Video.Decoded.Vp8.Qp", qp); |
| 72 | 72 |
| 73 // TODO(asapersson): DecoderTiming() is call periodically (each 1000ms) and | 73 // TODO(asapersson): DecoderTiming() is call periodically (each 1000ms) and |
| 74 // not per frame. Change decode time to include every frame. | 74 // not per frame. Change decode time to include every frame. |
| 75 const int kMinRequiredDecodeSamples = 5; | 75 const int kMinRequiredDecodeSamples = 5; |
| 76 int decode_ms = decode_time_counter_.Avg(kMinRequiredDecodeSamples); | 76 int decode_ms = decode_time_counter_.Avg(kMinRequiredDecodeSamples); |
| 77 if (decode_ms != -1) | 77 if (decode_ms != -1) |
| 78 RTC_LOGGED_HISTOGRAM_COUNTS_1000("WebRTC.Video.DecodeTimeInMs", decode_ms); | 78 RTC_LOGGED_HISTOGRAM_COUNTS_1000("WebRTC.Video.DecodeTimeInMs", decode_ms); |
| 79 | 79 |
| 80 int jb_delay_ms = jitter_buffer_delay_counter_.Avg(kMinRequiredDecodeSamples); | |
| 81 if (jb_delay_ms != -1) { | |
| 82 RTC_LOGGED_HISTOGRAM_COUNTS_10000("WebRTC.Video.JitterBufferDelayInMs", | |
| 83 jb_delay_ms); | |
| 84 } | |
| 85 int target_delay_ms = target_delay_counter_.Avg(kMinRequiredDecodeSamples); | |
|
stefan-webrtc
2016/04/26 08:19:26
We also have "current delay ms" which refers to th
åsapersson
2016/04/26 10:23:58
Ok, added current delay.
| |
| 86 if (target_delay_ms != -1) { | |
| 87 RTC_LOGGED_HISTOGRAM_COUNTS_10000("WebRTC.Video.TargetDelayInMs", | |
| 88 target_delay_ms); | |
| 89 } | |
| 90 | |
| 80 int delay_ms = delay_counter_.Avg(kMinRequiredDecodeSamples); | 91 int delay_ms = delay_counter_.Avg(kMinRequiredDecodeSamples); |
| 81 if (delay_ms != -1) | 92 if (delay_ms != -1) |
| 82 RTC_LOGGED_HISTOGRAM_COUNTS_10000("WebRTC.Video.OnewayDelayInMs", delay_ms); | 93 RTC_LOGGED_HISTOGRAM_COUNTS_10000("WebRTC.Video.OnewayDelayInMs", delay_ms); |
| 83 | 94 |
| 84 StreamDataCounters rtp = stats_.rtp_stats; | 95 StreamDataCounters rtp = stats_.rtp_stats; |
| 85 StreamDataCounters rtx; | 96 StreamDataCounters rtx; |
| 86 for (auto it : rtx_stats_) | 97 for (auto it : rtx_stats_) |
| 87 rtx.Add(it.second); | 98 rtx.Add(it.second); |
| 88 StreamDataCounters rtp_rtx = rtp; | 99 StreamDataCounters rtp_rtx = rtp; |
| 89 rtp_rtx.Add(rtx); | 100 rtp_rtx.Add(rtx); |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 163 int64_t rtt_ms) { | 174 int64_t rtt_ms) { |
| 164 rtc::CritScope lock(&crit_); | 175 rtc::CritScope lock(&crit_); |
| 165 stats_.decode_ms = decode_ms; | 176 stats_.decode_ms = decode_ms; |
| 166 stats_.max_decode_ms = max_decode_ms; | 177 stats_.max_decode_ms = max_decode_ms; |
| 167 stats_.current_delay_ms = current_delay_ms; | 178 stats_.current_delay_ms = current_delay_ms; |
| 168 stats_.target_delay_ms = target_delay_ms; | 179 stats_.target_delay_ms = target_delay_ms; |
| 169 stats_.jitter_buffer_ms = jitter_buffer_ms; | 180 stats_.jitter_buffer_ms = jitter_buffer_ms; |
| 170 stats_.min_playout_delay_ms = min_playout_delay_ms; | 181 stats_.min_playout_delay_ms = min_playout_delay_ms; |
| 171 stats_.render_delay_ms = render_delay_ms; | 182 stats_.render_delay_ms = render_delay_ms; |
| 172 decode_time_counter_.Add(decode_ms); | 183 decode_time_counter_.Add(decode_ms); |
| 184 jitter_buffer_delay_counter_.Add(jitter_buffer_ms); | |
| 185 target_delay_counter_.Add(target_delay_ms); | |
|
åsapersson
2016/04/20 10:48:47
Let target delay stats replace metric below and th
åsapersson
2016/04/26 10:23:58
Reland CL above?
stefan-webrtc
2016/04/26 10:39:42
Sgtm if Magnus agrees.
| |
| 173 // Network delay (rtt/2) + target_delay_ms (jitter delay + decode time + | 186 // Network delay (rtt/2) + target_delay_ms (jitter delay + decode time + |
| 174 // render delay). | 187 // render delay). |
| 175 delay_counter_.Add(target_delay_ms + rtt_ms / 2); | 188 delay_counter_.Add(target_delay_ms + rtt_ms / 2); |
| 176 } | 189 } |
| 177 | 190 |
| 178 void ReceiveStatisticsProxy::RtcpPacketTypesCounterUpdated( | 191 void ReceiveStatisticsProxy::RtcpPacketTypesCounterUpdated( |
| 179 uint32_t ssrc, | 192 uint32_t ssrc, |
| 180 const RtcpPacketTypeCounter& packet_counter) { | 193 const RtcpPacketTypeCounter& packet_counter) { |
| 181 rtc::CritScope lock(&crit_); | 194 rtc::CritScope lock(&crit_); |
| 182 if (stats_.ssrc != ssrc) | 195 if (stats_.ssrc != ssrc) |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 280 ++num_samples; | 293 ++num_samples; |
| 281 } | 294 } |
| 282 | 295 |
| 283 int ReceiveStatisticsProxy::SampleCounter::Avg(int min_required_samples) const { | 296 int ReceiveStatisticsProxy::SampleCounter::Avg(int min_required_samples) const { |
| 284 if (num_samples < min_required_samples || num_samples == 0) | 297 if (num_samples < min_required_samples || num_samples == 0) |
| 285 return -1; | 298 return -1; |
| 286 return sum / num_samples; | 299 return sum / num_samples; |
| 287 } | 300 } |
| 288 | 301 |
| 289 } // namespace webrtc | 302 } // namespace webrtc |
| OLD | NEW |