Moves BitrateAllocationUpdate to api.

This way it can be forwarded to lower layers. This makes it easier to
add information without having to change signatures of intermediate
classes. This will be used in a later CL to use the link capacity in the
Opus decoder.

Bug: webrtc:9718
Change-Id: I4a4c9d104fedb0e4a0bb7f14d169475940edbf7e
Reviewed-on: https://webrtc-review.googlesource.com/c/111508
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25738}
This commit is contained in:
Sebastian Jansson 2018-11-21 19:18:39 +01:00 committed by Commit Bot
parent 13e5903626
commit 6736df1778
5 changed files with 56 additions and 9 deletions

View File

@ -273,6 +273,17 @@ rtc_source_set("transport_api") {
] ]
} }
rtc_source_set("bitrate_allocation") {
visibility = [ "*" ]
sources = [
"call/bitrate_allocation.h",
]
deps = [
"units:data_rate",
"units:time_delta",
]
}
rtc_source_set("simulated_network_api") { rtc_source_set("simulated_network_api") {
visibility = [ "*" ] visibility = [ "*" ]
sources = [ sources = [

View File

@ -0,0 +1,41 @@
/*
* Copyright 2018 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#ifndef API_CALL_BITRATE_ALLOCATION_H_
#define API_CALL_BITRATE_ALLOCATION_H_
#include "api/units/data_rate.h"
#include "api/units/time_delta.h"
namespace webrtc {
// BitrateAllocationUpdate provides information to allocated streams about their
// bitrate allocation. It originates from the BitrateAllocater class and is
// propagated from there.
struct BitrateAllocationUpdate {
// The allocated target bitrate. Media streams should produce this amount of
// data. (Note that this may include packet overhead depending on
// configuration.)
DataRate target_bitrate = DataRate::Zero();
// The allocated part of the estimated link capacity. This is more stable than
// the target as it is based on the underlying link capacity estimate. This
// should be used to change encoder configuration when the cost of change is
// high.
DataRate link_capacity = DataRate::Zero();
// Predicted packet loss ratio.
double packet_loss_ratio = 0;
// Predicted round trip time.
TimeDelta round_trip_time = TimeDelta::PlusInfinity();
// |bwe_period| is deprecated, use the link capacity allocation instead.
TimeDelta bwe_period = TimeDelta::PlusInfinity();
};
} // namespace webrtc
#endif // API_CALL_BITRATE_ALLOCATION_H_

View File

@ -164,6 +164,7 @@ rtc_source_set("bitrate_allocator") {
"bitrate_allocator.h", "bitrate_allocator.h",
] ]
deps = [ deps = [
"../api:bitrate_allocation",
"../api/units:data_rate", "../api/units:data_rate",
"../api/units:time_delta", "../api/units:time_delta",
"../modules/bitrate_controller", "../modules/bitrate_controller",

View File

@ -16,6 +16,8 @@
#include <memory> #include <memory>
#include <utility> #include <utility>
#include "api/units/data_rate.h"
#include "api/units/time_delta.h"
#include "modules/bitrate_controller/include/bitrate_controller.h" #include "modules/bitrate_controller/include/bitrate_controller.h"
#include "rtc_base/checks.h" #include "rtc_base/checks.h"
#include "rtc_base/logging.h" #include "rtc_base/logging.h"

View File

@ -19,8 +19,7 @@
#include <utility> #include <utility>
#include <vector> #include <vector>
#include "api/units/data_rate.h" #include "api/call/bitrate_allocation.h"
#include "api/units/time_delta.h"
#include "rtc_base/bitrateallocationstrategy.h" #include "rtc_base/bitrateallocationstrategy.h"
#include "rtc_base/sequenced_task_checker.h" #include "rtc_base/sequenced_task_checker.h"
@ -28,13 +27,6 @@ namespace webrtc {
class Clock; class Clock;
struct BitrateAllocationUpdate {
DataRate target_bitrate = DataRate::Zero();
DataRate link_capacity = DataRate::Zero();
double packet_loss_ratio = 0;
TimeDelta round_trip_time = TimeDelta::PlusInfinity();
TimeDelta bwe_period = TimeDelta::PlusInfinity();
};
// Used by all send streams with adaptive bitrate, to get the currently // Used by all send streams with adaptive bitrate, to get the currently
// allocated bitrate for the send stream. The current network properties are // allocated bitrate for the send stream. The current network properties are
// given at the same time, to let the send stream decide about possible loss // given at the same time, to let the send stream decide about possible loss