Remove failing RTC_DCHECK in nack_module.cc.
The RTC_DCHECK is hit sometimes. This happens when there is no overlap between the nack_list and frames in keyframes. The existing code correctly handles this situation. Bug: webrtc:9629 Change-Id: I7e3eed1b04781cd69974c5d3eb86e382e9587268 Reviewed-on: https://webrtc-review.googlesource.com/102340 Reviewed-by: Philip Eliasson <philipel@webrtc.org> Commit-Queue: Johannes Kron <kron@webrtc.org> Cr-Commit-Position: refs/heads/master@{#24860}
This commit is contained in:

committed by
Commit Bot

parent
e9a7e90625
commit
6fbeeeb872
@ -164,7 +164,6 @@ bool NackModule::RemovePacketsUntilKeyFrame() {
|
||||
if (it != nack_list_.begin()) {
|
||||
// We have found a keyframe that actually is newer than at least one
|
||||
// packet in the nack list.
|
||||
RTC_DCHECK(it != nack_list_.end());
|
||||
nack_list_.erase(nack_list_.begin(), it);
|
||||
return true;
|
||||
}
|
||||
|
@ -262,4 +262,19 @@ TEST_F(TestNackModule, PacketNackCount) {
|
||||
EXPECT_EQ(0, nack_module_.OnReceivedPacket(4, false));
|
||||
}
|
||||
|
||||
TEST_F(TestNackModule, NackListFullAndNoOverlapWithKeyframes) {
|
||||
const int kMaxNackPackets = 1000;
|
||||
const unsigned int kFirstGap = kMaxNackPackets - 20;
|
||||
const unsigned int kSecondGap = 200;
|
||||
uint16_t seq_num = 0;
|
||||
nack_module_.OnReceivedPacket(seq_num++, true);
|
||||
seq_num += kFirstGap;
|
||||
nack_module_.OnReceivedPacket(seq_num++, true);
|
||||
EXPECT_EQ(kFirstGap, sent_nacks_.size());
|
||||
sent_nacks_.clear();
|
||||
seq_num += kSecondGap;
|
||||
nack_module_.OnReceivedPacket(seq_num, true);
|
||||
EXPECT_EQ(kSecondGap, sent_nacks_.size());
|
||||
}
|
||||
|
||||
} // namespace webrtc
|
||||
|
Reference in New Issue
Block a user