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_CONTROLLER_H_
12 : #define WEBRTC_MODULES_AUDIO_CODING_AUDIO_NETWORK_ADAPTOR_CONTROLLER_H_
13 :
14 : #include "webrtc/base/optional.h"
15 : #include "webrtc/modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor.h"
16 :
17 : namespace webrtc {
18 :
19 0 : class Controller {
20 : public:
21 0 : struct NetworkMetrics {
22 : NetworkMetrics();
23 : ~NetworkMetrics();
24 : rtc::Optional<int> uplink_bandwidth_bps;
25 : rtc::Optional<float> uplink_packet_loss_fraction;
26 : rtc::Optional<int> target_audio_bitrate_bps;
27 : rtc::Optional<int> rtt_ms;
28 : rtc::Optional<size_t> overhead_bytes_per_packet;
29 : };
30 :
31 0 : virtual ~Controller() = default;
32 :
33 : virtual void MakeDecision(
34 : const NetworkMetrics& metrics,
35 : AudioNetworkAdaptor::EncoderRuntimeConfig* config) = 0;
36 : };
37 :
38 : } // namespace webrtc
39 :
40 : #endif // WEBRTC_MODULES_AUDIO_CODING_AUDIO_NETWORK_ADAPTOR_CONTROLLER_H_
|