blob: 24530c975591d2d00fa952160d0ea81e05c002b2 [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.
Florent Castelli4e615d52019-08-22 16:09:06 +020030 DataRate stable_target_bitrate = DataRate::Zero();
Sebastian Jansson6736df12018-11-21 19:18:39 +010031 // Predicted packet loss ratio.
32 double packet_loss_ratio = 0;
33 // Predicted round trip time.
34 TimeDelta round_trip_time = TimeDelta::PlusInfinity();
Florent Castelli4e615d52019-08-22 16:09:06 +020035 // |bwe_period| is deprecated, use |stable_target_bitrate| allocation instead.
Sebastian Jansson6736df12018-11-21 19:18:39 +010036 TimeDelta bwe_period = TimeDelta::PlusInfinity();
37};
38
39} // namespace webrtc
40
41#endif // API_CALL_BITRATE_ALLOCATION_H_