RTC[In/Out]boundRTPStreamStats: qpSum,framesDecoded,framesEncoded added.
Recently added to the spec:
RTCRTPStreamStats.qpSum - https://w3c.github.io/webrtc-stats/#dom-rtcrtpstreamstats-qpsum
RTCInboundRTPStreamStats.framesDecoded - https://w3c.github.io/webrtc-stats/#dom-rtcinboundrtpstreamstats-framesdecoded
RTCOutboundRTPStreamStats.framesEncoded - https://w3c.github.io/webrtc-stats/#dom-rtcoutboundrtpstreamstats-framesencoded
These are added and collected. However, the qpSum is only collected in
the outbound case. It should be collected in the inbound case before
closing crbug.com/657855
BUG=chromium:657854, chromium:657855, chromium:657856
Review-Url: https://codereview.webrtc.org/2588373005
Cr-Commit-Position: refs/heads/master@{#15872}
diff --git a/webrtc/api/rtcstats_integrationtest.cc b/webrtc/api/rtcstats_integrationtest.cc
index 53c73f3..eec8915 100644
--- a/webrtc/api/rtcstats_integrationtest.cc
+++ b/webrtc/api/rtcstats_integrationtest.cc
@@ -509,6 +509,7 @@
const RTCInboundRTPStreamStats& inbound_stream) {
RTCStatsVerifier verifier(report_, &inbound_stream);
VerifyRTCRTPStreamStats(inbound_stream, &verifier);
+ verifier.TestMemberIsUndefined(inbound_stream.qp_sum);
verifier.TestMemberIsNonNegative<uint32_t>(inbound_stream.packets_received);
verifier.TestMemberIsNonNegative<uint64_t>(inbound_stream.bytes_received);
verifier.TestMemberIsNonNegative<uint32_t>(inbound_stream.packets_lost);
@@ -529,6 +530,12 @@
verifier.TestMemberIsUndefined(inbound_stream.burst_discard_rate);
verifier.TestMemberIsUndefined(inbound_stream.gap_loss_rate);
verifier.TestMemberIsUndefined(inbound_stream.gap_discard_rate);
+ if (inbound_stream.media_type.is_defined() &&
+ *inbound_stream.media_type == "video") {
+ verifier.TestMemberIsDefined(inbound_stream.frames_decoded);
+ } else {
+ verifier.TestMemberIsUndefined(inbound_stream.frames_decoded);
+ }
return verifier.ExpectAllMembersSuccessfullyTested();
}
@@ -536,11 +543,23 @@
const RTCOutboundRTPStreamStats& outbound_stream) {
RTCStatsVerifier verifier(report_, &outbound_stream);
VerifyRTCRTPStreamStats(outbound_stream, &verifier);
+ if (outbound_stream.media_type.is_defined() &&
+ *outbound_stream.media_type == "video") {
+ verifier.TestMemberIsNonNegative<uint64_t>(outbound_stream.qp_sum);
+ } else {
+ verifier.TestMemberIsUndefined(outbound_stream.qp_sum);
+ }
verifier.TestMemberIsNonNegative<uint32_t>(outbound_stream.packets_sent);
verifier.TestMemberIsNonNegative<uint64_t>(outbound_stream.bytes_sent);
verifier.TestMemberIsUndefined(outbound_stream.target_bitrate);
// TODO(hbos): Defined in video but not audio case. Why? crbug.com/669877
verifier.MarkMemberTested(outbound_stream.round_trip_time, true);
+ if (outbound_stream.media_type.is_defined() &&
+ *outbound_stream.media_type == "video") {
+ verifier.TestMemberIsDefined(outbound_stream.frames_encoded);
+ } else {
+ verifier.TestMemberIsUndefined(outbound_stream.frames_encoded);
+ }
return verifier.ExpectAllMembersSuccessfullyTested();
}