Line data Source code
1 : /*
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 :
11 : #ifndef WEBRTC_MODULES_AUDIO_CODING_AUDIO_NETWORK_ADAPTOR_BITRATE_CONTROLLER_H_
12 : #define WEBRTC_MODULES_AUDIO_CODING_AUDIO_NETWORK_ADAPTOR_BITRATE_CONTROLLER_H_
13 :
14 : #include "webrtc/base/constructormagic.h"
15 : #include "webrtc/modules/audio_coding/audio_network_adaptor/controller.h"
16 :
17 : namespace webrtc {
18 : namespace audio_network_adaptor {
19 :
20 0 : class BitrateController final : public Controller {
21 : public:
22 0 : struct Config {
23 : Config(int initial_bitrate_bps, int initial_frame_length_ms);
24 : ~Config();
25 : int initial_bitrate_bps;
26 : int initial_frame_length_ms;
27 : };
28 :
29 : explicit BitrateController(const Config& config);
30 :
31 : void MakeDecision(const NetworkMetrics& metrics,
32 : AudioNetworkAdaptor::EncoderRuntimeConfig* config) override;
33 :
34 : private:
35 : const Config config_;
36 : int bitrate_bps_;
37 : int frame_length_ms_;
38 : RTC_DISALLOW_COPY_AND_ASSIGN(BitrateController);
39 : };
40 :
41 : } // namespace audio_network_adaptor
42 : } // namespace webrtc
43 :
44 : #endif // WEBRTC_MODULES_AUDIO_CODING_AUDIO_NETWORK_ADAPTOR_BITRATE_CONTROLLER_H_
|