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

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

Issue 2589393002: Revert of Parse FlexFEC RTP headers in Call and add integration with BWE. (Closed)
Patch Set: Created 4 years 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
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/flexfec_receiver.cc ('k') | webrtc/modules/rtp_rtcp/source/rtp_packet.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/modules/rtp_rtcp/source/flexfec_receiver_unittest.cc
diff --git a/webrtc/modules/rtp_rtcp/source/flexfec_receiver_unittest.cc b/webrtc/modules/rtp_rtcp/source/flexfec_receiver_unittest.cc
index 8bf0f3701fa2b3ba38d1eb84f82299cf075e6f54..8b46878e2d9d9b6fa4211691356d168060a49dc4 100644
--- a/webrtc/modules/rtp_rtcp/source/flexfec_receiver_unittest.cc
+++ b/webrtc/modules/rtp_rtcp/source/flexfec_receiver_unittest.cc
@@ -16,7 +16,6 @@
#include "webrtc/modules/rtp_rtcp/mocks/mock_recovered_packet_receiver.h"
#include "webrtc/modules/rtp_rtcp/source/fec_test_helper.h"
#include "webrtc/modules/rtp_rtcp/source/forward_error_correction.h"
-#include "webrtc/modules/rtp_rtcp/source/rtp_packet_received.h"
#include "webrtc/test/gmock.h"
#include "webrtc/test/gtest.h"
@@ -36,12 +35,6 @@
constexpr size_t kPayloadLength = 500;
constexpr uint32_t kFlexfecSsrc = 42984;
constexpr uint32_t kMediaSsrc = 8353;
-
-RtpPacketReceived ParsePacket(const Packet& packet) {
- RtpPacketReceived parsed_packet;
- EXPECT_TRUE(parsed_packet.Parse(packet.data, packet.length));
- return parsed_packet;
-}
} // namespace
@@ -100,8 +93,21 @@
std::unique_ptr<Packet> media_packet(
packet_generator_.NextPacket(0, kPayloadLength));
- EXPECT_TRUE(
- receiver_.AddAndProcessReceivedPacket(ParsePacket(*media_packet)));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(media_packet->data,
+ media_packet->length));
+}
+
+TEST_F(FlexfecReceiverTest, FailsOnTruncatedMediaPacket) {
+ const size_t kNoPayload = 0;
+
+ packet_generator_.NewFrame(1);
+ std::unique_ptr<Packet> media_packet(
+ packet_generator_.NextPacket(0, kNoPayload));
+ // Simulate truncated media packet.
+ media_packet->length = kRtpHeaderSize - 1;
+
+ EXPECT_FALSE(receiver_.AddAndProcessReceivedPacket(media_packet->data,
+ media_packet->length));
}
TEST_F(FlexfecReceiverTest, ReceivesMediaAndFecPackets) {
@@ -111,12 +117,13 @@
PacketList media_packets;
PacketizeFrame(kNumMediaPackets, 0, &media_packets);
std::list<Packet*> fec_packets = EncodeFec(media_packets, kNumFecPackets);
- const auto& media_packet = media_packets.front();
+ auto media_packet = media_packets.front().get();
auto fec_packet = packet_generator_.BuildFlexfecPacket(*fec_packets.front());
- EXPECT_TRUE(
- receiver_.AddAndProcessReceivedPacket(ParsePacket(*media_packet)));
- EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(ParsePacket(*fec_packet)));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(media_packet->data,
+ media_packet->length));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(fec_packet->data,
+ fec_packet->length));
}
TEST_F(FlexfecReceiverTest, FailsOnTruncatedFecPacket) {
@@ -126,14 +133,15 @@
PacketList media_packets;
PacketizeFrame(kNumMediaPackets, 0, &media_packets);
std::list<Packet*> fec_packets = EncodeFec(media_packets, kNumFecPackets);
- const auto& media_packet = media_packets.front();
+ auto media_packet = media_packets.front().get();
// Simulate truncated FlexFEC payload.
fec_packets.front()->length = 1;
auto fec_packet = packet_generator_.BuildFlexfecPacket(*fec_packets.front());
- EXPECT_TRUE(
- receiver_.AddAndProcessReceivedPacket(ParsePacket(*media_packet)));
- EXPECT_FALSE(receiver_.AddAndProcessReceivedPacket(ParsePacket(*fec_packet)));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(media_packet->data,
+ media_packet->length));
+ EXPECT_FALSE(receiver_.AddAndProcessReceivedPacket(fec_packet->data,
+ fec_packet->length));
}
TEST_F(FlexfecReceiverTest, FailsOnUnknownMediaSsrc) {
@@ -141,15 +149,15 @@
PacketList media_packets;
PacketizeFrame(kNumMediaPackets, 0, &media_packets);
- auto& media_packet = media_packets.front();
+ auto media_packet = media_packets.front().get();
// Corrupt the SSRC.
media_packet->data[8] = 0;
media_packet->data[9] = 1;
media_packet->data[10] = 2;
media_packet->data[11] = 3;
- EXPECT_FALSE(
- receiver_.AddAndProcessReceivedPacket(ParsePacket(*media_packet)));
+ EXPECT_FALSE(receiver_.AddAndProcessReceivedPacket(media_packet->data,
+ media_packet->length));
}
TEST_F(FlexfecReceiverTest, FailsOnUnknownFecSsrc) {
@@ -159,7 +167,7 @@
PacketList media_packets;
PacketizeFrame(kNumMediaPackets, 0, &media_packets);
std::list<Packet*> fec_packets = EncodeFec(media_packets, kNumFecPackets);
- const auto& media_packet = media_packets.front();
+ auto media_packet = media_packets.front().get();
auto fec_packet = packet_generator_.BuildFlexfecPacket(*fec_packets.front());
// Corrupt the SSRC.
fec_packet->data[8] = 4;
@@ -167,9 +175,10 @@
fec_packet->data[10] = 6;
fec_packet->data[11] = 7;
- EXPECT_TRUE(
- receiver_.AddAndProcessReceivedPacket(ParsePacket(*media_packet)));
- EXPECT_FALSE(receiver_.AddAndProcessReceivedPacket(ParsePacket(*fec_packet)));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(media_packet->data,
+ media_packet->length));
+ EXPECT_FALSE(receiver_.AddAndProcessReceivedPacket(fec_packet->data,
+ fec_packet->length));
}
TEST_F(FlexfecReceiverTest, ReceivesMultiplePackets) {
@@ -182,8 +191,8 @@
// Receive all media packets.
for (const auto& media_packet : media_packets) {
- EXPECT_TRUE(
- receiver_.AddAndProcessReceivedPacket(ParsePacket(*media_packet)));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(media_packet->data,
+ media_packet->length));
}
// Receive FEC packet.
@@ -191,7 +200,7 @@
std::unique_ptr<Packet> packet_with_rtp_header =
packet_generator_.BuildFlexfecPacket(*fec_packet);
EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(
- ParsePacket(*packet_with_rtp_header)));
+ packet_with_rtp_header->data, packet_with_rtp_header->length));
}
TEST_F(FlexfecReceiverTest, RecoversFromSingleMediaLoss) {
@@ -204,7 +213,8 @@
// Receive first media packet but drop second.
auto media_it = media_packets.begin();
- EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(ParsePacket(**media_it)));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket((*media_it)->data,
+ (*media_it)->length));
// Receive FEC packet and ensure recovery of lost media packet.
auto fec_it = fec_packets.begin();
@@ -217,7 +227,7 @@
Args<0, 1>(ElementsAreArray((*media_it)->data, (*media_it)->length)))
.WillOnce(Return(true));
EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(
- ParsePacket(*packet_with_rtp_header)));
+ packet_with_rtp_header->data, packet_with_rtp_header->length));
}
TEST_F(FlexfecReceiverTest, RecoversFromDoubleMediaLoss) {
@@ -241,7 +251,7 @@
Args<0, 1>(ElementsAreArray((*media_it)->data, (*media_it)->length)))
.WillOnce(Return(true));
EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(
- ParsePacket(*packet_with_rtp_header)));
+ packet_with_rtp_header->data, packet_with_rtp_header->length));
// Receive second FEC packet and recover second lost media packet.
fec_it++;
@@ -253,7 +263,7 @@
Args<0, 1>(ElementsAreArray((*media_it)->data, (*media_it)->length)))
.WillOnce(Return(true));
EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(
- ParsePacket(*packet_with_rtp_header)));
+ packet_with_rtp_header->data, packet_with_rtp_header->length));
}
TEST_F(FlexfecReceiverTest, DoesNotRecoverFromMediaAndFecLoss) {
@@ -266,7 +276,8 @@
// Receive first media packet.
auto media_it = media_packets.begin();
- EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(ParsePacket(**media_it)));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket((*media_it)->data,
+ (*media_it)->length));
// Drop second media packet and FEC packet. Do not expect call back.
}
@@ -281,7 +292,8 @@
// Receive first media packet but drop second.
auto media_it = media_packets.begin();
- EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(ParsePacket(**media_it)));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket((*media_it)->data,
+ (*media_it)->length));
// Receive FEC packet and ensure recovery of lost media packet.
auto fec_it = fec_packets.begin();
@@ -294,11 +306,11 @@
Args<0, 1>(ElementsAreArray((*media_it)->data, (*media_it)->length)))
.WillOnce(Return(true));
EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(
- ParsePacket(*packet_with_rtp_header)));
+ packet_with_rtp_header->data, packet_with_rtp_header->length));
// Receive FEC packet again.
EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(
- ParsePacket(*packet_with_rtp_header)));
+ packet_with_rtp_header->data, packet_with_rtp_header->length));
// Do not call back again.
}
@@ -320,7 +332,8 @@
// Drop every second media packet.
auto media_it = media_packets.begin();
while (media_it != media_packets.end()) {
- EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(ParsePacket(**media_it)));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket((*media_it)->data,
+ (*media_it)->length));
++media_it;
if (media_it == media_packets.end()) {
break;
@@ -343,7 +356,7 @@
ElementsAreArray((*media_it)->data, (*media_it)->length)))
.WillOnce(Return(true));
EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(
- ParsePacket(*fec_packet_with_rtp_header)));
+ fec_packet_with_rtp_header->data, fec_packet_with_rtp_header->length));
++media_it;
}
}
@@ -370,7 +383,8 @@
// Receive all other media packets.
while (media_it != media_packets.end()) {
- EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(ParsePacket(**media_it)));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket((*media_it)->data,
+ (*media_it)->length));
++media_it;
}
@@ -385,7 +399,7 @@
Args<0, 1>(ElementsAreArray((*media_it)->data, (*media_it)->length)))
.WillOnce(Return(true));
EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(
- ParsePacket(*packet_with_rtp_header)));
+ packet_with_rtp_header->data, packet_with_rtp_header->length));
}
TEST_F(FlexfecReceiverTest, TooDelayedFecPacketDoesNotHelp) {
@@ -410,7 +424,8 @@
// Receive all other media packets.
while (media_it != media_packets.end()) {
- EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(ParsePacket(**media_it)));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket((*media_it)->data,
+ (*media_it)->length));
++media_it;
}
@@ -419,7 +434,7 @@
std::unique_ptr<Packet> packet_with_rtp_header =
packet_generator_.BuildFlexfecPacket(**fec_it);
EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(
- ParsePacket(*packet_with_rtp_header)));
+ packet_with_rtp_header->data, packet_with_rtp_header->length));
// Do not expect a call back.
}
@@ -440,14 +455,14 @@
auto media_packet3 = media_it++;
auto media_packet4 = media_it++;
auto media_packet5 = media_it++;
- EXPECT_TRUE(
- receiver_.AddAndProcessReceivedPacket(ParsePacket(**media_packet5)));
- EXPECT_TRUE(
- receiver_.AddAndProcessReceivedPacket(ParsePacket(**media_packet2)));
- EXPECT_TRUE(
- receiver_.AddAndProcessReceivedPacket(ParsePacket(**media_packet3)));
- EXPECT_TRUE(
- receiver_.AddAndProcessReceivedPacket(ParsePacket(**media_packet0)));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket((*media_packet5)->data,
+ (*media_packet5)->length));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket((*media_packet2)->data,
+ (*media_packet2)->length));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket((*media_packet3)->data,
+ (*media_packet3)->length));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket((*media_packet0)->data,
+ (*media_packet0)->length));
// Expect to recover lost media packets.
EXPECT_CALL(recovered_packet_receiver_,
@@ -467,7 +482,7 @@
while (fec_it != fec_packets.end()) {
packet_with_rtp_header = packet_generator_.BuildFlexfecPacket(**fec_it);
EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(
- ParsePacket(*packet_with_rtp_header)));
+ packet_with_rtp_header->data, packet_with_rtp_header->length));
++fec_it;
}
}
@@ -482,7 +497,8 @@
// Receive first media packet but drop second.
auto media_it = media_packets.begin();
- EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(ParsePacket(**media_it)));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket((*media_it)->data,
+ (*media_it)->length));
// Receive FEC packet and ensure recovery of lost media packet.
auto fec_it = fec_packets.begin();
@@ -495,7 +511,7 @@
Args<0, 1>(ElementsAreArray((*media_it)->data, (*media_it)->length)))
.WillOnce(Return(true));
EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(
- ParsePacket(*packet_with_rtp_header)));
+ packet_with_rtp_header->data, packet_with_rtp_header->length));
// Check stats calculations.
FecPacketCounter packet_counter = receiver_.GetPacketCounter();
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/flexfec_receiver.cc ('k') | webrtc/modules/rtp_rtcp/source/rtp_packet.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698