Remove DestructEncoderInst and its codec-specific implementations.

This method is seemingly never called.

BUG=none
TEST=none
R=henrik.lundin@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk/webrtc@7131 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/modules/audio_coding/main/acm2/acm_amr.cc b/modules/audio_coding/main/acm2/acm_amr.cc
index 64e323c..6c958a5 100644
--- a/modules/audio_coding/main/acm2/acm_amr.cc
+++ b/modules/audio_coding/main/acm2/acm_amr.cc
@@ -77,8 +77,6 @@
 
 int16_t ACMAMR::SetBitRateSafe(const int32_t /* rate */) { return -1; }
 
-void ACMAMR::InternalDestructEncoderInst(void* /* ptr_inst */) { return; }
-
 int16_t ACMAMR::SetAMREncoderPackingFormat(
     ACMAMRPackingFormat /* packing_format */) {
   return -1;
@@ -268,14 +266,6 @@
   return 0;
 }
 
-void ACMAMR::InternalDestructEncoderInst(void* ptr_inst) {
-  // Free the memory where ptr_inst is pointing to
-  if (ptr_inst != NULL) {
-    WebRtcAmr_FreeEnc(static_cast<AMR_encinst_t_*>(ptr_inst));
-  }
-  return;
-}
-
 int16_t ACMAMR::SetAMREncoderPackingFormat(ACMAMRPackingFormat packing_format) {
   if ((packing_format != AMRBandwidthEfficient) &&
       (packing_format != AMROctetAlligned) &&
diff --git a/modules/audio_coding/main/acm2/acm_amr.h b/modules/audio_coding/main/acm2/acm_amr.h
index efa5687..ab22300 100644
--- a/modules/audio_coding/main/acm2/acm_amr.h
+++ b/modules/audio_coding/main/acm2/acm_amr.h
@@ -48,8 +48,6 @@
 
   int16_t InternalCreateEncoder();
 
-  void InternalDestructEncoderInst(void* ptr_inst);
-
   int16_t SetBitRateSafe(const int32_t rate);
 
   int16_t EnableDTX();
diff --git a/modules/audio_coding/main/acm2/acm_amrwb.cc b/modules/audio_coding/main/acm2/acm_amrwb.cc
index 4dd4e97..5c9540f 100644
--- a/modules/audio_coding/main/acm2/acm_amrwb.cc
+++ b/modules/audio_coding/main/acm2/acm_amrwb.cc
@@ -73,8 +73,6 @@
 
 int16_t ACMAMRwb::SetBitRateSafe(const int32_t /* rate */) { return -1; }
 
-void ACMAMRwb::InternalDestructEncoderInst(void* /* ptr_inst */) { return; }
-
 int16_t ACMAMRwb::SetAMRwbEncoderPackingFormat(
     ACMAMRPackingFormat /* packing_format */) {
   return -1;
@@ -273,13 +271,6 @@
   return 0;
 }
 
-void ACMAMRwb::InternalDestructEncoderInst(void* ptr_inst) {
-  if (ptr_inst != NULL) {
-    WebRtcAmrWb_FreeEnc(static_cast<AMRWB_encinst_t_*>(ptr_inst));
-  }
-  return;
-}
-
 int16_t ACMAMRwb::SetAMRwbEncoderPackingFormat(
     ACMAMRPackingFormat packing_format) {
   if ((packing_format != AMRBandwidthEfficient) &&
diff --git a/modules/audio_coding/main/acm2/acm_amrwb.h b/modules/audio_coding/main/acm2/acm_amrwb.h
index c8db659..5b90e0b 100644
--- a/modules/audio_coding/main/acm2/acm_amrwb.h
+++ b/modules/audio_coding/main/acm2/acm_amrwb.h
@@ -48,8 +48,6 @@
 
   int16_t InternalCreateEncoder();
 
-  void InternalDestructEncoderInst(void* ptr_inst);
-
   int16_t SetBitRateSafe(const int32_t rate);
 
   int16_t EnableDTX();
diff --git a/modules/audio_coding/main/acm2/acm_celt.cc b/modules/audio_coding/main/acm2/acm_celt.cc
index 3cd6e84..70cd0a8 100644
--- a/modules/audio_coding/main/acm2/acm_celt.cc
+++ b/modules/audio_coding/main/acm2/acm_celt.cc
@@ -57,10 +57,6 @@
   return;
 }
 
-void ACMCELT::InternalDestructEncoderInst(void* /* ptr_inst */) {
-  return;
-}
-
 int16_t ACMCELT::SetBitRateSafe(const int32_t /*rate*/) {
   return -1;
 }
@@ -159,13 +155,6 @@
   }
 }
 
-void ACMCELT::InternalDestructEncoderInst(void* ptr_inst) {
-  if (ptr_inst != NULL) {
-    WebRtcCelt_FreeEnc(static_cast<CELT_encinst_t*>(ptr_inst));
-  }
-  return;
-}
-
 int16_t ACMCELT::SetBitRateSafe(const int32_t rate) {
   // Check that rate is in the valid range.
   if ((rate >= 48000) && (rate <= 128000)) {
diff --git a/modules/audio_coding/main/acm2/acm_celt.h b/modules/audio_coding/main/acm2/acm_celt.h
index dc8d3ee..b7325da 100644
--- a/modules/audio_coding/main/acm2/acm_celt.h
+++ b/modules/audio_coding/main/acm2/acm_celt.h
@@ -37,8 +37,6 @@
 
   int16_t InternalCreateEncoder();
 
-  void InternalDestructEncoderInst(void* ptr_inst);
-
   int16_t SetBitRateSafe(const int32_t rate);
 
   CELT_encinst_t_* enc_inst_ptr_;
diff --git a/modules/audio_coding/main/acm2/acm_cng.cc b/modules/audio_coding/main/acm2/acm_cng.cc
index 7f0adf8..8fef66e 100644
--- a/modules/audio_coding/main/acm2/acm_cng.cc
+++ b/modules/audio_coding/main/acm2/acm_cng.cc
@@ -71,13 +71,6 @@
   encoder_initialized_ = false;
 }
 
-void ACMCNG::InternalDestructEncoderInst(void* ptr_inst) {
-  if (ptr_inst != NULL) {
-    WebRtcCng_FreeEnc(static_cast<CNG_enc_inst*>(ptr_inst));
-  }
-  return;
-}
-
 }  // namespace acm2
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/main/acm2/acm_cng.h b/modules/audio_coding/main/acm2/acm_cng.h
index 8b0a392..d3a8bd3 100644
--- a/modules/audio_coding/main/acm2/acm_cng.h
+++ b/modules/audio_coding/main/acm2/acm_cng.h
@@ -40,8 +40,6 @@
 
   int16_t InternalCreateEncoder();
 
-  void InternalDestructEncoderInst(void* ptr_inst);
-
   int16_t EnableDTX() {
     return -1;
   }
diff --git a/modules/audio_coding/main/acm2/acm_dtmf_playout.cc b/modules/audio_coding/main/acm2/acm_dtmf_playout.cc
index 07bab65..c9f4ded 100644
--- a/modules/audio_coding/main/acm2/acm_dtmf_playout.cc
+++ b/modules/audio_coding/main/acm2/acm_dtmf_playout.cc
@@ -40,10 +40,6 @@
 
 int16_t ACMDTMFPlayout::InternalCreateEncoder() { return -1; }
 
-void ACMDTMFPlayout::InternalDestructEncoderInst(void* /* ptr_inst */) {
-  return;
-}
-
 void ACMDTMFPlayout::DestructEncoderSafe() {
   return;
 }
@@ -73,11 +69,6 @@
   return 0;
 }
 
-void ACMDTMFPlayout::InternalDestructEncoderInst(void* /* ptr_inst */) {
-  // DTMFPlayout has no instance
-  return;
-}
-
 void ACMDTMFPlayout::DestructEncoderSafe() {
   // DTMFPlayout has no instance
   return;
diff --git a/modules/audio_coding/main/acm2/acm_dtmf_playout.h b/modules/audio_coding/main/acm2/acm_dtmf_playout.h
index 5adb0dd..dd87df4 100644
--- a/modules/audio_coding/main/acm2/acm_dtmf_playout.h
+++ b/modules/audio_coding/main/acm2/acm_dtmf_playout.h
@@ -33,8 +33,6 @@
   void DestructEncoderSafe();
 
   int16_t InternalCreateEncoder();
-
-  void InternalDestructEncoderInst(void* ptr_inst);
 };
 
 }  // namespace acm2
diff --git a/modules/audio_coding/main/acm2/acm_g722.cc b/modules/audio_coding/main/acm2/acm_g722.cc
index 8d45772..e0a756d 100644
--- a/modules/audio_coding/main/acm2/acm_g722.cc
+++ b/modules/audio_coding/main/acm2/acm_g722.cc
@@ -52,8 +52,6 @@
 
 void ACMG722::DestructEncoderSafe() { return; }
 
-void ACMG722::InternalDestructEncoderInst(void* /* ptr_inst */) { return; }
-
 #else     //===================== Actual Implementation =======================
 
 // Encoder and decoder memory
@@ -187,13 +185,6 @@
   encoder_initialized_ = false;
 }
 
-void ACMG722::InternalDestructEncoderInst(void* ptr_inst) {
-  if (ptr_inst != NULL) {
-    WebRtcG722_FreeEncoder(static_cast<G722EncInst*>(ptr_inst));
-  }
-  return;
-}
-
 #endif
 
 }  // namespace acm2
diff --git a/modules/audio_coding/main/acm2/acm_g722.h b/modules/audio_coding/main/acm2/acm_g722.h
index 6cdd79d..6717d2c 100644
--- a/modules/audio_coding/main/acm2/acm_g722.h
+++ b/modules/audio_coding/main/acm2/acm_g722.h
@@ -51,8 +51,6 @@
 
   int16_t InternalCreateEncoder();
 
-  void InternalDestructEncoderInst(void* ptr_inst);
-
   ACMG722EncStr* ptr_enc_str_;
 
   G722EncInst* encoder_inst_ptr_;
diff --git a/modules/audio_coding/main/acm2/acm_g7221.cc b/modules/audio_coding/main/acm2/acm_g7221.cc
index 3609f07..5739dd3 100644
--- a/modules/audio_coding/main/acm2/acm_g7221.cc
+++ b/modules/audio_coding/main/acm2/acm_g7221.cc
@@ -115,8 +115,6 @@
 
 void ACMG722_1::DestructEncoderSafe() { return; }
 
-void ACMG722_1::InternalDestructEncoderInst(void* /* ptr_inst */) { return; }
-
 #else  //===================== Actual Implementation =======================
 ACMG722_1::ACMG722_1(int16_t codec_id)
     : encoder_inst_ptr_(NULL),
@@ -316,13 +314,6 @@
   encoder_inst32_ptr_ = NULL;
 }
 
-void ACMG722_1::InternalDestructEncoderInst(void* ptr_inst) {
-  if (ptr_inst != NULL) {
-    delete ptr_inst;
-  }
-  return;
-}
-
 #endif
 
 }  // namespace acm2
diff --git a/modules/audio_coding/main/acm2/acm_g7221.h b/modules/audio_coding/main/acm2/acm_g7221.h
index 74d9b27..3935798 100644
--- a/modules/audio_coding/main/acm2/acm_g7221.h
+++ b/modules/audio_coding/main/acm2/acm_g7221.h
@@ -43,8 +43,6 @@
 
   int16_t InternalCreateEncoder();
 
-  void InternalDestructEncoderInst(void* ptr_inst);
-
   int32_t operational_rate_;
 
   G722_1_Inst_t_* encoder_inst_ptr_;
diff --git a/modules/audio_coding/main/acm2/acm_g7221c.cc b/modules/audio_coding/main/acm2/acm_g7221c.cc
index f6555f5..996eaf8 100644
--- a/modules/audio_coding/main/acm2/acm_g7221c.cc
+++ b/modules/audio_coding/main/acm2/acm_g7221c.cc
@@ -115,8 +115,6 @@
 
 void ACMG722_1C::DestructEncoderSafe() { return; }
 
-void ACMG722_1C::InternalDestructEncoderInst(void* /* ptr_inst */) { return; }
-
 #else  //===================== Actual Implementation =======================
 ACMG722_1C::ACMG722_1C(int16_t codec_id)
     : encoder_inst_ptr_(NULL),
@@ -322,13 +320,6 @@
   encoder_inst48_ptr_ = NULL;
 }
 
-void ACMG722_1C::InternalDestructEncoderInst(void* ptr_inst) {
-  if (ptr_inst != NULL) {
-    delete ptr_inst;
-  }
-  return;
-}
-
 #endif
 
 }  // namespace acm2
diff --git a/modules/audio_coding/main/acm2/acm_g7221c.h b/modules/audio_coding/main/acm2/acm_g7221c.h
index 66b0f54..52a0db9 100644
--- a/modules/audio_coding/main/acm2/acm_g7221c.h
+++ b/modules/audio_coding/main/acm2/acm_g7221c.h
@@ -43,8 +43,6 @@
 
   int16_t InternalCreateEncoder();
 
-  void InternalDestructEncoderInst(void* ptr_inst);
-
   int32_t operational_rate_;
 
   G722_1_Inst_t_* encoder_inst_ptr_;
diff --git a/modules/audio_coding/main/acm2/acm_g729.cc b/modules/audio_coding/main/acm2/acm_g729.cc
index 6f95f36..de1af6e 100644
--- a/modules/audio_coding/main/acm2/acm_g729.cc
+++ b/modules/audio_coding/main/acm2/acm_g729.cc
@@ -57,8 +57,6 @@
 
 void ACMG729::DestructEncoderSafe() { return; }
 
-void ACMG729::InternalDestructEncoderInst(void* /* ptr_inst */) { return; }
-
 #else  //===================== Actual Implementation =======================
 ACMG729::ACMG729(int16_t codec_id)
     : codec_id_(codec_id),
@@ -245,13 +243,6 @@
   }
 }
 
-void ACMG729::InternalDestructEncoderInst(void* ptr_inst) {
-  if (ptr_inst != NULL) {
-    WebRtcG729_FreeEnc(static_cast<G729_encinst_t_*>(ptr_inst));
-  }
-  return;
-}
-
 #endif
 
 }  // namespace acm2
diff --git a/modules/audio_coding/main/acm2/acm_g729.h b/modules/audio_coding/main/acm2/acm_g729.h
index 88b1bf7..be48c6e 100644
--- a/modules/audio_coding/main/acm2/acm_g729.h
+++ b/modules/audio_coding/main/acm2/acm_g729.h
@@ -38,8 +38,6 @@
 
   int16_t InternalCreateEncoder();
 
-  void InternalDestructEncoderInst(void* ptr_inst);
-
   int16_t EnableDTX();
 
   int16_t DisableDTX();
diff --git a/modules/audio_coding/main/acm2/acm_g7291.cc b/modules/audio_coding/main/acm2/acm_g7291.cc
index 3cf9f22..e50d027 100644
--- a/modules/audio_coding/main/acm2/acm_g7291.cc
+++ b/modules/audio_coding/main/acm2/acm_g7291.cc
@@ -51,8 +51,6 @@
 
 void ACMG729_1::DestructEncoderSafe() { return; }
 
-void ACMG729_1::InternalDestructEncoderInst(void* /* ptr_inst */) { return; }
-
 int16_t ACMG729_1::SetBitRateSafe(const int32_t /*rate*/) { return -1; }
 
 #else  //===================== Actual Implementation =======================
@@ -159,13 +157,6 @@
   }
 }
 
-void ACMG729_1::InternalDestructEncoderInst(void* ptr_inst) {
-  if (ptr_inst != NULL) {
-    // WebRtcG7291_Free((G729_1_inst_t*)ptrInst);
-  }
-  return;
-}
-
 int16_t ACMG729_1::SetBitRateSafe(const int32_t rate) {
   // allowed rates: { 8000, 12000, 14000, 16000, 18000, 20000,
   //                22000, 24000, 26000, 28000, 30000, 32000};
diff --git a/modules/audio_coding/main/acm2/acm_g7291.h b/modules/audio_coding/main/acm2/acm_g7291.h
index 38c8fe1..8387dcf 100644
--- a/modules/audio_coding/main/acm2/acm_g7291.h
+++ b/modules/audio_coding/main/acm2/acm_g7291.h
@@ -38,8 +38,6 @@
 
   int16_t InternalCreateEncoder();
 
-  void InternalDestructEncoderInst(void* ptr_inst);
-
   int16_t SetBitRateSafe(const int32_t rate);
 
   G729_1_inst_t_* encoder_inst_ptr_;
diff --git a/modules/audio_coding/main/acm2/acm_generic_codec.cc b/modules/audio_coding/main/acm2/acm_generic_codec.cc
index 361de30..29dccd2 100644
--- a/modules/audio_coding/main/acm2/acm_generic_codec.cc
+++ b/modules/audio_coding/main/acm2/acm_generic_codec.cc
@@ -622,13 +622,6 @@
   return status;
 }
 
-void ACMGenericCodec::DestructEncoderInst(void* ptr_inst) {
-  if (ptr_inst != NULL) {
-    WriteLockScoped lockCodec(codec_wrapper_lock_);
-    InternalDestructEncoderInst(ptr_inst);
-  }
-}
-
 uint32_t ACMGenericCodec::EarliestTimestamp() const {
   ReadLockScoped cs(codec_wrapper_lock_);
   return in_timestamp_[0];
diff --git a/modules/audio_coding/main/acm2/acm_generic_codec.h b/modules/audio_coding/main/acm2/acm_generic_codec.h
index f4ee5e5..adca299 100644
--- a/modules/audio_coding/main/acm2/acm_generic_codec.h
+++ b/modules/audio_coding/main/acm2/acm_generic_codec.h
@@ -213,18 +213,6 @@
   int16_t SetBitRate(const int32_t bitrate_bps);
 
   ///////////////////////////////////////////////////////////////////////////
-  // DestructEncoderInst()
-  // This API is used in conferencing. It will free the memory that is pointed
-  // by |ptr_inst|. |ptr_inst| is a pointer to encoder instance, created and
-  // filled up by calling EncoderInst(...).
-  //
-  // Inputs:
-  //   -ptr_inst            : pointer to an encoder instance to be deleted.
-  //
-  //
-  void DestructEncoderInst(void* ptr_inst);
-
-  ///////////////////////////////////////////////////////////////////////////
   // uint32_t EarliestTimestamp()
   // Returns the timestamp of the first 10 ms in audio buffer. This is used
   // to identify if a synchronization of two encoders is required.
@@ -837,23 +825,6 @@
   virtual int16_t InternalCreateEncoder() = 0;
 
   ///////////////////////////////////////////////////////////////////////////
-  // void InternalDestructEncoderInst()
-  // This is a codec-specific method, used in conferencing, called from
-  // DestructEncoderInst(). The input argument is pointer to encoder instance
-  // (codec instance for codecs that encoder and decoder share the same
-  // instance). This method is called to free the memory that |ptr_inst| is
-  // pointing to.
-  //
-  // Input:
-  //   -ptr_inst           : pointer to encoder instance.
-  //
-  // Return value:
-  //   -1 if failed,
-  //    0 if succeeded.
-  //
-  virtual void InternalDestructEncoderInst(void* ptr_inst) = 0;
-
-  ///////////////////////////////////////////////////////////////////////////
   // int16_t InternalResetEncoder()
   // This method is called to reset the states of encoder. However, the
   // current parameters, e.g. frame-length, should remain as they are. For
diff --git a/modules/audio_coding/main/acm2/acm_gsmfr.cc b/modules/audio_coding/main/acm2/acm_gsmfr.cc
index 90f9fce..1c37a1e 100644
--- a/modules/audio_coding/main/acm2/acm_gsmfr.cc
+++ b/modules/audio_coding/main/acm2/acm_gsmfr.cc
@@ -49,10 +49,6 @@
 
 void ACMGSMFR::DestructEncoderSafe() { return; }
 
-void ACMGSMFR::InternalDestructEncoderInst(void* /* ptr_inst */) {
-  return;
-}
-
 #else  //===================== Actual Implementation =======================
 
 ACMGSMFR::ACMGSMFR(int16_t codec_id)
@@ -147,13 +143,6 @@
   encoder_initialized_ = false;
 }
 
-void ACMGSMFR::InternalDestructEncoderInst(void* ptr_inst) {
-  if (ptr_inst != NULL) {
-    WebRtcGSMFR_FreeEnc(static_cast<GSMFR_encinst_t_*>(ptr_inst));
-  }
-  return;
-}
-
 #endif
 
 }  // namespace acm2
diff --git a/modules/audio_coding/main/acm2/acm_gsmfr.h b/modules/audio_coding/main/acm2/acm_gsmfr.h
index 79c3a18..2cf954b 100644
--- a/modules/audio_coding/main/acm2/acm_gsmfr.h
+++ b/modules/audio_coding/main/acm2/acm_gsmfr.h
@@ -38,8 +38,6 @@
 
   int16_t InternalCreateEncoder();
 
-  void InternalDestructEncoderInst(void* ptr_inst);
-
   int16_t EnableDTX();
 
   int16_t DisableDTX();
diff --git a/modules/audio_coding/main/acm2/acm_ilbc.cc b/modules/audio_coding/main/acm2/acm_ilbc.cc
index eaa079c..d23ec6e 100644
--- a/modules/audio_coding/main/acm2/acm_ilbc.cc
+++ b/modules/audio_coding/main/acm2/acm_ilbc.cc
@@ -40,8 +40,6 @@
 
 void ACMILBC::DestructEncoderSafe() { return; }
 
-void ACMILBC::InternalDestructEncoderInst(void* /* ptr_inst */) { return; }
-
 int16_t ACMILBC::SetBitRateSafe(const int32_t /* rate */) { return -1; }
 
 #else  //===================== Actual Implementation =======================
@@ -117,13 +115,6 @@
   }
 }
 
-void ACMILBC::InternalDestructEncoderInst(void* ptr_inst) {
-  if (ptr_inst != NULL) {
-    WebRtcIlbcfix_EncoderFree(static_cast<iLBC_encinst_t_*>(ptr_inst));
-  }
-  return;
-}
-
 int16_t ACMILBC::SetBitRateSafe(const int32_t rate) {
   // Check that rate is valid. No need to store the value
   if (rate == 13300) {
diff --git a/modules/audio_coding/main/acm2/acm_ilbc.h b/modules/audio_coding/main/acm2/acm_ilbc.h
index 714c900..3cf2c73 100644
--- a/modules/audio_coding/main/acm2/acm_ilbc.h
+++ b/modules/audio_coding/main/acm2/acm_ilbc.h
@@ -44,8 +44,6 @@
 
   int16_t InternalCreateEncoder();
 
-  void InternalDestructEncoderInst(void* ptr_inst);
-
   iLBC_encinst_t_* encoder_inst_ptr_;
 };
 
diff --git a/modules/audio_coding/main/acm2/acm_isac.cc b/modules/audio_coding/main/acm2/acm_isac.cc
index e122559..850204f 100644
--- a/modules/audio_coding/main/acm2/acm_isac.cc
+++ b/modules/audio_coding/main/acm2/acm_isac.cc
@@ -93,8 +93,6 @@
 
 void ACMISAC::DestructEncoderSafe() { return; }
 
-void ACMISAC::InternalDestructEncoderInst(void* /* ptr_inst */) { return; }
-
 int16_t ACMISAC::Transcode(uint8_t* /* bitstream */,
                            int16_t* /* bitstream_len_byte */,
                            int16_t /* q_bwe */,
@@ -461,13 +459,6 @@
   return;
 }
 
-void ACMISAC::InternalDestructEncoderInst(void* ptr_inst) {
-  if (ptr_inst != NULL) {
-    ACM_ISAC_FREE(static_cast<ACM_ISAC_STRUCT *>(ptr_inst));
-  }
-  return;
-}
-
 int16_t ACMISAC::SetBitRateSafe(int32_t bit_rate) {
   CriticalSectionScoped lock(codec_inst_crit_sect_.get());
   if (codec_inst_ptr_ == NULL) {
diff --git a/modules/audio_coding/main/acm2/acm_isac.h b/modules/audio_coding/main/acm2/acm_isac.h
index 31263c7..2354822 100644
--- a/modules/audio_coding/main/acm2/acm_isac.h
+++ b/modules/audio_coding/main/acm2/acm_isac.h
@@ -117,8 +117,6 @@
 
   int16_t InternalCreateEncoder() OVERRIDE;
 
-  void InternalDestructEncoderInst(void* ptr_inst) OVERRIDE;
-
   void CurrentRate(int32_t* rate_bit_per_sec) OVERRIDE;
 
   virtual AudioDecoder* Decoder(int codec_id) OVERRIDE;
diff --git a/modules/audio_coding/main/acm2/acm_opus.cc b/modules/audio_coding/main/acm2/acm_opus.cc
index 3d4f347..8991dae 100644
--- a/modules/audio_coding/main/acm2/acm_opus.cc
+++ b/modules/audio_coding/main/acm2/acm_opus.cc
@@ -57,10 +57,6 @@
   return;
 }
 
-void ACMOpus::InternalDestructEncoderInst(void* /* ptr_inst */) {
-  return;
-}
-
 int16_t ACMOpus::SetBitRateSafe(const int32_t /*rate*/) {
   return -1;
 }
@@ -177,13 +173,6 @@
   }
 }
 
-void ACMOpus::InternalDestructEncoderInst(void* ptr_inst) {
-  if (ptr_inst != NULL) {
-    WebRtcOpus_EncoderFree(static_cast<OpusEncInst*>(ptr_inst));
-  }
-  return;
-}
-
 int16_t ACMOpus::SetBitRateSafe(const int32_t rate) {
   if (rate < 6000 || rate > 510000) {
     WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceAudioCoding, unique_id_,
diff --git a/modules/audio_coding/main/acm2/acm_opus.h b/modules/audio_coding/main/acm2/acm_opus.h
index dc992bb..8ef6406 100644
--- a/modules/audio_coding/main/acm2/acm_opus.h
+++ b/modules/audio_coding/main/acm2/acm_opus.h
@@ -45,8 +45,6 @@
 
   int16_t InternalCreateEncoder();
 
-  void InternalDestructEncoderInst(void* ptr_inst);
-
   int16_t SetBitRateSafe(const int32_t rate) OVERRIDE
       EXCLUSIVE_LOCKS_REQUIRED(codec_wrapper_lock_);
 
diff --git a/modules/audio_coding/main/acm2/acm_pcm16b.cc b/modules/audio_coding/main/acm2/acm_pcm16b.cc
index 89688a8..54c7860 100644
--- a/modules/audio_coding/main/acm2/acm_pcm16b.cc
+++ b/modules/audio_coding/main/acm2/acm_pcm16b.cc
@@ -41,8 +41,6 @@
 
 int16_t ACMPCM16B::InternalCreateEncoder() { return -1; }
 
-void ACMPCM16B::InternalDestructEncoderInst(void* /* ptr_inst */) { return; }
-
 void ACMPCM16B::DestructEncoderSafe() { return; }
 
 #else  //===================== Actual Implementation =======================
@@ -77,11 +75,6 @@
   return 0;
 }
 
-void ACMPCM16B::InternalDestructEncoderInst(void* /* ptr_inst */) {
-  // PCM has no instance.
-  return;
-}
-
 void ACMPCM16B::DestructEncoderSafe() {
   // PCM has no instance.
   encoder_exist_ = false;
diff --git a/modules/audio_coding/main/acm2/acm_pcm16b.h b/modules/audio_coding/main/acm2/acm_pcm16b.h
index de4330d..0811a17 100644
--- a/modules/audio_coding/main/acm2/acm_pcm16b.h
+++ b/modules/audio_coding/main/acm2/acm_pcm16b.h
@@ -37,8 +37,6 @@
 
   int16_t InternalCreateEncoder();
 
-  void InternalDestructEncoderInst(void* ptr_inst);
-
   int32_t sampling_freq_hz_;
 };
 
diff --git a/modules/audio_coding/main/acm2/acm_pcma.cc b/modules/audio_coding/main/acm2/acm_pcma.cc
index 1dd6e48..548e8fd 100644
--- a/modules/audio_coding/main/acm2/acm_pcma.cc
+++ b/modules/audio_coding/main/acm2/acm_pcma.cc
@@ -47,11 +47,6 @@
   return 0;
 }
 
-void ACMPCMA::InternalDestructEncoderInst(void* /* ptr_inst */) {
-  // PCM has no instance.
-  return;
-}
-
 void ACMPCMA::DestructEncoderSafe() {
   // PCM has no instance.
   return;
diff --git a/modules/audio_coding/main/acm2/acm_pcma.h b/modules/audio_coding/main/acm2/acm_pcma.h
index a2d8874..d7d00b4 100644
--- a/modules/audio_coding/main/acm2/acm_pcma.h
+++ b/modules/audio_coding/main/acm2/acm_pcma.h
@@ -35,8 +35,6 @@
   void DestructEncoderSafe();
 
   int16_t InternalCreateEncoder();
-
-  void InternalDestructEncoderInst(void* ptr_inst);
 };
 
 }  // namespace acm2
diff --git a/modules/audio_coding/main/acm2/acm_pcmu.cc b/modules/audio_coding/main/acm2/acm_pcmu.cc
index 7d2536f..5c03236 100644
--- a/modules/audio_coding/main/acm2/acm_pcmu.cc
+++ b/modules/audio_coding/main/acm2/acm_pcmu.cc
@@ -48,10 +48,6 @@
   return 0;
 }
 
-void ACMPCMU::InternalDestructEncoderInst(void* /* ptr_inst */) {
-  // PCM has no instance.
-}
-
 void ACMPCMU::DestructEncoderSafe() {
   // PCM has no instance.
   encoder_exist_ = false;
diff --git a/modules/audio_coding/main/acm2/acm_pcmu.h b/modules/audio_coding/main/acm2/acm_pcmu.h
index 7aa83b7..dccfffd 100644
--- a/modules/audio_coding/main/acm2/acm_pcmu.h
+++ b/modules/audio_coding/main/acm2/acm_pcmu.h
@@ -36,8 +36,6 @@
       EXCLUSIVE_LOCKS_REQUIRED(codec_wrapper_lock_);
 
   int16_t InternalCreateEncoder();
-
-  void InternalDestructEncoderInst(void* ptr_inst);
 };
 
 }  // namespace acm2
diff --git a/modules/audio_coding/main/acm2/acm_red.cc b/modules/audio_coding/main/acm2/acm_red.cc
index 4f2c70c..05996e5 100644
--- a/modules/audio_coding/main/acm2/acm_red.cc
+++ b/modules/audio_coding/main/acm2/acm_red.cc
@@ -41,10 +41,6 @@
   return 0;
 }
 
-void ACMRED::InternalDestructEncoderInst(void* /* ptr_inst */) {
-  // RED has no instance
-}
-
 void ACMRED::DestructEncoderSafe() {
   // RED has no instance
 }
diff --git a/modules/audio_coding/main/acm2/acm_red.h b/modules/audio_coding/main/acm2/acm_red.h
index ac38170..73f904a 100644
--- a/modules/audio_coding/main/acm2/acm_red.h
+++ b/modules/audio_coding/main/acm2/acm_red.h
@@ -33,8 +33,6 @@
   void DestructEncoderSafe();
 
   int16_t InternalCreateEncoder();
-
-  void InternalDestructEncoderInst(void* ptr_inst);
 };
 
 }  // namespace acm2
diff --git a/modules/audio_coding/main/acm2/acm_speex.cc b/modules/audio_coding/main/acm2/acm_speex.cc
index c4d7628..85ead39 100644
--- a/modules/audio_coding/main/acm2/acm_speex.cc
+++ b/modules/audio_coding/main/acm2/acm_speex.cc
@@ -58,8 +58,6 @@
 
 int16_t ACMSPEEX::SetBitRateSafe(const int32_t /* rate */) { return -1; }
 
-void ACMSPEEX::InternalDestructEncoderInst(void* /* ptr_inst */) { return; }
-
 #ifdef UNUSEDSPEEX
 int16_t ACMSPEEX::EnableVBR() { return -1; }
 
@@ -250,13 +248,6 @@
   return 0;
 }
 
-void ACMSPEEX::InternalDestructEncoderInst(void* ptr_inst) {
-  if (ptr_inst != NULL) {
-    WebRtcSpeex_FreeEnc(static_cast<SPEEX_encinst_t_*>(ptr_inst));
-  }
-  return;
-}
-
 #ifdef UNUSEDSPEEX
 
 // This API is currently not in use. If requested to be able to enable/disable
diff --git a/modules/audio_coding/main/acm2/acm_speex.h b/modules/audio_coding/main/acm2/acm_speex.h
index f9cf787..931e3a9 100644
--- a/modules/audio_coding/main/acm2/acm_speex.h
+++ b/modules/audio_coding/main/acm2/acm_speex.h
@@ -38,8 +38,6 @@
 
   int16_t InternalCreateEncoder();
 
-  void InternalDestructEncoderInst(void* ptr_inst);
-
   int16_t SetBitRateSafe(const int32_t rate);
 
   int16_t EnableDTX();
diff --git a/modules/audio_coding/main/acm2/audio_coding_module_impl.cc b/modules/audio_coding/main/acm2/audio_coding_module_impl.cc
index 98e2558..2212f83 100644
--- a/modules/audio_coding/main/acm2/audio_coding_module_impl.cc
+++ b/modules/audio_coding/main/acm2/audio_coding_module_impl.cc
@@ -1787,15 +1787,6 @@
   return 0;
 }
 
-void AudioCodingModuleImpl::DestructEncoderInst(void* inst) {
-  CriticalSectionScoped lock(acm_crit_sect_);
-  WEBRTC_TRACE(webrtc::kTraceDebug, webrtc::kTraceAudioCoding, id_,
-               "DestructEncoderInst()");
-  if (!HaveValidEncoder("DestructEncoderInst"))
-    return;
-  codecs_[current_send_codec_idx_]->DestructEncoderInst(inst);
-}
-
 int AudioCodingModuleImpl::RegisterVADCallback(ACMVADCallback* vad_callback) {
   WEBRTC_TRACE(webrtc::kTraceDebug, webrtc::kTraceAudioCoding, id_,
                "RegisterVADCallback()");
diff --git a/modules/audio_coding/main/acm2/audio_coding_module_impl.h b/modules/audio_coding/main/acm2/audio_coding_module_impl.h
index 41c2894..0bfb564 100644
--- a/modules/audio_coding/main/acm2/audio_coding_module_impl.h
+++ b/modules/audio_coding/main/acm2/audio_coding_module_impl.h
@@ -210,8 +210,6 @@
 
   int NetworkStatistics(ACMNetworkStatistics* statistics);
 
-  void DestructEncoderInst(void* inst);
-
   // GET RED payload for iSAC. The method id called when 'this' ACM is
   // the default ACM.
   // TODO(henrik.lundin) Not used. Remove?