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

Unified Diff: webrtc/modules/rtp_rtcp/source/fec_receiver_unittest.cc

Issue 2099243003: Use std::unique_ptr in ForwardErrorCorrection. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@flexfec-pt1a_mini-fixes-in-ULPFEC
Patch Set: Rebase. Created 4 years, 5 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: webrtc/modules/rtp_rtcp/source/fec_receiver_unittest.cc
diff --git a/webrtc/modules/rtp_rtcp/source/fec_receiver_unittest.cc b/webrtc/modules/rtp_rtcp/source/fec_receiver_unittest.cc
index 0c66dc1f528ea68cd787616ddf279948a8cd3dcd..3edd2106ae407ad1a916e0b3ede81a791716dfac 100644
--- a/webrtc/modules/rtp_rtcp/source/fec_receiver_unittest.cc
+++ b/webrtc/modules/rtp_rtcp/source/fec_receiver_unittest.cc
@@ -39,7 +39,7 @@ class ReceiverFecTest : public ::testing::Test {
}
void GenerateFec(ForwardErrorCorrection::PacketList* media_packets,
- ForwardErrorCorrection::PacketList* fec_packets,
+ std::list<ForwardErrorCorrection::Packet*>* fec_packets,
unsigned int num_fec_packets) {
uint8_t protection_factor = num_fec_packets * 255 / media_packets->size();
EXPECT_EQ(0, fec_->GenerateFec(*media_packets, protection_factor,
@@ -55,7 +55,9 @@ class ReceiverFecTest : public ::testing::Test {
for (int i = 0; i < num_media_packets; ++i) {
media_rtp_packets->push_back(
generator_->NextPacket(frame_offset + i, kRtpHeaderSize + 10));
- media_packets->push_back(media_rtp_packets->back());
+ media_packets->push_back(
+ std::unique_ptr<ForwardErrorCorrection::Packet>(
stefan-webrtc 2016/07/20 09:50:35 Should we std::move here too?
brandtr 2016/07/21 09:04:20 I changed to emplace_back. The RawRtpPackets are
+ media_rtp_packets->back()));
}
}
@@ -97,19 +99,12 @@ class ReceiverFecTest : public ::testing::Test {
std::unique_ptr<FrameGenerator> generator_;
};
-void DeletePackets(ForwardErrorCorrection::PacketList* packets) {
- while (!packets->empty()) {
- delete packets->front();
- packets->pop_front();
- }
-}
-
TEST_F(ReceiverFecTest, TwoMediaOneFec) {
const unsigned int kNumFecPackets = 1u;
std::list<test::RawRtpPacket*> media_rtp_packets;
ForwardErrorCorrection::PacketList media_packets;
GenerateFrame(2, 0, &media_rtp_packets, &media_packets);
- ForwardErrorCorrection::PacketList fec_packets;
+ std::list<ForwardErrorCorrection::Packet*> fec_packets;
GenerateFec(&media_packets, &fec_packets, kNumFecPackets);
// Recovery
@@ -128,8 +123,6 @@ TEST_F(ReceiverFecTest, TwoMediaOneFec) {
EXPECT_EQ(2U, counter.num_packets);
EXPECT_EQ(1U, counter.num_fec_packets);
EXPECT_EQ(1U, counter.num_recovered_packets);
-
- DeletePackets(&media_packets);
}
void ReceiverFecTest::InjectGarbagePacketLength(size_t fec_garbage_offset) {
@@ -140,7 +133,7 @@ void ReceiverFecTest::InjectGarbagePacketLength(size_t fec_garbage_offset) {
std::list<test::RawRtpPacket*> media_rtp_packets;
ForwardErrorCorrection::PacketList media_packets;
GenerateFrame(2, 0, &media_rtp_packets, &media_packets);
- ForwardErrorCorrection::PacketList fec_packets;
+ std::list<ForwardErrorCorrection::Packet*> fec_packets;
GenerateFec(&media_packets, &fec_packets, kNumFecPackets);
ByteWriter<uint16_t>::WriteBigEndian(
&fec_packets.front()->data[fec_garbage_offset], 0x4711);
@@ -155,8 +148,6 @@ void ReceiverFecTest::InjectGarbagePacketLength(size_t fec_garbage_offset) {
EXPECT_EQ(2u, counter.num_packets);
EXPECT_EQ(1u, counter.num_fec_packets);
EXPECT_EQ(0u, counter.num_recovered_packets);
-
- DeletePackets(&media_packets);
}
TEST_F(ReceiverFecTest, InjectGarbageFecHeaderLengthRecovery) {
@@ -175,7 +166,7 @@ TEST_F(ReceiverFecTest, TwoMediaTwoFec) {
std::list<test::RawRtpPacket*> media_rtp_packets;
ForwardErrorCorrection::PacketList media_packets;
GenerateFrame(2, 0, &media_rtp_packets, &media_packets);
- ForwardErrorCorrection::PacketList fec_packets;
+ std::list<ForwardErrorCorrection::Packet*> fec_packets;
GenerateFec(&media_packets, &fec_packets, kNumFecPackets);
// Recovery
@@ -190,8 +181,6 @@ TEST_F(ReceiverFecTest, TwoMediaTwoFec) {
++it;
VerifyReconstructedMediaPacket(*it, 1);
EXPECT_EQ(0, receiver_fec_->ProcessReceivedFec());
-
- DeletePackets(&media_packets);
}
TEST_F(ReceiverFecTest, TwoFramesOneFec) {
@@ -200,7 +189,7 @@ TEST_F(ReceiverFecTest, TwoFramesOneFec) {
ForwardErrorCorrection::PacketList media_packets;
GenerateFrame(1, 0, &media_rtp_packets, &media_packets);
GenerateFrame(1, 1, &media_rtp_packets, &media_packets);
- ForwardErrorCorrection::PacketList fec_packets;
+ std::list<ForwardErrorCorrection::Packet*> fec_packets;
GenerateFec(&media_packets, &fec_packets, kNumFecPackets);
// Recovery
@@ -213,8 +202,6 @@ TEST_F(ReceiverFecTest, TwoFramesOneFec) {
++it;
VerifyReconstructedMediaPacket(*it, 1);
EXPECT_EQ(0, receiver_fec_->ProcessReceivedFec());
-
- DeletePackets(&media_packets);
}
TEST_F(ReceiverFecTest, OneCompleteOneUnrecoverableFrame) {
@@ -224,7 +211,7 @@ TEST_F(ReceiverFecTest, OneCompleteOneUnrecoverableFrame) {
GenerateFrame(1, 0, &media_rtp_packets, &media_packets);
GenerateFrame(2, 1, &media_rtp_packets, &media_packets);
- ForwardErrorCorrection::PacketList fec_packets;
+ std::list<ForwardErrorCorrection::Packet*> fec_packets;
GenerateFec(&media_packets, &fec_packets, kNumFecPackets);
// Recovery
@@ -236,8 +223,6 @@ TEST_F(ReceiverFecTest, OneCompleteOneUnrecoverableFrame) {
BuildAndAddRedMediaPacket(*it); // First packet of second frame.
VerifyReconstructedMediaPacket(*it, 1);
EXPECT_EQ(0, receiver_fec_->ProcessReceivedFec());
-
- DeletePackets(&media_packets);
}
TEST_F(ReceiverFecTest, MaxFramesOneFec) {
@@ -248,7 +233,7 @@ TEST_F(ReceiverFecTest, MaxFramesOneFec) {
for (unsigned int i = 0; i < kNumMediaPackets; ++i) {
GenerateFrame(1, i, &media_rtp_packets, &media_packets);
}
- ForwardErrorCorrection::PacketList fec_packets;
+ std::list<ForwardErrorCorrection::Packet*> fec_packets;
GenerateFec(&media_packets, &fec_packets, kNumFecPackets);
// Recovery
@@ -263,8 +248,6 @@ TEST_F(ReceiverFecTest, MaxFramesOneFec) {
it = media_rtp_packets.begin();
VerifyReconstructedMediaPacket(*it, 1);
EXPECT_EQ(0, receiver_fec_->ProcessReceivedFec());
-
- DeletePackets(&media_packets);
}
TEST_F(ReceiverFecTest, TooManyFrames) {
@@ -275,12 +258,10 @@ TEST_F(ReceiverFecTest, TooManyFrames) {
for (unsigned int i = 0; i < kNumMediaPackets; ++i) {
GenerateFrame(1, i, &media_rtp_packets, &media_packets);
}
- ForwardErrorCorrection::PacketList fec_packets;
+ std::list<ForwardErrorCorrection::Packet*> fec_packets;
EXPECT_EQ(-1, fec_->GenerateFec(media_packets,
kNumFecPackets * 255 / kNumMediaPackets, 0,
false, kFecMaskBursty, &fec_packets));
-
- DeletePackets(&media_packets);
}
TEST_F(ReceiverFecTest, PacketNotDroppedTooEarly) {
@@ -293,7 +274,7 @@ TEST_F(ReceiverFecTest, PacketNotDroppedTooEarly) {
ForwardErrorCorrection::PacketList media_packets_batch1;
GenerateFrame(kNumMediaPacketsBatch1, 0, &media_rtp_packets_batch1,
&media_packets_batch1);
- ForwardErrorCorrection::PacketList fec_packets;
+ std::list<ForwardErrorCorrection::Packet*> fec_packets;
GenerateFec(&media_packets_batch1, &fec_packets, kNumFecPacketsBatch1);
BuildAndAddRedMediaPacket(media_rtp_packets_batch1.front());
@@ -322,9 +303,6 @@ TEST_F(ReceiverFecTest, PacketNotDroppedTooEarly) {
EXPECT_CALL(rtp_data_callback_, OnRecoveredPacket(_, _))
.Times(1).WillRepeatedly(Return(true));
EXPECT_EQ(0, receiver_fec_->ProcessReceivedFec());
-
- DeletePackets(&media_packets_batch1);
- DeletePackets(&media_packets_batch2);
}
TEST_F(ReceiverFecTest, PacketDroppedWhenTooOld) {
@@ -337,7 +315,7 @@ TEST_F(ReceiverFecTest, PacketDroppedWhenTooOld) {
ForwardErrorCorrection::PacketList media_packets_batch1;
GenerateFrame(kNumMediaPacketsBatch1, 0, &media_rtp_packets_batch1,
&media_packets_batch1);
- ForwardErrorCorrection::PacketList fec_packets;
+ std::list<ForwardErrorCorrection::Packet*> fec_packets;
GenerateFec(&media_packets_batch1, &fec_packets, kNumFecPacketsBatch1);
BuildAndAddRedMediaPacket(media_rtp_packets_batch1.front());
@@ -367,9 +345,6 @@ TEST_F(ReceiverFecTest, PacketDroppedWhenTooOld) {
EXPECT_CALL(rtp_data_callback_, OnRecoveredPacket(_, _))
.Times(0);
EXPECT_EQ(0, receiver_fec_->ProcessReceivedFec());
-
- DeletePackets(&media_packets_batch1);
- DeletePackets(&media_packets_batch2);
}
TEST_F(ReceiverFecTest, OldFecPacketDropped) {
@@ -381,7 +356,7 @@ TEST_F(ReceiverFecTest, OldFecPacketDropped) {
for (unsigned int i = 0; i < kNumMediaPackets / 2; ++i) {
std::list<test::RawRtpPacket*> frame_media_rtp_packets;
ForwardErrorCorrection::PacketList frame_media_packets;
- ForwardErrorCorrection::PacketList fec_packets;
+ std::list<ForwardErrorCorrection::Packet*> fec_packets;
GenerateFrame(2, 0, &frame_media_rtp_packets, &frame_media_packets);
GenerateFec(&frame_media_packets, &fec_packets, 1);
for (auto it = fec_packets.begin(); it != fec_packets.end(); ++it) {
@@ -391,8 +366,10 @@ TEST_F(ReceiverFecTest, OldFecPacketDropped) {
.Times(0);
EXPECT_EQ(0, receiver_fec_->ProcessReceivedFec());
}
- media_packets.insert(media_packets.end(), frame_media_packets.begin(),
- frame_media_packets.end());
+ // Move unique_ptr's to media_packets for lifetime management.
+ media_packets.insert(media_packets.end(),
+ std::make_move_iterator(frame_media_packets.begin()),
+ std::make_move_iterator(frame_media_packets.end()));
media_rtp_packets.insert(media_rtp_packets.end(),
frame_media_rtp_packets.begin(),
frame_media_rtp_packets.end());
@@ -404,8 +381,6 @@ TEST_F(ReceiverFecTest, OldFecPacketDropped) {
EXPECT_CALL(rtp_data_callback_, OnRecoveredPacket(_, _))
.Times(1).WillRepeatedly(Return(true));
EXPECT_EQ(0, receiver_fec_->ProcessReceivedFec());
-
- DeletePackets(&media_packets);
}
void ReceiverFecTest::SurvivesMaliciousPacket(const uint8_t* data,

Powered by Google App Engine
This is Rietveld 408576698