Remove VoECodec.

BUG=webrtc:4690

Review-Url: https://codereview.webrtc.org/3019433002
Cr-Commit-Position: refs/heads/master@{#19889}
diff --git a/media/engine/webrtcvoe.h b/media/engine/webrtcvoe.h
index fd4f929..5a25d44 100644
--- a/media/engine/webrtcvoe.h
+++ b/media/engine/webrtcvoe.h
@@ -16,7 +16,6 @@
 #include "common_types.h"  // NOLINT(build/include)
 #include "modules/audio_device/include/audio_device.h"
 #include "voice_engine/include/voe_base.h"
-#include "voice_engine/include/voe_codec.h"
 #include "voice_engine/include/voe_errors.h"
 
 namespace cricket {
diff --git a/test/mock_voice_engine.h b/test/mock_voice_engine.h
index bd65b0b..e388993 100644
--- a/test/mock_voice_engine.h
+++ b/test/mock_voice_engine.h
@@ -113,27 +113,6 @@
   MOCK_METHOD1(StopSend, int(int channel));
   MOCK_METHOD0(audio_transport, AudioTransport*());
 
-  // VoECodec
-  MOCK_METHOD0(NumOfCodecs, int());
-  MOCK_METHOD2(GetCodec, int(int index, CodecInst& codec));
-  MOCK_METHOD2(SetSendCodec, int(int channel, const CodecInst& codec));
-  MOCK_METHOD2(GetSendCodec, int(int channel, CodecInst& codec));
-  MOCK_METHOD2(SetBitRate, int(int channel, int bitrate_bps));
-  MOCK_METHOD2(GetRecCodec, int(int channel, CodecInst& codec));
-  MOCK_METHOD2(SetRecPayloadType, int(int channel, const CodecInst& codec));
-  MOCK_METHOD2(GetRecPayloadType, int(int channel, CodecInst& codec));
-  MOCK_METHOD3(SetSendCNPayloadType,
-               int(int channel, int type, PayloadFrequencies frequency));
-  MOCK_METHOD2(SetFECStatus, int(int channel, bool enable));
-  MOCK_METHOD2(GetFECStatus, int(int channel, bool& enabled));
-  MOCK_METHOD4(SetVADStatus,
-               int(int channel, bool enable, VadModes mode, bool disableDTX));
-  MOCK_METHOD4(
-      GetVADStatus,
-      int(int channel, bool& enabled, VadModes& mode, bool& disabledDTX));
-  MOCK_METHOD2(SetOpusMaxPlaybackRate, int(int channel, int frequency_hz));
-  MOCK_METHOD2(SetOpusDtx, int(int channel, bool enable_dtx));
-
   // VoENetwork
   MOCK_METHOD2(RegisterExternalTransport,
                int(int channel, Transport& transport));
diff --git a/voice_engine/BUILD.gn b/voice_engine/BUILD.gn
index 57a94e2..5f1ae03 100644
--- a/voice_engine/BUILD.gn
+++ b/voice_engine/BUILD.gn
@@ -17,7 +17,6 @@
     "channel_proxy.cc",
     "channel_proxy.h",
     "include/voe_base.h",
-    "include/voe_codec.h",
     "include/voe_errors.h",
     "include/voe_network.h",
     "include/voe_rtp_rtcp.h",
@@ -36,8 +35,6 @@
     "utility.h",
     "voe_base_impl.cc",
     "voe_base_impl.h",
-    "voe_codec_impl.cc",
-    "voe_codec_impl.h",
     "voe_network_impl.cc",
     "voe_network_impl.h",
     "voe_rtp_rtcp_impl.cc",
@@ -145,7 +142,6 @@
       "transport_feedback_packet_loss_tracker_unittest.cc",
       "utility_unittest.cc",
       "voe_base_unittest.cc",
-      "voe_codec_unittest.cc",
       "voe_network_unittest.cc",
       "voice_engine_fixture.cc",
       "voice_engine_fixture.h",
diff --git a/voice_engine/channel.cc b/voice_engine/channel.cc
index e5435d6..49bc381 100644
--- a/voice_engine/channel.cc
+++ b/voice_engine/channel.cc
@@ -912,6 +912,7 @@
     return -1;
   }
 
+  // TODO(solenberg): Remove?
   // Register a default set of send codecs.
   const int nSupportedCodecs = AudioCodingModule::NumberOfCodecs();
   for (int idx = 0; idx < nSupportedCodecs; idx++) {
@@ -948,51 +949,6 @@
   return 0;
 }
 
-void Channel::RegisterLegacyReceiveCodecs() {
-  const int nSupportedCodecs = AudioCodingModule::NumberOfCodecs();
-  for (int idx = 0; idx < nSupportedCodecs; idx++) {
-    CodecInst codec;
-    RTC_CHECK_EQ(0, audio_coding_->Codec(idx, &codec));
-
-    // Open up the RTP/RTCP receiver for all supported codecs
-    if (rtp_receiver_->RegisterReceivePayload(codec) == -1) {
-      WEBRTC_TRACE(kTraceWarning, kTraceVoice, VoEId(_instanceId, _channelId),
-                   "Channel::Init() unable to register %s "
-                   "(%d/%d/%" PRIuS "/%d) to RTP/RTCP receiver",
-                   codec.plname, codec.pltype, codec.plfreq, codec.channels,
-                   codec.rate);
-    } else {
-      WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId, _channelId),
-                   "Channel::Init() %s (%d/%d/%" PRIuS
-                   "/%d) has been "
-                   "added to the RTP/RTCP receiver",
-                   codec.plname, codec.pltype, codec.plfreq, codec.channels,
-                   codec.rate);
-    }
-
-    // Register default PT for 'telephone-event'
-    if (STR_CASE_CMP(codec.plname, "telephone-event") == 0) {
-      if (!audio_coding_->RegisterReceiveCodec(codec.pltype,
-                                               CodecInstToSdp(codec))) {
-        WEBRTC_TRACE(kTraceWarning, kTraceVoice, VoEId(_instanceId, _channelId),
-                     "Channel::Init() failed to register inband "
-                     "'telephone-event' (%d/%d) correctly",
-                     codec.pltype, codec.plfreq);
-      }
-    }
-
-    if (STR_CASE_CMP(codec.plname, "CN") == 0) {
-      if (!audio_coding_->RegisterReceiveCodec(codec.pltype,
-                                               CodecInstToSdp(codec))) {
-        WEBRTC_TRACE(kTraceWarning, kTraceVoice, VoEId(_instanceId, _channelId),
-                     "Channel::Init() failed to register CN (%d/%d) "
-                     "correctly - 1",
-                     codec.pltype, codec.plfreq);
-      }
-    }
-  }
-}
-
 void Channel::Terminate() {
   RTC_DCHECK(construction_thread_.CalledOnValidThread());
   // Must be called on the same thread as Init().
@@ -1339,198 +1295,11 @@
   });
 }
 
-int32_t Channel::SetVADStatus(bool enableVAD,
-                              ACMVADMode mode,
-                              bool disableDTX) {
-  WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId, _channelId),
-               "Channel::SetVADStatus(mode=%d)", mode);
-  RTC_DCHECK(!(disableDTX && enableVAD));  // disableDTX mode is deprecated.
-  if (!codec_manager_.SetVAD(enableVAD, mode) ||
-      !codec_manager_.MakeEncoder(&rent_a_codec_, audio_coding_.get())) {
-    _engineStatisticsPtr->SetLastError(VE_AUDIO_CODING_MODULE_ERROR,
-                                       kTraceError,
-                                       "SetVADStatus() failed to set VAD");
-    return -1;
-  }
-  return 0;
-}
-
-int32_t Channel::GetVADStatus(bool& enabledVAD,
-                              ACMVADMode& mode,
-                              bool& disabledDTX) {
-  const auto* params = codec_manager_.GetStackParams();
-  enabledVAD = params->use_cng;
-  mode = params->vad_mode;
-  disabledDTX = !params->use_cng;
-  return 0;
-}
-
 void Channel::SetReceiveCodecs(const std::map<int, SdpAudioFormat>& codecs) {
   rtp_payload_registry_->SetAudioReceivePayloads(codecs);
   audio_coding_->SetReceiveCodecs(codecs);
 }
 
-int32_t Channel::SetRecPayloadType(const CodecInst& codec) {
-  return SetRecPayloadType(codec.pltype, CodecInstToSdp(codec));
-}
-
-int32_t Channel::SetRecPayloadType(int payload_type,
-                                   const SdpAudioFormat& format) {
-  WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId, _channelId),
-               "Channel::SetRecPayloadType()");
-
-  if (channel_state_.Get().playing) {
-    _engineStatisticsPtr->SetLastError(
-        VE_ALREADY_PLAYING, kTraceError,
-        "SetRecPayloadType() unable to set PT while playing");
-    return -1;
-  }
-
-  const CodecInst codec = SdpToCodecInst(payload_type, format);
-
-  if (payload_type == -1) {
-    // De-register the selected codec (RTP/RTCP module and ACM)
-
-    int8_t pltype(-1);
-    CodecInst rxCodec = codec;
-
-    // Get payload type for the given codec
-    rtp_payload_registry_->ReceivePayloadType(rxCodec, &pltype);
-    rxCodec.pltype = pltype;
-
-    if (rtp_receiver_->DeRegisterReceivePayload(pltype) != 0) {
-      _engineStatisticsPtr->SetLastError(
-          VE_RTP_RTCP_MODULE_ERROR, kTraceError,
-          "SetRecPayloadType() RTP/RTCP-module deregistration "
-          "failed");
-      return -1;
-    }
-    if (audio_coding_->UnregisterReceiveCodec(rxCodec.pltype) != 0) {
-      _engineStatisticsPtr->SetLastError(
-          VE_AUDIO_CODING_MODULE_ERROR, kTraceError,
-          "SetRecPayloadType() ACM deregistration failed - 1");
-      return -1;
-    }
-    return 0;
-  }
-
-  if (rtp_receiver_->RegisterReceivePayload(codec) != 0) {
-    // First attempt to register failed => de-register and try again
-    // TODO(kwiberg): Retrying is probably not necessary, since
-    // AcmReceiver::AddCodec also retries.
-    rtp_receiver_->DeRegisterReceivePayload(codec.pltype);
-    if (rtp_receiver_->RegisterReceivePayload(codec) != 0) {
-      _engineStatisticsPtr->SetLastError(
-          VE_RTP_RTCP_MODULE_ERROR, kTraceError,
-          "SetRecPayloadType() RTP/RTCP-module registration failed");
-      return -1;
-    }
-  }
-  if (!audio_coding_->RegisterReceiveCodec(payload_type, format)) {
-    audio_coding_->UnregisterReceiveCodec(payload_type);
-    if (!audio_coding_->RegisterReceiveCodec(payload_type, format)) {
-      _engineStatisticsPtr->SetLastError(
-          VE_AUDIO_CODING_MODULE_ERROR, kTraceError,
-          "SetRecPayloadType() ACM registration failed - 1");
-      return -1;
-    }
-  }
-  return 0;
-}
-
-int32_t Channel::GetRecPayloadType(CodecInst& codec) {
-  int8_t payloadType(-1);
-  if (rtp_payload_registry_->ReceivePayloadType(codec, &payloadType) != 0) {
-    _engineStatisticsPtr->SetLastError(
-        VE_RTP_RTCP_MODULE_ERROR, kTraceWarning,
-        "GetRecPayloadType() failed to retrieve RX payload type");
-    return -1;
-  }
-  codec.pltype = payloadType;
-  return 0;
-}
-
-int32_t Channel::SetSendCNPayloadType(int type, PayloadFrequencies frequency) {
-  WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId, _channelId),
-               "Channel::SetSendCNPayloadType()");
-
-  CodecInst codec;
-  int32_t samplingFreqHz(-1);
-  const size_t kMono = 1;
-  if (frequency == kFreq32000Hz)
-    samplingFreqHz = 32000;
-  else if (frequency == kFreq16000Hz)
-    samplingFreqHz = 16000;
-
-  if (audio_coding_->Codec("CN", &codec, samplingFreqHz, kMono) == -1) {
-    _engineStatisticsPtr->SetLastError(
-        VE_AUDIO_CODING_MODULE_ERROR, kTraceError,
-        "SetSendCNPayloadType() failed to retrieve default CN codec "
-        "settings");
-    return -1;
-  }
-
-  // Modify the payload type (must be set to dynamic range)
-  codec.pltype = type;
-
-  if (!codec_manager_.RegisterEncoder(codec) ||
-      !codec_manager_.MakeEncoder(&rent_a_codec_, audio_coding_.get())) {
-    _engineStatisticsPtr->SetLastError(
-        VE_AUDIO_CODING_MODULE_ERROR, kTraceError,
-        "SetSendCNPayloadType() failed to register CN to ACM");
-    return -1;
-  }
-
-  if (_rtpRtcpModule->RegisterSendPayload(codec) != 0) {
-    _rtpRtcpModule->DeRegisterSendPayload(codec.pltype);
-    if (_rtpRtcpModule->RegisterSendPayload(codec) != 0) {
-      _engineStatisticsPtr->SetLastError(
-          VE_RTP_RTCP_MODULE_ERROR, kTraceError,
-          "SetSendCNPayloadType() failed to register CN to RTP/RTCP "
-          "module");
-      return -1;
-    }
-  }
-  return 0;
-}
-
-int Channel::SetOpusMaxPlaybackRate(int frequency_hz) {
-  WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId, _channelId),
-               "Channel::SetOpusMaxPlaybackRate()");
-
-  if (audio_coding_->SetOpusMaxPlaybackRate(frequency_hz) != 0) {
-    _engineStatisticsPtr->SetLastError(
-        VE_AUDIO_CODING_MODULE_ERROR, kTraceError,
-        "SetOpusMaxPlaybackRate() failed to set maximum playback rate");
-    return -1;
-  }
-  return 0;
-}
-
-int Channel::SetOpusDtx(bool enable_dtx) {
-  WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId, _channelId),
-               "Channel::SetOpusDtx(%d)", enable_dtx);
-  int ret = enable_dtx ? audio_coding_->EnableOpusDtx()
-                       : audio_coding_->DisableOpusDtx();
-  if (ret != 0) {
-    _engineStatisticsPtr->SetLastError(VE_AUDIO_CODING_MODULE_ERROR,
-                                       kTraceError, "SetOpusDtx() failed");
-    return -1;
-  }
-  return 0;
-}
-
-int Channel::GetOpusDtx(bool* enabled) {
-  int success = -1;
-  audio_coding_->QueryEncoder([&](AudioEncoder const* encoder) {
-    if (encoder) {
-      *enabled = encoder->GetDtx();
-      success = 0;
-    }
-  });
-  return success;
-}
-
 bool Channel::EnableAudioNetworkAdaptor(const std::string& config_string) {
   bool success = false;
   audio_coding_->ModifyEncoder([&](std::unique_ptr<AudioEncoder>* encoder) {
@@ -2071,24 +1840,6 @@
   return 0;
 }
 
-int Channel::SetCodecFECStatus(bool enable) {
-  WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_instanceId, _channelId),
-               "Channel::SetCodecFECStatus()");
-
-  if (!codec_manager_.SetCodecFEC(enable) ||
-      !codec_manager_.MakeEncoder(&rent_a_codec_, audio_coding_.get())) {
-    _engineStatisticsPtr->SetLastError(
-        VE_AUDIO_CODING_MODULE_ERROR, kTraceError,
-        "SetCodecFECStatus() failed to set FEC state");
-    return -1;
-  }
-  return 0;
-}
-
-bool Channel::GetCodecFECStatus() {
-  return codec_manager_.GetStackParams()->use_codec_fec;
-}
-
 void Channel::SetNACKStatus(bool enable, int maxNumberOfPackets) {
   // None of these functions can fail.
   // If pacing is enabled we always store packets.
diff --git a/voice_engine/channel.h b/voice_engine/channel.h
index d023f87..5c95a64 100644
--- a/voice_engine/channel.h
+++ b/voice_engine/channel.h
@@ -136,7 +136,6 @@
           uint32_t instanceId,
           const VoEBase::ChannelConfig& config);
   int32_t Init();
-  void RegisterLegacyReceiveCodecs();
   void Terminate();
   int32_t SetEngineInformation(Statistics& engineStatistics,
                                OutputMixer& outputMixer,
@@ -171,20 +170,11 @@
   int32_t RegisterVoiceEngineObserver(VoiceEngineObserver& observer);
   int32_t DeRegisterVoiceEngineObserver();
 
-  // VoECodec
+  // Codecs
   int32_t GetSendCodec(CodecInst& codec);
   int32_t GetRecCodec(CodecInst& codec);
   int32_t SetSendCodec(const CodecInst& codec);
   void SetBitRate(int bitrate_bps, int64_t probing_interval_ms);
-  int32_t SetVADStatus(bool enableVAD, ACMVADMode mode, bool disableDTX);
-  int32_t GetVADStatus(bool& enabledVAD, ACMVADMode& mode, bool& disabledDTX);
-  int32_t SetRecPayloadType(const CodecInst& codec);
-  int32_t SetRecPayloadType(int payload_type, const SdpAudioFormat& format);
-  int32_t GetRecPayloadType(CodecInst& codec);
-  int32_t SetSendCNPayloadType(int type, PayloadFrequencies frequency);
-  int SetOpusMaxPlaybackRate(int frequency_hz);
-  int SetOpusDtx(bool enable_dtx);
-  int GetOpusDtx(bool* enabled);
   bool EnableAudioNetworkAdaptor(const std::string& config_string);
   void DisableAudioNetworkAdaptor();
   void SetReceiverFrameLengthRange(int min_frame_length_ms,
@@ -250,8 +240,6 @@
                                        unsigned short dataLengthInBytes);
   int GetRemoteRTCPReportBlocks(std::vector<ReportBlock>* report_blocks);
   int GetRTPStatistics(CallStatistics& stats);
-  int SetCodecFECStatus(bool enable);
-  bool GetCodecFECStatus();
   void SetNACKStatus(bool enable, int maxNumberOfPackets);
 
   // From AudioPacketizationCallback in the ACM
diff --git a/voice_engine/channel_proxy.cc b/voice_engine/channel_proxy.cc
index a4d68ac..f6013c2 100644
--- a/voice_engine/channel_proxy.cc
+++ b/voice_engine/channel_proxy.cc
@@ -197,13 +197,6 @@
   channel()->SetBitRate(bitrate_bps, probing_interval_ms);
 }
 
-void ChannelProxy::SetRecPayloadType(int payload_type,
-                                     const SdpAudioFormat& format) {
-  RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
-  const int result = channel()->SetRecPayloadType(payload_type, format);
-  RTC_DCHECK_EQ(0, result);
-}
-
 void ChannelProxy::SetReceiveCodecs(
     const std::map<int, SdpAudioFormat>& codecs) {
   RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
@@ -334,11 +327,6 @@
   channel()->OnRecoverableUplinkPacketLossRate(recoverable_packet_loss_rate);
 }
 
-void ChannelProxy::RegisterLegacyReceiveCodecs() {
-  RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
-  channel()->RegisterLegacyReceiveCodecs();
-}
-
 std::vector<RtpSource> ChannelProxy::GetSources() const {
   RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
   return channel()->GetSources();
diff --git a/voice_engine/channel_proxy.h b/voice_engine/channel_proxy.h
index 7094b3e..ca11b58 100644
--- a/voice_engine/channel_proxy.h
+++ b/voice_engine/channel_proxy.h
@@ -93,8 +93,6 @@
                                                 int payload_frequency);
   virtual bool SendTelephoneEventOutband(int event, int duration_ms);
   virtual void SetBitrate(int bitrate_bps, int64_t probing_interval_ms);
-  virtual void SetRecPayloadType(int payload_type,
-                                 const SdpAudioFormat& format);
   virtual void SetReceiveCodecs(const std::map<int, SdpAudioFormat>& codecs);
   virtual void SetSink(std::unique_ptr<AudioSinkInterface> sink);
   virtual void SetInputMute(bool muted);
@@ -124,7 +122,6 @@
   virtual void OnTwccBasedUplinkPacketLossRate(float packet_loss_rate);
   virtual void OnRecoverableUplinkPacketLossRate(
       float recoverable_packet_loss_rate);
-  virtual void RegisterLegacyReceiveCodecs();
   virtual std::vector<webrtc::RtpSource> GetSources() const;
 
  private:
diff --git a/voice_engine/include/voe_codec.h b/voice_engine/include/voe_codec.h
deleted file mode 100644
index 8ae0997..0000000
--- a/voice_engine/include/voe_codec.h
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- *  Copyright (c) 2012 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.
- */
-
-// This sub-API supports the following functionalities:
-//
-//  - Support of non-default codecs (e.g. iLBC, iSAC, etc.).
-//  - Voice Activity Detection (VAD) on a per channel basis.
-//  - Possibility to specify how to map received payload types to codecs.
-//
-// Usage example, omitting error checking:
-//
-//  using namespace webrtc;
-//  VoiceEngine* voe = VoiceEngine::Create();
-//  VoEBase* base = VoEBase::GetInterface(voe);
-//  VoECodec* codec = VoECodec::GetInterface(voe);
-//  base->Init();
-//  int num_of_codecs = codec->NumOfCodecs()
-//  ...
-//  base->Terminate();
-//  base->Release();
-//  codec->Release();
-//  VoiceEngine::Delete(voe);
-//
-#ifndef VOICE_ENGINE_VOE_CODEC_H_
-#define VOICE_ENGINE_VOE_CODEC_H_
-
-#include "common_types.h"  // NOLINT(build/include)
-
-namespace webrtc {
-
-class VoiceEngine;
-
-class WEBRTC_DLLEXPORT VoECodec {
- public:
-  // Factory for the VoECodec sub-API. Increases an internal
-  // reference counter if successful. Returns NULL if the API is not
-  // supported or if construction fails.
-  static VoECodec* GetInterface(VoiceEngine* voiceEngine);
-
-  // Releases the VoECodec sub-API and decreases an internal
-  // reference counter. Returns the new reference count. This value should
-  // be zero for all sub-API:s before the VoiceEngine object can be safely
-  // deleted.
-  virtual int Release() = 0;
-
-  // Gets the number of supported codecs.
-  virtual int NumOfCodecs() = 0;
-
-  // Get the |codec| information for a specified list |index|.
-  virtual int GetCodec(int index, CodecInst& codec) = 0;
-
-  // Sets the |codec| for the |channel| to be used for sending.
-  virtual int SetSendCodec(int channel, const CodecInst& codec) = 0;
-
-  // Gets the |codec| parameters for the sending codec on a specified
-  // |channel|.
-  virtual int GetSendCodec(int channel, CodecInst& codec) = 0;
-
-  // Sets the bitrate on a specified |channel| to the specified value
-  // (in bits/sec). If the value is not supported by the codec, the codec will
-  // choose an appropriate value.
-  // Returns -1 on failure and 0 on success.
-  virtual int SetBitRate(int channel, int bitrate_bps) = 0;
-
-  // Gets the currently received |codec| for a specific |channel|.
-  virtual int GetRecCodec(int channel, CodecInst& codec) = 0;
-
-  // Sets the dynamic payload type number for a particular |codec| or
-  // disables (ignores) a codec for receiving. For instance, when receiving
-  // an invite from a SIP-based client, this function can be used to change
-  // the dynamic payload type number to match that in the INVITE SDP-
-  // message. The utilized parameters in the |codec| structure are:
-  // plname, plfreq, pltype and channels.
-  virtual int SetRecPayloadType(int channel, const CodecInst& codec) = 0;
-
-  // Gets the actual payload type that is set for receiving a |codec| on a
-  // |channel|. The value it retrieves will either be the default payload
-  // type, or a value earlier set with SetRecPayloadType().
-  virtual int GetRecPayloadType(int channel, CodecInst& codec) = 0;
-
-  // Sets the payload |type| for the sending of SID-frames with background
-  // noise estimation during silence periods detected by the VAD.
-  virtual int SetSendCNPayloadType(
-      int channel,
-      int type,
-      PayloadFrequencies frequency = kFreq16000Hz) = 0;
-
-  // Sets the codec internal FEC (forward error correction) status for a
-  // specified |channel|. Returns 0 if success, and -1 if failed.
-  // TODO(minyue): Make SetFECStatus() pure virtual when fakewebrtcvoiceengine
-  // in talk is ready.
-  virtual int SetFECStatus(int channel, bool enable) { return -1; }
-
-  // Gets the codec internal FEC status for a specified |channel|. Returns 0
-  // with the status stored in |enabled| if success, and -1 if encountered
-  // error.
-  // TODO(minyue): Make GetFECStatus() pure virtual when fakewebrtcvoiceengine
-  // in talk is ready.
-  virtual int GetFECStatus(int channel, bool& enabled) { return -1; }
-
-  // Sets the VAD/DTX (silence suppression) status and |mode| for a
-  // specified |channel|. Disabling VAD (through |enable|) will also disable
-  // DTX; it is not necessary to explictly set |disableDTX| in this case.
-  virtual int SetVADStatus(int channel,
-                           bool enable,
-                           VadModes mode = kVadConventional,
-                           bool disableDTX = false) = 0;
-
-  // Gets the VAD/DTX status and |mode| for a specified |channel|.
-  virtual int GetVADStatus(int channel,
-                           bool& enabled,
-                           VadModes& mode,
-                           bool& disabledDTX) = 0;
-
-  // If send codec is Opus on a specified |channel|, sets the maximum playback
-  // rate the receiver will render: |frequency_hz| (in Hz).
-  // TODO(minyue): Make SetOpusMaxPlaybackRate() pure virtual when
-  // fakewebrtcvoiceengine in talk is ready.
-  virtual int SetOpusMaxPlaybackRate(int channel, int frequency_hz) {
-    return -1;
-  }
-
-  // If send codec is Opus on a specified |channel|, set its DTX. Returns 0 if
-  // success, and -1 if failed.
-  virtual int SetOpusDtx(int channel, bool enable_dtx) = 0;
-
-  // If send codec is Opus on a specified |channel|, return its DTX status.
-  // Returns 0 on success, and -1 if failed.
-  // TODO(ivoc): Make GetOpusDtxStatus() pure virtual when all deriving classes
-  // are updated.
-  virtual int GetOpusDtxStatus(int channel, bool* enabled) { return -1; }
-
- protected:
-  VoECodec() {}
-  virtual ~VoECodec() {}
-};
-
-}  // namespace webrtc
-
-#endif  //  VOICE_ENGINE_VOE_CODEC_H_
diff --git a/voice_engine/voe_codec_impl.cc b/voice_engine/voe_codec_impl.cc
deleted file mode 100644
index 7ba9ab3..0000000
--- a/voice_engine/voe_codec_impl.cc
+++ /dev/null
@@ -1,391 +0,0 @@
-/*
- *  Copyright (c) 2012 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.
- */
-
-#include "voice_engine/voe_codec_impl.h"
-
-#include "modules/audio_coding/include/audio_coding_module.h"
-#include "rtc_base/format_macros.h"
-#include "system_wrappers/include/trace.h"
-#include "voice_engine/channel.h"
-#include "voice_engine/include/voe_errors.h"
-#include "voice_engine/voice_engine_impl.h"
-
-namespace webrtc {
-
-VoECodec* VoECodec::GetInterface(VoiceEngine* voiceEngine) {
-  if (NULL == voiceEngine) {
-    return NULL;
-  }
-  VoiceEngineImpl* s = static_cast<VoiceEngineImpl*>(voiceEngine);
-  s->AddRef();
-  return s;
-}
-
-VoECodecImpl::VoECodecImpl(voe::SharedData* shared) : _shared(shared) {
-  WEBRTC_TRACE(kTraceMemory, kTraceVoice, VoEId(_shared->instance_id(), -1),
-               "VoECodecImpl() - ctor");
-}
-
-VoECodecImpl::~VoECodecImpl() {
-  WEBRTC_TRACE(kTraceMemory, kTraceVoice, VoEId(_shared->instance_id(), -1),
-               "~VoECodecImpl() - dtor");
-}
-
-int VoECodecImpl::NumOfCodecs() {
-  // Number of supported codecs in the ACM
-  uint8_t nSupportedCodecs = AudioCodingModule::NumberOfCodecs();
-  return (nSupportedCodecs);
-}
-
-int VoECodecImpl::GetCodec(int index, CodecInst& codec) {
-  if (AudioCodingModule::Codec(index, &codec) == -1) {
-    _shared->SetLastError(VE_INVALID_LISTNR, kTraceError,
-                          "GetCodec() invalid index");
-    return -1;
-  }
-  return 0;
-}
-
-int VoECodecImpl::SetSendCodec(int channel, const CodecInst& codec) {
-  WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
-               "SetSendCodec(channel=%d, codec)", channel);
-  WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_shared->instance_id(), -1),
-               "codec: plname=%s, pacsize=%d, plfreq=%d, pltype=%d, "
-               "channels=%" PRIuS ", rate=%d",
-               codec.plname, codec.pacsize, codec.plfreq, codec.pltype,
-               codec.channels, codec.rate);
-  if (!_shared->statistics().Initialized()) {
-    _shared->SetLastError(VE_NOT_INITED, kTraceError);
-    return -1;
-  }
-  // External sanity checks performed outside the ACM
-  if ((STR_CASE_CMP(codec.plname, "L16") == 0) && (codec.pacsize >= 960)) {
-    _shared->SetLastError(VE_INVALID_ARGUMENT, kTraceError,
-                          "SetSendCodec() invalid L16 packet size");
-    return -1;
-  }
-  if (!STR_CASE_CMP(codec.plname, "CN") ||
-      !STR_CASE_CMP(codec.plname, "TELEPHONE-EVENT") ||
-      !STR_CASE_CMP(codec.plname, "RED")) {
-    _shared->SetLastError(VE_INVALID_ARGUMENT, kTraceError,
-                          "SetSendCodec() invalid codec name");
-    return -1;
-  }
-  if ((codec.channels != 1) && (codec.channels != 2)) {
-    _shared->SetLastError(VE_INVALID_ARGUMENT, kTraceError,
-                          "SetSendCodec() invalid number of channels");
-    return -1;
-  }
-  voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
-  voe::Channel* channelPtr = ch.channel();
-  if (channelPtr == NULL) {
-    _shared->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError,
-                          "GetSendCodec() failed to locate channel");
-    return -1;
-  }
-  if (!AudioCodingModule::IsCodecValid(codec)) {
-    _shared->SetLastError(VE_INVALID_ARGUMENT, kTraceError,
-                          "SetSendCodec() invalid codec");
-    return -1;
-  }
-  if (channelPtr->SetSendCodec(codec) != 0) {
-    _shared->SetLastError(VE_CANNOT_SET_SEND_CODEC, kTraceError,
-                          "SetSendCodec() failed to set send codec");
-    return -1;
-  }
-
-  return 0;
-}
-
-int VoECodecImpl::GetSendCodec(int channel, CodecInst& codec) {
-  if (!_shared->statistics().Initialized()) {
-    _shared->SetLastError(VE_NOT_INITED, kTraceError);
-    return -1;
-  }
-  voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
-  voe::Channel* channelPtr = ch.channel();
-  if (channelPtr == NULL) {
-    _shared->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError,
-                          "GetSendCodec() failed to locate channel");
-    return -1;
-  }
-  if (channelPtr->GetSendCodec(codec) != 0) {
-    _shared->SetLastError(VE_CANNOT_GET_SEND_CODEC, kTraceError,
-                          "GetSendCodec() failed to get send codec");
-    return -1;
-  }
-  return 0;
-}
-
-int VoECodecImpl::SetBitRate(int channel, int bitrate_bps) {
-  WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
-               "SetBitRate(bitrate_bps=%d)", bitrate_bps);
-  if (!_shared->statistics().Initialized()) {
-    _shared->SetLastError(VE_NOT_INITED, kTraceError);
-    return -1;
-  }
-  constexpr int64_t kDefaultProbingIntervalMs = 3000;
-  _shared->channel_manager().GetChannel(channel).channel()->SetBitRate(
-      bitrate_bps, kDefaultProbingIntervalMs);
-  return 0;
-}
-
-int VoECodecImpl::GetRecCodec(int channel, CodecInst& codec) {
-  if (!_shared->statistics().Initialized()) {
-    _shared->SetLastError(VE_NOT_INITED, kTraceError);
-    return -1;
-  }
-  voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
-  voe::Channel* channelPtr = ch.channel();
-  if (channelPtr == NULL) {
-    _shared->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError,
-                          "GetRecCodec() failed to locate channel");
-    return -1;
-  }
-  return channelPtr->GetRecCodec(codec);
-}
-
-int VoECodecImpl::SetRecPayloadType(int channel, const CodecInst& codec) {
-  WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
-               "SetRecPayloadType(channel=%d, codec)", channel);
-  WEBRTC_TRACE(kTraceInfo, kTraceVoice, VoEId(_shared->instance_id(), -1),
-               "codec: plname=%s, plfreq=%d, pltype=%d, channels=%" PRIuS ", "
-               "pacsize=%d, rate=%d",
-               codec.plname, codec.plfreq, codec.pltype, codec.channels,
-               codec.pacsize, codec.rate);
-  if (!_shared->statistics().Initialized()) {
-    _shared->SetLastError(VE_NOT_INITED, kTraceError);
-    return -1;
-  }
-  voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
-  voe::Channel* channelPtr = ch.channel();
-  if (channelPtr == NULL) {
-    _shared->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError,
-                          "GetRecPayloadType() failed to locate channel");
-    return -1;
-  }
-  return channelPtr->SetRecPayloadType(codec);
-}
-
-int VoECodecImpl::GetRecPayloadType(int channel, CodecInst& codec) {
-  if (!_shared->statistics().Initialized()) {
-    _shared->SetLastError(VE_NOT_INITED, kTraceError);
-    return -1;
-  }
-  voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
-  voe::Channel* channelPtr = ch.channel();
-  if (channelPtr == NULL) {
-    _shared->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError,
-                          "GetRecPayloadType() failed to locate channel");
-    return -1;
-  }
-  return channelPtr->GetRecPayloadType(codec);
-}
-
-int VoECodecImpl::SetSendCNPayloadType(int channel,
-                                       int type,
-                                       PayloadFrequencies frequency) {
-  WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
-               "SetSendCNPayloadType(channel=%d, type=%d, frequency=%d)",
-               channel, type, frequency);
-  if (!_shared->statistics().Initialized()) {
-    _shared->SetLastError(VE_NOT_INITED, kTraceError);
-    return -1;
-  }
-  if (type < 96 || type > 127) {
-    // Only allow dynamic range: 96 to 127
-    _shared->SetLastError(VE_INVALID_PLTYPE, kTraceError,
-                          "SetSendCNPayloadType() invalid payload type");
-    return -1;
-  }
-  if ((frequency != kFreq16000Hz) && (frequency != kFreq32000Hz)) {
-    // It is not possible to modify the payload type for CN/8000.
-    // We only allow modification of the CN payload type for CN/16000
-    // and CN/32000.
-    _shared->SetLastError(VE_INVALID_PLFREQ, kTraceError,
-                          "SetSendCNPayloadType() invalid payload frequency");
-    return -1;
-  }
-  voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
-  voe::Channel* channelPtr = ch.channel();
-  if (channelPtr == NULL) {
-    _shared->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError,
-                          "SetSendCNPayloadType() failed to locate channel");
-    return -1;
-  }
-  return channelPtr->SetSendCNPayloadType(type, frequency);
-}
-
-int VoECodecImpl::SetFECStatus(int channel, bool enable) {
-  WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
-               "SetCodecFECStatus(channel=%d, enable=%d)", channel, enable);
-  if (!_shared->statistics().Initialized()) {
-    _shared->SetLastError(VE_NOT_INITED, kTraceError);
-    return -1;
-  }
-  voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
-  voe::Channel* channelPtr = ch.channel();
-  if (channelPtr == NULL) {
-    _shared->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError,
-                          "SetCodecFECStatus() failed to locate channel");
-    return -1;
-  }
-  return channelPtr->SetCodecFECStatus(enable);
-}
-
-int VoECodecImpl::GetFECStatus(int channel, bool& enabled) {
-  if (!_shared->statistics().Initialized()) {
-    _shared->SetLastError(VE_NOT_INITED, kTraceError);
-    return -1;
-  }
-  voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
-  voe::Channel* channelPtr = ch.channel();
-  if (channelPtr == NULL) {
-    _shared->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError,
-                          "GetFECStatus() failed to locate channel");
-    return -1;
-  }
-  enabled = channelPtr->GetCodecFECStatus();
-  return 0;
-}
-
-int VoECodecImpl::SetVADStatus(int channel,
-                               bool enable,
-                               VadModes mode,
-                               bool disableDTX) {
-  WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
-               "SetVADStatus(channel=%i, enable=%i, mode=%i, disableDTX=%i)",
-               channel, enable, mode, disableDTX);
-
-  if (!_shared->statistics().Initialized()) {
-    _shared->SetLastError(VE_NOT_INITED, kTraceError);
-    return -1;
-  }
-  voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
-  voe::Channel* channelPtr = ch.channel();
-  if (channelPtr == NULL) {
-    _shared->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError,
-                          "SetVADStatus failed to locate channel");
-    return -1;
-  }
-
-  ACMVADMode vadMode(VADNormal);
-  switch (mode) {
-    case kVadConventional:
-      vadMode = VADNormal;
-      break;
-    case kVadAggressiveLow:
-      vadMode = VADLowBitrate;
-      break;
-    case kVadAggressiveMid:
-      vadMode = VADAggr;
-      break;
-    case kVadAggressiveHigh:
-      vadMode = VADVeryAggr;
-      break;
-  }
-  return channelPtr->SetVADStatus(enable, vadMode, disableDTX);
-}
-
-int VoECodecImpl::GetVADStatus(int channel,
-                               bool& enabled,
-                               VadModes& mode,
-                               bool& disabledDTX) {
-  if (!_shared->statistics().Initialized()) {
-    _shared->SetLastError(VE_NOT_INITED, kTraceError);
-    return -1;
-  }
-  voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
-  voe::Channel* channelPtr = ch.channel();
-  if (channelPtr == NULL) {
-    _shared->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError,
-                          "GetVADStatus failed to locate channel");
-    return -1;
-  }
-
-  ACMVADMode vadMode;
-  int ret = channelPtr->GetVADStatus(enabled, vadMode, disabledDTX);
-
-  if (ret != 0) {
-    _shared->SetLastError(VE_INVALID_OPERATION, kTraceError,
-                          "GetVADStatus failed to get VAD mode");
-    return -1;
-  }
-  switch (vadMode) {
-    case VADNormal:
-      mode = kVadConventional;
-      break;
-    case VADLowBitrate:
-      mode = kVadAggressiveLow;
-      break;
-    case VADAggr:
-      mode = kVadAggressiveMid;
-      break;
-    case VADVeryAggr:
-      mode = kVadAggressiveHigh;
-      break;
-  }
-
-  return 0;
-}
-
-int VoECodecImpl::SetOpusMaxPlaybackRate(int channel, int frequency_hz) {
-  WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
-               "SetOpusMaxPlaybackRate(channel=%d, frequency_hz=%d)", channel,
-               frequency_hz);
-  if (!_shared->statistics().Initialized()) {
-    _shared->SetLastError(VE_NOT_INITED, kTraceError);
-    return -1;
-  }
-  voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
-  voe::Channel* channelPtr = ch.channel();
-  if (channelPtr == NULL) {
-    _shared->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError,
-                          "SetOpusMaxPlaybackRate failed to locate channel");
-    return -1;
-  }
-  return channelPtr->SetOpusMaxPlaybackRate(frequency_hz);
-}
-
-int VoECodecImpl::SetOpusDtx(int channel, bool enable_dtx) {
-  WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
-               "SetOpusDtx(channel=%d, enable_dtx=%d)", channel, enable_dtx);
-  if (!_shared->statistics().Initialized()) {
-    _shared->SetLastError(VE_NOT_INITED, kTraceError);
-    return -1;
-  }
-  voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
-  voe::Channel* channelPtr = ch.channel();
-  if (channelPtr == NULL) {
-    _shared->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError,
-                          "SetOpusDtx failed to locate channel");
-    return -1;
-  }
-  return channelPtr->SetOpusDtx(enable_dtx);
-}
-
-int VoECodecImpl::GetOpusDtxStatus(int channel, bool* enabled) {
-  WEBRTC_TRACE(kTraceApiCall, kTraceVoice, VoEId(_shared->instance_id(), -1),
-               "GetOpusDtx(channel=%d)", channel);
-  if (!_shared->statistics().Initialized()) {
-    _shared->SetLastError(VE_NOT_INITED, kTraceError);
-    return -1;
-  }
-  voe::ChannelOwner ch = _shared->channel_manager().GetChannel(channel);
-  voe::Channel* channelPtr = ch.channel();
-  if (channelPtr == NULL) {
-    _shared->SetLastError(VE_CHANNEL_NOT_VALID, kTraceError,
-                          "GetOpusDtx failed to locate channel");
-    return -1;
-  }
-  return channelPtr->GetOpusDtx(enabled);
-}
-
-}  // namespace webrtc
diff --git a/voice_engine/voe_codec_impl.h b/voice_engine/voe_codec_impl.h
deleted file mode 100644
index 9101f5d..0000000
--- a/voice_engine/voe_codec_impl.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- *  Copyright (c) 2012 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 VOICE_ENGINE_VOE_CODEC_IMPL_H_
-#define VOICE_ENGINE_VOE_CODEC_IMPL_H_
-
-#include "voice_engine/include/voe_codec.h"
-
-#include "voice_engine/shared_data.h"
-
-namespace webrtc {
-
-class VoECodecImpl : public VoECodec {
- public:
-  int NumOfCodecs() override;
-
-  int GetCodec(int index, CodecInst& codec) override;
-
-  int SetSendCodec(int channel, const CodecInst& codec) override;
-
-  int GetSendCodec(int channel, CodecInst& codec) override;
-
-  int SetBitRate(int channel, int bitrate_bps) override;
-
-  int GetRecCodec(int channel, CodecInst& codec) override;
-
-  int SetSendCNPayloadType(
-      int channel,
-      int type,
-      PayloadFrequencies frequency = kFreq16000Hz) override;
-
-  int SetRecPayloadType(int channel, const CodecInst& codec) override;
-
-  int GetRecPayloadType(int channel, CodecInst& codec) override;
-
-  int SetFECStatus(int channel, bool enable) override;
-
-  int GetFECStatus(int channel, bool& enabled) override;
-
-  int SetVADStatus(int channel,
-                   bool enable,
-                   VadModes mode = kVadConventional,
-                   bool disableDTX = false) override;
-
-  int GetVADStatus(int channel,
-                   bool& enabled,
-                   VadModes& mode,
-                   bool& disabledDTX) override;
-
-  int SetOpusMaxPlaybackRate(int channel, int frequency_hz) override;
-
-  int SetOpusDtx(int channel, bool enable_dtx) override;
-
-  int GetOpusDtxStatus(int channel, bool* enabled) override;
-
- protected:
-  VoECodecImpl(voe::SharedData* shared);
-  ~VoECodecImpl() override;
-
- private:
-  voe::SharedData* _shared;
-};
-
-}  // namespace webrtc
-
-#endif  // VOICE_ENGINE_VOE_CODEC_IMPL_H_
diff --git a/voice_engine/voe_codec_unittest.cc b/voice_engine/voe_codec_unittest.cc
deleted file mode 100644
index 4585a67..0000000
--- a/voice_engine/voe_codec_unittest.cc
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- *  Copyright (c) 2012 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.
- */
-
-#include <memory>
-
-#include "voice_engine/include/voe_codec.h"
-
-#include "modules/audio_device/include/fake_audio_device.h"
-#include "modules/audio_processing/include/audio_processing.h"
-#include "test/gtest.h"
-#include "voice_engine/include/voe_base.h"
-#include "voice_engine/voice_engine_defines.h"
-
-namespace webrtc {
-namespace voe {
-namespace {
-
-TEST(VoECodecInst, TestCompareCodecInstances) {
-  CodecInst codec1, codec2;
-  memset(&codec1, 0, sizeof(CodecInst));
-  memset(&codec2, 0, sizeof(CodecInst));
-
-  codec1.pltype = 101;
-  strncpy(codec1.plname, "isac", 4);
-  codec1.plfreq = 8000;
-  codec1.pacsize = 110;
-  codec1.channels = 1;
-  codec1.rate = 8000;
-  memcpy(&codec2, &codec1, sizeof(CodecInst));
-  // Compare two codecs now.
-  EXPECT_TRUE(codec1 == codec2);
-  EXPECT_FALSE(codec1 != codec2);
-
-  // Changing pltype.
-  codec2.pltype = 102;
-  EXPECT_FALSE(codec1 == codec2);
-  EXPECT_TRUE(codec1 != codec2);
-
-  // Reset to codec2 to codec1 state.
-  memcpy(&codec2, &codec1, sizeof(CodecInst));
-  // payload name should be case insensitive.
-  strncpy(codec2.plname, "ISAC", 4);
-  EXPECT_TRUE(codec1 == codec2);
-
-  // Test modifying the |plfreq|
-  codec2.plfreq = 16000;
-  EXPECT_FALSE(codec1 == codec2);
-
-  // Reset to codec2 to codec1 state.
-  memcpy(&codec2, &codec1, sizeof(CodecInst));
-  // Test modifying the |pacsize|.
-  codec2.pacsize = 440;
-  EXPECT_FALSE(codec1 == codec2);
-
-  // Reset to codec2 to codec1 state.
-  memcpy(&codec2, &codec1, sizeof(CodecInst));
-  // Test modifying the |channels|.
-  codec2.channels = 2;
-  EXPECT_FALSE(codec1 == codec2);
-
-  // Reset to codec2 to codec1 state.
-  memcpy(&codec2, &codec1, sizeof(CodecInst));
-  // Test modifying the |rate|.
-  codec2.rate = 0;
-  EXPECT_FALSE(codec1 == codec2);
-}
-
-// This is a regression test for
-// https://bugs.chromium.org/p/webrtc/issues/detail?id=6020
-// The Opus DTX setting was being forgotten after unrelated VoE calls.
-TEST(VoECodecInst, RememberOpusDtxAfterSettingChange) {
-  VoiceEngine* voe(VoiceEngine::Create());
-  VoEBase* base(VoEBase::GetInterface(voe));
-  VoECodec* voe_codec(VoECodec::GetInterface(voe));
-  std::unique_ptr<FakeAudioDeviceModule> adm(new FakeAudioDeviceModule);
-  std::unique_ptr<AudioProcessing> apm(AudioProcessing::Create());
-
-  base->Init(adm.get(), apm.get());
-
-  CodecInst codec = {111, "opus", 48000, 960, 1, 32000};
-
-  int channel = base->CreateChannel();
-
-  bool DTX = false;
-
-  EXPECT_EQ(0, voe_codec->SetSendCodec(channel, codec));
-  EXPECT_EQ(0, voe_codec->SetOpusDtx(channel, true));
-  EXPECT_EQ(0, voe_codec->SetFECStatus(channel, true));
-  EXPECT_EQ(0, voe_codec->GetOpusDtxStatus(channel, &DTX));
-  EXPECT_TRUE(DTX);
-
-  base->DeleteChannel(channel);
-  base->Terminate();
-  base->Release();
-  voe_codec->Release();
-  VoiceEngine::Delete(voe);
-}
-
-}  // namespace
-}  // namespace voe
-}  // namespace webrtc
diff --git a/voice_engine/voice_engine_impl.h b/voice_engine/voice_engine_impl.h
index 3a6fe27..ef03e70 100644
--- a/voice_engine/voice_engine_impl.h
+++ b/voice_engine/voice_engine_impl.h
@@ -16,7 +16,6 @@
 #include "system_wrappers/include/atomic32.h"
 #include "typedefs.h"  // NOLINT(build/include)
 #include "voice_engine/voe_base_impl.h"
-#include "voice_engine/voe_codec_impl.h"
 #include "voice_engine/voe_network_impl.h"
 #include "voice_engine/voe_rtp_rtcp_impl.h"
 
@@ -27,14 +26,12 @@
 
 class VoiceEngineImpl : public voe::SharedData,  // Must be the first base class
                         public VoiceEngine,
-                        public VoECodecImpl,
                         public VoENetworkImpl,
                         public VoERTP_RTCPImpl,
                         public VoEBaseImpl {
  public:
   VoiceEngineImpl()
       : SharedData(),
-        VoECodecImpl(this),
         VoENetworkImpl(this),
         VoERTP_RTCPImpl(this),
         VoEBaseImpl(this),