Fix echo return loss stats and add to RTCAudioSourceStats.
This solves two problems:
* Echo return loss stats weren't being gathered in Chrome, because they
need to be taken from the audio processor attached to the track
rather than the audio send stream.
* The standardized location is in RTCAudioSourceStats, not
RTCMediaStreamTrackStats. For now, will populate the stats in both
locations.
Bug: webrtc:12770
Change-Id: I47eaf7f2b50b914a1be84156aa831e27497d07e3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/223182
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34344}
diff --git a/stats/rtcstats_objects.cc b/stats/rtcstats_objects.cc
index 0db833c..a2d7aa0 100644
--- a/stats/rtcstats_objects.cc
+++ b/stats/rtcstats_objects.cc
@@ -987,7 +987,9 @@
WEBRTC_RTCSTATS_IMPL(RTCAudioSourceStats, RTCMediaSourceStats, "media-source",
&audio_level,
&total_audio_energy,
- &total_samples_duration)
+ &total_samples_duration,
+ &echo_return_loss,
+ &echo_return_loss_enhancement)
// clang-format on
RTCAudioSourceStats::RTCAudioSourceStats(const std::string& id,
@@ -998,13 +1000,17 @@
: RTCMediaSourceStats(std::move(id), timestamp_us),
audio_level("audioLevel"),
total_audio_energy("totalAudioEnergy"),
- total_samples_duration("totalSamplesDuration") {}
+ total_samples_duration("totalSamplesDuration"),
+ echo_return_loss("echoReturnLoss"),
+ echo_return_loss_enhancement("echoReturnLossEnhancement") {}
RTCAudioSourceStats::RTCAudioSourceStats(const RTCAudioSourceStats& other)
: RTCMediaSourceStats(other),
audio_level(other.audio_level),
total_audio_energy(other.total_audio_energy),
- total_samples_duration(other.total_samples_duration) {}
+ total_samples_duration(other.total_samples_duration),
+ echo_return_loss(other.echo_return_loss),
+ echo_return_loss_enhancement(other.echo_return_loss_enhancement) {}
RTCAudioSourceStats::~RTCAudioSourceStats() {}