Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(165)

Unified Diff: media/cast/transport/rtp_sender/packet_storage/packet_storage_unittest.cc

Issue 268983002: Revert of Cast: Fix two video freezing problems (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/cast/transport/rtp_sender/packet_storage/packet_storage_unittest.cc
diff --git a/media/cast/transport/rtp_sender/packet_storage/packet_storage_unittest.cc b/media/cast/transport/rtp_sender/packet_storage/packet_storage_unittest.cc
index a43ae6e0fda407a35d8796b8670115999e97811b..ae046f5f41dd8d1768f3a1a6604b0fbf8fa04675 100644
--- a/media/cast/transport/rtp_sender/packet_storage/packet_storage_unittest.cc
+++ b/media/cast/transport/rtp_sender/packet_storage/packet_storage_unittest.cc
@@ -16,45 +16,117 @@
namespace cast {
namespace transport {
-static int kStoredFrames = 10;
+static const int kMaxDeltaStoredMs = 500;
+static const base::TimeDelta kDeltaBetweenFrames =
+ base::TimeDelta::FromMilliseconds(33);
+
+static const int64 kStartMillisecond = INT64_C(12345678900000);
class PacketStorageTest : public ::testing::Test {
protected:
- PacketStorageTest() : packet_storage_(kStoredFrames) {
+ PacketStorageTest() : packet_storage_(&testing_clock_, kMaxDeltaStoredMs) {
+ testing_clock_.Advance(
+ base::TimeDelta::FromMilliseconds(kStartMillisecond));
}
+ base::SimpleTestTickClock testing_clock_;
PacketStorage packet_storage_;
DISALLOW_COPY_AND_ASSIGN(PacketStorageTest);
};
+TEST_F(PacketStorageTest, TimeOut) {
+ Packet test_123(100, 123); // 100 insertions of the value 123.
+ SendPacketVector packets;
+ for (uint32 frame_id = 0; frame_id < 30; ++frame_id) {
+ base::TimeTicks frame_tick = testing_clock_.NowTicks();
+ for (uint16 packet_id = 0; packet_id < 10; ++packet_id) {
+ packet_storage_.StorePacket(frame_id,
+ packet_id,
+ PacedPacketSender::MakePacketKey(frame_tick,
+ 1, // ssrc
+ packet_id),
+ new base::RefCountedData<Packet>(test_123));
+ }
+ testing_clock_.Advance(kDeltaBetweenFrames);
+ }
+
+ // All packets belonging to the first 14 frames is expected to be expired.
+ for (uint32 frame_id = 0; frame_id < 14; ++frame_id) {
+ for (uint16 packet_id = 0; packet_id < 10; ++packet_id) {
+ Packet packet;
+ EXPECT_FALSE(packet_storage_.GetPacket(frame_id, packet_id, &packets));
+ }
+ }
+ // All packets belonging to the next 15 frames is expected to be valid.
+ for (uint32 frame_id = 14; frame_id < 30; ++frame_id) {
+ for (uint16 packet_id = 0; packet_id < 10; ++packet_id) {
+ EXPECT_TRUE(packet_storage_.GetPacket(frame_id, packet_id, &packets));
+ EXPECT_TRUE(packets.front().second->data == test_123);
+ }
+ }
+}
+
+TEST_F(PacketStorageTest, MaxNumberOfPackets) {
+ Packet test_123(100, 123); // 100 insertions of the value 123.
+ SendPacketVector packets;
+
+ uint32 frame_id = 0;
+ base::TimeTicks frame_tick = testing_clock_.NowTicks();
+ for (uint16 packet_id = 0; packet_id <= PacketStorage::kMaxStoredPackets;
+ ++packet_id) {
+ packet_storage_.StorePacket(frame_id,
+ packet_id,
+ PacedPacketSender::MakePacketKey(frame_tick,
+ 1, // ssrc
+ packet_id),
+ new base::RefCountedData<Packet>(test_123));
+ }
+ uint16 packet_id = 0;
+ EXPECT_FALSE(packet_storage_.GetPacket(frame_id, packet_id, &packets));
+
+ ++packet_id;
+ for (; packet_id <= PacketStorage::kMaxStoredPackets; ++packet_id) {
+ EXPECT_TRUE(packet_storage_.GetPacket(frame_id, packet_id, &packets));
+ EXPECT_TRUE(packets.back().second->data == test_123);
+ }
+}
+
TEST_F(PacketStorageTest, PacketContent) {
- base::TimeTicks frame_tick;
- for (uint32 frame_id = 0; frame_id < 200; ++frame_id) {
- for (uint16 packet_id = 0; packet_id < 5; ++packet_id) {
- Packet test_packet(frame_id + 1, packet_id);
- packet_storage_.StorePacket(
- frame_id,
- packet_id,
- PacedPacketSender::MakePacketKey(frame_tick,
- 1, // ssrc
- packet_id),
- new base::RefCountedData<Packet>(test_packet));
+ Packet test_123(100, 123); // 100 insertions of the value 123.
+ Packet test_234(200, 234); // 200 insertions of the value 234.
+ SendPacketVector packets;
+
+ for (uint32 frame_id = 0; frame_id < 10; ++frame_id) {
+ base::TimeTicks frame_tick = testing_clock_.NowTicks();
+ for (uint16 packet_id = 0; packet_id < 10; ++packet_id) {
+ // Every other packet.
+ if (packet_id % 2 == 0) {
+ packet_storage_.StorePacket(frame_id,
+ packet_id,
+ PacedPacketSender::MakePacketKey(frame_tick,
+ 1, // ssrc
+ packet_id),
+ new base::RefCountedData<Packet>(test_123));
+ } else {
+ packet_storage_.StorePacket(frame_id,
+ packet_id,
+ PacedPacketSender::MakePacketKey(frame_tick,
+ 1, // ssrc
+ packet_id),
+ new base::RefCountedData<Packet>(test_234));
+ }
}
-
- for (uint32 f = 0; f <= frame_id; f++) {
- for (uint16 packet_id = 0; packet_id < 5; ++packet_id) {
- SendPacketVector packets;
- if (packet_storage_.GetPacket32(f, packet_id, &packets)) {
- EXPECT_GT(f + kStoredFrames, frame_id);
- EXPECT_EQ(f + 1, packets.back().second->data.size());
- EXPECT_EQ(packet_id, packets.back().second->data[0]);
- EXPECT_TRUE(packet_storage_.GetPacket(f & 0xff, packet_id, &packets));
- EXPECT_TRUE(packets.back().second->data ==
- packets.front().second->data);
- } else {
- EXPECT_LE(f + kStoredFrames, frame_id);
- }
+ testing_clock_.Advance(kDeltaBetweenFrames);
+ }
+ for (uint32 frame_id = 0; frame_id < 10; ++frame_id) {
+ for (uint16 packet_id = 0; packet_id < 10; ++packet_id) {
+ EXPECT_TRUE(packet_storage_.GetPacket(frame_id, packet_id, &packets));
+ // Every other packet.
+ if (packet_id % 2 == 0) {
+ EXPECT_TRUE(packets.back().second->data == test_123);
+ } else {
+ EXPECT_TRUE(packets.back().second->data == test_234);
}
}
}

Powered by Google App Engine
This is Rietveld 408576698