Revert r8210 "Add a new parameter to ACMGenericCodec constructor"

The change failed to compile on some bots.

TBR=kwiberg@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/34949004

Cr-Commit-Position: refs/heads/master@{#8211}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8211 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_amr.cc b/webrtc/modules/audio_coding/main/acm2/acm_amr.cc
index f8e6450..6c958a5 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_amr.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_amr.cc
@@ -46,9 +46,8 @@
 namespace acm2 {
 
 #ifndef WEBRTC_CODEC_AMR
-ACMAMR::ACMAMR(int16_t /* codec_id */, bool enable_red)
-    : ACMGenericCodec(enable_red),
-      encoder_inst_ptr_(NULL),
+ACMAMR::ACMAMR(int16_t /* codec_id */)
+    : encoder_inst_ptr_(NULL),
       encoding_mode_(-1),  // Invalid value.
       encoding_rate_(0),   // Invalid value.
       encoder_packing_format_(AMRBandwidthEfficient) {
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_amr.h b/webrtc/modules/audio_coding/main/acm2/acm_amr.h
index 09d9e43..ab22300 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_amr.h
+++ b/webrtc/modules/audio_coding/main/acm2/acm_amr.h
@@ -25,7 +25,7 @@
 
 class ACMAMR : public ACMGenericCodec {
  public:
-  ACMAMR(int16_t codec_id, bool enable_red);
+  explicit ACMAMR(int16_t codec_id);
   ~ACMAMR();
 
   // for FEC
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_amrwb.cc b/webrtc/modules/audio_coding/main/acm2/acm_amrwb.cc
index 0aad31e..5c9540f 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_amrwb.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_amrwb.cc
@@ -43,9 +43,8 @@
 namespace acm2 {
 
 #ifndef WEBRTC_CODEC_AMRWB
-ACMAMRwb::ACMAMRwb(int16_t /* codec_id */, bool enable_red)
-    : ACMGenericCodec(enable_red),
-      encoder_inst_ptr_(NULL),
+ACMAMRwb::ACMAMRwb(int16_t /* codec_id */)
+    : encoder_inst_ptr_(NULL),
       encoding_mode_(-1),  // invalid value
       encoding_rate_(0),   // invalid value
       encoder_packing_format_(AMRBandwidthEfficient) {}
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_amrwb.h b/webrtc/modules/audio_coding/main/acm2/acm_amrwb.h
index 9e09b6b..5b90e0b 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_amrwb.h
+++ b/webrtc/modules/audio_coding/main/acm2/acm_amrwb.h
@@ -23,7 +23,7 @@
 
 class ACMAMRwb : public ACMGenericCodec {
  public:
-  ACMAMRwb(int16_t codec_id, bool enable_red);
+  explicit ACMAMRwb(int16_t codec_id);
   ~ACMAMRwb();
 
   // for FEC
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_cng.cc b/webrtc/modules/audio_coding/main/acm2/acm_cng.cc
index acb6a30..8fef66e 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_cng.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_cng.cc
@@ -19,8 +19,7 @@
 
 namespace acm2 {
 
-ACMCNG::ACMCNG(int16_t codec_id, bool enable_red)
-    : ACMGenericCodec(enable_red) {
+ACMCNG::ACMCNG(int16_t codec_id) {
   encoder_inst_ptr_ = NULL;
   codec_id_ = codec_id;
   samp_freq_hz_ = ACMCodecDB::CodecFreq(codec_id_);
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_cng.h b/webrtc/modules/audio_coding/main/acm2/acm_cng.h
index 374b0fc..d3a8bd3 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_cng.h
+++ b/webrtc/modules/audio_coding/main/acm2/acm_cng.h
@@ -23,7 +23,7 @@
 
 class ACMCNG: public ACMGenericCodec {
  public:
-  ACMCNG(int16_t codec_id, bool enable_red);
+  explicit ACMCNG(int16_t codec_id);
   ~ACMCNG();
 
   // for FEC
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_codec_database.cc b/webrtc/modules/audio_coding/main/acm2/acm_codec_database.cc
index 18caa61..1899abb 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_codec_database.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_codec_database.cc
@@ -572,38 +572,38 @@
   // All we have support for right now.
   if (!STR_CASE_CMP(codec_inst.plname, "ISAC")) {
 #if (defined(WEBRTC_CODEC_ISAC) || defined(WEBRTC_CODEC_ISACFX))
-    return new ACMISAC(kISAC, false);
+    return new ACMISAC(kISAC);
 #endif
   } else if (!STR_CASE_CMP(codec_inst.plname, "PCMU")) {
     if (codec_inst.channels == 1) {
-      return new ACMPCMU(kPCMU, false);
+      return new ACMPCMU(kPCMU);
     } else {
-      return new ACMPCMU(kPCMU_2ch, false);
+      return new ACMPCMU(kPCMU_2ch);
     }
   } else if (!STR_CASE_CMP(codec_inst.plname, "PCMA")) {
     if (codec_inst.channels == 1) {
-      return new ACMPCMA(kPCMA, false);
+      return new ACMPCMA(kPCMA);
     } else {
-      return new ACMPCMA(kPCMA_2ch, false);
+      return new ACMPCMA(kPCMA_2ch);
     }
   } else if (!STR_CASE_CMP(codec_inst.plname, "ILBC")) {
 #ifdef WEBRTC_CODEC_ILBC
-    return new ACMILBC(kILBC, false);
+    return new ACMILBC(kILBC);
 #endif
   } else if (!STR_CASE_CMP(codec_inst.plname, "AMR")) {
 #ifdef WEBRTC_CODEC_AMR
-    return new ACMAMR(kGSMAMR, false);
+    return new ACMAMR(kGSMAMR);
 #endif
   } else if (!STR_CASE_CMP(codec_inst.plname, "AMR-WB")) {
 #ifdef WEBRTC_CODEC_AMRWB
-    return new ACMAMRwb(kGSMAMRWB, false);
+    return new ACMAMRwb(kGSMAMRWB);
 #endif
   } else if (!STR_CASE_CMP(codec_inst.plname, "G722")) {
 #ifdef WEBRTC_CODEC_G722
     if (codec_inst.channels == 1) {
-      return new ACMG722(kG722, false);
+      return new ACMG722(kG722);
     } else {
-      return new ACMG722(kG722_2ch, false);
+      return new ACMG722(kG722_2ch);
     }
 #endif
   } else if (!STR_CASE_CMP(codec_inst.plname, "G7221")) {
@@ -628,7 +628,7 @@
             return NULL;
           }
         }
-        return new ACMG722_1(codec_id, false);
+        return new ACMG722_1(codec_id);
 #endif
         FALLTHROUGH();
       }
@@ -652,7 +652,7 @@
             return NULL;
           }
         }
-        return new ACMG722_1C(codec_id, false);
+        return new ACMG722_1C(codec_id);
 #endif
         FALLTHROUGH();
       }
@@ -685,18 +685,18 @@
         return NULL;
       }
     }
-    return new ACMCNG(codec_id, false);
+    return new ACMCNG(codec_id);
   } else if (!STR_CASE_CMP(codec_inst.plname, "G729")) {
 #ifdef WEBRTC_CODEC_G729
-    return new ACMG729(kG729, false);
+    return new ACMG729(kG729);
 #endif
   } else if (!STR_CASE_CMP(codec_inst.plname, "G7291")) {
 #ifdef WEBRTC_CODEC_G729_1
-    return new ACMG729_1(kG729_1, false);
+    return new ACMG729_1(kG729_1);
 #endif
   } else if (!STR_CASE_CMP(codec_inst.plname, "opus")) {
 #ifdef WEBRTC_CODEC_OPUS
-    return new ACMOpus(kOpus, false);
+    return new ACMOpus(kOpus);
 #endif
   } else if (!STR_CASE_CMP(codec_inst.plname, "speex")) {
 #ifdef WEBRTC_CODEC_SPEEX
@@ -714,7 +714,7 @@
         return NULL;
       }
     }
-    return new ACMSPEEX(codec_id, false);
+    return new ACMSPEEX(codec_id);
 #endif
   } else if (!STR_CASE_CMP(codec_inst.plname, "CN")) {
     // For CN we need to check sampling frequency to know what codec to create.
@@ -742,7 +742,7 @@
         return NULL;
       }
     }
-    return new ACMCNG(codec_id, false);
+    return new ACMCNG(codec_id);
   } else if (!STR_CASE_CMP(codec_inst.plname, "L16")) {
 #ifdef WEBRTC_CODEC_PCM16
     // For L16 we need to check sampling frequency to know what codec to create.
@@ -784,15 +784,15 @@
         }
       }
     }
-    return new ACMPCM16B(codec_id, false);
+    return new ACMPCM16B(codec_id);
 #endif
   } else if (!STR_CASE_CMP(codec_inst.plname, "telephone-event")) {
 #ifdef WEBRTC_CODEC_AVT
-    return new ACMDTMFPlayout(kAVT, false);
+    return new ACMDTMFPlayout(kAVT);
 #endif
   } else if (!STR_CASE_CMP(codec_inst.plname, "red")) {
 #ifdef WEBRTC_CODEC_RED
-    return new ACMRED(kRED, false);
+    return new ACMRED(kRED);
 #endif
   }
   return NULL;
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_dtmf_playout.cc b/webrtc/modules/audio_coding/main/acm2/acm_dtmf_playout.cc
index e138a995..c9f4ded 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_dtmf_playout.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_dtmf_playout.cc
@@ -46,10 +46,7 @@
 
 #else  //===================== Actual Implementation =======================
 
-ACMDTMFPlayout::ACMDTMFPlayout(int16_t codec_id, bool enable_red)
-    : ACMGenericCodec(enable_red) {
-  codec_id_ = codec_id;
-}
+ACMDTMFPlayout::ACMDTMFPlayout(int16_t codec_id) { codec_id_ = codec_id; }
 
 ACMDTMFPlayout::~ACMDTMFPlayout() { return; }
 
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_dtmf_playout.h b/webrtc/modules/audio_coding/main/acm2/acm_dtmf_playout.h
index 72f201b..dd87df4 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_dtmf_playout.h
+++ b/webrtc/modules/audio_coding/main/acm2/acm_dtmf_playout.h
@@ -19,7 +19,7 @@
 
 class ACMDTMFPlayout : public ACMGenericCodec {
  public:
-  ACMDTMFPlayout(int16_t codec_id, bool enable_red);
+  explicit ACMDTMFPlayout(int16_t codec_id);
   ~ACMDTMFPlayout();
 
   // for FEC
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_g722.cc b/webrtc/modules/audio_coding/main/acm2/acm_g722.cc
index d27ef00..dfe781e 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_g722.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_g722.cc
@@ -64,10 +64,8 @@
   G722DecInst* inst_right;  // instance for right channel in case of stereo
 };
 
-ACMG722::ACMG722(int16_t codec_id, bool enable_red)
-    : ACMGenericCodec(enable_red),
-      encoder_inst_ptr_(NULL),
-      encoder_inst_ptr_right_(NULL) {
+ACMG722::ACMG722(int16_t codec_id)
+    : encoder_inst_ptr_(NULL), encoder_inst_ptr_right_(NULL) {
   ptr_enc_str_ = new ACMG722EncStr;
   if (ptr_enc_str_ != NULL) {
     ptr_enc_str_->inst = NULL;
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_g722.h b/webrtc/modules/audio_coding/main/acm2/acm_g722.h
index 79ddf28..dd3b766 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_g722.h
+++ b/webrtc/modules/audio_coding/main/acm2/acm_g722.h
@@ -27,7 +27,7 @@
 
 class ACMG722 : public ACMGenericCodec {
  public:
-  ACMG722(int16_t codec_id, bool enable_red);
+  explicit ACMG722(int16_t codec_id);
   ~ACMG722();
 
   // For FEC.
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_g7221.cc b/webrtc/modules/audio_coding/main/acm2/acm_g7221.cc
index 7e907bd..5739dd3 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_g7221.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_g7221.cc
@@ -84,9 +84,8 @@
 
 #ifndef WEBRTC_CODEC_G722_1
 
-ACMG722_1::ACMG722_1(int16_t /* codec_id */, bool enable_red)
-    : ACMGenericCodec(enable_red),
-      operational_rate_(-1),
+ACMG722_1::ACMG722_1(int16_t /* codec_id */)
+    : operational_rate_(-1),
       encoder_inst_ptr_(NULL),
       encoder_inst_ptr_right_(NULL),
       encoder_inst16_ptr_(NULL),
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_g7221.h b/webrtc/modules/audio_coding/main/acm2/acm_g7221.h
index 10a49ac..3935798 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_g7221.h
+++ b/webrtc/modules/audio_coding/main/acm2/acm_g7221.h
@@ -28,7 +28,7 @@
 
 class ACMG722_1 : public ACMGenericCodec {
  public:
-  ACMG722_1(int16_t codec_id, bool enable_red);
+  explicit ACMG722_1(int16_t codec_id);
   ~ACMG722_1();
 
   // for FEC
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_g7221c.cc b/webrtc/modules/audio_coding/main/acm2/acm_g7221c.cc
index 88d9b0b..996eaf8 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_g7221c.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_g7221c.cc
@@ -84,9 +84,8 @@
 
 #ifndef WEBRTC_CODEC_G722_1C
 
-ACMG722_1C::ACMG722_1C(int16_t /* codec_id */, bool enable_red)
-    : ACMGenericCodec(enable_red),
-      operational_rate_(-1),
+ACMG722_1C::ACMG722_1C(int16_t /* codec_id */)
+    : operational_rate_(-1),
       encoder_inst_ptr_(NULL),
       encoder_inst_ptr_right_(NULL),
       encoder_inst24_ptr_(NULL),
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_g7221c.h b/webrtc/modules/audio_coding/main/acm2/acm_g7221c.h
index e22790d..52a0db9 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_g7221c.h
+++ b/webrtc/modules/audio_coding/main/acm2/acm_g7221c.h
@@ -28,7 +28,7 @@
 
 class ACMG722_1C : public ACMGenericCodec {
  public:
-  ACMG722_1C(int16_t codec_id, bool enable_red);
+  explicit ACMG722_1C(int16_t codec_id);
   ~ACMG722_1C();
 
   // for FEC
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_g729.cc b/webrtc/modules/audio_coding/main/acm2/acm_g729.cc
index c50379f..de1af6e 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_g729.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_g729.cc
@@ -26,9 +26,7 @@
 
 #ifndef WEBRTC_CODEC_G729
 
-ACMG729::ACMG729(int16_t /* codec_id */, bool enable_red)
-    : ACMGenericCodec(enable_red), encoder_inst_ptr_(NULL) {
-}
+ACMG729::ACMG729(int16_t /* codec_id */) : encoder_inst_ptr_(NULL) {}
 
 ACMG729::~ACMG729() { return; }
 
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_g729.h b/webrtc/modules/audio_coding/main/acm2/acm_g729.h
index e19ce5a..be48c6e 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_g729.h
+++ b/webrtc/modules/audio_coding/main/acm2/acm_g729.h
@@ -23,7 +23,7 @@
 
 class ACMG729 : public ACMGenericCodec {
  public:
-  ACMG729(int16_t codec_id, bool enable_red);
+  explicit ACMG729(int16_t codec_id);
   ~ACMG729();
 
   // for FEC
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_g7291.cc b/webrtc/modules/audio_coding/main/acm2/acm_g7291.cc
index 6328924..e50d027 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_g7291.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_g7291.cc
@@ -25,9 +25,8 @@
 
 #ifndef WEBRTC_CODEC_G729_1
 
-ACMG729_1::ACMG729_1(int16_t /* codec_id */, bool enable_red)
-    : ACMGenericCodec(enable_red),
-      encoder_inst_ptr_(NULL),
+ACMG729_1::ACMG729_1(int16_t /* codec_id */)
+    : encoder_inst_ptr_(NULL),
       my_rate_(32000),
       flag_8khz_(0),
       flag_g729_mode_(0) {
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_g7291.h b/webrtc/modules/audio_coding/main/acm2/acm_g7291.h
index 908e64f..8387dcf 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_g7291.h
+++ b/webrtc/modules/audio_coding/main/acm2/acm_g7291.h
@@ -23,7 +23,7 @@
 
 class ACMG729_1 : public ACMGenericCodec {
  public:
-  ACMG729_1(int16_t codec_id, bool enable_red);
+  explicit ACMG729_1(int16_t codec_id);
   ~ACMG729_1();
 
   // for FEC
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.cc b/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.cc
index 209d589..6b18095 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.cc
@@ -37,7 +37,7 @@
 // We set some of the variables to invalid values as a check point
 // if a proper initialization has happened. Another approach is
 // to initialize to a default codec that we are sure is always included.
-ACMGenericCodec::ACMGenericCodec(bool enable_red)
+ACMGenericCodec::ACMGenericCodec()
     : in_audio_ix_write_(0),
       in_audio_ix_read_(0),
       in_timestamp_ix_write_(0),
@@ -60,7 +60,6 @@
       sent_cn_previous_(false),
       prev_frame_cng_(0),
       has_internal_fec_(false),
-      copy_red_enabled_(enable_red),
       codec_wrapper_lock_(*RWLockWrapper::CreateRWLock()),
       last_timestamp_(0xD87F3F9F),
       unique_id_(0) {
@@ -203,16 +202,6 @@
   return 0;
 }
 
-void ACMGenericCodec::EnableCopyRed(bool enable, int /*red_payload_type*/) {
-  WriteLockScoped lockCodec(codec_wrapper_lock_);
-  copy_red_enabled_ = enable;
-}
-
-bool ACMGenericCodec::ExternalRedNeeded() {
-  ReadLockScoped lockCodec(codec_wrapper_lock_);
-  return copy_red_enabled_;
-}
-
 int16_t ACMGenericCodec::Encode(uint8_t* bitstream,
                                 int16_t* bitstream_len_byte,
                                 uint32_t* timestamp,
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.h b/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.h
index 9d04510..b13719f 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.h
+++ b/webrtc/modules/audio_coding/main/acm2/acm_generic_codec.h
@@ -40,7 +40,7 @@
   ///////////////////////////////////////////////////////////////////////////
   // Constructor of the class
   //
-  explicit ACMGenericCodec(bool enable_red);
+  ACMGenericCodec();
 
   ///////////////////////////////////////////////////////////////////////////
   // Destructor of the class.
@@ -614,13 +614,6 @@
   //
   virtual int SetPacketLossRate(int /* loss_rate */) { return 0; }
 
-  // Sets if CopyRed should be enabled.
-  virtual void EnableCopyRed(bool enable, int red_payload_type);
-
-  // Returns true if the caller needs to produce RED data manually (that is, if
-  // RED has been enabled but the codec isn't able to produce the data itself).
-  virtual bool ExternalRedNeeded();
-
  protected:
   ///////////////////////////////////////////////////////////////////////////
   // All the functions with FunctionNameSafe(...) contain the actual
@@ -960,8 +953,6 @@
   // FEC.
   bool has_internal_fec_ GUARDED_BY(codec_wrapper_lock_);
 
-  bool copy_red_enabled_ GUARDED_BY(codec_wrapper_lock_);
-
   WebRtcACMCodecParams encoder_params_ GUARDED_BY(codec_wrapper_lock_);
 
   // Used to lock wrapper internal data
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_gsmfr.cc b/webrtc/modules/audio_coding/main/acm2/acm_gsmfr.cc
index 77cecd8..1c37a1e 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_gsmfr.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_gsmfr.cc
@@ -25,9 +25,7 @@
 
 #ifndef WEBRTC_CODEC_GSMFR
 
-ACMGSMFR::ACMGSMFR(int16_t /* codec_id */, bool enable_red)
-    : ACMGenericCodec(enable_red), encoder_inst_ptr_(NULL) {
-}
+ACMGSMFR::ACMGSMFR(int16_t /* codec_id */) : encoder_inst_ptr_(NULL) {}
 
 ACMGSMFR::~ACMGSMFR() { return; }
 
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_gsmfr.h b/webrtc/modules/audio_coding/main/acm2/acm_gsmfr.h
index 5a84899..2cf954b 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_gsmfr.h
+++ b/webrtc/modules/audio_coding/main/acm2/acm_gsmfr.h
@@ -23,7 +23,7 @@
 
 class ACMGSMFR : public ACMGenericCodec {
  public:
-  ACMGSMFR(int16_t codec_id, bool enable_red);
+  explicit ACMGSMFR(int16_t codec_id);
   ~ACMGSMFR();
 
   // for FEC
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_ilbc.cc b/webrtc/modules/audio_coding/main/acm2/acm_ilbc.cc
index 878d6e0..94d655f 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_ilbc.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_ilbc.cc
@@ -44,8 +44,7 @@
 
 #else  //===================== Actual Implementation =======================
 
-ACMILBC::ACMILBC(int16_t codec_id, bool enable_red)
-    : ACMGenericCodec(enable_red), encoder_inst_ptr_(NULL) {
+ACMILBC::ACMILBC(int16_t codec_id) : encoder_inst_ptr_(NULL) {
   codec_id_ = codec_id;
   return;
 }
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_ilbc.h b/webrtc/modules/audio_coding/main/acm2/acm_ilbc.h
index 870b7c9..3cf2c73 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_ilbc.h
+++ b/webrtc/modules/audio_coding/main/acm2/acm_ilbc.h
@@ -23,7 +23,7 @@
 
 class ACMILBC : public ACMGenericCodec {
  public:
-  ACMILBC(int16_t codec_id, bool enable_red);
+  explicit ACMILBC(int16_t codec_id);
   ~ACMILBC();
 
   // for FEC
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_isac.cc b/webrtc/modules/audio_coding/main/acm2/acm_isac.cc
index ea6d0ba..8a63410 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_isac.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_isac.cc
@@ -261,9 +261,8 @@
 
 #endif
 
-ACMISAC::ACMISAC(int16_t codec_id, bool enable_red)
-    : ACMGenericCodec(enable_red),
-      codec_inst_crit_sect_(CriticalSectionWrapper::CreateCriticalSection()),
+ACMISAC::ACMISAC(int16_t codec_id)
+    : codec_inst_crit_sect_(CriticalSectionWrapper::CreateCriticalSection()),
       is_enc_initialized_(false),
       isac_coding_mode_(CHANNEL_INDEPENDENT),
       enforce_frame_size_(false),
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_isac.h b/webrtc/modules/audio_coding/main/acm2/acm_isac.h
index f614cfe..b83d1d3 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_isac.h
+++ b/webrtc/modules/audio_coding/main/acm2/acm_isac.h
@@ -31,7 +31,7 @@
 
 class ACMISAC : public ACMGenericCodec, AudioDecoder {
  public:
-  ACMISAC(int16_t codec_id, bool enable_red);
+  explicit ACMISAC(int16_t codec_id);
   ~ACMISAC();
 
   int16_t InternalInitDecoder(WebRtcACMCodecParams* codec_params)
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_opus.cc b/webrtc/modules/audio_coding/main/acm2/acm_opus.cc
index 724c795..005e910 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_opus.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_opus.cc
@@ -63,12 +63,11 @@
 
 #else  //===================== Actual Implementation =======================
 
-ACMOpus::ACMOpus(int16_t codec_id, bool enable_red)
-    : ACMGenericCodec(enable_red),
-      encoder_inst_ptr_(NULL),
-      sample_freq_(32000),   // Default sampling frequency.
-      bitrate_(20000),       // Default bit-rate.
-      channels_(1),          // Default mono.
+ACMOpus::ACMOpus(int16_t codec_id)
+    : encoder_inst_ptr_(NULL),
+      sample_freq_(32000),  // Default sampling frequency.
+      bitrate_(20000),  // Default bit-rate.
+      channels_(1),  // Default mono.
       packet_loss_rate_(0),  // Initial packet loss rate.
       application_(kVoip) {  // Initial application mode.
   codec_id_ = codec_id;
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_opus.h b/webrtc/modules/audio_coding/main/acm2/acm_opus.h
index 89f1e14..3c7aea6 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_opus.h
+++ b/webrtc/modules/audio_coding/main/acm2/acm_opus.h
@@ -23,7 +23,7 @@
 
 class ACMOpus : public ACMGenericCodec {
  public:
-  ACMOpus(int16_t codec_id, bool enable_red);
+  explicit ACMOpus(int16_t codec_id);
   ~ACMOpus();
 
   ACMGenericCodec* CreateInstance(void);
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_opus_unittest.cc b/webrtc/modules/audio_coding/main/acm2/acm_opus_unittest.cc
index 2c4358f..421bbe5 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_opus_unittest.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_opus_unittest.cc
@@ -31,7 +31,8 @@
 
 class AcmOpusTest : public ACMOpus {
  public:
-  explicit AcmOpusTest(int16_t codec_id) : ACMOpus(codec_id, false) {}
+  explicit AcmOpusTest(int16_t codec_id)
+      : ACMOpus(codec_id) {}
   ~AcmOpusTest() {}
   int packet_loss_rate() { return packet_loss_rate_; }
   OpusApplicationMode application() { return application_; }
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_pcm16b.cc b/webrtc/modules/audio_coding/main/acm2/acm_pcm16b.cc
index 04afb58..54c7860 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_pcm16b.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_pcm16b.cc
@@ -44,8 +44,7 @@
 void ACMPCM16B::DestructEncoderSafe() { return; }
 
 #else  //===================== Actual Implementation =======================
-ACMPCM16B::ACMPCM16B(int16_t codec_id, bool enable_red)
-    : ACMGenericCodec(enable_red) {
+ACMPCM16B::ACMPCM16B(int16_t codec_id) {
   codec_id_ = codec_id;
   sampling_freq_hz_ = ACMCodecDB::CodecFreq(codec_id_);
 }
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_pcm16b.h b/webrtc/modules/audio_coding/main/acm2/acm_pcm16b.h
index 176dcc9..0811a17 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_pcm16b.h
+++ b/webrtc/modules/audio_coding/main/acm2/acm_pcm16b.h
@@ -19,7 +19,7 @@
 
 class ACMPCM16B : public ACMGenericCodec {
  public:
-  ACMPCM16B(int16_t codec_id, bool enable_red);
+  explicit ACMPCM16B(int16_t codec_id);
   ~ACMPCM16B();
 
   // For FEC.
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_pcma.cc b/webrtc/modules/audio_coding/main/acm2/acm_pcma.cc
index 008b1cf..41d4d08 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_pcma.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_pcma.cc
@@ -20,10 +20,7 @@
 
 namespace acm2 {
 
-ACMPCMA::ACMPCMA(int16_t codec_id, bool enable_red)
-    : ACMGenericCodec(enable_red) {
-  codec_id_ = codec_id;
-}
+ACMPCMA::ACMPCMA(int16_t codec_id) { codec_id_ = codec_id; }
 
 ACMPCMA::~ACMPCMA() { return; }
 
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_pcma.h b/webrtc/modules/audio_coding/main/acm2/acm_pcma.h
index fa61ed5..d7d00b4 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_pcma.h
+++ b/webrtc/modules/audio_coding/main/acm2/acm_pcma.h
@@ -19,7 +19,7 @@
 
 class ACMPCMA : public ACMGenericCodec {
  public:
-  ACMPCMA(int16_t codec_id, bool enable_red);
+  explicit ACMPCMA(int16_t codec_id);
   ~ACMPCMA();
 
   // For FEC.
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_pcmu.cc b/webrtc/modules/audio_coding/main/acm2/acm_pcmu.cc
index 7ccc184..4f16062 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_pcmu.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_pcmu.cc
@@ -20,10 +20,7 @@
 
 namespace acm2 {
 
-ACMPCMU::ACMPCMU(int16_t codec_id, bool enable_red)
-    : ACMGenericCodec(enable_red) {
-  codec_id_ = codec_id;
-}
+ACMPCMU::ACMPCMU(int16_t codec_id) { codec_id_ = codec_id; }
 
 ACMPCMU::~ACMPCMU() {}
 
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_pcmu.h b/webrtc/modules/audio_coding/main/acm2/acm_pcmu.h
index 88be95b..dccfffd 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_pcmu.h
+++ b/webrtc/modules/audio_coding/main/acm2/acm_pcmu.h
@@ -19,7 +19,7 @@
 
 class ACMPCMU : public ACMGenericCodec {
  public:
-  ACMPCMU(int16_t codec_id, bool enable_red);
+  explicit ACMPCMU(int16_t codec_id);
   ~ACMPCMU();
 
   // For FEC.
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_red.cc b/webrtc/modules/audio_coding/main/acm2/acm_red.cc
index 8025c7f..05996e5 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_red.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_red.cc
@@ -17,10 +17,7 @@
 
 namespace acm2 {
 
-ACMRED::ACMRED(int16_t codec_id, bool enable_red)
-    : ACMGenericCodec(enable_red) {
-  codec_id_ = codec_id;
-}
+ACMRED::ACMRED(int16_t codec_id) { codec_id_ = codec_id; }
 
 ACMRED::~ACMRED() {}
 
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_red.h b/webrtc/modules/audio_coding/main/acm2/acm_red.h
index 25cf053..73f904a 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_red.h
+++ b/webrtc/modules/audio_coding/main/acm2/acm_red.h
@@ -19,7 +19,7 @@
 
 class ACMRED : public ACMGenericCodec {
  public:
-  ACMRED(int16_t codec_id, bool enable_red);
+  explicit ACMRED(int16_t codec_id);
   ~ACMRED();
 
   // For FEC.
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_speex.cc b/webrtc/modules/audio_coding/main/acm2/acm_speex.cc
index 9c3f181..85ead39 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_speex.cc
+++ b/webrtc/modules/audio_coding/main/acm2/acm_speex.cc
@@ -24,9 +24,8 @@
 namespace acm2 {
 
 #ifndef WEBRTC_CODEC_SPEEX
-ACMSPEEX::ACMSPEEX(int16_t /* codec_id */, bool enable_red)
-    : ACMGenericCodec(enable_red),
-      encoder_inst_ptr_(NULL),
+ACMSPEEX::ACMSPEEX(int16_t /* codec_id */)
+    : encoder_inst_ptr_(NULL),
       compl_mode_(0),
       vbr_enabled_(false),
       encoding_rate_(-1),
diff --git a/webrtc/modules/audio_coding/main/acm2/acm_speex.h b/webrtc/modules/audio_coding/main/acm2/acm_speex.h
index c72bdc8..931e3a9 100644
--- a/webrtc/modules/audio_coding/main/acm2/acm_speex.h
+++ b/webrtc/modules/audio_coding/main/acm2/acm_speex.h
@@ -23,7 +23,7 @@
 
 class ACMSPEEX : public ACMGenericCodec {
  public:
-  ACMSPEEX(int16_t codec_id, bool enable_red);
+  explicit ACMSPEEX(int16_t codec_id);
   ~ACMSPEEX();
 
   // For FEC.