RTCMediaStreamTrackStats.framesReceived collected by RTCStatsCollector.

VideoReceiverInfo::frames_received added based on
VideoReceiveStream::Stats::frame_counts (.key_frames + .delta_frames).

BUG=webrtc:6757, chromium:659137, chromium:627816

Review-Url: https://codereview.webrtc.org/2607913002
Cr-Commit-Position: refs/heads/master@{#16185}
diff --git a/webrtc/api/rtcstats_integrationtest.cc b/webrtc/api/rtcstats_integrationtest.cc
index 33b1436..5ded447 100644
--- a/webrtc/api/rtcstats_integrationtest.cc
+++ b/webrtc/api/rtcstats_integrationtest.cc
@@ -439,7 +439,12 @@
           media_stream_track.frame_height);
       verifier.TestMemberIsUndefined(media_stream_track.frames_per_second);
       verifier.TestMemberIsUndefined(media_stream_track.frames_sent);
-      verifier.TestMemberIsUndefined(media_stream_track.frames_received);
+      if (*media_stream_track.remote_source) {
+        verifier.TestMemberIsNonNegative<uint32_t>(
+            media_stream_track.frames_received);
+      } else {
+        verifier.TestMemberIsUndefined(media_stream_track.frames_received);
+      }
       verifier.TestMemberIsUndefined(media_stream_track.frames_decoded);
       verifier.TestMemberIsUndefined(media_stream_track.frames_dropped);
       verifier.TestMemberIsUndefined(media_stream_track.frames_corrupted);
@@ -451,6 +456,8 @@
       verifier.TestMemberIsUndefined(
           media_stream_track.echo_return_loss_enhancement);
     } else {
+      RTC_DCHECK_EQ(*media_stream_track.kind,
+                    RTCMediaStreamTrackKind::kAudio);
       // Video-only members should be undefined
       verifier.TestMemberIsUndefined(media_stream_track.frame_width);
       verifier.TestMemberIsUndefined(media_stream_track.frame_height);