Adds field trial to AudioPriorityBitrateAllocationStrategy.

Bug: webrtc:9718
Change-Id: I6419616c27c581e47fdb78ad6594496fad5cec76
Reviewed-on: https://webrtc-review.googlesource.com/c/106261
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25252}
This commit is contained in:
Sebastian Jansson
2018-10-18 12:26:46 +02:00
committed by Commit Bot
parent 65faede3b0
commit d28efe5186
3 changed files with 58 additions and 8 deletions

View File

@ -14,6 +14,8 @@
#include <string>
#include <vector>
#include "api/array_view.h"
#include "rtc_base/experiments/field_trial_parser.h"
#include "rtc_base/experiments/field_trial_units.h"
namespace rtc {
@ -75,7 +77,21 @@ class BitrateAllocationStrategy {
virtual ~BitrateAllocationStrategy() = default;
};
} // namespace rtc
namespace webrtc {
struct AudioPriorityConfig {
FieldTrialOptional<DataRate> min_rate;
FieldTrialOptional<DataRate> max_rate;
FieldTrialOptional<DataRate> target_rate;
AudioPriorityConfig();
AudioPriorityConfig(const AudioPriorityConfig&);
AudioPriorityConfig& operator=(const AudioPriorityConfig&) = default;
~AudioPriorityConfig();
};
} // namespace webrtc
namespace rtc {
// Simple allocation strategy giving priority to audio until
// sufficient_audio_bitrate is reached. Bitrate is distributed evenly between
// the tracks after sufficient_audio_bitrate is reached. This implementation
@ -90,6 +106,7 @@ class AudioPriorityBitrateAllocationStrategy
const ArrayView<const TrackConfig*> track_configs) override;
private:
webrtc::AudioPriorityConfig config_;
std::string audio_track_id_;
uint32_t sufficient_audio_bitrate_;
};