blob: 77654bc40169376e6791d4dc5b35d94bfad11a2c [file] [log] [blame]
Niels Möller0c4f7be2018-05-07 14:01:37 +02001/*
2 * Copyright (c) 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
11#ifndef API_TRANSPORT_BITRATE_SETTINGS_H_
12#define API_TRANSPORT_BITRATE_SETTINGS_H_
13
Danil Chapovalov0bc58cf2018-06-21 13:32:56 +020014#include "absl/types/optional.h"
Niels Möller0c4f7be2018-05-07 14:01:37 +020015
16namespace webrtc {
17
18// Configuration of send bitrate. The |start_bitrate_bps| value is
19// used for multiple purposes, both as a prior in the bandwidth
20// estimator, and for initial configuration of the encoder. We may
21// want to create separate apis for those, and use a smaller struct
22// with only the min and max constraints.
23struct BitrateSettings {
24 BitrateSettings();
25 ~BitrateSettings();
26 BitrateSettings(const BitrateSettings&);
27 // 0 <= min <= start <= max should hold for set parameters.
Danil Chapovalov0bc58cf2018-06-21 13:32:56 +020028 absl::optional<int> min_bitrate_bps;
29 absl::optional<int> start_bitrate_bps;
30 absl::optional<int> max_bitrate_bps;
Niels Möller0c4f7be2018-05-07 14:01:37 +020031};
32
33} // namespace webrtc
34
35#endif // API_TRANSPORT_BITRATE_SETTINGS_H_