From fefe076789f9294aaeb0ecc4221ad5e5970492e9 Mon Sep 17 00:00:00 2001 From: hbos Date: Fri, 20 Jan 2017 06:14:25 -0800 Subject: [PATCH] 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} --- webrtc/api/rtcstats_integrationtest.cc | 4 +++- webrtc/api/rtcstatscollector.cc | 3 +++ webrtc/api/rtcstatscollector_unittest.cc | 4 ++++ webrtc/api/stats/rtcstats_objects.h | 1 - 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/webrtc/api/rtcstats_integrationtest.cc b/webrtc/api/rtcstats_integrationtest.cc index f89207a0dc..903c8c8be8 100644 --- a/webrtc/api/rtcstats_integrationtest.cc +++ b/webrtc/api/rtcstats_integrationtest.cc @@ -438,11 +438,13 @@ class RTCStatsReportVerifier { verifier.TestMemberIsNonNegative( 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( media_stream_track.frames_received); } else { + verifier.TestMemberIsNonNegative( + 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 5d782736a3..27afcc14ec 100644 --- a/webrtc/api/rtcstatscollector.cc +++ b/webrtc/api/rtcstatscollector.cc @@ -410,6 +410,9 @@ ProduceMediaStreamTrackStatsFromVideoSenderInfo( video_sender_info.send_frame_width); video_track_stats->frame_height = static_cast( 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 83d9fc82f9..da5d41eb43 100644 --- a/webrtc/api/rtcstatscollector_unittest.cc +++ b/webrtc/api/rtcstatscollector_unittest.cc @@ -1521,12 +1521,14 @@ TEST_F(RTCStatsCollectorTest, 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 remote_video_track_ssrc3 = @@ -1598,6 +1600,7 @@ TEST_F(RTCStatsCollectorTest, 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 @@ TEST_F(RTCStatsCollectorTest, 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 e8b0170ad3..0aa119258d 100644 --- a/webrtc/api/stats/rtcstats_objects.h +++ b/webrtc/api/stats/rtcstats_objects.h @@ -265,7 +265,6 @@ class RTCMediaStreamTrackStats final : public RTCStats { RTCStatsMember frame_height; // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/659137 RTCStatsMember frames_per_second; - // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/659137 RTCStatsMember frames_sent; RTCStatsMember frames_received; // TODO(hbos): Not collected by |RTCStatsCollector|. crbug.com/659137