Wire up statistics in video receive stream of new API
This CL includes Call tests that test both send and receive sides.
BUG=2235
R=mflodman@webrtc.org, pbos@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/8049004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5499 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/video/send_statistics_proxy_unittest.cc b/webrtc/video/send_statistics_proxy_unittest.cc
index 6e92192..ed74a4f 100644
--- a/webrtc/video/send_statistics_proxy_unittest.cc
+++ b/webrtc/video/send_statistics_proxy_unittest.cc
@@ -19,9 +19,8 @@
namespace webrtc {
-class SendStatisticsProxyTest
- : public ::testing::Test,
- protected SendStatisticsProxy::StreamStatsProvider {
+class SendStatisticsProxyTest : public ::testing::Test,
+ protected SendStatisticsProxy::StatsProvider {
public:
SendStatisticsProxyTest() : avg_delay_ms_(0), max_delay_ms_(0) {}
virtual ~SendStatisticsProxyTest() {}
@@ -49,6 +48,45 @@
virtual std::string GetCName() { return cname_; }
+ void ExpectEqual(VideoSendStream::Stats one, VideoSendStream::Stats other) {
+ EXPECT_EQ(one.avg_delay_ms, other.avg_delay_ms);
+ EXPECT_EQ(one.input_frame_rate, other.input_frame_rate);
+ EXPECT_EQ(one.encode_frame_rate, other.encode_frame_rate);
+ EXPECT_EQ(one.avg_delay_ms, other.avg_delay_ms);
+ EXPECT_EQ(one.max_delay_ms, other.max_delay_ms);
+ EXPECT_EQ(one.c_name, other.c_name);
+
+ EXPECT_EQ(one.substreams.size(), other.substreams.size());
+ for (std::map<uint32_t, StreamStats>::const_iterator it =
+ one.substreams.begin();
+ it != one.substreams.end();
+ ++it) {
+ std::map<uint32_t, StreamStats>::const_iterator corresponding_it =
+ other.substreams.find(it->first);
+ ASSERT_TRUE(corresponding_it != other.substreams.end());
+ const StreamStats& a = it->second;
+ const StreamStats& b = corresponding_it->second;
+
+ EXPECT_EQ(a.key_frames, b.key_frames);
+ EXPECT_EQ(a.delta_frames, b.delta_frames);
+ EXPECT_EQ(a.bitrate_bps, b.bitrate_bps);
+
+ EXPECT_EQ(a.rtp_stats.bytes, b.rtp_stats.bytes);
+ EXPECT_EQ(a.rtp_stats.header_bytes, b.rtp_stats.header_bytes);
+ EXPECT_EQ(a.rtp_stats.padding_bytes, b.rtp_stats.padding_bytes);
+ EXPECT_EQ(a.rtp_stats.packets, b.rtp_stats.packets);
+ EXPECT_EQ(a.rtp_stats.retransmitted_packets,
+ b.rtp_stats.retransmitted_packets);
+ EXPECT_EQ(a.rtp_stats.fec_packets, b.rtp_stats.fec_packets);
+
+ EXPECT_EQ(a.rtcp_stats.fraction_lost, b.rtcp_stats.fraction_lost);
+ EXPECT_EQ(a.rtcp_stats.cumulative_lost, b.rtcp_stats.cumulative_lost);
+ EXPECT_EQ(a.rtcp_stats.extended_max_sequence_number,
+ b.rtcp_stats.extended_max_sequence_number);
+ EXPECT_EQ(a.rtcp_stats.jitter, b.rtcp_stats.jitter);
+ }
+ }
+
scoped_ptr<SendStatisticsProxy> statistics_proxy_;
VideoSendStream::Config config_;
int avg_delay_ms_;
@@ -76,7 +114,7 @@
}
VideoSendStream::Stats stats = statistics_proxy_->GetStats();
- EXPECT_EQ(expected_, stats);
+ ExpectEqual(expected_, stats);
}
TEST_F(SendStatisticsProxyTest, FrameRates) {
@@ -109,7 +147,7 @@
}
VideoSendStream::Stats stats = statistics_proxy_->GetStats();
- EXPECT_EQ(expected_, stats);
+ ExpectEqual(expected_, stats);
}
TEST_F(SendStatisticsProxyTest, DataCounters) {
@@ -131,7 +169,7 @@
}
VideoSendStream::Stats stats = statistics_proxy_->GetStats();
- EXPECT_EQ(expected_, stats);
+ ExpectEqual(expected_, stats);
}
TEST_F(SendStatisticsProxyTest, Bitrate) {
@@ -147,7 +185,7 @@
}
VideoSendStream::Stats stats = statistics_proxy_->GetStats();
- EXPECT_EQ(expected_, stats);
+ ExpectEqual(expected_, stats);
}
TEST_F(SendStatisticsProxyTest, StreamStats) {