blob: 597b6259a4ae221ea84b544ee88798aafc8a08c3 [file] [log] [blame]
Erik Språng08127a92016-11-16 16:41:30 +01001/*
2 * Copyright (c) 2016 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
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020011#ifndef COMMON_VIDEO_INCLUDE_VIDEO_BITRATE_ALLOCATOR_H_
12#define COMMON_VIDEO_INCLUDE_VIDEO_BITRATE_ALLOCATOR_H_
Erik Språng08127a92016-11-16 16:41:30 +010013
Mirko Bonadei71207422017-09-15 13:58:09 +020014#include "common_types.h" // NOLINT(build/include)
Erik Språng08127a92016-11-16 16:41:30 +010015
16namespace webrtc {
17
18class VideoBitrateAllocator {
19 public:
20 VideoBitrateAllocator() {}
21 virtual ~VideoBitrateAllocator() {}
22
23 virtual BitrateAllocation GetAllocation(uint32_t total_bitrate,
24 uint32_t framerate) = 0;
25 virtual uint32_t GetPreferredBitrateBps(uint32_t framerate) = 0;
26};
27
sprang1a646ee2016-12-01 06:34:11 -080028class VideoBitrateAllocationObserver {
29 public:
30 VideoBitrateAllocationObserver() {}
31 virtual ~VideoBitrateAllocationObserver() {}
32
33 virtual void OnBitrateAllocationUpdated(
34 const BitrateAllocation& allocation) = 0;
35};
36
Erik Språng08127a92016-11-16 16:41:30 +010037} // namespace webrtc
38
Mirko Bonadei92ea95e2017-09-15 06:47:31 +020039#endif // COMMON_VIDEO_INCLUDE_VIDEO_BITRATE_ALLOCATOR_H_