RTCInboundRTPStreamStats.packetsLost set by RTCStatsCollector.

Spec: https://w3c.github.io/webrtc-stats/#dom-rtcinboundrtpstreamstats-packetslost

BUG=chromium:657855

Review-Url: https://codereview.webrtc.org/2559973002
Cr-Commit-Position: refs/heads/master@{#15507}
diff --git a/webrtc/api/rtcstats_integrationtest.cc b/webrtc/api/rtcstats_integrationtest.cc
index 6648eb2..4c57304 100644
--- a/webrtc/api/rtcstats_integrationtest.cc
+++ b/webrtc/api/rtcstats_integrationtest.cc
@@ -469,7 +469,7 @@
     VerifyRTCRTPStreamStats(inbound_stream, &verifier);
     verifier.TestMemberIsDefined(inbound_stream.packets_received);
     verifier.TestMemberIsDefined(inbound_stream.bytes_received);
-    verifier.TestMemberIsUndefined(inbound_stream.packets_lost);
+    verifier.TestMemberIsDefined(inbound_stream.packets_lost);
     if (inbound_stream.media_type.is_defined() &&
         *inbound_stream.media_type == "video") {
       verifier.TestMemberIsUndefined(inbound_stream.jitter);
diff --git a/webrtc/api/rtcstatscollector.cc b/webrtc/api/rtcstatscollector.cc
index 9f08aa9..a7c4cfc 100644
--- a/webrtc/api/rtcstatscollector.cc
+++ b/webrtc/api/rtcstatscollector.cc
@@ -150,6 +150,8 @@
       static_cast<uint32_t>(media_receiver_info.packets_rcvd);
   inbound_stats->bytes_received =
       static_cast<uint64_t>(media_receiver_info.bytes_rcvd);
+  inbound_stats->packets_lost =
+      static_cast<uint32_t>(media_receiver_info.packets_lost);
   inbound_stats->fraction_lost =
       static_cast<double>(media_receiver_info.fraction_lost);
 }
diff --git a/webrtc/api/rtcstatscollector_unittest.cc b/webrtc/api/rtcstatscollector_unittest.cc
index 4f63c16..2d2059b 100644
--- a/webrtc/api/rtcstatscollector_unittest.cc
+++ b/webrtc/api/rtcstatscollector_unittest.cc
@@ -1313,6 +1313,7 @@
   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_rcvd = 2;
   voice_media_info.receivers[0].bytes_rcvd = 3;
   voice_media_info.receivers[0].codec_payload_type = rtc::Optional<int>(42);
@@ -1357,6 +1358,7 @@
   expected_audio.codec_id = "RTCCodec_InboundAudio_42";
   expected_audio.packets_received = 2;
   expected_audio.bytes_received = 3;
+  expected_audio.packets_lost = 42;
   expected_audio.jitter = 4.5;
   expected_audio.fraction_lost = 5.5;
 
@@ -1382,6 +1384,7 @@
       cricket::SsrcReceiverInfo());
   video_media_info.receivers[0].local_stats[0].ssrc = 1;
   video_media_info.receivers[0].packets_rcvd = 2;
+  video_media_info.receivers[0].packets_lost = 42;
   video_media_info.receivers[0].bytes_rcvd = 3;
   video_media_info.receivers[0].fraction_lost = 4.5f;
   video_media_info.receivers[0].codec_payload_type = rtc::Optional<int>(42);
@@ -1430,6 +1433,7 @@
   expected_video.nack_count = 7;
   expected_video.packets_received = 2;
   expected_video.bytes_received = 3;
+  expected_video.packets_lost = 42;
   expected_video.fraction_lost = 4.5;
 
   ASSERT(report->Get(expected_video.id()));
diff --git a/webrtc/api/stats/rtcstats_objects.h b/webrtc/api/stats/rtcstats_objects.h
index e1b695b..21b8d68 100644
--- a/webrtc/api/stats/rtcstats_objects.h
+++ b/webrtc/api/stats/rtcstats_objects.h
@@ -328,7 +328,6 @@
 
   RTCStatsMember<uint32_t> packets_received;
   RTCStatsMember<uint64_t> bytes_received;
-  // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/657855
   RTCStatsMember<uint32_t> packets_lost;
   // TODO(hbos): Not collected in the "video" case by |RTCStatsCollector|.
   // crbug.com/657855