blob: 2d7f21bc1e941ca49bf85d0c7d36ff3630a16517 [file] [log] [blame]
Sebastian Jansson6736df12018-11-21 19:18:39 +01001/*
2 * Copyright 2018 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#ifndef API_CALL_BITRATE_ALLOCATION_H_
11#define API_CALL_BITRATE_ALLOCATION_H_
12
13#include "api/units/data_rate.h"
14#include "api/units/time_delta.h"
15
16namespace webrtc {
17
18// BitrateAllocationUpdate provides information to allocated streams about their
19// bitrate allocation. It originates from the BitrateAllocater class and is
20// propagated from there.
21struct BitrateAllocationUpdate {
22 // The allocated target bitrate. Media streams should produce this amount of
23 // data. (Note that this may include packet overhead depending on
24 // configuration.)
25 DataRate target_bitrate = DataRate::Zero();
26 // The allocated part of the estimated link capacity. This is more stable than
27 // the target as it is based on the underlying link capacity estimate. This
28 // should be used to change encoder configuration when the cost of change is
29 // high.
30 DataRate link_capacity = DataRate::Zero();
31 // Predicted packet loss ratio.
32 double packet_loss_ratio = 0;
33 // Predicted round trip time.
34 TimeDelta round_trip_time = TimeDelta::PlusInfinity();
35 // |bwe_period| is deprecated, use the link capacity allocation instead.
36 TimeDelta bwe_period = TimeDelta::PlusInfinity();
37};
38
39} // namespace webrtc
40
41#endif // API_CALL_BITRATE_ALLOCATION_H_