Index: webrtc/pc/rtcstats_integrationtest.cc |
diff --git a/webrtc/pc/rtcstats_integrationtest.cc b/webrtc/pc/rtcstats_integrationtest.cc |
index 03fb96c0e33a3d5c9cc2b6c6b0d211c7dc4d16e7..1793a9e70f037d211816ea81a0858cab9cdb21b7 100644 |
--- a/webrtc/pc/rtcstats_integrationtest.cc |
+++ b/webrtc/pc/rtcstats_integrationtest.cc |
@@ -473,6 +473,8 @@ class RTCStatsReportVerifier { |
verifier.TestMemberIsUndefined(media_stream_track.echo_return_loss); |
verifier.TestMemberIsUndefined( |
media_stream_track.echo_return_loss_enhancement); |
+ verifier.TestMemberIsUndefined(media_stream_track.total_audio_energy); |
+ verifier.TestMemberIsUndefined(media_stream_track.total_samples_duration); |
} else { |
RTC_DCHECK_EQ(*media_stream_track.kind, |
RTCMediaStreamTrackKind::kAudio); |
@@ -489,6 +491,20 @@ class RTCStatsReportVerifier { |
verifier.TestMemberIsUndefined(media_stream_track.full_frames_lost); |
// Audio-only members |
verifier.TestMemberIsNonNegative<double>(media_stream_track.audio_level); |
+ // Remote audio tracks are expected to have audio energy/duration values |
+ // that can be used to compute audio levels between getStats calls. |
+ // TODO(deadbeef): Implement for sent audio tracks as well. |
+ if (media_stream_track.remote_source.is_defined() && |
+ *media_stream_track.remote_source) { |
+ verifier.TestMemberIsNonNegative<double>( |
+ media_stream_track.total_audio_energy); |
+ verifier.TestMemberIsNonNegative<double>( |
+ media_stream_track.total_samples_duration); |
+ } else { |
+ verifier.TestMemberIsUndefined(media_stream_track.total_audio_energy); |
+ verifier.TestMemberIsUndefined( |
+ media_stream_track.total_samples_duration); |
+ } |
// TODO(hbos): |echo_return_loss| and |echo_return_loss_enhancement| are |
// flaky on msan bot (sometimes defined, sometimes undefined). Should the |
// test run until available or is there a way to have it always be |