Index: webrtc/modules/video_coding/video_packet_buffer_unittest.cc |
diff --git a/webrtc/modules/video_coding/video_packet_buffer_unittest.cc b/webrtc/modules/video_coding/video_packet_buffer_unittest.cc |
index 86d54ebafe84c2251a0fc9a18513e4a040327f22..e418d124666d147c1e8ba3c0c666ae5a25709ce0 100644 |
--- a/webrtc/modules/video_coding/video_packet_buffer_unittest.cc |
+++ b/webrtc/modules/video_coding/video_packet_buffer_unittest.cc |
@@ -58,7 +58,8 @@ class TestPacketBuffer : public ::testing::Test, |
VCMPacket packet; |
packet.codec = kVideoCodecGeneric; |
packet.seqNum = seq_num; |
- packet.frameType = keyframe ? kVideoFrameKey : kVideoFrameDelta; |
+ packet.frameType = |
+ keyframe == kKeyFrame ? kVideoFrameKey : kVideoFrameDelta; |
packet.is_first_packet_in_frame = first == kFirst; |
packet.markerBit = last == kLast; |
packet.sizeBytes = data_size; |
@@ -78,7 +79,7 @@ class TestPacketBuffer : public ::testing::Test, |
const int kMaxSize = 64; |
Random rand_; |
- std::unique_ptr<Clock> clock_; |
+ std::unique_ptr<SimulatedClock> clock_; |
rtc::scoped_refptr<PacketBuffer> packet_buffer_; |
std::map<uint16_t, std::unique_ptr<RtpFrameObject>> frames_from_callback_; |
}; |
@@ -501,5 +502,40 @@ TEST_F(TestPacketBuffer, OneH264FrameFillBuffer) { |
CheckFrame(0); |
} |
+TEST_F(TestPacketBuffer, PacketTimestamps) { |
+ rtc::Optional<int64_t> packet_ms; |
+ rtc::Optional<int64_t> packet_keyframe_ms; |
+ |
+ packet_ms = packet_buffer_->LastReceivedPacketMs(); |
+ packet_keyframe_ms = packet_buffer_->LastReceivedKeyframePacketMs(); |
+ EXPECT_FALSE(packet_ms); |
+ EXPECT_FALSE(packet_keyframe_ms); |
+ |
+ int64_t keyframe_ms = clock_->TimeInMilliseconds(); |
+ EXPECT_TRUE(Insert(100, kKeyFrame, kFirst, kLast)); |
+ packet_ms = packet_buffer_->LastReceivedPacketMs(); |
+ packet_keyframe_ms = packet_buffer_->LastReceivedKeyframePacketMs(); |
+ EXPECT_TRUE(packet_ms); |
+ EXPECT_TRUE(packet_keyframe_ms); |
+ EXPECT_EQ(keyframe_ms, *packet_ms); |
+ EXPECT_EQ(keyframe_ms, *packet_keyframe_ms); |
+ |
+ clock_->AdvanceTimeMilliseconds(100); |
+ int64_t delta_ms = clock_->TimeInMilliseconds(); |
+ EXPECT_TRUE(Insert(101, kDeltaFrame, kFirst, kLast)); |
+ packet_ms = packet_buffer_->LastReceivedPacketMs(); |
+ packet_keyframe_ms = packet_buffer_->LastReceivedKeyframePacketMs(); |
+ EXPECT_TRUE(packet_ms); |
+ EXPECT_TRUE(packet_keyframe_ms); |
+ EXPECT_EQ(delta_ms, *packet_ms); |
+ EXPECT_EQ(keyframe_ms, *packet_keyframe_ms); |
+ |
+ packet_buffer_->Clear(); |
+ packet_ms = packet_buffer_->LastReceivedPacketMs(); |
+ packet_keyframe_ms = packet_buffer_->LastReceivedKeyframePacketMs(); |
+ EXPECT_FALSE(packet_ms); |
+ EXPECT_FALSE(packet_keyframe_ms); |
+} |
+ |
} // namespace video_coding |
} // namespace webrtc |