Remove DCHECK on duplicate packets in RemoteEstimatorProxy.

R=sprang@webrtc.org

Review URL: https://codereview.webrtc.org/1738763002 .

Cr-Commit-Position: refs/heads/master@{#11760}
This commit is contained in:
Stefan Holmer 2016-02-25 12:35:15 +01:00
parent bf66ae6d80
commit 91c5b5650c
2 changed files with 28 additions and 1 deletions

View File

@ -106,7 +106,9 @@ void RemoteEstimatorProxy::OnPacketArrival(uint16_t sequence_number,
window_start_seq_ = seq;
}
RTC_DCHECK(packet_arrival_times_.end() == packet_arrival_times_.find(seq));
// We are only interested in the first time a packet is received.
if (packet_arrival_times_.find(seq) != packet_arrival_times_.end())
return;
packet_arrival_times_[seq] = arrival_time;
}

View File

@ -82,6 +82,31 @@ TEST_F(RemoteEstimatorProxyTest, SendsSinglePacketFeedback) {
Process();
}
TEST_F(RemoteEstimatorProxyTest, DuplicatedPackets) {
IncomingPacket(kBaseSeq, kBaseTimeMs);
IncomingPacket(kBaseSeq, kBaseTimeMs + 1000);
EXPECT_CALL(router_, SendFeedback(_))
.Times(1)
.WillOnce(Invoke([this](rtcp::TransportFeedback* packet) {
packet->Build();
EXPECT_EQ(kBaseSeq, packet->GetBaseSequence());
EXPECT_EQ(kMediaSsrc, packet->GetMediaSourceSsrc());
std::vector<rtcp::TransportFeedback::StatusSymbol> status_vec =
packet->GetStatusVector();
EXPECT_EQ(1u, status_vec.size());
EXPECT_EQ(rtcp::TransportFeedback::StatusSymbol::kReceivedSmallDelta,
status_vec[0]);
std::vector<int64_t> delta_vec = packet->GetReceiveDeltasUs();
EXPECT_EQ(1u, delta_vec.size());
EXPECT_EQ(kBaseTimeMs, (packet->GetBaseTimeUs() + delta_vec[0]) / 1000);
return true;
}));
Process();
}
TEST_F(RemoteEstimatorProxyTest, SendsFeedbackWithVaryingDeltas) {
IncomingPacket(kBaseSeq, kBaseTimeMs);
IncomingPacket(kBaseSeq + 1, kBaseTimeMs + kMaxSmallDeltaMs);