| OLD | NEW | 
|   1 /* |   1 /* | 
|   2  *  Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. |   2  *  Copyright (c) 2016 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 13 matching lines...) Expand all  Loading... | 
|  24 // This class controls initiation of probing to estimate initial channel |  24 // This class controls initiation of probing to estimate initial channel | 
|  25 // capacity. There is also support for probing during a session when max |  25 // capacity. There is also support for probing during a session when max | 
|  26 // bitrate is adjusted by an application. |  26 // bitrate is adjusted by an application. | 
|  27 class ProbeController { |  27 class ProbeController { | 
|  28  public: |  28  public: | 
|  29   ProbeController(PacedSender* pacer, Clock* clock); |  29   ProbeController(PacedSender* pacer, Clock* clock); | 
|  30  |  30  | 
|  31   void SetBitrates(int min_bitrate_bps, |  31   void SetBitrates(int min_bitrate_bps, | 
|  32                    int start_bitrate_bps, |  32                    int start_bitrate_bps, | 
|  33                    int max_bitrate_bps); |  33                    int max_bitrate_bps); | 
|  34  |  | 
|  35   void OnNetworkStateChanged(NetworkState state); |  | 
|  36  |  | 
|  37   void SetEstimatedBitrate(int bitrate_bps); |  34   void SetEstimatedBitrate(int bitrate_bps); | 
|  38  |  35  | 
|  39  private: |  36  private: | 
 |  37   void InitiateProbing(std::initializer_list<int> bitrates_to_probe, | 
 |  38                        int min_bitrate_to_probe_further_bps) | 
 |  39       EXCLUSIVE_LOCKS_REQUIRED(critsect_); | 
|  40   enum class State { |  40   enum class State { | 
|  41     // Initial state where no probing has been triggered yet. |  41     // Initial state where no probing has been triggered yet. | 
|  42     kInit, |  42     kInit, | 
|  43     // Waiting for probing results to continue further probing. |  43     // Waiting for probing results to continue further probing. | 
|  44     kWaitingForProbingResult, |  44     kWaitingForProbingResult, | 
|  45     // Probing is complete. |  45     // Probing is complete. | 
|  46     kProbingComplete, |  46     kProbingComplete, | 
|  47   }; |  47   }; | 
|  48  |  | 
|  49   void InitiateExponentialProbing() EXCLUSIVE_LOCKS_REQUIRED(critsect_); |  | 
|  50   void InitiateProbing(std::initializer_list<int> bitrates_to_probe, |  | 
|  51                        int min_bitrate_to_probe_further_bps) |  | 
|  52       EXCLUSIVE_LOCKS_REQUIRED(critsect_); |  | 
|  53  |  | 
|  54   rtc::CriticalSection critsect_; |  48   rtc::CriticalSection critsect_; | 
|  55   PacedSender* const pacer_; |  49   PacedSender* const pacer_; | 
|  56   Clock* const clock_; |  50   Clock* const clock_; | 
|  57   NetworkState network_state_ GUARDED_BY(critsect_); |  | 
|  58   State state_ GUARDED_BY(critsect_); |  51   State state_ GUARDED_BY(critsect_); | 
|  59   int min_bitrate_to_probe_further_bps_ GUARDED_BY(critsect_); |  52   int min_bitrate_to_probe_further_bps_ GUARDED_BY(critsect_); | 
|  60   int64_t time_last_probing_initiated_ms_ GUARDED_BY(critsect_); |  53   int64_t time_last_probing_initiated_ms_ GUARDED_BY(critsect_); | 
|  61   int estimated_bitrate_bps_ GUARDED_BY(critsect_); |  54   int estimated_bitrate_bps_ GUARDED_BY(critsect_); | 
|  62   int start_bitrate_bps_ GUARDED_BY(critsect_); |  | 
|  63   int max_bitrate_bps_ GUARDED_BY(critsect_); |  55   int max_bitrate_bps_ GUARDED_BY(critsect_); | 
|  64   int64_t last_alr_probing_time_ GUARDED_BY(critsect_); |  56   int64_t last_alr_probing_time_ GUARDED_BY(critsect_); | 
|  65  |  57  | 
|  66   RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(ProbeController); |  58   RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(ProbeController); | 
|  67 }; |  59 }; | 
|  68  |  60  | 
|  69 }  // namespace webrtc |  61 }  // namespace webrtc | 
|  70  |  62  | 
|  71 #endif  // WEBRTC_MODULES_CONGESTION_CONTROLLER_PROBE_CONTROLLER_H_ |  63 #endif  // WEBRTC_MODULES_CONGESTION_CONTROLLER_PROBE_CONTROLLER_H_ | 
| OLD | NEW |