| Index: webrtc/modules/rtp_rtcp/source/rtp_packet_history_unittest.cc
|
| diff --git a/webrtc/modules/rtp_rtcp/source/rtp_packet_history_unittest.cc b/webrtc/modules/rtp_rtcp/source/rtp_packet_history_unittest.cc
|
| index 2a7caf188f69c2df0a2c85b6f331f7a0ad1337b0..bb068e7d22e92dd7b123fbcb878a25e5f228b737 100644
|
| --- a/webrtc/modules/rtp_rtcp/source/rtp_packet_history_unittest.cc
|
| +++ b/webrtc/modules/rtp_rtcp/source/rtp_packet_history_unittest.cc
|
| @@ -219,4 +219,39 @@ TEST_F(RtpPacketHistoryTest, FullExpansion) {
|
| }
|
| }
|
|
|
| +TEST_F(RtpPacketHistoryTest, GetBestFittingPacket) {
|
| + constexpr size_t kMinPacketRequestBytes = 50;
|
| +
|
| + hist_.SetStorePacketsStatus(true, 3);
|
| +
|
| + std::unique_ptr<RtpPacketToSend> packet = CreateRtpPacket(kSeqNum);
|
| + const size_t header_size = packet->headers_size();
|
| + const int64_t start_time_ms = fake_clock_.TimeInMilliseconds();
|
| +
|
| + packet->AllocatePayload(kMinPacketRequestBytes - header_size);
|
| + hist_.PutRtpPacket(std::move(packet), kAllowRetransmission, false);
|
| +
|
| + fake_clock_.AdvanceTimeMilliseconds(1);
|
| +
|
| + packet = CreateRtpPacket(kSeqNum + 1);
|
| + packet->AllocatePayload(kMinPacketRequestBytes);
|
| + hist_.PutRtpPacket(std::move(packet), kAllowRetransmission, false);
|
| +
|
| + fake_clock_.AdvanceTimeMilliseconds(1);
|
| +
|
| + packet = CreateRtpPacket(kSeqNum + 2);
|
| + packet->AllocatePayload(kMinPacketRequestBytes + header_size);
|
| + hist_.PutRtpPacket(std::move(packet), kAllowRetransmission, false);
|
| +
|
| + constexpr bool kIncludeHeader = true;
|
| + std::unique_ptr<RtpPacketToSend> fit =
|
| + hist_.GetBestFittingPacket(kMinPacketRequestBytes, kIncludeHeader);
|
| + ASSERT_TRUE(fit);
|
| + EXPECT_EQ(start_time_ms, fit->capture_time_ms());
|
| +
|
| + fit = hist_.GetBestFittingPacket(kMinPacketRequestBytes, !kIncludeHeader);
|
| + ASSERT_TRUE(fit);
|
| + EXPECT_EQ(start_time_ms + 1, fit->capture_time_ms());
|
| +}
|
| +
|
| } // namespace webrtc
|
|
|