Configuration in constructor of Goog CC.
Adding configuration of new GoogCcNetworkController to initializer, this makes sure that it is properly initialized from the start. To achieve this SendSideCongestionController waits until it has received the necessary information to construct the object. This information should be provided in the constructor for SendSideCongestionController in the future. Bug: webrtc:8415 Change-Id: Icc09b8b246bae9f9704b80855fc4caa3450b34fc Reviewed-on: https://webrtc-review.googlesource.com/58099 Reviewed-by: Stefan Holmer <stefan@webrtc.org> Reviewed-by: Niels Moller <nisse@webrtc.org> Commit-Queue: Sebastian Jansson <srte@webrtc.org> Cr-Commit-Position: refs/heads/master@{#22404}
This commit is contained in:
committed by
Commit Bot
parent
e63afff364
commit
efbcfb13a7
@ -41,6 +41,21 @@ class NetworkControllerObserver : public TargetTransferRateObserver {
|
||||
virtual void OnProbeClusterConfig(ProbeClusterConfig) = 0;
|
||||
};
|
||||
|
||||
// Configuration sent to factory create function. The parameters here are
|
||||
// optional to use for a network controller implementation.
|
||||
struct NetworkControllerConfig {
|
||||
// The initial constraints to start with, these can be changed at any later
|
||||
// time by calls to OnTargetRateConstraints.
|
||||
TargetRateConstraints constraints;
|
||||
// Initial stream specific configuration, these are changed at any later time
|
||||
// by calls to OnStreamsConfig.
|
||||
StreamsConfig stream_based_config;
|
||||
// The initial bandwidth estimate to base target rate on. This should be used
|
||||
// as the basis for initial OnTargetTransferRate and OnPacerConfig callbacks.
|
||||
// Note that starting rate is only provided on construction.
|
||||
DataRate starting_bandwidth;
|
||||
};
|
||||
|
||||
// NetworkControllerInterface is implemented by network controllers. A network
|
||||
// controller is a class that uses information about network state and traffic
|
||||
// to estimate network parameters such as round trip time and bandwidth. Network
|
||||
@ -82,7 +97,8 @@ class NetworkControllerFactoryInterface {
|
||||
// Used to create a new network controller, requires an observer to be
|
||||
// provided to handle callbacks.
|
||||
virtual NetworkControllerInterface::uptr Create(
|
||||
NetworkControllerObserver* observer) = 0;
|
||||
NetworkControllerObserver* observer,
|
||||
NetworkControllerConfig config) = 0;
|
||||
// Returns the interval by which the network controller expects
|
||||
// OnProcessInterval calls.
|
||||
virtual TimeDelta GetProcessInterval() const = 0;
|
||||
|
||||
@ -38,7 +38,6 @@ struct StreamsConfig {
|
||||
|
||||
struct TargetRateConstraints {
|
||||
Timestamp at_time;
|
||||
DataRate starting_rate;
|
||||
DataRate min_data_rate;
|
||||
DataRate max_data_rate;
|
||||
};
|
||||
@ -55,6 +54,7 @@ struct NetworkRouteChange {
|
||||
// The TargetRateConstraints are set here so they can be changed synchronously
|
||||
// when network route changes.
|
||||
TargetRateConstraints constraints;
|
||||
DataRate starting_rate;
|
||||
};
|
||||
|
||||
struct SentPacket {
|
||||
|
||||
Reference in New Issue
Block a user