diff --git a/webrtc/modules/video_coding/packet_buffer.cc b/webrtc/modules/video_coding/packet_buffer.cc index 03aeb5a4a9..42fa8a8595 100644 --- a/webrtc/modules/video_coding/packet_buffer.cc +++ b/webrtc/modules/video_coding/packet_buffer.cc @@ -187,7 +187,7 @@ bool PacketBuffer::PotentialNewFrame(uint16_t seq_num) const { if (!sequence_buffer_[prev_index].used) return false; if (sequence_buffer_[prev_index].seq_num != - sequence_buffer_[index].seq_num - 1) { + static_cast(sequence_buffer_[index].seq_num - 1)) { return false; } if (sequence_buffer_[prev_index].continuous) diff --git a/webrtc/modules/video_coding/video_packet_buffer_unittest.cc b/webrtc/modules/video_coding/video_packet_buffer_unittest.cc index 1e2ef3ec2a..e2ac8be6b3 100644 --- a/webrtc/modules/video_coding/video_packet_buffer_unittest.cc +++ b/webrtc/modules/video_coding/video_packet_buffer_unittest.cc @@ -102,11 +102,19 @@ TEST_F(TestPacketBuffer, InsertDuplicatePacket) { EXPECT_TRUE(Insert(seq_num, kKeyFrame, kFirst, kLast)); } -TEST_F(TestPacketBuffer, SeqNumWrap) { +TEST_F(TestPacketBuffer, SeqNumWrapOneFrame) { + EXPECT_TRUE(Insert(0xFFFF, kKeyFrame, kFirst, kNotLast)); + EXPECT_TRUE(Insert(0x0, kKeyFrame, kNotFirst, kLast)); + + CheckFrame(0xFFFF); +} + +TEST_F(TestPacketBuffer, SeqNumWrapTwoFrames) { EXPECT_TRUE(Insert(0xFFFF, kKeyFrame, kFirst, kLast)); EXPECT_TRUE(Insert(0x0, kKeyFrame, kFirst, kLast)); CheckFrame(0xFFFF); + CheckFrame(0x0); } TEST_F(TestPacketBuffer, InsertOldPackets) {