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 326 matching lines...) Loading... |
337 RTC_HISTOGRAMS_COUNTS_10000( | 337 RTC_HISTOGRAMS_COUNTS_10000( |
338 kIndex, uma_prefix_ + "RetransmittedBitrateSentInKbps", | 338 kIndex, uma_prefix_ + "RetransmittedBitrateSentInKbps", |
339 static_cast<int>(rtp_rtx.retransmitted.TotalBytes() * 8 / | 339 static_cast<int>(rtp_rtx.retransmitted.TotalBytes() * 8 / |
340 elapsed_sec / 1000)); | 340 elapsed_sec / 1000)); |
341 if (!rtp_config.rtx.ssrcs.empty()) { | 341 if (!rtp_config.rtx.ssrcs.empty()) { |
342 RTC_HISTOGRAMS_COUNTS_10000( | 342 RTC_HISTOGRAMS_COUNTS_10000( |
343 kIndex, uma_prefix_ + "RtxBitrateSentInKbps", | 343 kIndex, uma_prefix_ + "RtxBitrateSentInKbps", |
344 static_cast<int>(rtx.transmitted.TotalBytes() * 8 / elapsed_sec / | 344 static_cast<int>(rtx.transmitted.TotalBytes() * 8 / elapsed_sec / |
345 1000)); | 345 1000)); |
346 } | 346 } |
347 if (rtp_config.ulpfec.red_payload_type != -1) { | 347 if (rtp_config.flexfec.flexfec_payload_type != -1 || |
| 348 rtp_config.ulpfec.red_payload_type != -1) { |
348 RTC_HISTOGRAMS_COUNTS_10000(kIndex, | 349 RTC_HISTOGRAMS_COUNTS_10000(kIndex, |
349 uma_prefix_ + "FecBitrateSentInKbps", | 350 uma_prefix_ + "FecBitrateSentInKbps", |
350 static_cast<int>(rtp_rtx.fec.TotalBytes() * | 351 static_cast<int>(rtp_rtx.fec.TotalBytes() * |
351 8 / elapsed_sec / 1000)); | 352 8 / elapsed_sec / 1000)); |
352 } | 353 } |
353 } | 354 } |
354 } | 355 } |
355 } | 356 } |
356 | 357 |
357 void SendStatisticsProxy::OnEncoderReconfigured( | 358 void SendStatisticsProxy::OnEncoderReconfigured( |
(...skipping 53 matching lines...) Loading... |
411 } | 412 } |
412 } | 413 } |
413 | 414 |
414 VideoSendStream::StreamStats* SendStatisticsProxy::GetStatsEntry( | 415 VideoSendStream::StreamStats* SendStatisticsProxy::GetStatsEntry( |
415 uint32_t ssrc) { | 416 uint32_t ssrc) { |
416 std::map<uint32_t, VideoSendStream::StreamStats>::iterator it = | 417 std::map<uint32_t, VideoSendStream::StreamStats>::iterator it = |
417 stats_.substreams.find(ssrc); | 418 stats_.substreams.find(ssrc); |
418 if (it != stats_.substreams.end()) | 419 if (it != stats_.substreams.end()) |
419 return &it->second; | 420 return &it->second; |
420 | 421 |
421 bool is_rtx = false; | 422 bool is_media = std::find(rtp_config_.ssrcs.begin(), rtp_config_.ssrcs.end(), |
422 if (std::find(rtp_config_.ssrcs.begin(), rtp_config_.ssrcs.end(), ssrc) == | 423 ssrc) != rtp_config_.ssrcs.end(); |
423 rtp_config_.ssrcs.end()) { | 424 bool is_flexfec = rtp_config_.flexfec.flexfec_payload_type != -1 && |
424 if (std::find(rtp_config_.rtx.ssrcs.begin(), rtp_config_.rtx.ssrcs.end(), | 425 ssrc == rtp_config_.flexfec.flexfec_ssrc; |
425 ssrc) == rtp_config_.rtx.ssrcs.end()) { | 426 bool is_rtx = |
426 return nullptr; | 427 std::find(rtp_config_.rtx.ssrcs.begin(), rtp_config_.rtx.ssrcs.end(), |
427 } | 428 ssrc) != rtp_config_.rtx.ssrcs.end(); |
428 is_rtx = true; | 429 if (!is_media && !is_flexfec && !is_rtx) |
429 } | 430 return nullptr; |
430 | 431 |
431 // Insert new entry and return ptr. | 432 // Insert new entry and return ptr. |
432 VideoSendStream::StreamStats* entry = &stats_.substreams[ssrc]; | 433 VideoSendStream::StreamStats* entry = &stats_.substreams[ssrc]; |
433 entry->is_rtx = is_rtx; | 434 entry->is_rtx = is_rtx; |
434 | 435 |
435 return entry; | 436 return entry; |
436 } | 437 } |
437 | 438 |
438 void SendStatisticsProxy::OnInactiveSsrc(uint32_t ssrc) { | 439 void SendStatisticsProxy::OnInactiveSsrc(uint32_t ssrc) { |
439 rtc::CritScope lock(&crit_); | 440 rtc::CritScope lock(&crit_); |
(...skipping 244 matching lines...) Loading... |
684 return Fraction(min_required_samples, 1000.0f); | 685 return Fraction(min_required_samples, 1000.0f); |
685 } | 686 } |
686 | 687 |
687 int SendStatisticsProxy::BoolSampleCounter::Fraction( | 688 int SendStatisticsProxy::BoolSampleCounter::Fraction( |
688 int min_required_samples, float multiplier) const { | 689 int min_required_samples, float multiplier) const { |
689 if (num_samples < min_required_samples || num_samples == 0) | 690 if (num_samples < min_required_samples || num_samples == 0) |
690 return -1; | 691 return -1; |
691 return static_cast<int>((sum * multiplier / num_samples) + 0.5f); | 692 return static_cast<int>((sum * multiplier / num_samples) + 0.5f); |
692 } | 693 } |
693 } // namespace webrtc | 694 } // namespace webrtc |
OLD | NEW |