RTCMediaStreamTrackStats.framesSent collected by RTCStatsCollector.

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

Review-Url: https://codereview.webrtc.org/2606033002
Cr-Commit-Position: refs/heads/master@{#16188}
diff --git a/webrtc/api/rtcstats_integrationtest.cc b/webrtc/api/rtcstats_integrationtest.cc
index f89207a..903c8c8 100644
--- a/webrtc/api/rtcstats_integrationtest.cc
+++ b/webrtc/api/rtcstats_integrationtest.cc
@@ -438,11 +438,13 @@
       verifier.TestMemberIsNonNegative<uint32_t>(
           media_stream_track.frame_height);
       verifier.TestMemberIsUndefined(media_stream_track.frames_per_second);
-      verifier.TestMemberIsUndefined(media_stream_track.frames_sent);
       if (*media_stream_track.remote_source) {
+        verifier.TestMemberIsUndefined(media_stream_track.frames_sent);
         verifier.TestMemberIsNonNegative<uint32_t>(
             media_stream_track.frames_received);
       } else {
+        verifier.TestMemberIsNonNegative<uint32_t>(
+            media_stream_track.frames_sent);
         verifier.TestMemberIsUndefined(media_stream_track.frames_received);
       }
       verifier.TestMemberIsUndefined(media_stream_track.frames_decoded);
diff --git a/webrtc/api/rtcstatscollector.cc b/webrtc/api/rtcstatscollector.cc
index 5d78273..27afcc1 100644
--- a/webrtc/api/rtcstatscollector.cc
+++ b/webrtc/api/rtcstatscollector.cc
@@ -410,6 +410,9 @@
       video_sender_info.send_frame_width);
   video_track_stats->frame_height = static_cast<uint32_t>(
       video_sender_info.send_frame_height);
+  // TODO(hbos): Will reduce this by frames dropped due to congestion control
+  // when available. crbug.com/659137
+  video_track_stats->frames_sent = video_sender_info.frames_encoded;
   return video_track_stats;
 }
 
diff --git a/webrtc/api/rtcstatscollector_unittest.cc b/webrtc/api/rtcstatscollector_unittest.cc
index 83d9fc8..da5d41e 100644
--- a/webrtc/api/rtcstatscollector_unittest.cc
+++ b/webrtc/api/rtcstatscollector_unittest.cc
@@ -1521,12 +1521,14 @@
   video_sender_info_ssrc1.local_stats[0].ssrc = 1;
   video_sender_info_ssrc1.send_frame_width = 1234;
   video_sender_info_ssrc1.send_frame_height = 4321;
+  video_sender_info_ssrc1.frames_encoded = 11;
 
   cricket::VideoSenderInfo video_sender_info_ssrc2;
   video_sender_info_ssrc2.local_stats.push_back(cricket::SsrcSenderInfo());
   video_sender_info_ssrc2.local_stats[0].ssrc = 2;
   video_sender_info_ssrc2.send_frame_width = 4321;
   video_sender_info_ssrc2.send_frame_height = 1234;
+  video_sender_info_ssrc2.frames_encoded = 22;
 
   // Remote video track with values
   rtc::scoped_refptr<MediaStreamTrackInterface> remote_video_track_ssrc3 =
@@ -1598,6 +1600,7 @@
   expected_local_video_track_ssrc1.detached = false;
   expected_local_video_track_ssrc1.frame_width = 1234;
   expected_local_video_track_ssrc1.frame_height = 4321;
+  expected_local_video_track_ssrc1.frames_sent = 11;
   ASSERT_TRUE(report->Get(expected_local_video_track_ssrc1.id()));
   EXPECT_EQ(expected_local_video_track_ssrc1,
             report->Get(expected_local_video_track_ssrc1.id())->cast_to<
@@ -1612,6 +1615,7 @@
   expected_local_video_track_ssrc2.detached = false;
   expected_local_video_track_ssrc2.frame_width = 4321;
   expected_local_video_track_ssrc2.frame_height = 1234;
+  expected_local_video_track_ssrc2.frames_sent = 22;
   ASSERT_TRUE(report->Get(expected_local_video_track_ssrc2.id()));
   EXPECT_EQ(expected_local_video_track_ssrc2,
             report->Get(expected_local_video_track_ssrc2.id())->cast_to<
diff --git a/webrtc/api/stats/rtcstats_objects.h b/webrtc/api/stats/rtcstats_objects.h
index e8b0170..0aa1192 100644
--- a/webrtc/api/stats/rtcstats_objects.h
+++ b/webrtc/api/stats/rtcstats_objects.h
@@ -265,7 +265,6 @@
   RTCStatsMember<uint32_t> frame_height;
   // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/659137
   RTCStatsMember<double> frames_per_second;
-  // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/659137
   RTCStatsMember<uint32_t> frames_sent;
   RTCStatsMember<uint32_t> frames_received;
   // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/659137