NetEq fix for repeated audio issue.

This CL implements a fix behind a field trial for a NetEq issue. NetEq restarts audio too quickly after a buffer underrun, which can quickly lead to another underrun in some circumstances. The fix changes NetEq's behavior to wait with restarting playback until sufficient audio is buffered.

Bug: webrtc:9289
Change-Id: I5968c9478ce8d84caf77f00b8d0a39156b47fc8d
Reviewed-on: https://webrtc-review.googlesource.com/77423
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23347}
This commit is contained in:
Ivo Creusen
2018-05-22 13:21:01 +02:00
committed by Commit Bot
parent 169005d8c1
commit c7f09ad2e0
12 changed files with 62 additions and 10 deletions

View File

@ -36,6 +36,8 @@ class OpusFrame : public AudioDecoder::EncodedAudioFrame {
return (ret < 0) ? 0 : static_cast<size_t>(ret);
}
bool IsDtxPacket() const override { return payload_.size() <= 2; }
rtc::Optional<DecodeResult> Decode(
rtc::ArrayView<int16_t> decoded) const override {
AudioDecoder::SpeechType speech_type = AudioDecoder::kSpeech;