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);
   }
 }