diff --git a/api/stats/rtcstats_objects.h b/api/stats/rtcstats_objects.h index b0cf3d0f65..a052c17383 100644 --- a/api/stats/rtcstats_objects.h +++ b/api/stats/rtcstats_objects.h @@ -361,7 +361,7 @@ class RTCInboundRTPStreamStats final : public RTCRTPStreamStats { RTCStatsMember packets_received; RTCStatsMember bytes_received; - RTCStatsMember packets_lost; + RTCStatsMember packets_lost; // Signed per RFC 3550 // TODO(hbos): Collect and populate this value for both "audio" and "video", // currently not collected for "video". https://bugs.webrtc.org/7065 RTCStatsMember jitter; diff --git a/pc/rtcstats_integrationtest.cc b/pc/rtcstats_integrationtest.cc index b6c92f368f..158d54b41b 100644 --- a/pc/rtcstats_integrationtest.cc +++ b/pc/rtcstats_integrationtest.cc @@ -633,7 +633,9 @@ class RTCStatsReportVerifier { } verifier.TestMemberIsNonNegative(inbound_stream.packets_received); verifier.TestMemberIsNonNegative(inbound_stream.bytes_received); - verifier.TestMemberIsNonNegative(inbound_stream.packets_lost); + // packets_lost is defined as signed, but this should never happen in + // this test. See RFC 3550. + verifier.TestMemberIsNonNegative(inbound_stream.packets_lost); if (inbound_stream.media_type.is_defined() && *inbound_stream.media_type == "video") { verifier.TestMemberIsUndefined(inbound_stream.jitter); diff --git a/pc/rtcstatscollector.cc b/pc/rtcstatscollector.cc index aa901796bf..915aabf061 100644 --- a/pc/rtcstatscollector.cc +++ b/pc/rtcstatscollector.cc @@ -224,7 +224,7 @@ void SetInboundRTPStreamStatsFromMediaReceiverInfo( inbound_stats->bytes_received = static_cast(media_receiver_info.bytes_rcvd); inbound_stats->packets_lost = - static_cast(media_receiver_info.packets_lost); + static_cast(media_receiver_info.packets_lost); inbound_stats->fraction_lost = static_cast(media_receiver_info.fraction_lost); } diff --git a/pc/rtcstatscollector_unittest.cc b/pc/rtcstatscollector_unittest.cc index 413b13b616..8047ddec7e 100644 --- a/pc/rtcstatscollector_unittest.cc +++ b/pc/rtcstatscollector_unittest.cc @@ -1817,7 +1817,7 @@ TEST_F(RTCStatsCollectorTest, CollectRTCInboundRTPStreamStats_Audio) { voice_media_info.receivers[0].local_stats.push_back( cricket::SsrcReceiverInfo()); voice_media_info.receivers[0].local_stats[0].ssrc = 1; - voice_media_info.receivers[0].packets_lost = 42; + voice_media_info.receivers[0].packets_lost = -1; // Signed per RFC3550 voice_media_info.receivers[0].packets_rcvd = 2; voice_media_info.receivers[0].bytes_rcvd = 3; voice_media_info.receivers[0].codec_payload_type = 42; @@ -1867,7 +1867,7 @@ TEST_F(RTCStatsCollectorTest, CollectRTCInboundRTPStreamStats_Audio) { expected_audio.codec_id = "RTCCodec_InboundAudio_42"; expected_audio.packets_received = 2; expected_audio.bytes_received = 3; - expected_audio.packets_lost = 42; + expected_audio.packets_lost = -1; expected_audio.jitter = 4.5; expected_audio.fraction_lost = 5.5;