Simplify public interface of ProducerFec.

- Change some member functions to be private. These were only
  called by other private member functions.
- Replace DeleteMediaPackets() with direct calls to
  media_packets_.clear()
- Rename GetFecPacketsAsRed to GetUlpfecPacketsAsRed.

No functional changes are intended by this CL.

BUG=webrtc:5654
R=stefan@webrtc.org

Review URL: https://codereview.webrtc.org/2305793003 .

Cr-Commit-Position: refs/heads/master@{#14491}
diff --git a/webrtc/modules/rtp_rtcp/source/producer_fec.cc b/webrtc/modules/rtp_rtcp/source/producer_fec.cc
index cdd898d..2a2327c 100644
--- a/webrtc/modules/rtp_rtcp/source/producer_fec.cc
+++ b/webrtc/modules/rtp_rtcp/source/producer_fec.cc
@@ -21,6 +21,8 @@
 
 namespace webrtc {
 
+namespace {
+
 constexpr size_t kRedForFecHeaderLength = 1;
 
 // This controls the maximum amount of excess overhead (actual - target)
@@ -47,6 +49,8 @@
 // |kMinMediaPackets| + 1 packets are sent to the FEC code.
 constexpr float kMinMediaPacketsAdaptationThreshold = 2.0f;
 
+}  // namespace
+
 RedPacket::RedPacket(size_t length)
     : data_(new uint8_t[length]),
       length_(length),
@@ -101,9 +105,7 @@
   memset(&new_params_, 0, sizeof(new_params_));
 }
 
-ProducerFec::~ProducerFec() {
-  DeleteMediaPackets();
-}
+ProducerFec::~ProducerFec() = default;
 
 std::unique_ptr<RedPacket> ProducerFec::BuildRedPacket(
     const uint8_t* data_buffer,
@@ -179,8 +181,7 @@
                               num_important_packets_, kUseUnequalProtection,
                               params_.fec_mask_type, &generated_fec_packets_);
     if (generated_fec_packets_.empty()) {
-      num_protected_frames_ = 0;
-      DeleteMediaPackets();
+      ResetState();
     }
     return ret;
   }
@@ -216,7 +217,7 @@
   return fec_->MaxPacketOverhead();
 }
 
-std::vector<std::unique_ptr<RedPacket>> ProducerFec::GetFecPacketsAsRed(
+std::vector<std::unique_ptr<RedPacket>> ProducerFec::GetUlpfecPacketsAsRed(
     int red_payload_type,
     int ulpfec_payload_type,
     uint16_t first_seq_num,
@@ -240,18 +241,13 @@
     red_packet->AssignPayload(fec_packet->data, fec_packet->length);
     red_packets.push_back(std::move(red_packet));
   }
-  // Reset state.
-  DeleteMediaPackets();
-  generated_fec_packets_.clear();
-  num_protected_frames_ = 0;
+
+  ResetState();
+
   return red_packets;
 }
 
 int ProducerFec::Overhead() const {
-  // Overhead is defined as relative to the number of media packets, and not
-  // relative to total number of packets. This definition is inherited from the
-  // protection factor produced by video_coding module and how the FEC
-  // generation is implemented.
   RTC_DCHECK(!media_packets_.empty());
   int num_fec_packets =
       fec_->NumFecPackets(media_packets_.size(), params_.fec_rate);
@@ -259,8 +255,10 @@
   return (num_fec_packets << 8) / media_packets_.size();
 }
 
-void ProducerFec::DeleteMediaPackets() {
+void ProducerFec::ResetState() {
   media_packets_.clear();
+  generated_fec_packets_.clear();
+  num_protected_frames_ = 0;
 }
 
 }  // namespace webrtc
diff --git a/webrtc/modules/rtp_rtcp/source/producer_fec.h b/webrtc/modules/rtp_rtcp/source/producer_fec.h
index 7ea0740..d52b4ed 100644
--- a/webrtc/modules/rtp_rtcp/source/producer_fec.h
+++ b/webrtc/modules/rtp_rtcp/source/producer_fec.h
@@ -59,6 +59,28 @@
                                  size_t payload_length,
                                  size_t rtp_header_length);
 
+  // Returns true if there are generated FEC packets available.
+  bool FecAvailable() const;
+
+  size_t NumAvailableFecPackets() const;
+
+  // Returns the overhead, per packet, for FEC (and possibly RED).
+  size_t MaxPacketOverhead() const;
+
+  // Returns generated FEC packets with RED headers added.
+  std::vector<std::unique_ptr<RedPacket>> GetUlpfecPacketsAsRed(
+      int red_payload_type,
+      int ulpfec_payload_type,
+      uint16_t first_seq_num,
+      size_t rtp_header_length);
+
+ private:
+  // Overhead is defined as relative to the number of media packets, and not
+  // relative to total number of packets. This definition is inherited from the
+  // protection factor produced by video_coding module and how the FEC
+  // generation is implemented.
+  int Overhead() const;
+
   // Returns true if the excess overhead (actual - target) for the FEC is below
   // the amount |kMaxExcessOverhead|. This effects the lower protection level
   // cases and low number of media packets/frame. The target overhead is given
@@ -72,23 +94,8 @@
   // (e.g. (2k,2m) vs (k,m)) are generally more effective at recovering losses.
   bool MinimumMediaPacketsReached() const;
 
-  // Returns true if there are generated FEC packets available.
-  bool FecAvailable() const;
+  void ResetState();
 
-  size_t NumAvailableFecPackets() const;
-
-  size_t MaxPacketOverhead() const;
-
-  // Returns generated FEC packets with RED headers added.
-  std::vector<std::unique_ptr<RedPacket>> GetFecPacketsAsRed(
-      int red_payload_type,
-      int ulpfec_payload_type,
-      uint16_t first_seq_num,
-      size_t rtp_header_length);
-
- private:
-  void DeleteMediaPackets();
-  int Overhead() const;
   std::unique_ptr<ForwardErrorCorrection> fec_;
   ForwardErrorCorrection::PacketList media_packets_;
   std::list<ForwardErrorCorrection::Packet*> generated_fec_packets_;
diff --git a/webrtc/modules/rtp_rtcp/source/producer_fec_unittest.cc b/webrtc/modules/rtp_rtcp/source/producer_fec_unittest.cc
index 31304b4..d705bd0 100644
--- a/webrtc/modules/rtp_rtcp/source/producer_fec_unittest.cc
+++ b/webrtc/modules/rtp_rtcp/source/producer_fec_unittest.cc
@@ -94,8 +94,8 @@
     size_t num_fec_packets = producer_.NumAvailableFecPackets();
     if (num_fec_packets > 0) {
       std::vector<std::unique_ptr<RedPacket>> fec_packets =
-          producer_.GetFecPacketsAsRed(kRedPayloadType, kFecPayloadType, 100,
-                                       p.header_size);
+          producer_.GetUlpfecPacketsAsRed(kRedPayloadType, kFecPayloadType, 100,
+                                          p.header_size);
       EXPECT_EQ(num_fec_packets, fec_packets.size());
     }
   }
@@ -123,8 +123,8 @@
   EXPECT_TRUE(producer_.FecAvailable());
   uint16_t seq_num = packet_generator_.NextPacketSeqNum();
   std::vector<std::unique_ptr<RedPacket>> red_packets =
-      producer_.GetFecPacketsAsRed(kRedPayloadType, kFecPayloadType, seq_num,
-                                   kRtpHeaderSize);
+      producer_.GetUlpfecPacketsAsRed(kRedPayloadType, kFecPayloadType, seq_num,
+                                      kRtpHeaderSize);
   EXPECT_FALSE(producer_.FecAvailable());
   ASSERT_EQ(1u, red_packets.size());
   VerifyHeader(seq_num, last_timestamp, kRedPayloadType, kFecPayloadType,
@@ -158,8 +158,8 @@
   EXPECT_TRUE(producer_.FecAvailable());
   uint16_t seq_num = packet_generator_.NextPacketSeqNum();
   std::vector<std::unique_ptr<RedPacket>> red_packets =
-      producer_.GetFecPacketsAsRed(kRedPayloadType, kFecPayloadType, seq_num,
-                                   kRtpHeaderSize);
+      producer_.GetUlpfecPacketsAsRed(kRedPayloadType, kFecPayloadType, seq_num,
+                                      kRtpHeaderSize);
   EXPECT_FALSE(producer_.FecAvailable());
   ASSERT_EQ(1u, red_packets.size());
   VerifyHeader(seq_num, last_timestamp, kRedPayloadType, kFecPayloadType,
diff --git a/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc b/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc
index 9020f6a..722a484 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc
+++ b/webrtc/modules/rtp_rtcp/source/rtp_sender_video.cc
@@ -129,7 +129,7 @@
     if (num_fec_packets > 0) {
       uint16_t first_fec_sequence_number =
           rtp_sender_->AllocateSequenceNumber(num_fec_packets);
-      fec_packets = producer_fec_.GetFecPacketsAsRed(
+      fec_packets = producer_fec_.GetUlpfecPacketsAsRed(
           red_payload_type_, fec_payload_type_, first_fec_sequence_number,
           media_packet->headers_size());
       RTC_DCHECK_EQ(num_fec_packets, fec_packets.size());
diff --git a/webrtc/test/fuzzers/producer_fec_fuzzer.cc b/webrtc/test/fuzzers/producer_fec_fuzzer.cc
index 3319138..269b4a1 100644
--- a/webrtc/test/fuzzers/producer_fec_fuzzer.cc
+++ b/webrtc/test/fuzzers/producer_fec_fuzzer.cc
@@ -53,8 +53,8 @@
     const size_t num_fec_packets = producer.NumAvailableFecPackets();
     if (num_fec_packets > 0) {
       std::vector<std::unique_ptr<RedPacket>> fec_packets =
-          producer.GetFecPacketsAsRed(kRedPayloadType, kFecPayloadType, 100,
-                                      rtp_header_length);
+          producer.GetUlpfecPacketsAsRed(kRedPayloadType, kFecPayloadType, 100,
+                                         rtp_header_length);
       RTC_CHECK_EQ(num_fec_packets, fec_packets.size());
     }
   }