Split packets/bytes in StreamDataCounter into RtpPacketCounter struct.

Prepares for adding FEC bytes to the StreamDataCounter.

R=mflodman@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/37579004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8122 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
asapersson@webrtc.org
2015-01-22 09:39:59 +00:00
parent 3dd33a6787
commit cfd82dfc11
17 changed files with 297 additions and 258 deletions

View File

@@ -141,18 +141,18 @@ TEST_F(ReceiveStatisticsTest, GetReceiveStreamDataCounters) {
StreamDataCounters counters;
statistician->GetReceiveStreamDataCounters(&counters);
EXPECT_GT(counters.first_packet_time_ms, -1);
EXPECT_EQ(1u, counters.packets);
EXPECT_EQ(1u, counters.transmitted.packets);
statistician->ResetStatistics();
// GetReceiveStreamDataCounters includes reset counter values.
statistician->GetReceiveStreamDataCounters(&counters);
EXPECT_GT(counters.first_packet_time_ms, -1);
EXPECT_EQ(1u, counters.packets);
EXPECT_EQ(1u, counters.transmitted.packets);
receive_statistics_->IncomingPacket(header1_, kPacketSize1, false);
statistician->GetReceiveStreamDataCounters(&counters);
EXPECT_GT(counters.first_packet_time_ms, -1);
EXPECT_EQ(2u, counters.packets);
EXPECT_EQ(2u, counters.transmitted.packets);
}
TEST_F(ReceiveStatisticsTest, RtcpCallbacks) {
@@ -262,17 +262,21 @@ class RtpTestCallback : public StreamDataCountersCallback {
const StreamDataCounters& expected) {
EXPECT_EQ(num_calls, num_calls_);
EXPECT_EQ(ssrc, ssrc_);
EXPECT_EQ(expected.bytes, stats_.bytes);
EXPECT_EQ(expected.header_bytes, stats_.header_bytes);
EXPECT_EQ(expected.padding_bytes, stats_.padding_bytes);
EXPECT_EQ(expected.packets, stats_.packets);
EXPECT_EQ(expected.retransmitted_bytes, stats_.retransmitted_bytes);
EXPECT_EQ(expected.retransmitted_header_bytes,
stats_.retransmitted_header_bytes);
EXPECT_EQ(expected.retransmitted_padding_bytes,
stats_.retransmitted_padding_bytes);
EXPECT_EQ(expected.retransmitted_packets, stats_.retransmitted_packets);
EXPECT_EQ(expected.fec_packets, stats_.fec_packets);
EXPECT_EQ(expected.transmitted.payload_bytes,
stats_.transmitted.payload_bytes);
EXPECT_EQ(expected.transmitted.header_bytes,
stats_.transmitted.header_bytes);
EXPECT_EQ(expected.transmitted.padding_bytes,
stats_.transmitted.padding_bytes);
EXPECT_EQ(expected.transmitted.packets, stats_.transmitted.packets);
EXPECT_EQ(expected.retransmitted.payload_bytes,
stats_.retransmitted.payload_bytes);
EXPECT_EQ(expected.retransmitted.header_bytes,
stats_.retransmitted.header_bytes);
EXPECT_EQ(expected.retransmitted.padding_bytes,
stats_.retransmitted.padding_bytes);
EXPECT_EQ(expected.retransmitted.packets, stats_.retransmitted.packets);
EXPECT_EQ(expected.fec.packets, stats_.fec.packets);
}
uint32_t num_calls_;
@@ -292,15 +296,15 @@ TEST_F(ReceiveStatisticsTest, RtpCallbacks) {
receive_statistics_->IncomingPacket(
header1_, kPacketSize1 + kHeaderLength, false);
StreamDataCounters expected;
expected.bytes = kPacketSize1;
expected.header_bytes = kHeaderLength;
expected.padding_bytes = 0;
expected.packets = 1;
expected.retransmitted_bytes = 0;
expected.retransmitted_header_bytes = 0;
expected.retransmitted_padding_bytes = 0;
expected.retransmitted_packets = 0;
expected.fec_packets = 0;
expected.transmitted.payload_bytes = kPacketSize1;
expected.transmitted.header_bytes = kHeaderLength;
expected.transmitted.padding_bytes = 0;
expected.transmitted.packets = 1;
expected.retransmitted.payload_bytes = 0;
expected.retransmitted.header_bytes = 0;
expected.retransmitted.padding_bytes = 0;
expected.retransmitted.packets = 0;
expected.fec.packets = 0;
callback.Matches(1, kSsrc1, expected);
++header1_.sequenceNumber;
@@ -309,24 +313,24 @@ TEST_F(ReceiveStatisticsTest, RtpCallbacks) {
// Another packet of size kPacketSize1 with 9 bytes padding.
receive_statistics_->IncomingPacket(
header1_, kPacketSize1 + kHeaderLength + kPaddingLength, false);
expected.bytes = kPacketSize1 * 2;
expected.header_bytes = kHeaderLength * 2;
expected.padding_bytes = kPaddingLength;
expected.packets = 2;
expected.transmitted.payload_bytes = kPacketSize1 * 2;
expected.transmitted.header_bytes = kHeaderLength * 2;
expected.transmitted.padding_bytes = kPaddingLength;
expected.transmitted.packets = 2;
callback.Matches(2, kSsrc1, expected);
clock_.AdvanceTimeMilliseconds(5);
// Retransmit last packet.
receive_statistics_->IncomingPacket(
header1_, kPacketSize1 + kHeaderLength + kPaddingLength, true);
expected.bytes = kPacketSize1 * 3;
expected.header_bytes = kHeaderLength * 3;
expected.padding_bytes = kPaddingLength * 2;
expected.packets = 3;
expected.retransmitted_bytes = kPacketSize1;
expected.retransmitted_header_bytes = kHeaderLength;
expected.retransmitted_padding_bytes = kPaddingLength;
expected.retransmitted_packets = 1;
expected.transmitted.payload_bytes = kPacketSize1 * 3;
expected.transmitted.header_bytes = kHeaderLength * 3;
expected.transmitted.padding_bytes = kPaddingLength * 2;
expected.transmitted.packets = 3;
expected.retransmitted.payload_bytes = kPacketSize1;
expected.retransmitted.header_bytes = kHeaderLength;
expected.retransmitted.padding_bytes = kPaddingLength;
expected.retransmitted.packets = 1;
callback.Matches(3, kSsrc1, expected);
header1_.paddingLength = 0;
@@ -336,10 +340,10 @@ TEST_F(ReceiveStatisticsTest, RtpCallbacks) {
receive_statistics_->IncomingPacket(
header1_, kPacketSize1 + kHeaderLength, false);
receive_statistics_->FecPacketReceived(kSsrc1);
expected.bytes = kPacketSize1 * 4;
expected.header_bytes = kHeaderLength * 4;
expected.packets = 4;
expected.fec_packets = 1;
expected.transmitted.payload_bytes = kPacketSize1 * 4;
expected.transmitted.header_bytes = kHeaderLength * 4;
expected.transmitted.packets = 4;
expected.fec.packets = 1;
callback.Matches(5, kSsrc1, expected);
receive_statistics_->RegisterRtpStatisticsCallback(NULL);
@@ -366,15 +370,15 @@ TEST_F(ReceiveStatisticsTest, RtpCallbacksFecFirst) {
receive_statistics_->IncomingPacket(
header1_, kPacketSize1 + kHeaderLength, false);
StreamDataCounters expected;
expected.bytes = kPacketSize1;
expected.header_bytes = kHeaderLength;
expected.padding_bytes = 0;
expected.packets = 1;
expected.fec_packets = 0;
expected.transmitted.payload_bytes = kPacketSize1;
expected.transmitted.header_bytes = kHeaderLength;
expected.transmitted.padding_bytes = 0;
expected.transmitted.packets = 1;
expected.fec.packets = 0;
callback.Matches(1, kSsrc1, expected);
receive_statistics_->FecPacketReceived(kSsrc1);
expected.fec_packets = 1;
expected.fec.packets = 1;
callback.Matches(2, kSsrc1, expected);
}
} // namespace webrtc