Add base class NetworkPredictor and NetworkPredictorFactory and wire up.

Add base class NetworkPredictor and NetworkPredictorFactory in /api, make it possible to inject customized NetworkPredictor in PeerConnectionFactory level. The NetworkPredictor object will be pass down to GoogCCNetworkControl and DelayBasedBwe.

Bug: webrtc:10492
Change-Id: Iceeadbe1c9388b11ce4ac01ee56554cb0bf64d04
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130201
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27543}
This commit is contained in:
Ying Wang
2019-04-10 13:48:24 +02:00
committed by Commit Bot
parent c21cf04618
commit 0810a7c25a
37 changed files with 294 additions and 96 deletions

View File

@ -41,6 +41,7 @@ rtc_static_library("remote_bitrate_estimator") {
deps = [
"../..:webrtc_common",
"../../api:network_state_predictor_api",
"../../api:rtp_headers",
"../../api/units:data_rate",
"../../api/units:timestamp",

View File

@ -14,6 +14,7 @@
#include <stdint.h>
#include "absl/types/optional.h"
#include "api/network_state_predictor.h"
#include "api/units/data_rate.h"
#define BWE_MAX(a, b) ((a) > (b) ? (a) : (b))
@ -38,13 +39,6 @@ enum BweNames {
kBweNamesMax = 4
};
enum class BandwidthUsage {
kBwNormal = 0,
kBwUnderusing = 1,
kBwOverusing = 2,
kLast
};
enum RateControlState { kRcHold, kRcIncrease, kRcDecrease };
struct RateControlInput {

View File

@ -38,7 +38,7 @@ SendSideBweSender::SendSideBweSender(int kbps,
absl::make_unique<AcknowledgedBitrateEstimator>(
&field_trial_config_)),
probe_bitrate_estimator_(new ProbeBitrateEstimator(nullptr)),
bwe_(new DelayBasedBwe(&field_trial_config_, nullptr)),
bwe_(new DelayBasedBwe(&field_trial_config_, nullptr, nullptr)),
feedback_observer_(bitrate_controller_.get()),
clock_(clock),
send_time_history_(10000),