LCOV - code coverage report
Current view: top level - media/webrtc/trunk/webrtc/modules/congestion_controller - probing_interval_estimator.cc (source / functions) Hit Total Coverage
Test: output.info Lines: 0 13 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 3 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  *  Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
       3             :  *
       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
       6             :  *  tree. An additional intellectual property rights grant can be found
       7             :  *  in the file PATENTS.  All contributing project authors may
       8             :  *  be found in the AUTHORS file in the root of the source tree.
       9             :  */
      10             : 
      11             : #include "webrtc/modules/congestion_controller/probing_interval_estimator.h"
      12             : 
      13             : #include <algorithm>
      14             : #include <utility>
      15             : 
      16             : namespace webrtc {
      17             : 
      18             : namespace {
      19             : constexpr int kMinIntervalMs = 2000;
      20             : constexpr int kDefaultIntervalMs = 3000;
      21             : constexpr int kMaxIntervalMs = 50000;
      22             : }
      23             : 
      24           0 : ProbingIntervalEstimator::ProbingIntervalEstimator(
      25           0 :     const AimdRateControl* aimd_rate_control)
      26             :     : ProbingIntervalEstimator(kMinIntervalMs,
      27             :                                kMaxIntervalMs,
      28             :                                kDefaultIntervalMs,
      29           0 :                                aimd_rate_control) {}
      30             : 
      31           0 : ProbingIntervalEstimator::ProbingIntervalEstimator(
      32             :     int64_t min_interval_ms,
      33             :     int64_t max_interval_ms,
      34             :     int64_t default_interval_ms,
      35           0 :     const AimdRateControl* aimd_rate_control)
      36             :     : min_interval_ms_(min_interval_ms),
      37             :       max_interval_ms_(max_interval_ms),
      38             :       default_interval_ms_(default_interval_ms),
      39           0 :       aimd_rate_control_(aimd_rate_control) {}
      40             : 
      41           0 : int64_t ProbingIntervalEstimator::GetIntervalMs() const {
      42             :   rtc::Optional<int> bitrate_drop =
      43           0 :       aimd_rate_control_->GetLastBitrateDecreaseBps();
      44           0 :   int increase_rate = aimd_rate_control_->GetNearMaxIncreaseRateBps();
      45             : 
      46           0 :   if (!bitrate_drop || increase_rate <= 0)
      47           0 :     return default_interval_ms_;
      48             : 
      49             :   return std::min(
      50             :       max_interval_ms_,
      51           0 :       std::max(static_cast<int64_t>(1000 * (*bitrate_drop) / increase_rate),
      52           0 :                min_interval_ms_));
      53             : }
      54             : 
      55             : }  // namespace webrtc

Generated by: LCOV version 1.13