Add field trial and test for NetEq extra delay

Adding field trial WebRTC-Audio-NetEqExtraDelay with a parameter value
to set the extra delay in NetEq. This overrides the
extra_output_delay_ms parameter in NetEq::Config.

Bug: b/156734419
Change-Id: Iae7d439fafa3059494249959ac13a02de63d6b7a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176858
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31493}
This commit is contained in:
Henrik Lundin
2020-06-10 18:19:27 +02:00
committed by Commit Bot
parent 9276e2c39b
commit f7cba9f132
3 changed files with 55 additions and 6 deletions

View File

@ -403,14 +403,14 @@ class NetEqImpl : public webrtc::NetEq {
rtc::BufferT<int16_t> concealment_audio_ RTC_GUARDED_BY(crit_sect_);
const bool enable_rtx_handling_ RTC_GUARDED_BY(crit_sect_);
// Data members used for adding extra delay to the output of NetEq.
// The delay in ms (which is 10 times the number of elements in
// output_delay_chain_).
const int output_delay_chain_ms_ RTC_GUARDED_BY(crit_sect_);
// Vector of AudioFrames which contains the delayed audio. Accessed as a
// circular buffer.
std::vector<AudioFrame> output_delay_chain_ RTC_GUARDED_BY(crit_sect_);
// Index into output_delay_chain_.
size_t output_delay_chain_ix_ RTC_GUARDED_BY(crit_sect_) = 0;
// The delay in ms (which is 10 times the number of elements in
// output_delay_chain_).
const int output_delay_chain_ms_ RTC_GUARDED_BY(crit_sect_);
// Did output_delay_chain_ get populated yet?
bool output_delay_chain_empty_ RTC_GUARDED_BY(crit_sect_) = true;
// Contains the sample rate of the AudioFrame last emitted from the delay