Add new UMA metric for NetEq target buffer delay
The UMA metric will log the same information that goes into the
googPreferredJitterBufferMs stat.
Bug: webrtc:8488
Change-Id: I4e4e1e362dd42377105d52d2c4cd49c1ecb1a90d
Reviewed-on: https://webrtc-review.googlesource.com/26740
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20923}
diff --git a/modules/audio_coding/acm2/acm_receiver.cc b/modules/audio_coding/acm2/acm_receiver.cc
index e9a14be..0d5dcae 100644
--- a/modules/audio_coding/acm2/acm_receiver.cc
+++ b/modules/audio_coding/acm2/acm_receiver.cc
@@ -300,6 +300,10 @@
return neteq_->FilteredCurrentDelayMs();
}
+int AcmReceiver::TargetDelayMs() const {
+ return neteq_->TargetDelayMs();
+}
+
int AcmReceiver::LastAudioCodec(CodecInst* codec) const {
rtc::CritScope lock(&crit_sect_);
if (!last_audio_decoder_) {
diff --git a/modules/audio_coding/acm2/acm_receiver.h b/modules/audio_coding/acm2/acm_receiver.h
index 3206402..5c6b36f 100644
--- a/modules/audio_coding/acm2/acm_receiver.h
+++ b/modules/audio_coding/acm2/acm_receiver.h
@@ -204,6 +204,10 @@
//
int FilteredCurrentDelayMs() const;
+ // Returns the current target delay for NetEq in ms.
+ //
+ int TargetDelayMs() const;
+
//
// Get the audio codec associated with the last non-CNG/non-DTMF received
// payload. If no non-CNG/non-DTMF packet is received -1 is returned,
diff --git a/modules/audio_coding/acm2/audio_coding_module.cc b/modules/audio_coding/acm2/audio_coding_module.cc
index 18325f4..53b9177 100644
--- a/modules/audio_coding/acm2/audio_coding_module.cc
+++ b/modules/audio_coding/acm2/audio_coding_module.cc
@@ -164,6 +164,8 @@
int FilteredCurrentDelayMs() const override;
+ int TargetDelayMs() const override;
+
// Get 10 milliseconds of raw audio data to play out, and
// automatic resample to the requested frequency if > 0.
int PlayoutData10Ms(int desired_freq_hz,
@@ -1193,6 +1195,10 @@
return receiver_.FilteredCurrentDelayMs();
}
+int AudioCodingModuleImpl::TargetDelayMs() const {
+ return receiver_.TargetDelayMs();
+}
+
bool AudioCodingModuleImpl::HaveValidEncoder(const char* caller_name) const {
if (!encoder_stack_) {
RTC_LOG(LS_ERROR) << caller_name << " failed: No send codec is registered.";