Make FlexfecReceiver a concrete class.
There is no need for it to be an interface.
In this CL, I also took the opportunity to make two small fixes:
- remove the 'flexfec_' prefix from some member variables
- remove unnecessary use of a stringstream object
BUG=webrtc:5654
Review-Url: https://codereview.webrtc.org/2471073003
Cr-Commit-Position: refs/heads/master@{#14919}
diff --git a/webrtc/call/flexfec_receive_stream.cc b/webrtc/call/flexfec_receive_stream.cc
index e3b3345..fb078f4 100644
--- a/webrtc/call/flexfec_receive_stream.cc
+++ b/webrtc/call/flexfec_receive_stream.cc
@@ -42,9 +42,9 @@
<< config->protected_media_ssrcs[0] << ".";
config->protected_media_ssrcs.resize(1);
}
- return FlexfecReceiver::Create(config->flexfec_ssrc,
- config->protected_media_ssrcs[0],
- recovered_packet_callback);
+ return std::unique_ptr<FlexfecReceiver>(new FlexfecReceiver(
+ config->flexfec_ssrc, config->protected_media_ssrcs[0],
+ recovered_packet_callback));
}
} // namespace
diff --git a/webrtc/modules/rtp_rtcp/BUILD.gn b/webrtc/modules/rtp_rtcp/BUILD.gn
index dcdb43e..e373801 100644
--- a/webrtc/modules/rtp_rtcp/BUILD.gn
+++ b/webrtc/modules/rtp_rtcp/BUILD.gn
@@ -27,8 +27,7 @@
"source/fec_private_tables_random.h",
"source/flexfec_header_reader_writer.cc",
"source/flexfec_header_reader_writer.h",
- "source/flexfec_receiver_impl.cc",
- "source/flexfec_receiver_impl.h",
+ "source/flexfec_receiver.cc",
"source/forward_error_correction.cc",
"source/forward_error_correction.h",
"source/forward_error_correction_internal.cc",
diff --git a/webrtc/modules/rtp_rtcp/include/flexfec_receiver.h b/webrtc/modules/rtp_rtcp/include/flexfec_receiver.h
index fa1c853..06294b4 100644
--- a/webrtc/modules/rtp_rtcp/include/flexfec_receiver.h
+++ b/webrtc/modules/rtp_rtcp/include/flexfec_receiver.h
@@ -14,7 +14,12 @@
#include <memory>
#include "webrtc/base/basictypes.h"
+#include "webrtc/base/sequenced_task_checker.h"
+#include "webrtc/call.h"
+#include "webrtc/modules/rtp_rtcp/include/flexfec_receiver.h"
#include "webrtc/modules/rtp_rtcp/include/ulpfec_receiver.h"
+#include "webrtc/modules/rtp_rtcp/source/forward_error_correction.h"
+#include "webrtc/system_wrappers/include/clock.h"
namespace webrtc {
@@ -30,20 +35,39 @@
class FlexfecReceiver {
public:
- static std::unique_ptr<FlexfecReceiver> Create(
- uint32_t flexfec_ssrc,
- uint32_t protected_media_ssrc,
- RecoveredPacketReceiver* callback);
- virtual ~FlexfecReceiver();
+ FlexfecReceiver(uint32_t ssrc,
+ uint32_t protected_media_ssrc,
+ RecoveredPacketReceiver* callback);
+ ~FlexfecReceiver();
// Inserts a received packet (can be either media or FlexFEC) into the
// internal buffer, and sends the received packets to the erasure code.
// All newly recovered packets are sent back through the callback.
- virtual bool AddAndProcessReceivedPacket(const uint8_t* packet,
- size_t packet_length) = 0;
+ bool AddAndProcessReceivedPacket(const uint8_t* packet, size_t packet_length);
// Returns a counter describing the added and recovered packets.
- virtual FecPacketCounter GetPacketCounter() const = 0;
+ FecPacketCounter GetPacketCounter() const;
+
+ private:
+ bool AddReceivedPacket(const uint8_t* packet, size_t packet_length);
+ bool ProcessReceivedPackets();
+
+ // Config.
+ const uint32_t ssrc_;
+ const uint32_t protected_media_ssrc_;
+
+ // Erasure code interfacing and callback.
+ std::unique_ptr<ForwardErrorCorrection> erasure_code_;
+ ForwardErrorCorrection::ReceivedPacketList received_packets_;
+ ForwardErrorCorrection::RecoveredPacketList recovered_packets_;
+ RecoveredPacketReceiver* const callback_;
+
+ // Logging and stats.
+ Clock* const clock_;
+ int64_t last_recovered_packet_ms_;
+ FecPacketCounter packet_counter_;
+
+ rtc::SequencedTaskChecker sequence_checker_;
};
} // namespace webrtc
diff --git a/webrtc/modules/rtp_rtcp/rtp_rtcp.gypi b/webrtc/modules/rtp_rtcp/rtp_rtcp.gypi
index cd8d715..b58f9e4 100644
--- a/webrtc/modules/rtp_rtcp/rtp_rtcp.gypi
+++ b/webrtc/modules/rtp_rtcp/rtp_rtcp.gypi
@@ -28,8 +28,7 @@
'include/rtp_rtcp_defines.h',
'include/ulpfec_receiver.h',
'source/byte_io.h',
- 'source/flexfec_receiver_impl.cc',
- 'source/flexfec_receiver_impl.h',
+ 'source/flexfec_receiver.cc',
'source/packet_loss_stats.cc',
'source/packet_loss_stats.h',
'source/playout_delay_oracle.cc',
diff --git a/webrtc/modules/rtp_rtcp/source/flexfec_receiver_impl.cc b/webrtc/modules/rtp_rtcp/source/flexfec_receiver.cc
similarity index 80%
rename from webrtc/modules/rtp_rtcp/source/flexfec_receiver_impl.cc
rename to webrtc/modules/rtp_rtcp/source/flexfec_receiver.cc
index bcd33ac..c84da55 100644
--- a/webrtc/modules/rtp_rtcp/source/flexfec_receiver_impl.cc
+++ b/webrtc/modules/rtp_rtcp/source/flexfec_receiver.cc
@@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-#include "webrtc/modules/rtp_rtcp/source/flexfec_receiver_impl.h"
+#include "webrtc/modules/rtp_rtcp/include/flexfec_receiver.h"
#include <utility>
@@ -31,20 +31,10 @@
} // namespace
-std::unique_ptr<FlexfecReceiver> FlexfecReceiver::Create(
- uint32_t flexfec_ssrc,
- uint32_t protected_media_ssrc,
- RecoveredPacketReceiver* callback) {
- return std::unique_ptr<FlexfecReceiver>(
- new FlexfecReceiverImpl(flexfec_ssrc, protected_media_ssrc, callback));
-}
-
-FlexfecReceiver::~FlexfecReceiver() = default;
-
-FlexfecReceiverImpl::FlexfecReceiverImpl(uint32_t flexfec_ssrc,
- uint32_t protected_media_ssrc,
- RecoveredPacketReceiver* callback)
- : flexfec_ssrc_(flexfec_ssrc),
+FlexfecReceiver::FlexfecReceiver(uint32_t ssrc,
+ uint32_t protected_media_ssrc,
+ RecoveredPacketReceiver* callback)
+ : ssrc_(ssrc),
protected_media_ssrc_(protected_media_ssrc),
erasure_code_(ForwardErrorCorrection::CreateFlexfec()),
callback_(callback),
@@ -55,10 +45,10 @@
sequence_checker_.Detach();
}
-FlexfecReceiverImpl::~FlexfecReceiverImpl() = default;
+FlexfecReceiver::~FlexfecReceiver() = default;
-bool FlexfecReceiverImpl::AddAndProcessReceivedPacket(const uint8_t* packet,
- size_t packet_length) {
+bool FlexfecReceiver::AddAndProcessReceivedPacket(const uint8_t* packet,
+ size_t packet_length) {
RTC_DCHECK(sequence_checker_.CalledSequentially());
if (!AddReceivedPacket(packet, packet_length)) {
@@ -67,13 +57,13 @@
return ProcessReceivedPackets();
}
-FecPacketCounter FlexfecReceiverImpl::GetPacketCounter() const {
+FecPacketCounter FlexfecReceiver::GetPacketCounter() const {
RTC_DCHECK(sequence_checker_.CalledSequentially());
return packet_counter_;
}
-bool FlexfecReceiverImpl::AddReceivedPacket(const uint8_t* packet,
- size_t packet_length) {
+bool FlexfecReceiver::AddReceivedPacket(const uint8_t* packet,
+ size_t packet_length) {
RTC_DCHECK(sequence_checker_.CalledSequentially());
// RTP packets with a full base header (12 bytes), but without payload,
@@ -95,7 +85,7 @@
std::unique_ptr<ReceivedPacket> received_packet(new ReceivedPacket());
received_packet->seq_num = parsed_packet.SequenceNumber();
received_packet->ssrc = parsed_packet.Ssrc();
- if (received_packet->ssrc == flexfec_ssrc_) {
+ if (received_packet->ssrc == ssrc_) {
// This is a FEC packet belonging to this FlexFEC stream.
if (parsed_packet.payload_size() < kMinFlexfecHeaderSize) {
LOG(LS_WARNING) << "Truncated FlexFEC packet, discarding.";
@@ -139,7 +129,7 @@
// Here, however, the received media pipeline is more decoupled from the
// FlexFEC decoder, and we therefore do not interfere with the reception
// of non-recovered media packets.
-bool FlexfecReceiverImpl::ProcessReceivedPackets() {
+bool FlexfecReceiver::ProcessReceivedPackets() {
RTC_DCHECK(sequence_checker_.CalledSequentially());
// Decode.
@@ -165,10 +155,8 @@
if (now_ms - last_recovered_packet_ms_ > kPacketLogIntervalMs) {
uint32_t media_ssrc =
ForwardErrorCorrection::ParseSsrc(recovered_packet->pkt->data);
- std::stringstream ss;
- ss << "Recovered media packet with SSRC: " << media_ssrc
- << " from FlexFEC stream with SSRC: " << flexfec_ssrc_ << ".";
- LOG(LS_INFO) << ss.str();
+ LOG(LS_INFO) << "Recovered media packet with SSRC: " << media_ssrc
+ << " from FlexFEC stream with SSRC: " << ssrc_ << ".";
last_recovered_packet_ms_ = now_ms;
}
}
diff --git a/webrtc/modules/rtp_rtcp/source/flexfec_receiver_impl.h b/webrtc/modules/rtp_rtcp/source/flexfec_receiver_impl.h
deleted file mode 100644
index 9550e95..0000000
--- a/webrtc/modules/rtp_rtcp/source/flexfec_receiver_impl.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef WEBRTC_MODULES_RTP_RTCP_SOURCE_FLEXFEC_RECEIVER_IMPL_H_
-#define WEBRTC_MODULES_RTP_RTCP_SOURCE_FLEXFEC_RECEIVER_IMPL_H_
-
-#include <memory>
-
-#include "webrtc/base/basictypes.h"
-#include "webrtc/base/sequenced_task_checker.h"
-#include "webrtc/call.h"
-#include "webrtc/modules/rtp_rtcp/include/flexfec_receiver.h"
-#include "webrtc/modules/rtp_rtcp/source/forward_error_correction.h"
-#include "webrtc/system_wrappers/include/clock.h"
-
-namespace webrtc {
-
-class FlexfecReceiverImpl : public FlexfecReceiver {
- public:
- FlexfecReceiverImpl(uint32_t flexfec_ssrc,
- uint32_t protected_media_ssrc,
- RecoveredPacketReceiver* callback);
- ~FlexfecReceiverImpl();
-
- // Implements FlexfecReceiver.
- bool AddAndProcessReceivedPacket(const uint8_t* packet, size_t packet_length);
- FecPacketCounter GetPacketCounter() const;
-
- private:
- bool AddReceivedPacket(const uint8_t* packet, size_t packet_length);
- bool ProcessReceivedPackets();
-
- // Config.
- const uint32_t flexfec_ssrc_;
- const uint32_t protected_media_ssrc_;
-
- // Erasure code interfacing and callback.
- std::unique_ptr<ForwardErrorCorrection> erasure_code_;
- ForwardErrorCorrection::ReceivedPacketList received_packets_;
- ForwardErrorCorrection::RecoveredPacketList recovered_packets_;
- RecoveredPacketReceiver* const callback_;
-
- // Logging and stats.
- Clock* const clock_;
- int64_t last_recovered_packet_ms_;
- FecPacketCounter packet_counter_;
-
- rtc::SequencedTaskChecker sequence_checker_;
-};
-
-} // namespace webrtc
-
-#endif // WEBRTC_MODULES_RTP_RTCP_SOURCE_FLEXFEC_RECEIVER_IMPL_H_
diff --git a/webrtc/modules/rtp_rtcp/source/flexfec_receiver_unittest.cc b/webrtc/modules/rtp_rtcp/source/flexfec_receiver_unittest.cc
index 8efa63a..8b46878 100644
--- a/webrtc/modules/rtp_rtcp/source/flexfec_receiver_unittest.cc
+++ b/webrtc/modules/rtp_rtcp/source/flexfec_receiver_unittest.cc
@@ -41,9 +41,7 @@
class FlexfecReceiverTest : public ::testing::Test {
protected:
FlexfecReceiverTest()
- : receiver_(FlexfecReceiver::Create(kFlexfecSsrc,
- kMediaSsrc,
- &recovered_packet_receiver_)),
+ : receiver_(kFlexfecSsrc, kMediaSsrc, &recovered_packet_receiver_),
erasure_code_(ForwardErrorCorrection::CreateFlexfec()),
packet_generator_(kMediaSsrc, kFlexfecSsrc) {}
@@ -56,7 +54,7 @@
std::list<Packet*> EncodeFec(const PacketList& media_packets,
size_t num_fec_packets);
- std::unique_ptr<FlexfecReceiver> receiver_;
+ FlexfecReceiver receiver_;
std::unique_ptr<ForwardErrorCorrection> erasure_code_;
FlexfecPacketGenerator packet_generator_;
@@ -95,8 +93,8 @@
std::unique_ptr<Packet> media_packet(
packet_generator_.NextPacket(0, kPayloadLength));
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket(media_packet->data,
- media_packet->length));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(media_packet->data,
+ media_packet->length));
}
TEST_F(FlexfecReceiverTest, FailsOnTruncatedMediaPacket) {
@@ -108,8 +106,8 @@
// Simulate truncated media packet.
media_packet->length = kRtpHeaderSize - 1;
- EXPECT_FALSE(receiver_->AddAndProcessReceivedPacket(media_packet->data,
- media_packet->length));
+ EXPECT_FALSE(receiver_.AddAndProcessReceivedPacket(media_packet->data,
+ media_packet->length));
}
TEST_F(FlexfecReceiverTest, ReceivesMediaAndFecPackets) {
@@ -122,10 +120,10 @@
auto media_packet = media_packets.front().get();
auto fec_packet = packet_generator_.BuildFlexfecPacket(*fec_packets.front());
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket(media_packet->data,
- media_packet->length));
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket(fec_packet->data,
- fec_packet->length));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(media_packet->data,
+ media_packet->length));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(fec_packet->data,
+ fec_packet->length));
}
TEST_F(FlexfecReceiverTest, FailsOnTruncatedFecPacket) {
@@ -140,10 +138,10 @@
fec_packets.front()->length = 1;
auto fec_packet = packet_generator_.BuildFlexfecPacket(*fec_packets.front());
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket(media_packet->data,
- media_packet->length));
- EXPECT_FALSE(receiver_->AddAndProcessReceivedPacket(fec_packet->data,
- fec_packet->length));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(media_packet->data,
+ media_packet->length));
+ EXPECT_FALSE(receiver_.AddAndProcessReceivedPacket(fec_packet->data,
+ fec_packet->length));
}
TEST_F(FlexfecReceiverTest, FailsOnUnknownMediaSsrc) {
@@ -158,8 +156,8 @@
media_packet->data[10] = 2;
media_packet->data[11] = 3;
- EXPECT_FALSE(receiver_->AddAndProcessReceivedPacket(media_packet->data,
- media_packet->length));
+ EXPECT_FALSE(receiver_.AddAndProcessReceivedPacket(media_packet->data,
+ media_packet->length));
}
TEST_F(FlexfecReceiverTest, FailsOnUnknownFecSsrc) {
@@ -177,10 +175,10 @@
fec_packet->data[10] = 6;
fec_packet->data[11] = 7;
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket(media_packet->data,
- media_packet->length));
- EXPECT_FALSE(receiver_->AddAndProcessReceivedPacket(fec_packet->data,
- fec_packet->length));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(media_packet->data,
+ media_packet->length));
+ EXPECT_FALSE(receiver_.AddAndProcessReceivedPacket(fec_packet->data,
+ fec_packet->length));
}
TEST_F(FlexfecReceiverTest, ReceivesMultiplePackets) {
@@ -193,15 +191,15 @@
// Receive all media packets.
for (const auto& media_packet : media_packets) {
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket(media_packet->data,
- media_packet->length));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(media_packet->data,
+ media_packet->length));
}
// Receive FEC packet.
auto fec_packet = fec_packets.front();
std::unique_ptr<Packet> packet_with_rtp_header =
packet_generator_.BuildFlexfecPacket(*fec_packet);
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket(
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(
packet_with_rtp_header->data, packet_with_rtp_header->length));
}
@@ -215,8 +213,8 @@
// Receive first media packet but drop second.
auto media_it = media_packets.begin();
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket((*media_it)->data,
- (*media_it)->length));
+ 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();
@@ -228,7 +226,7 @@
.With(
Args<0, 1>(ElementsAreArray((*media_it)->data, (*media_it)->length)))
.WillOnce(Return(true));
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket(
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(
packet_with_rtp_header->data, packet_with_rtp_header->length));
}
@@ -252,7 +250,7 @@
.With(
Args<0, 1>(ElementsAreArray((*media_it)->data, (*media_it)->length)))
.WillOnce(Return(true));
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket(
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(
packet_with_rtp_header->data, packet_with_rtp_header->length));
// Receive second FEC packet and recover second lost media packet.
@@ -264,7 +262,7 @@
.With(
Args<0, 1>(ElementsAreArray((*media_it)->data, (*media_it)->length)))
.WillOnce(Return(true));
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket(
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(
packet_with_rtp_header->data, packet_with_rtp_header->length));
}
@@ -278,8 +276,8 @@
// Receive first media packet.
auto media_it = media_packets.begin();
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket((*media_it)->data,
- (*media_it)->length));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket((*media_it)->data,
+ (*media_it)->length));
// Drop second media packet and FEC packet. Do not expect call back.
}
@@ -294,8 +292,8 @@
// Receive first media packet but drop second.
auto media_it = media_packets.begin();
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket((*media_it)->data,
- (*media_it)->length));
+ 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();
@@ -307,11 +305,11 @@
.With(
Args<0, 1>(ElementsAreArray((*media_it)->data, (*media_it)->length)))
.WillOnce(Return(true));
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket(
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(
packet_with_rtp_header->data, packet_with_rtp_header->length));
// Receive FEC packet again.
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket(
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(
packet_with_rtp_header->data, packet_with_rtp_header->length));
// Do not call back again.
@@ -334,8 +332,8 @@
// Drop every second media packet.
auto media_it = media_packets.begin();
while (media_it != media_packets.end()) {
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket((*media_it)->data,
- (*media_it)->length));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket((*media_it)->data,
+ (*media_it)->length));
++media_it;
if (media_it == media_packets.end()) {
break;
@@ -357,7 +355,7 @@
.With(Args<0, 1>(
ElementsAreArray((*media_it)->data, (*media_it)->length)))
.WillOnce(Return(true));
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket(
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(
fec_packet_with_rtp_header->data, fec_packet_with_rtp_header->length));
++media_it;
}
@@ -385,8 +383,8 @@
// Receive all other media packets.
while (media_it != media_packets.end()) {
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket((*media_it)->data,
- (*media_it)->length));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket((*media_it)->data,
+ (*media_it)->length));
++media_it;
}
@@ -400,7 +398,7 @@
.With(
Args<0, 1>(ElementsAreArray((*media_it)->data, (*media_it)->length)))
.WillOnce(Return(true));
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket(
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(
packet_with_rtp_header->data, packet_with_rtp_header->length));
}
@@ -426,8 +424,8 @@
// Receive all other media packets.
while (media_it != media_packets.end()) {
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket((*media_it)->data,
- (*media_it)->length));
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket((*media_it)->data,
+ (*media_it)->length));
++media_it;
}
@@ -435,7 +433,7 @@
auto fec_it = fec_packets.begin();
std::unique_ptr<Packet> packet_with_rtp_header =
packet_generator_.BuildFlexfecPacket(**fec_it);
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket(
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(
packet_with_rtp_header->data, packet_with_rtp_header->length));
// Do not expect a call back.
@@ -457,14 +455,14 @@
auto media_packet3 = media_it++;
auto media_packet4 = media_it++;
auto media_packet5 = media_it++;
- 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_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_,
@@ -483,7 +481,7 @@
std::unique_ptr<Packet> packet_with_rtp_header;
while (fec_it != fec_packets.end()) {
packet_with_rtp_header = packet_generator_.BuildFlexfecPacket(**fec_it);
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket(
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(
packet_with_rtp_header->data, packet_with_rtp_header->length));
++fec_it;
}
@@ -499,8 +497,8 @@
// Receive first media packet but drop second.
auto media_it = media_packets.begin();
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket((*media_it)->data,
- (*media_it)->length));
+ 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();
@@ -512,11 +510,11 @@
.With(
Args<0, 1>(ElementsAreArray((*media_it)->data, (*media_it)->length)))
.WillOnce(Return(true));
- EXPECT_TRUE(receiver_->AddAndProcessReceivedPacket(
+ EXPECT_TRUE(receiver_.AddAndProcessReceivedPacket(
packet_with_rtp_header->data, packet_with_rtp_header->length));
// Check stats calculations.
- FecPacketCounter packet_counter = receiver_->GetPacketCounter();
+ FecPacketCounter packet_counter = receiver_.GetPacketCounter();
EXPECT_EQ(2U, packet_counter.num_packets);
EXPECT_EQ(1U, packet_counter.num_fec_packets);
EXPECT_EQ(1U, packet_counter.num_recovered_packets);
diff --git a/webrtc/test/fuzzers/flexfec_receiver_fuzzer.cc b/webrtc/test/fuzzers/flexfec_receiver_fuzzer.cc
index 78f32dc..89ad494 100644
--- a/webrtc/test/fuzzers/flexfec_receiver_fuzzer.cc
+++ b/webrtc/test/fuzzers/flexfec_receiver_fuzzer.cc
@@ -39,8 +39,7 @@
memcpy(&media_seq_num, data + 10, 2);
DummyCallback callback;
- std::unique_ptr<FlexfecReceiver> receiver =
- FlexfecReceiver::Create(flexfec_ssrc, media_ssrc, &callback);
+ FlexfecReceiver receiver(flexfec_ssrc, media_ssrc, &callback);
std::unique_ptr<uint8_t[]> packet;
size_t packet_length;
@@ -62,7 +61,7 @@
ByteWriter<uint16_t>::WriteBigEndian(packet.get() + 2, media_seq_num++);
ByteWriter<uint32_t>::WriteBigEndian(packet.get() + 8, media_ssrc);
}
- receiver->AddAndProcessReceivedPacket(packet.get(), packet_length);
+ receiver.AddAndProcessReceivedPacket(packet.get(), packet_length);
}
}