Add implemented-but-missing members to RTCMediaStreamTrackStats::Members
silentConcealedSamples, insertedSamplesForDeceleration and
removedSamplesForAcceleration were implemented in M76, but we forgot to
add them to the WEBRTC_RTCSTATS_IMPL list, meaning the "iterate all
members" method, RTCStats::Members(), did not contain these metrics.
As a consequence, Chrome did not pick up these members for exposure to
JavaScript.
Also fix the test coverage in rtc_stats_integrationtest.cc where code
paths that did not apply to audio track stats were not explicitly
asserting that they must be undefined in those cases.
(cherry picked from commit 21e99dac24b99dcae540fa1e09a7362f2cd5994d)
Bug: chromium:996146, webrtc:10903
Change-Id: I00e7ddee600818ee4d561b88e005391830adcf3e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/149816
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Original-Commit-Position: refs/heads/master@{#28925}
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/150322
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/branch-heads/m77@{#10}
Cr-Branched-From: 2bac7da1349c75e5cf89612ab9619a1920d5d974-refs/heads/master@{#28685}
diff --git a/pc/rtc_stats_integrationtest.cc b/pc/rtc_stats_integrationtest.cc
index a723123..5d5daaa 100644
--- a/pc/rtc_stats_integrationtest.cc
+++ b/pc/rtc_stats_integrationtest.cc
@@ -629,7 +629,13 @@
verifier.TestMemberIsUndefined(media_stream_track.total_samples_duration);
verifier.TestMemberIsUndefined(media_stream_track.total_samples_received);
verifier.TestMemberIsUndefined(media_stream_track.concealed_samples);
+ verifier.TestMemberIsUndefined(
+ media_stream_track.silent_concealed_samples);
verifier.TestMemberIsUndefined(media_stream_track.concealment_events);
+ verifier.TestMemberIsUndefined(
+ media_stream_track.inserted_samples_for_deceleration);
+ verifier.TestMemberIsUndefined(
+ media_stream_track.removed_samples_for_acceleration);
verifier.TestMemberIsUndefined(media_stream_track.jitter_buffer_flushes);
verifier.TestMemberIsUndefined(
media_stream_track.delayed_packet_outage_samples);
@@ -658,14 +664,14 @@
verifier.TestMemberIsNonNegative<uint64_t>(
media_stream_track.concealed_samples);
verifier.TestMemberIsNonNegative<uint64_t>(
+ media_stream_track.silent_concealed_samples);
+ verifier.TestMemberIsNonNegative<uint64_t>(
media_stream_track.concealment_events);
verifier.TestMemberIsNonNegative<uint64_t>(
media_stream_track.inserted_samples_for_deceleration);
verifier.TestMemberIsNonNegative<uint64_t>(
media_stream_track.removed_samples_for_acceleration);
verifier.TestMemberIsNonNegative<uint64_t>(
- media_stream_track.silent_concealed_samples);
- verifier.TestMemberIsNonNegative<uint64_t>(
media_stream_track.jitter_buffer_flushes);
verifier.TestMemberIsNonNegative<uint64_t>(
media_stream_track.delayed_packet_outage_samples);
@@ -689,8 +695,14 @@
verifier.TestMemberIsUndefined(
media_stream_track.total_samples_duration);
verifier.TestMemberIsUndefined(media_stream_track.concealed_samples);
+ verifier.TestMemberIsUndefined(
+ media_stream_track.silent_concealed_samples);
verifier.TestMemberIsUndefined(media_stream_track.concealment_events);
verifier.TestMemberIsUndefined(
+ media_stream_track.inserted_samples_for_deceleration);
+ verifier.TestMemberIsUndefined(
+ media_stream_track.removed_samples_for_acceleration);
+ verifier.TestMemberIsUndefined(
media_stream_track.jitter_buffer_flushes);
verifier.TestMemberIsUndefined(
media_stream_track.delayed_packet_outage_samples);
diff --git a/stats/rtcstats_objects.cc b/stats/rtcstats_objects.cc
index 8a89d76..70cdcef 100644
--- a/stats/rtcstats_objects.cc
+++ b/stats/rtcstats_objects.cc
@@ -391,7 +391,10 @@
&total_samples_received,
&total_samples_duration,
&concealed_samples,
+ &silent_concealed_samples,
&concealment_events,
+ &inserted_samples_for_deceleration,
+ &removed_samples_for_acceleration,
&jitter_buffer_flushes,
&delayed_packet_outage_samples,
&relative_packet_arrival_delay,