From 2c2f34c1ca6a388a544e2fd009fe7898297aff00 Mon Sep 17 00:00:00 2001 From: philipel Date: Tue, 3 Jan 2017 05:55:34 -0800 Subject: [PATCH] PacketBuffer now correctly cast sequence numbers to uint16_t. BUG=webrtc:5514 Review-Url: https://codereview.webrtc.org/2603223002 Cr-Commit-Position: refs/heads/master@{#15885} --- webrtc/modules/video_coding/packet_buffer.cc | 2 +- .../video_coding/video_packet_buffer_unittest.cc | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) 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) {