Index: media/cast/net/rtcp/rtcp_builder_unittest.cc |
diff --git a/media/cast/net/rtcp/rtcp_builder_unittest.cc b/media/cast/net/rtcp/rtcp_builder_unittest.cc |
index e68444aef32d426eb2633620b23aa84557b5120f..37763436f2d0e7a444223360b19bb264e2832fb6 100644 |
--- a/media/cast/net/rtcp/rtcp_builder_unittest.cc |
+++ b/media/cast/net/rtcp/rtcp_builder_unittest.cc |
@@ -47,12 +47,15 @@ class RtcpBuilderTest : public ::testing::Test { |
void ExpectPacketEQ(scoped_ptr<Packet> golden_packet, |
PacketRef packet) { |
+ int diffs = 0; |
EXPECT_EQ(golden_packet->size(), packet->data.size()); |
if (golden_packet->size() == packet->data.size()) { |
for (size_t x = 0; x < golden_packet->size(); x++) { |
- EXPECT_EQ((*golden_packet)[x], packet->data[x]); |
+ EXPECT_EQ((*golden_packet)[x], packet->data[x]) << |
+ "x = " << x << " / " << golden_packet->size(); |
if ((*golden_packet)[x] != packet->data[x]) |
miu
2014/12/04 04:18:54
nit: braces around then-clause
hubbe
2014/12/05 23:57:20
Done.
|
- break; |
+ if (++diffs > 5) |
+ break; |
} |
} |
} |
@@ -191,7 +194,7 @@ TEST_F(RtcpBuilderTest, RtcpReceiverReportWithRrtrCastMessageAndLog) { |
missing_packets; |
ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); |
- ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events; |
+ ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; |
ExpectPacketEQ(p.GetPacket().Pass(), |
rtcp_builder_->BuildRtcpFromReceiver( |
@@ -224,7 +227,7 @@ TEST_F(RtcpBuilderTest, RtcpReceiverReportWithRrtrCastMessageAndLog) { |
packet_event.timestamp = testing_clock.NowTicks(); |
packet_event.packet_id = kLostPacketId1; |
event_subscriber.OnReceivePacketEvent(packet_event); |
- event_subscriber.GetRtcpEventsAndReset(&rtcp_events); |
+ event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); |
EXPECT_EQ(2u, rtcp_events.size()); |
ExpectPacketEQ( |
@@ -252,31 +255,22 @@ TEST_F(RtcpBuilderTest, RtcpReceiverReportWithOversizedFrameLog) { |
p.AddReceiverLog(kSendingSsrc); |
- int remaining_bytes = kMaxReceiverLogBytes; |
- remaining_bytes -= kRtcpCastLogHeaderSize; |
+ int num_events = kMaxEventsPerRTCP; |
- remaining_bytes -= kRtcpReceiverFrameLogSize; |
- int num_events = remaining_bytes / kRtcpReceiverEventLogSize; |
EXPECT_LE(num_events, static_cast<int>(kRtcpMaxReceiverLogMessages)); |
- // Only the last |num_events| events are sent due to receiver log size cap. |
p.AddReceiverFrameLog( |
kRtpTimestamp + 2345, |
num_events, |
- kTimeBaseMs + (kRtcpMaxReceiverLogMessages - num_events) * kTimeDelayMs); |
+ kTimeBaseMs); |
for (int i = 0; i < num_events; i++) { |
p.AddReceiverEventLog( |
- kLostPacketId1, PACKET_RECEIVED, |
+ kLostPacketId1, |
+ PACKET_RECEIVED, |
static_cast<uint16>(kTimeDelayMs * i)); |
} |
ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); |
- FrameEvent frame_event; |
- frame_event.rtp_timestamp = kRtpTimestamp; |
- frame_event.type = FRAME_ACK_SENT; |
- frame_event.media_type = VIDEO_EVENT; |
- frame_event.timestamp = testing_clock.NowTicks(); |
- event_subscriber.OnReceiveFrameEvent(frame_event); |
for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) { |
PacketEvent packet_event; |
@@ -289,8 +283,8 @@ TEST_F(RtcpBuilderTest, RtcpReceiverReportWithOversizedFrameLog) { |
testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); |
} |
- ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events; |
- event_subscriber.GetRtcpEventsAndReset(&rtcp_events); |
+ ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; |
+ event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); |
ExpectPacketEQ(p.GetPacket().Pass(), |
rtcp_builder_->BuildRtcpFromReceiver( |
@@ -316,16 +310,9 @@ TEST_F(RtcpBuilderTest, RtcpReceiverReportWithTooManyLogFrames) { |
p.AddReceiverLog(kSendingSsrc); |
- int remaining_bytes = kMaxReceiverLogBytes; |
- remaining_bytes -= kRtcpCastLogHeaderSize; |
- |
- int num_events = |
- remaining_bytes / (kRtcpReceiverFrameLogSize + kRtcpReceiverEventLogSize); |
+ int num_events = kMaxEventsPerRTCP; |
- // The last |num_events| events are sent due to receiver log size cap. |
- for (size_t i = kRtcpMaxReceiverLogMessages - num_events; |
- i < kRtcpMaxReceiverLogMessages; |
- ++i) { |
+ for (int i = 0; i < num_events; i++) { |
p.AddReceiverFrameLog(kRtpTimestamp + i, 1, kTimeBaseMs + i * kTimeDelayMs); |
p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); |
} |
@@ -342,8 +329,8 @@ TEST_F(RtcpBuilderTest, RtcpReceiverReportWithTooManyLogFrames) { |
testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); |
} |
- ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events; |
- event_subscriber.GetRtcpEventsAndReset(&rtcp_events); |
+ ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; |
+ event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); |
ExpectPacketEQ(p.GetPacket().Pass(), |
rtcp_builder_->BuildRtcpFromReceiver( |
@@ -389,8 +376,8 @@ TEST_F(RtcpBuilderTest, RtcpReceiverReportWithOldLogFrames) { |
base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); |
} |
- ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events; |
- event_subscriber.GetRtcpEventsAndReset(&rtcp_events); |
+ ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; |
+ event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); |
ExpectPacketEQ(p.GetPacket().Pass(), |
rtcp_builder_->BuildRtcpFromReceiver( |
@@ -411,7 +398,7 @@ TEST_F(RtcpBuilderTest, RtcpReceiverReportRedundancy) { |
testing_clock.Advance(base::TimeDelta::FromMilliseconds(time_base_ms)); |
ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); |
- size_t packet_count = kReceiveLogMessageHistorySize + 10; |
+ size_t packet_count = kNumResends * kResendDelay + 10; |
for (size_t i = 0; i < packet_count; i++) { |
TestRtcpPacketBuilder p; |
p.AddRr(kSendingSsrc, 1); |
@@ -419,22 +406,15 @@ TEST_F(RtcpBuilderTest, RtcpReceiverReportRedundancy) { |
p.AddReceiverLog(kSendingSsrc); |
- if (i >= kSecondRedundancyOffset) { |
- p.AddReceiverFrameLog( |
- kRtpTimestamp, |
- 1, |
- time_base_ms - kSecondRedundancyOffset * kTimeBetweenEventsMs); |
- p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); |
+ int num_events = (i + kResendDelay) / kResendDelay; |
+ num_events = std::min<int>(num_events, kNumResends); |
+ p.AddReceiverFrameLog(kRtpTimestamp, num_events, |
+ time_base_ms - (num_events - 1) * kResendDelay * |
+ kTimeBetweenEventsMs); |
+ for (int i = 0; i < num_events; i++) { |
+ p.AddReceiverEventLog(0, FRAME_ACK_SENT, |
+ i * kResendDelay * kTimeBetweenEventsMs); |
} |
- if (i >= kFirstRedundancyOffset) { |
- p.AddReceiverFrameLog( |
- kRtpTimestamp, |
- 1, |
- time_base_ms - kFirstRedundancyOffset * kTimeBetweenEventsMs); |
- p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); |
- } |
- p.AddReceiverFrameLog(kRtpTimestamp, 1, time_base_ms); |
- p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); |
FrameEvent frame_event; |
frame_event.rtp_timestamp = kRtpTimestamp; |
@@ -443,8 +423,8 @@ TEST_F(RtcpBuilderTest, RtcpReceiverReportRedundancy) { |
frame_event.timestamp = testing_clock.NowTicks(); |
event_subscriber.OnReceiveFrameEvent(frame_event); |
- ReceiverRtcpEventSubscriber::RtcpEventMultiMap rtcp_events; |
- event_subscriber.GetRtcpEventsAndReset(&rtcp_events); |
+ ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; |
+ event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); |
ExpectPacketEQ(p.GetPacket().Pass(), |
rtcp_builder_->BuildRtcpFromReceiver( |