NetEq: Create an audio interruption metric

This CL adds a new metric to NetEq, which logs whenever a loss
concealment event has lasted longer than 150 ms (an "interruption").
The number of such events, as well as the sum length of them, is kept
in a SampleCounter, which can be queried at any time.

Any initial PLC at the beginning of a call, before the first packet is
decoded, is ignored.

Unit tests and piping to neteq_rtpplay are included.

Bug: webrtc:10549
Change-Id: I8a224a34254c47c74317617f420f6de997232d88
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132796
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27781}
This commit is contained in:
Henrik Lundin
2019-04-26 09:47:07 +02:00
committed by Commit Bot
parent 42fa30fdac
commit 2a8bd090a3
8 changed files with 164 additions and 0 deletions

View File

@ -324,12 +324,14 @@ void Expand::SetParametersForNormalAfterExpand() {
lag_index_direction_ = 0;
stop_muting_ = true; // Do not mute signal any more.
statistics_->LogDelayedPacketOutageEvent(expand_duration_samples_, fs_hz_);
statistics_->EndExpandEvent(fs_hz_);
}
void Expand::SetParametersForMergeAfterExpand() {
current_lag_index_ = -1; /* out of the 3 possible ones */
lag_index_direction_ = 1; /* make sure we get the "optimal" lag */
stop_muting_ = true;
statistics_->EndExpandEvent(fs_hz_);
}
bool Expand::Muted() const {