Move AudioDecoder and related stuff to the api/ directory

BUG=webrtc:5805, webrtc:6725

Review-Url: https://codereview.webrtc.org/2668523004
Cr-Commit-Position: refs/heads/master@{#16534}
diff --git a/webrtc/modules/audio_coding/BUILD.gn b/webrtc/modules/audio_coding/BUILD.gn
index 05dfbc3..908ed5c 100644
--- a/webrtc/modules/audio_coding/BUILD.gn
+++ b/webrtc/modules/audio_coding/BUILD.gn
@@ -39,52 +39,27 @@
                       "../../system_wrappers",
                     ]
 
-rtc_static_library("audio_format") {
-  sources = [
-    "codecs/audio_format.cc",
-    "codecs/audio_format.h",
-  ]
-  deps = [
-    "../..:webrtc_common",
-  ]
-}
-
 rtc_static_library("audio_format_conversion") {
   sources = [
     "codecs/audio_format_conversion.cc",
     "codecs/audio_format_conversion.h",
   ]
   deps = [
-    ":audio_format",
     "../..:webrtc_common",
+    "../../api/audio_codecs:audio_codecs_api",
     "../../base:rtc_base_approved",
   ]
 }
 
-rtc_source_set("audio_decoder_factory_interface") {
+rtc_static_library("builtin_audio_decoder_factory_internal") {
   sources = [
-    "codecs/audio_decoder_factory.h",
-  ]
-  deps = [
-    ":audio_decoder_interface",
-    ":audio_format",
-
-    # TODO(charujain): Clean this dependency when downstream projects are
-    # updated to properly depend on audio_format_conversion target.
-    ":audio_format_conversion",
-    "../../base:rtc_base_approved",
-  ]
-}
-
-rtc_static_library("builtin_audio_decoder_factory") {
-  sources = [
-    "codecs/builtin_audio_decoder_factory.cc",
-    "codecs/builtin_audio_decoder_factory.h",
+    "codecs/builtin_audio_decoder_factory_internal.cc",
+    "codecs/builtin_audio_decoder_factory_internal.h",
   ]
   deps = [
            "../..:webrtc_common",
            "../../base:rtc_base_approved",
-           ":audio_decoder_factory_interface",
+           "../../api/audio_codecs:audio_codecs_api",
          ] + audio_codec_deps
   defines = audio_codec_defines
 }
@@ -101,7 +76,7 @@
     "acm2/rent_a_codec.h",
   ]
   deps = [
-           ":audio_decoder_interface",
+           "../../api/audio_codecs:audio_codecs_api",
            "../..:webrtc_common",
            "../../base:rtc_base_approved",
          ] + audio_codec_deps
@@ -149,9 +124,8 @@
   }
 
   deps = audio_coding_deps + [
-           ":audio_decoder_interface",
-           ":audio_decoder_factory_interface",
-           ":builtin_audio_decoder_factory",
+           "../../api/audio_codecs:audio_codecs_api",
+           "../../api/audio_codecs:builtin_audio_decoder_factory",
            ":neteq",
            ":rent_a_codec",
            "../../base:rtc_base_approved",
@@ -160,15 +134,13 @@
   defines = audio_coding_defines
 }
 
-rtc_static_library("audio_decoder_interface") {
+rtc_static_library("legacy_encoded_audio_frame") {
   sources = [
-    "codecs/audio_decoder.cc",
-    "codecs/audio_decoder.h",
     "codecs/legacy_encoded_audio_frame.cc",
     "codecs/legacy_encoded_audio_frame.h",
   ]
   deps = [
-    "../..:webrtc_common",
+    "../../api/audio_codecs:audio_codecs_api",
     "../../base:rtc_base_approved",
   ]
 }
@@ -246,9 +218,10 @@
   public_configs = [ ":g711_config" ]
 
   deps = [
-    ":audio_decoder_interface",
     ":audio_encoder_interface",
+    ":legacy_encoded_audio_frame",
     "../..:webrtc_common",
+    "../../api/audio_codecs:audio_codecs_api",
     "../../base:rtc_base_approved",
   ]
   public_deps = [
@@ -287,9 +260,10 @@
   public_configs = [ ":g722_config" ]
 
   deps = [
-    ":audio_decoder_interface",
     ":audio_encoder_interface",
+    ":legacy_encoded_audio_frame",
     "../..:webrtc_common",
+    "../../api/audio_codecs:audio_codecs_api",
     "../../base:rtc_base_approved",
   ]
   public_deps = [
@@ -329,9 +303,10 @@
   public_configs = [ ":ilbc_config" ]
 
   deps = [
-    ":audio_decoder_interface",
     ":audio_encoder_interface",
+    ":legacy_encoded_audio_frame",
     "../..:webrtc_common",
+    "../../api/audio_codecs:audio_codecs_api",
     "../../base:rtc_base_approved",
     "../../common_audio",
   ]
@@ -487,9 +462,9 @@
   public_configs = [ ":ilbc_config" ]
 
   deps = [
-    ":audio_decoder_interface",
     ":audio_encoder_interface",
     "../..:webrtc_common",
+    "../../api/audio_codecs:audio_codecs_api",
     "../../base:rtc_base_approved",
     "../../common_audio",
   ]
@@ -525,9 +500,9 @@
   ]
 
   deps = [
-    ":audio_decoder_interface",
     ":audio_encoder_interface",
     ":isac_common",
+    "../../api/audio_codecs:audio_codecs_api",
   ]
   public_deps = [
     ":isac_c",
@@ -619,9 +594,9 @@
   public_configs = [ ":isac_fix_config" ]
 
   deps = [
-    ":audio_decoder_interface",
     ":audio_encoder_interface",
     ":isac_common",
+    "../../api/audio_codecs:audio_codecs_api",
     "../../common_audio",
     "../../system_wrappers",
   ]
@@ -695,10 +670,10 @@
   public_configs = [ ":isac_fix_config" ]
 
   deps = [
-    ":audio_decoder_interface",
     ":audio_encoder_interface",
     ":isac_common",
     "../..:webrtc_common",
+    "../../api/audio_codecs:audio_codecs_api",
     "../../base:rtc_base_approved",
     "../../common_audio",
     "../../system_wrappers",
@@ -799,10 +774,11 @@
   ]
 
   deps = [
-    ":audio_decoder_interface",
     ":audio_encoder_interface",
     ":g711",
+    ":legacy_encoded_audio_frame",
     "../..:webrtc_common",
+    "../../api/audio_codecs:audio_codecs_api",
     "../../base:rtc_base_approved",
   ]
   public_deps = [
@@ -837,10 +813,10 @@
   ]
 
   deps = [
-    ":audio_decoder_interface",
     ":audio_encoder_interface",
     ":audio_network_adaptor",
     "../..:webrtc_common",
+    "../../api/audio_codecs:audio_codecs_api",
     "../../base:rtc_base_approved",
     "../../base:rtc_numerics",
     "../../common_audio",
@@ -1031,16 +1007,13 @@
   ]
 
   deps = [
-    ":audio_decoder_factory_interface",
-    ":audio_decoder_interface",
-    ":audio_format",
-    ":builtin_audio_decoder_factory",
     ":cng",
     ":g711",
     ":isac_fix",
     ":pcm16b",
     ":rent_a_codec",
     "../..:webrtc_common",
+    "../../api/audio_codecs:audio_codecs_api",
     "../../base:gtest_prod",
     "../../base:rtc_base_approved",
     "../../common_audio",
@@ -1095,9 +1068,9 @@
 
   deps = [
     ":audio_encoder_interface",
-    ":builtin_audio_decoder_factory",
     ":neteq",
     "../..:webrtc_common",
+    "../../api/audio_codecs:builtin_audio_decoder_factory",
     "../../base:rtc_base_approved",
   ]
 }
@@ -1161,9 +1134,9 @@
     deps = [
       ":audio_coding",
       ":audio_format_conversion",
-      ":builtin_audio_decoder_factory",
       ":pcm16b_c",
       "../..:webrtc_common",
+      "../../api/audio_codecs:builtin_audio_decoder_factory",
       "../../base:rtc_base_approved",
       "../../system_wrappers:system_wrappers",
       "../../test:fileutils",
@@ -1215,8 +1188,8 @@
     deps = audio_coding_deps + [
              ":audio_coding",
              ":audio_format_conversion",
-             ":audio_decoder_factory_interface",
-             ":builtin_audio_decoder_factory",
+             "../../api/audio_codecs:audio_codecs_api",
+             "../../api/audio_codecs:builtin_audio_decoder_factory",
              ":neteq_unittest_tools",
              "../../base:rtc_base_approved",
              "../../test:test_support",
@@ -1235,7 +1208,7 @@
 
     deps = audio_coding_deps + [
              ":audio_coding",
-             ":audio_decoder_interface",
+             "../../api/audio_codecs:audio_codecs_api",
              ":audio_encoder_interface",
              ":neteq_unittest_tools",
              "../../base:rtc_base_approved",
@@ -1324,12 +1297,12 @@
 
     deps += audio_coding_deps
     deps += [
-      ":audio_decoder_interface",
       ":ilbc",
       ":isac",
       ":isac_fix",
       ":neteq",
       ":neteq_unittest_tools",
+      "../../api/audio_codecs:audio_codecs_api",
       "../../common_audio",
       "../../test:test_main",
       "//testing/gtest",
@@ -1460,12 +1433,12 @@
     }
 
     deps = [
-      ":audio_decoder_interface",
-      ":builtin_audio_decoder_factory",
       ":neteq",
       ":neteq_unittest_tools",
       ":pcm16b",
       "../..:webrtc_common",
+      "../../api/audio_codecs:audio_codecs_api",
+      "../../api/audio_codecs:builtin_audio_decoder_factory",
       "../../base:rtc_base_approved",
       "../../system_wrappers",
       "../../test:test_support",
@@ -1486,10 +1459,10 @@
     }
 
     deps = [
-      ":builtin_audio_decoder_factory",
       ":neteq",
       ":neteq_unittest_tools",
       "../..:webrtc_common",
+      "../../api/audio_codecs:builtin_audio_decoder_factory",
       "../../base:rtc_base_approved",
       "../../test:test_support",
       "//testing/gtest",
@@ -1540,10 +1513,10 @@
     }
 
     deps = [
-      ":audio_decoder_interface",
       ":audio_encoder_interface",
       ":pcm16b",
       "../..:webrtc_common",
+      "../../api/audio_codecs:audio_codecs_api",
       "../../base:rtc_base_approved",
       "../../common_audio",
       "../../test:rtp_test_utils",
@@ -1999,7 +1972,7 @@
       "audio_network_adaptor/frame_length_controller_unittest.cc",
       "audio_network_adaptor/mock/mock_controller.h",
       "audio_network_adaptor/mock/mock_controller_manager.h",
-      "codecs/audio_decoder_factory_unittest.cc",
+      "codecs/builtin_audio_decoder_factory_unittest.cc",
       "codecs/cng/audio_encoder_cng_unittest.cc",
       "codecs/cng/cng_unittest.cc",
       "codecs/ilbc/ilbc_unittest.cc",
@@ -2063,17 +2036,16 @@
       ":acm_receive_test",
       ":acm_send_test",
       ":audio_coding",
-      ":audio_decoder_interface",
       ":audio_encoder_interface",
       ":audio_format_conversion",
       ":audio_network_adaptor",
-      ":builtin_audio_decoder_factory",
       ":cng",
       ":g711",
       ":ilbc",
       ":isac",
       ":isac_c",
       ":isac_fix",
+      ":legacy_encoded_audio_frame",
       ":neteq",
       ":neteq_test_support",
       ":neteq_unittest_tools",
@@ -2082,6 +2054,8 @@
       ":rent_a_codec",
       ":webrtc_opus",
       "../..:webrtc_common",
+      "../../api/audio_codecs:audio_codecs_api",
+      "../../api/audio_codecs:builtin_audio_decoder_factory",
       "../../base:rtc_base",
       "../../base:rtc_base_approved",
       "../../base:rtc_base_tests_utils",
@@ -2115,3 +2089,27 @@
     }
   }
 }
+
+# For backwards compatibility only! Use
+# webrtc/api/audio_codecs:audio_codecs_api instead.
+# TODO(kwiberg): Remove this.
+rtc_source_set("audio_decoder_interface") {
+  sources = [
+    "codecs/audio_decoder.h",
+  ]
+  deps = [
+    "../../api/audio_codecs:audio_codecs_api",
+  ]
+}
+
+# For backwards compatibility only! Use
+# webrtc/api/audio_codecs:builtin_audio_decoder_factory instead.
+# TODO(kwiberg): Remove this.
+rtc_source_set("builtin_audio_decoder_factory") {
+  sources = [
+    "codecs/builtin_audio_decoder_factory.h",
+  ]
+  deps = [
+    "../../api/audio_codecs:builtin_audio_decoder_factory",
+  ]
+}
diff --git a/webrtc/modules/audio_coding/acm2/acm_receive_test.cc b/webrtc/modules/audio_coding/acm2/acm_receive_test.cc
index 88fe7c2..1eae859 100644
--- a/webrtc/modules/audio_coding/acm2/acm_receive_test.cc
+++ b/webrtc/modules/audio_coding/acm2/acm_receive_test.cc
@@ -15,8 +15,8 @@
 
 #include <memory>
 
+#include "webrtc/api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/modules/audio_coding/codecs/audio_format_conversion.h"
-#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/modules/audio_coding/include/audio_coding_module.h"
 #include "webrtc/modules/audio_coding/neteq/tools/audio_sink.h"
 #include "webrtc/modules/audio_coding/neteq/tools/packet.h"
diff --git a/webrtc/modules/audio_coding/acm2/acm_receive_test.h b/webrtc/modules/audio_coding/acm2/acm_receive_test.h
index 834fa56..1076978 100644
--- a/webrtc/modules/audio_coding/acm2/acm_receive_test.h
+++ b/webrtc/modules/audio_coding/acm2/acm_receive_test.h
@@ -14,9 +14,9 @@
 #include <memory>
 #include <string>
 
+#include "webrtc/api/audio_codecs/audio_decoder_factory.h"
 #include "webrtc/base/constructormagic.h"
 #include "webrtc/base/scoped_ref_ptr.h"
-#include "webrtc/modules/audio_coding/codecs/audio_decoder_factory.h"
 #include "webrtc/system_wrappers/include/clock.h"
 
 namespace webrtc {
diff --git a/webrtc/modules/audio_coding/acm2/acm_receiver.cc b/webrtc/modules/audio_coding/acm2/acm_receiver.cc
index 57ae527..fd4e91a 100644
--- a/webrtc/modules/audio_coding/acm2/acm_receiver.cc
+++ b/webrtc/modules/audio_coding/acm2/acm_receiver.cc
@@ -15,13 +15,13 @@
 #include <algorithm>  // sort
 #include <vector>
 
+#include "webrtc/api/audio_codecs/audio_decoder.h"
 #include "webrtc/base/checks.h"
 #include "webrtc/base/format_macros.h"
 #include "webrtc/base/logging.h"
 #include "webrtc/base/safe_conversions.h"
 #include "webrtc/common_audio/signal_processing/include/signal_processing_library.h"
 #include "webrtc/common_types.h"
-#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
 #include "webrtc/modules/audio_coding/acm2/acm_resampler.h"
 #include "webrtc/modules/audio_coding/acm2/call_statistics.h"
 #include "webrtc/modules/audio_coding/neteq/include/neteq.h"
diff --git a/webrtc/modules/audio_coding/acm2/acm_receiver_unittest.cc b/webrtc/modules/audio_coding/acm2/acm_receiver_unittest.cc
index 92a06b2..d5a63cc 100644
--- a/webrtc/modules/audio_coding/acm2/acm_receiver_unittest.cc
+++ b/webrtc/modules/audio_coding/acm2/acm_receiver_unittest.cc
@@ -13,9 +13,9 @@
 #include <algorithm>  // std::min
 #include <memory>
 
+#include "webrtc/api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/base/checks.h"
 #include "webrtc/base/safe_conversions.h"
-#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/modules/audio_coding/include/audio_coding_module.h"
 #include "webrtc/modules/audio_coding/neteq/tools/rtp_generator.h"
 #include "webrtc/system_wrappers/include/clock.h"
diff --git a/webrtc/modules/audio_coding/acm2/audio_coding_module.cc b/webrtc/modules/audio_coding/acm2/audio_coding_module.cc
index 44450f2..32e6940 100644
--- a/webrtc/modules/audio_coding/acm2/audio_coding_module.cc
+++ b/webrtc/modules/audio_coding/acm2/audio_coding_module.cc
@@ -10,13 +10,13 @@
 
 #include "webrtc/modules/audio_coding/include/audio_coding_module.h"
 
+#include "webrtc/api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/base/checks.h"
 #include "webrtc/base/safe_conversions.h"
 #include "webrtc/modules/audio_coding/acm2/acm_receiver.h"
 #include "webrtc/modules/audio_coding/acm2/acm_resampler.h"
 #include "webrtc/modules/audio_coding/acm2/codec_manager.h"
 #include "webrtc/modules/audio_coding/acm2/rent_a_codec.h"
-#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/system_wrappers/include/metrics.h"
 #include "webrtc/system_wrappers/include/trace.h"
 
diff --git a/webrtc/modules/audio_coding/acm2/audio_coding_module_unittest.cc b/webrtc/modules/audio_coding/acm2/audio_coding_module_unittest.cc
index 574b15d..c7bbfb0 100644
--- a/webrtc/modules/audio_coding/acm2/audio_coding_module_unittest.cc
+++ b/webrtc/modules/audio_coding/acm2/audio_coding_module_unittest.cc
@@ -13,13 +13,13 @@
 #include <memory>
 #include <vector>
 
+#include "webrtc/api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/base/criticalsection.h"
 #include "webrtc/base/md5digest.h"
 #include "webrtc/base/platform_thread.h"
 #include "webrtc/base/thread_annotations.h"
 #include "webrtc/modules/audio_coding/acm2/acm_receive_test.h"
 #include "webrtc/modules/audio_coding/acm2/acm_send_test.h"
-#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/modules/audio_coding/codecs/audio_encoder.h"
 #include "webrtc/modules/audio_coding/codecs/audio_format_conversion.h"
 #include "webrtc/modules/audio_coding/codecs/g711/audio_decoder_pcm.h"
diff --git a/webrtc/modules/audio_coding/acm2/rent_a_codec.h b/webrtc/modules/audio_coding/acm2/rent_a_codec.h
index 02a5dd9..069e1d5 100644
--- a/webrtc/modules/audio_coding/acm2/rent_a_codec.h
+++ b/webrtc/modules/audio_coding/acm2/rent_a_codec.h
@@ -15,12 +15,12 @@
 #include <map>
 #include <memory>
 
+#include "webrtc/api/audio_codecs/audio_decoder.h"
+#include "webrtc/api/audio_codecs/audio_format.h"
 #include "webrtc/base/array_view.h"
 #include "webrtc/base/constructormagic.h"
 #include "webrtc/base/optional.h"
 #include "webrtc/base/scoped_ref_ptr.h"
-#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
-#include "webrtc/modules/audio_coding/codecs/audio_format.h"
 #include "webrtc/modules/audio_coding/codecs/audio_encoder.h"
 #include "webrtc/modules/audio_coding/include/audio_coding_module_typedefs.h"
 #include "webrtc/typedefs.h"
diff --git a/webrtc/modules/audio_coding/codecs/audio_decoder.cc b/webrtc/modules/audio_coding/codecs/audio_decoder.cc
deleted file mode 100644
index afa5115..0000000
--- a/webrtc/modules/audio_coding/codecs/audio_decoder.cc
+++ /dev/null
@@ -1,129 +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 "webrtc/modules/audio_coding/codecs/audio_decoder.h"
-
-#include <assert.h>
-#include <memory>
-#include <utility>
-
-#include "webrtc/base/array_view.h"
-#include "webrtc/base/checks.h"
-#include "webrtc/base/sanitizer.h"
-#include "webrtc/base/trace_event.h"
-#include "webrtc/modules/audio_coding/codecs/legacy_encoded_audio_frame.h"
-
-namespace webrtc {
-
-AudioDecoder::ParseResult::ParseResult() = default;
-AudioDecoder::ParseResult::ParseResult(ParseResult&& b) = default;
-AudioDecoder::ParseResult::ParseResult(uint32_t timestamp,
-                                       int priority,
-                                       std::unique_ptr<EncodedAudioFrame> frame)
-    : timestamp(timestamp), priority(priority), frame(std::move(frame)) {
-  RTC_DCHECK_GE(priority, 0);
-}
-
-AudioDecoder::ParseResult::~ParseResult() = default;
-
-AudioDecoder::ParseResult& AudioDecoder::ParseResult::operator=(
-    ParseResult&& b) = default;
-
-std::vector<AudioDecoder::ParseResult> AudioDecoder::ParsePayload(
-    rtc::Buffer&& payload,
-    uint32_t timestamp) {
-  std::vector<ParseResult> results;
-  std::unique_ptr<EncodedAudioFrame> frame(
-      new LegacyEncodedAudioFrame(this, std::move(payload)));
-  results.emplace_back(timestamp, 0, std::move(frame));
-  return results;
-}
-
-int AudioDecoder::Decode(const uint8_t* encoded, size_t encoded_len,
-                         int sample_rate_hz, size_t max_decoded_bytes,
-                         int16_t* decoded, SpeechType* speech_type) {
-  TRACE_EVENT0("webrtc", "AudioDecoder::Decode");
-  rtc::MsanCheckInitialized(rtc::MakeArrayView(encoded, encoded_len));
-  int duration = PacketDuration(encoded, encoded_len);
-  if (duration >= 0 &&
-      duration * Channels() * sizeof(int16_t) > max_decoded_bytes) {
-    return -1;
-  }
-  return DecodeInternal(encoded, encoded_len, sample_rate_hz, decoded,
-                        speech_type);
-}
-
-int AudioDecoder::DecodeRedundant(const uint8_t* encoded, size_t encoded_len,
-                                  int sample_rate_hz, size_t max_decoded_bytes,
-                                  int16_t* decoded, SpeechType* speech_type) {
-  TRACE_EVENT0("webrtc", "AudioDecoder::DecodeRedundant");
-  rtc::MsanCheckInitialized(rtc::MakeArrayView(encoded, encoded_len));
-  int duration = PacketDurationRedundant(encoded, encoded_len);
-  if (duration >= 0 &&
-      duration * Channels() * sizeof(int16_t) > max_decoded_bytes) {
-    return -1;
-  }
-  return DecodeRedundantInternal(encoded, encoded_len, sample_rate_hz, decoded,
-                                 speech_type);
-}
-
-int AudioDecoder::DecodeRedundantInternal(const uint8_t* encoded,
-                                          size_t encoded_len,
-                                          int sample_rate_hz, int16_t* decoded,
-                                          SpeechType* speech_type) {
-  return DecodeInternal(encoded, encoded_len, sample_rate_hz, decoded,
-                        speech_type);
-}
-
-bool AudioDecoder::HasDecodePlc() const { return false; }
-
-size_t AudioDecoder::DecodePlc(size_t num_frames, int16_t* decoded) {
-  return 0;
-}
-
-int AudioDecoder::IncomingPacket(const uint8_t* payload,
-                                 size_t payload_len,
-                                 uint16_t rtp_sequence_number,
-                                 uint32_t rtp_timestamp,
-                                 uint32_t arrival_timestamp) {
-  return 0;
-}
-
-int AudioDecoder::ErrorCode() { return 0; }
-
-int AudioDecoder::PacketDuration(const uint8_t* encoded,
-                                 size_t encoded_len) const {
-  return kNotImplemented;
-}
-
-int AudioDecoder::PacketDurationRedundant(const uint8_t* encoded,
-                                          size_t encoded_len) const {
-  return kNotImplemented;
-}
-
-bool AudioDecoder::PacketHasFec(const uint8_t* encoded,
-                                size_t encoded_len) const {
-  return false;
-}
-
-AudioDecoder::SpeechType AudioDecoder::ConvertSpeechType(int16_t type) {
-  switch (type) {
-    case 0:  // TODO(hlundin): Both iSAC and Opus return 0 for speech.
-    case 1:
-      return kSpeech;
-    case 2:
-      return kComfortNoise;
-    default:
-      assert(false);
-      return kSpeech;
-  }
-}
-
-}  // namespace webrtc
diff --git a/webrtc/modules/audio_coding/codecs/audio_decoder.h b/webrtc/modules/audio_coding/codecs/audio_decoder.h
index 8468da2..da06282 100644
--- a/webrtc/modules/audio_coding/codecs/audio_decoder.h
+++ b/webrtc/modules/audio_coding/codecs/audio_decoder.h
@@ -8,172 +8,13 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+// This file is for backwards compatibility only! Use
+// webrtc/api/audio_codecs/audio_decoder.h instead!
+// TODO(kwiberg): Remove it.
+
 #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_AUDIO_DECODER_H_
 #define WEBRTC_MODULES_AUDIO_CODING_CODECS_AUDIO_DECODER_H_
 
-#include <memory>
-#include <vector>
+#include "webrtc/api/audio_codecs/audio_decoder.h"
 
-#include "webrtc/base/array_view.h"
-#include "webrtc/base/buffer.h"
-#include "webrtc/base/constructormagic.h"
-#include "webrtc/base/optional.h"
-#include "webrtc/typedefs.h"
-
-namespace webrtc {
-
-// This is the interface class for decoders in NetEQ. Each codec type will have
-// and implementation of this class.
-class AudioDecoder {
- public:
-  enum SpeechType {
-    kSpeech = 1,
-    kComfortNoise = 2
-  };
-
-  // Used by PacketDuration below. Save the value -1 for errors.
-  enum { kNotImplemented = -2 };
-
-  AudioDecoder() = default;
-  virtual ~AudioDecoder() = default;
-
-  class EncodedAudioFrame {
-   public:
-    struct DecodeResult {
-      size_t num_decoded_samples;
-      SpeechType speech_type;
-    };
-
-    virtual ~EncodedAudioFrame() = default;
-
-    // Returns the duration in samples-per-channel of this audio frame.
-    // If no duration can be ascertained, returns zero.
-    virtual size_t Duration() const = 0;
-
-    // Decodes this frame of audio and writes the result in |decoded|.
-    // |decoded| must be large enough to store as many samples as indicated by a
-    // call to Duration() . On success, returns an rtc::Optional containing the
-    // total number of samples across all channels, as well as whether the
-    // decoder produced comfort noise or speech. On failure, returns an empty
-    // rtc::Optional. Decode may be called at most once per frame object.
-    virtual rtc::Optional<DecodeResult> Decode(
-        rtc::ArrayView<int16_t> decoded) const = 0;
-  };
-
-  struct ParseResult {
-    ParseResult();
-    ParseResult(uint32_t timestamp,
-                int priority,
-                std::unique_ptr<EncodedAudioFrame> frame);
-    ParseResult(ParseResult&& b);
-    ~ParseResult();
-
-    ParseResult& operator=(ParseResult&& b);
-
-    // The timestamp of the frame is in samples per channel.
-    uint32_t timestamp;
-    // The relative priority of the frame compared to other frames of the same
-    // payload and the same timeframe. A higher value means a lower priority.
-    // The highest priority is zero - negative values are not allowed.
-    int priority;
-    std::unique_ptr<EncodedAudioFrame> frame;
-  };
-
-  // Let the decoder parse this payload and prepare zero or more decodable
-  // frames. Each frame must be between 10 ms and 120 ms long. The caller must
-  // ensure that the AudioDecoder object outlives any frame objects returned by
-  // this call. The decoder is free to swap or move the data from the |payload|
-  // buffer. |timestamp| is the input timestamp, in samples, corresponding to
-  // the start of the payload.
-  virtual std::vector<ParseResult> ParsePayload(rtc::Buffer&& payload,
-                                                uint32_t timestamp);
-
-  // Decodes |encode_len| bytes from |encoded| and writes the result in
-  // |decoded|. The maximum bytes allowed to be written into |decoded| is
-  // |max_decoded_bytes|. Returns the total number of samples across all
-  // channels. If the decoder produced comfort noise, |speech_type|
-  // is set to kComfortNoise, otherwise it is kSpeech. The desired output
-  // sample rate is provided in |sample_rate_hz|, which must be valid for the
-  // codec at hand.
-  int Decode(const uint8_t* encoded,
-             size_t encoded_len,
-             int sample_rate_hz,
-             size_t max_decoded_bytes,
-             int16_t* decoded,
-             SpeechType* speech_type);
-
-  // Same as Decode(), but interfaces to the decoders redundant decode function.
-  // The default implementation simply calls the regular Decode() method.
-  int DecodeRedundant(const uint8_t* encoded,
-                      size_t encoded_len,
-                      int sample_rate_hz,
-                      size_t max_decoded_bytes,
-                      int16_t* decoded,
-                      SpeechType* speech_type);
-
-  // Indicates if the decoder implements the DecodePlc method.
-  virtual bool HasDecodePlc() const;
-
-  // Calls the packet-loss concealment of the decoder to update the state after
-  // one or several lost packets. The caller has to make sure that the
-  // memory allocated in |decoded| should accommodate |num_frames| frames.
-  virtual size_t DecodePlc(size_t num_frames, int16_t* decoded);
-
-  // Resets the decoder state (empty buffers etc.).
-  virtual void Reset() = 0;
-
-  // Notifies the decoder of an incoming packet to NetEQ.
-  virtual int IncomingPacket(const uint8_t* payload,
-                             size_t payload_len,
-                             uint16_t rtp_sequence_number,
-                             uint32_t rtp_timestamp,
-                             uint32_t arrival_timestamp);
-
-  // Returns the last error code from the decoder.
-  virtual int ErrorCode();
-
-  // Returns the duration in samples-per-channel of the payload in |encoded|
-  // which is |encoded_len| bytes long. Returns kNotImplemented if no duration
-  // estimate is available, or -1 in case of an error.
-  virtual int PacketDuration(const uint8_t* encoded, size_t encoded_len) const;
-
-  // Returns the duration in samples-per-channel of the redandant payload in
-  // |encoded| which is |encoded_len| bytes long. Returns kNotImplemented if no
-  // duration estimate is available, or -1 in case of an error.
-  virtual int PacketDurationRedundant(const uint8_t* encoded,
-                                      size_t encoded_len) const;
-
-  // Detects whether a packet has forward error correction. The packet is
-  // comprised of the samples in |encoded| which is |encoded_len| bytes long.
-  // Returns true if the packet has FEC and false otherwise.
-  virtual bool PacketHasFec(const uint8_t* encoded, size_t encoded_len) const;
-
-  // Returns the actual sample rate of the decoder's output. This value may not
-  // change during the lifetime of the decoder.
-  virtual int SampleRateHz() const = 0;
-
-  // The number of channels in the decoder's output. This value may not change
-  // during the lifetime of the decoder.
-  virtual size_t Channels() const = 0;
-
- protected:
-  static SpeechType ConvertSpeechType(int16_t type);
-
-  virtual int DecodeInternal(const uint8_t* encoded,
-                             size_t encoded_len,
-                             int sample_rate_hz,
-                             int16_t* decoded,
-                             SpeechType* speech_type) = 0;
-
-  virtual int DecodeRedundantInternal(const uint8_t* encoded,
-                                      size_t encoded_len,
-                                      int sample_rate_hz,
-                                      int16_t* decoded,
-                                      SpeechType* speech_type);
-
- private:
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioDecoder);
-};
-
-}  // namespace webrtc
 #endif  // WEBRTC_MODULES_AUDIO_CODING_CODECS_AUDIO_DECODER_H_
diff --git a/webrtc/modules/audio_coding/codecs/audio_decoder_factory.h b/webrtc/modules/audio_coding/codecs/audio_decoder_factory.h
deleted file mode 100644
index ca578f3..0000000
--- a/webrtc/modules/audio_coding/codecs/audio_decoder_factory.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *  Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_AUDIO_DECODER_FACTORY_H_
-#define WEBRTC_MODULES_AUDIO_CODING_CODECS_AUDIO_DECODER_FACTORY_H_
-
-#include <memory>
-#include <vector>
-
-#include "webrtc/base/atomicops.h"
-#include "webrtc/base/refcount.h"
-#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
-#include "webrtc/modules/audio_coding/codecs/audio_format.h"
-
-namespace webrtc {
-
-// A factory that creates AudioDecoders.
-// NOTE: This class is still under development and may change without notice.
-class AudioDecoderFactory : public rtc::RefCountInterface {
- public:
-  virtual std::vector<AudioCodecSpec> GetSupportedDecoders() = 0;
-
-  virtual bool IsSupportedDecoder(const SdpAudioFormat& format) = 0;
-
-  virtual std::unique_ptr<AudioDecoder> MakeAudioDecoder(
-      const SdpAudioFormat& format) = 0;
-};
-
-}  // namespace webrtc
-
-#endif  // WEBRTC_MODULES_AUDIO_CODING_CODECS_AUDIO_DECODER_FACTORY_H_
diff --git a/webrtc/modules/audio_coding/codecs/audio_format.cc b/webrtc/modules/audio_coding/codecs/audio_format.cc
deleted file mode 100644
index f2a87d3..0000000
--- a/webrtc/modules/audio_coding/codecs/audio_format.cc
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- *  Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#include "webrtc/modules/audio_coding/codecs/audio_format.h"
-
-#include "webrtc/common_types.h"
-
-namespace webrtc {
-
-SdpAudioFormat::SdpAudioFormat(const SdpAudioFormat&) = default;
-SdpAudioFormat::SdpAudioFormat(SdpAudioFormat&&) = default;
-
-SdpAudioFormat::SdpAudioFormat(const char* name,
-                               int clockrate_hz,
-                               int num_channels)
-    : name(name), clockrate_hz(clockrate_hz), num_channels(num_channels) {}
-
-SdpAudioFormat::SdpAudioFormat(const std::string& name,
-                               int clockrate_hz,
-                               int num_channels)
-    : name(name), clockrate_hz(clockrate_hz), num_channels(num_channels) {}
-
-SdpAudioFormat::SdpAudioFormat(const char* name,
-                               int clockrate_hz,
-                               int num_channels,
-                               const Parameters& param)
-    : name(name),
-      clockrate_hz(clockrate_hz),
-      num_channels(num_channels),
-      parameters(param) {}
-
-SdpAudioFormat::SdpAudioFormat(const std::string& name,
-                               int clockrate_hz,
-                               int num_channels,
-                               const Parameters& param)
-    : name(name),
-      clockrate_hz(clockrate_hz),
-      num_channels(num_channels),
-      parameters(param) {}
-
-SdpAudioFormat::~SdpAudioFormat() = default;
-SdpAudioFormat& SdpAudioFormat::operator=(const SdpAudioFormat&) = default;
-SdpAudioFormat& SdpAudioFormat::operator=(SdpAudioFormat&&) = default;
-
-bool operator==(const SdpAudioFormat& a, const SdpAudioFormat& b) {
-  return STR_CASE_CMP(a.name.c_str(), b.name.c_str()) == 0 &&
-         a.clockrate_hz == b.clockrate_hz && a.num_channels == b.num_channels &&
-         a.parameters == b.parameters;
-}
-
-void swap(SdpAudioFormat& a, SdpAudioFormat& b) {
-  using std::swap;
-  swap(a.name, b.name);
-  swap(a.clockrate_hz, b.clockrate_hz);
-  swap(a.num_channels, b.num_channels);
-  swap(a.parameters, b.parameters);
-}
-
-std::ostream& operator<<(std::ostream& os, const SdpAudioFormat& saf) {
-  os << "{name: " << saf.name;
-  os << ", clockrate_hz: " << saf.clockrate_hz;
-  os << ", num_channels: " << saf.num_channels;
-  os << ", parameters: {";
-  const char* sep = "";
-  for (const auto& kv : saf.parameters) {
-    os << sep << kv.first << ": " << kv.second;
-    sep = ", ";
-  }
-  os << "}}";
-  return os;
-}
-
-AudioCodecSpec::AudioCodecSpec(const SdpAudioFormat& format)
-    : format(format) {}
-
-AudioCodecSpec::AudioCodecSpec(SdpAudioFormat&& format)
-    : format(std::move(format)) {}
-
-}  // namespace webrtc
diff --git a/webrtc/modules/audio_coding/codecs/audio_format.h b/webrtc/modules/audio_coding/codecs/audio_format.h
deleted file mode 100644
index 6f2c8cf..0000000
--- a/webrtc/modules/audio_coding/codecs/audio_format.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- *  Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_AUDIO_FORMAT_H_
-#define WEBRTC_MODULES_AUDIO_CODING_CODECS_AUDIO_FORMAT_H_
-
-#include <map>
-#include <ostream>
-#include <string>
-#include <utility>
-
-namespace webrtc {
-
-// SDP specification for a single audio codec.
-// NOTE: This class is still under development and may change without notice.
-struct SdpAudioFormat {
-  using Parameters = std::map<std::string, std::string>;
-
-  SdpAudioFormat(const SdpAudioFormat&);
-  SdpAudioFormat(SdpAudioFormat&&);
-  SdpAudioFormat(const char* name, int clockrate_hz, int num_channels);
-  SdpAudioFormat(const std::string& name, int clockrate_hz, int num_channels);
-  SdpAudioFormat(const char* name,
-                 int clockrate_hz,
-                 int num_channels,
-                 const Parameters& param);
-  SdpAudioFormat(const std::string& name,
-                 int clockrate_hz,
-                 int num_channels,
-                 const Parameters& param);
-  ~SdpAudioFormat();
-
-  SdpAudioFormat& operator=(const SdpAudioFormat&);
-  SdpAudioFormat& operator=(SdpAudioFormat&&);
-
-  friend bool operator==(const SdpAudioFormat& a, const SdpAudioFormat& b);
-  friend bool operator!=(const SdpAudioFormat& a, const SdpAudioFormat& b) {
-    return !(a == b);
-  }
-
-  std::string name;
-  int clockrate_hz;
-  int num_channels;
-  Parameters parameters;
-};
-
-void swap(SdpAudioFormat& a, SdpAudioFormat& b);
-std::ostream& operator<<(std::ostream& os, const SdpAudioFormat& saf);
-
-// To avoid API breakage, and make the code clearer, AudioCodecSpec should not
-// be directly initializable with any flags indicating optional support. If it
-// were, these initializers would break any time a new flag was added. It's also
-// more difficult to understand:
-//   AudioCodecSpec spec{{"format", 8000, 1}, true, false, false, true, true};
-// than
-//   AudioCodecSpec spec({"format", 8000, 1});
-//   spec.allow_comfort_noise = true;
-//   spec.future_flag_b = true;
-//   spec.future_flag_c = true;
-struct AudioCodecSpec {
-  explicit AudioCodecSpec(const SdpAudioFormat& format);
-  explicit AudioCodecSpec(SdpAudioFormat&& format);
-  ~AudioCodecSpec() = default;
-
-  SdpAudioFormat format;
-  bool allow_comfort_noise = true;    // This codec can be used with an external
-                                      // comfort noise generator.
-  bool supports_network_adaption = false;  // This codec can adapt to varying
-                                           // network conditions.
-};
-
-}  // namespace webrtc
-
-#endif  // WEBRTC_MODULES_AUDIO_CODING_CODECS_AUDIO_FORMAT_H_
diff --git a/webrtc/modules/audio_coding/codecs/audio_format_conversion.h b/webrtc/modules/audio_coding/codecs/audio_format_conversion.h
index 9267a52..0fa3a50 100644
--- a/webrtc/modules/audio_coding/codecs/audio_format_conversion.h
+++ b/webrtc/modules/audio_coding/codecs/audio_format_conversion.h
@@ -11,8 +11,8 @@
 #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_AUDIO_FORMAT_CONVERSION_H_
 #define WEBRTC_MODULES_AUDIO_CODING_CODECS_AUDIO_FORMAT_CONVERSION_H_
 
+#include "webrtc/api/audio_codecs/audio_format.h"
 #include "webrtc/common_types.h"
-#include "webrtc/modules/audio_coding/codecs/audio_format.h"
 
 namespace webrtc {
 
diff --git a/webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h b/webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h
index 7bc3586..7e6407a 100644
--- a/webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h
+++ b/webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h
@@ -8,20 +8,13 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
+// This file is for backwards compatibility only! Use
+// webrtc/api/audio_codecs/builtin_audio_decoder_factory.h instead!
+// TODO(kwiberg): Remove it.
+
 #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_BUILTIN_AUDIO_DECODER_FACTORY_H_
 #define WEBRTC_MODULES_AUDIO_CODING_CODECS_BUILTIN_AUDIO_DECODER_FACTORY_H_
 
-#include <memory>
-
-#include "webrtc/base/scoped_ref_ptr.h"
-#include "webrtc/modules/audio_coding/codecs/audio_decoder_factory.h"
-
-namespace webrtc {
-
-// Creates a new factory that can create the built-in types of audio decoders.
-// NOTE: This function is still under development and may change without notice.
-rtc::scoped_refptr<AudioDecoderFactory> CreateBuiltinAudioDecoderFactory();
-
-}  // namespace webrtc
+#include "webrtc/api/audio_codecs/builtin_audio_decoder_factory.h"
 
 #endif  // WEBRTC_MODULES_AUDIO_CODING_CODECS_BUILTIN_AUDIO_DECODER_FACTORY_H_
diff --git a/webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.cc b/webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory_internal.cc
similarity index 87%
rename from webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.cc
rename to webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory_internal.cc
index 5f14f97..fd9f066 100644
--- a/webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.cc
+++ b/webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory_internal.cc
@@ -8,8 +8,9 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h"
+#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory_internal.h"
 
+#include <memory>
 #include <vector>
 
 #include "webrtc/base/checks.h"
@@ -176,34 +177,35 @@
   std::vector<AudioCodecSpec> GetSupportedDecoders() override {
     // Although this looks a bit strange, it means specs need only be initalized
     // once, and that that initialization is thread-safe.
-    static std::vector<AudioCodecSpec> specs =
-        []{
-          std::vector<AudioCodecSpec> specs;
+    static std::vector<AudioCodecSpec> specs = [] {
+      std::vector<AudioCodecSpec> specs;
 #ifdef WEBRTC_CODEC_OPUS
-          AudioCodecSpec opus({"opus", 48000, 2, {
-                                 {"minptime", "10"},
-                                 {"useinbandfec", "1"}
-                               }});
-          opus.allow_comfort_noise = false;
-          opus.supports_network_adaption = true;
-          specs.push_back(opus);
+      // clang-format off
+      AudioCodecSpec opus({"opus", 48000, 2, {
+                             {"minptime", "10"},
+                             {"useinbandfec", "1"}
+                           }});
+      // clang-format on
+      opus.allow_comfort_noise = false;
+      opus.supports_network_adaption = true;
+      specs.push_back(opus);
 #endif
 #if (defined(WEBRTC_CODEC_ISAC) || defined(WEBRTC_CODEC_ISACFX))
-          specs.push_back(AudioCodecSpec({"isac", 16000, 1}));
+      specs.push_back(AudioCodecSpec({"isac", 16000, 1}));
 #endif
 #if (defined(WEBRTC_CODEC_ISAC))
-          specs.push_back(AudioCodecSpec({"isac", 32000, 1}));
+      specs.push_back(AudioCodecSpec({"isac", 32000, 1}));
 #endif
 #ifdef WEBRTC_CODEC_G722
-          specs.push_back(AudioCodecSpec({"G722", 8000, 1}));
+      specs.push_back(AudioCodecSpec({"G722", 8000, 1}));
 #endif
 #ifdef WEBRTC_CODEC_ILBC
-          specs.push_back(AudioCodecSpec({"iLBC", 8000, 1}));
+      specs.push_back(AudioCodecSpec({"iLBC", 8000, 1}));
 #endif
-          specs.push_back(AudioCodecSpec({"PCMU", 8000, 1}));
-          specs.push_back(AudioCodecSpec({"PCMA", 8000, 1}));
-          return specs;
-        }();
+      specs.push_back(AudioCodecSpec({"PCMU", 8000, 1}));
+      specs.push_back(AudioCodecSpec({"PCMA", 8000, 1}));
+      return specs;
+    }();
     return specs;
   }
 
@@ -239,7 +241,8 @@
 
 }  // namespace
 
-rtc::scoped_refptr<AudioDecoderFactory> CreateBuiltinAudioDecoderFactory() {
+rtc::scoped_refptr<AudioDecoderFactory>
+CreateBuiltinAudioDecoderFactoryInternal() {
   return rtc::scoped_refptr<AudioDecoderFactory>(
       new rtc::RefCountedObject<BuiltinAudioDecoderFactory>);
 }
diff --git a/webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory_internal.h b/webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory_internal.h
new file mode 100644
index 0000000..10f356a
--- /dev/null
+++ b/webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory_internal.h
@@ -0,0 +1,24 @@
+/*
+ *  Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_BUILTIN_AUDIO_DECODER_FACTORY_INTERNAL_H_
+#define WEBRTC_MODULES_AUDIO_CODING_CODECS_BUILTIN_AUDIO_DECODER_FACTORY_INTERNAL_H_
+
+#include "webrtc/api/audio_codecs/audio_decoder_factory.h"
+#include "webrtc/base/scoped_ref_ptr.h"
+
+namespace webrtc {
+
+rtc::scoped_refptr<AudioDecoderFactory>
+CreateBuiltinAudioDecoderFactoryInternal();
+
+}  // namespace webrtc
+
+#endif  // WEBRTC_MODULES_AUDIO_CODING_CODECS_BUILTIN_AUDIO_DECODER_FACTORY_INTERNAL_H_
diff --git a/webrtc/modules/audio_coding/codecs/audio_decoder_factory_unittest.cc b/webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory_unittest.cc
similarity index 98%
rename from webrtc/modules/audio_coding/codecs/audio_decoder_factory_unittest.cc
rename to webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory_unittest.cc
index 0379613..7e67095 100644
--- a/webrtc/modules/audio_coding/codecs/audio_decoder_factory_unittest.cc
+++ b/webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory_unittest.cc
@@ -10,7 +10,7 @@
 
 #include <memory>
 
-#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h"
+#include "webrtc/api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/test/gtest.h"
 
 namespace webrtc {
diff --git a/webrtc/modules/audio_coding/codecs/g711/audio_decoder_pcm.h b/webrtc/modules/audio_coding/codecs/g711/audio_decoder_pcm.h
index b1d259e..563d6ae 100644
--- a/webrtc/modules/audio_coding/codecs/g711/audio_decoder_pcm.h
+++ b/webrtc/modules/audio_coding/codecs/g711/audio_decoder_pcm.h
@@ -11,9 +11,9 @@
 #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_G711_AUDIO_DECODER_PCM_H_
 #define WEBRTC_MODULES_AUDIO_CODING_CODECS_G711_AUDIO_DECODER_PCM_H_
 
+#include "webrtc/api/audio_codecs/audio_decoder.h"
 #include "webrtc/base/checks.h"
 #include "webrtc/base/constructormagic.h"
-#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
 
 namespace webrtc {
 
diff --git a/webrtc/modules/audio_coding/codecs/g722/audio_decoder_g722.h b/webrtc/modules/audio_coding/codecs/g722/audio_decoder_g722.h
index 9e7c5d9..c53c78c 100644
--- a/webrtc/modules/audio_coding/codecs/g722/audio_decoder_g722.h
+++ b/webrtc/modules/audio_coding/codecs/g722/audio_decoder_g722.h
@@ -11,8 +11,8 @@
 #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_G722_AUDIO_DECODER_G722_H_
 #define WEBRTC_MODULES_AUDIO_CODING_CODECS_G722_AUDIO_DECODER_G722_H_
 
+#include "webrtc/api/audio_codecs/audio_decoder.h"
 #include "webrtc/base/constructormagic.h"
-#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
 
 typedef struct WebRtcG722DecInst G722DecInst;
 
diff --git a/webrtc/modules/audio_coding/codecs/ilbc/audio_decoder_ilbc.h b/webrtc/modules/audio_coding/codecs/ilbc/audio_decoder_ilbc.h
index 48edfed..bc01a5d 100644
--- a/webrtc/modules/audio_coding/codecs/ilbc/audio_decoder_ilbc.h
+++ b/webrtc/modules/audio_coding/codecs/ilbc/audio_decoder_ilbc.h
@@ -11,8 +11,8 @@
 #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_ILBC_AUDIO_DECODER_ILBC_H_
 #define WEBRTC_MODULES_AUDIO_CODING_CODECS_ILBC_AUDIO_DECODER_ILBC_H_
 
+#include "webrtc/api/audio_codecs/audio_decoder.h"
 #include "webrtc/base/constructormagic.h"
-#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
 
 typedef struct iLBC_decinst_t_ IlbcDecoderInstance;
 
diff --git a/webrtc/modules/audio_coding/codecs/isac/audio_decoder_isac_t.h b/webrtc/modules/audio_coding/codecs/isac/audio_decoder_isac_t.h
index fec7d59..1017cbc 100644
--- a/webrtc/modules/audio_coding/codecs/isac/audio_decoder_isac_t.h
+++ b/webrtc/modules/audio_coding/codecs/isac/audio_decoder_isac_t.h
@@ -13,10 +13,10 @@
 
 #include <vector>
 
+#include "webrtc/api/audio_codecs/audio_decoder.h"
 #include "webrtc/base/constructormagic.h"
 #include "webrtc/base/optional.h"
 #include "webrtc/base/scoped_ref_ptr.h"
-#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
 #include "webrtc/modules/audio_coding/codecs/isac/locked_bandwidth_info.h"
 
 namespace webrtc {
diff --git a/webrtc/modules/audio_coding/codecs/legacy_encoded_audio_frame.h b/webrtc/modules/audio_coding/codecs/legacy_encoded_audio_frame.h
index 466c8b3..46b91ce 100644
--- a/webrtc/modules/audio_coding/codecs/legacy_encoded_audio_frame.h
+++ b/webrtc/modules/audio_coding/codecs/legacy_encoded_audio_frame.h
@@ -13,8 +13,8 @@
 
 #include <vector>
 
+#include "webrtc/api/audio_codecs/audio_decoder.h"
 #include "webrtc/base/array_view.h"
-#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
 
 namespace webrtc {
 
diff --git a/webrtc/modules/audio_coding/codecs/mock/mock_audio_decoder_factory.h b/webrtc/modules/audio_coding/codecs/mock/mock_audio_decoder_factory.h
index b988b85..3b91491 100644
--- a/webrtc/modules/audio_coding/codecs/mock/mock_audio_decoder_factory.h
+++ b/webrtc/modules/audio_coding/codecs/mock/mock_audio_decoder_factory.h
@@ -13,9 +13,9 @@
 
 #include <vector>
 
+#include "webrtc/api/audio_codecs/audio_decoder_factory.h"
+#include "webrtc/api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/base/scoped_ref_ptr.h"
-#include "webrtc/modules/audio_coding/codecs/audio_decoder_factory.h"
-#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/test/gmock.h"
 
 namespace webrtc {
diff --git a/webrtc/modules/audio_coding/codecs/opus/audio_decoder_opus.h b/webrtc/modules/audio_coding/codecs/opus/audio_decoder_opus.h
index a0fb34c..e848f37 100644
--- a/webrtc/modules/audio_coding/codecs/opus/audio_decoder_opus.h
+++ b/webrtc/modules/audio_coding/codecs/opus/audio_decoder_opus.h
@@ -11,8 +11,8 @@
 #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_OPUS_AUDIO_DECODER_OPUS_H_
 #define WEBRTC_MODULES_AUDIO_CODING_CODECS_OPUS_AUDIO_DECODER_OPUS_H_
 
+#include "webrtc/api/audio_codecs/audio_decoder.h"
 #include "webrtc/base/constructormagic.h"
-#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
 #include "webrtc/modules/audio_coding/codecs/opus/opus_interface.h"
 
 namespace webrtc {
diff --git a/webrtc/modules/audio_coding/codecs/pcm16b/audio_decoder_pcm16b.h b/webrtc/modules/audio_coding/codecs/pcm16b/audio_decoder_pcm16b.h
index 577eecc..969aa4e 100644
--- a/webrtc/modules/audio_coding/codecs/pcm16b/audio_decoder_pcm16b.h
+++ b/webrtc/modules/audio_coding/codecs/pcm16b/audio_decoder_pcm16b.h
@@ -11,8 +11,8 @@
 #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_PCM16B_AUDIO_DECODER_PCM16B_H_
 #define WEBRTC_MODULES_AUDIO_CODING_CODECS_PCM16B_AUDIO_DECODER_PCM16B_H_
 
+#include "webrtc/api/audio_codecs/audio_decoder.h"
 #include "webrtc/base/constructormagic.h"
-#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
 
 namespace webrtc {
 
diff --git a/webrtc/modules/audio_coding/include/audio_coding_module.h b/webrtc/modules/audio_coding/include/audio_coding_module.h
index a0dafec..cd99579 100644
--- a/webrtc/modules/audio_coding/include/audio_coding_module.h
+++ b/webrtc/modules/audio_coding/include/audio_coding_module.h
@@ -15,11 +15,11 @@
 #include <string>
 #include <vector>
 
+#include "webrtc/api/audio_codecs/audio_decoder_factory.h"
 #include "webrtc/base/deprecation.h"
 #include "webrtc/base/function_view.h"
 #include "webrtc/base/optional.h"
 #include "webrtc/common_types.h"
-#include "webrtc/modules/audio_coding/codecs/audio_decoder_factory.h"
 #include "webrtc/modules/audio_coding/include/audio_coding_module_typedefs.h"
 #include "webrtc/modules/audio_coding/neteq/include/neteq.h"
 #include "webrtc/modules/include/module.h"
diff --git a/webrtc/modules/audio_coding/neteq/audio_decoder_impl.h b/webrtc/modules/audio_coding/neteq/audio_decoder_impl.h
index 5b064ec..a876f17 100644
--- a/webrtc/modules/audio_coding/neteq/audio_decoder_impl.h
+++ b/webrtc/modules/audio_coding/neteq/audio_decoder_impl.h
@@ -13,13 +13,14 @@
 
 #include <assert.h>
 
+#include "webrtc/api/audio_codecs/audio_decoder.h"
 #include "webrtc/base/constructormagic.h"
-#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
+#include "webrtc/modules/audio_coding/acm2/rent_a_codec.h"
+#include "webrtc/typedefs.h"
+
 #ifdef WEBRTC_CODEC_G722
 #include "webrtc/modules/audio_coding/codecs/g722/g722_interface.h"
 #endif
-#include "webrtc/modules/audio_coding/acm2/rent_a_codec.h"
-#include "webrtc/typedefs.h"
 
 namespace webrtc {
 
diff --git a/webrtc/modules/audio_coding/neteq/comfort_noise.cc b/webrtc/modules/audio_coding/neteq/comfort_noise.cc
index 9493d0a..ef3129b 100644
--- a/webrtc/modules/audio_coding/neteq/comfort_noise.cc
+++ b/webrtc/modules/audio_coding/neteq/comfort_noise.cc
@@ -12,8 +12,8 @@
 
 #include <assert.h>
 
+#include "webrtc/api/audio_codecs/audio_decoder.h"
 #include "webrtc/base/logging.h"
-#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
 #include "webrtc/modules/audio_coding/neteq/decoder_database.h"
 #include "webrtc/modules/audio_coding/neteq/dsp_helper.h"
 #include "webrtc/modules/audio_coding/neteq/sync_buffer.h"
diff --git a/webrtc/modules/audio_coding/neteq/decoder_database.cc b/webrtc/modules/audio_coding/neteq/decoder_database.cc
index fa120d2..16bec04 100644
--- a/webrtc/modules/audio_coding/neteq/decoder_database.cc
+++ b/webrtc/modules/audio_coding/neteq/decoder_database.cc
@@ -12,9 +12,9 @@
 
 #include <utility>  // pair
 
+#include "webrtc/api/audio_codecs/audio_decoder.h"
 #include "webrtc/base/checks.h"
 #include "webrtc/base/logging.h"
-#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
 
 namespace webrtc {
 
diff --git a/webrtc/modules/audio_coding/neteq/decoder_database.h b/webrtc/modules/audio_coding/neteq/decoder_database.h
index 83789da..114cca3 100644
--- a/webrtc/modules/audio_coding/neteq/decoder_database.h
+++ b/webrtc/modules/audio_coding/neteq/decoder_database.h
@@ -15,10 +15,10 @@
 #include <memory>
 #include <string>
 
+#include "webrtc/api/audio_codecs/audio_decoder_factory.h"
+#include "webrtc/api/audio_codecs/audio_format.h"
 #include "webrtc/base/constructormagic.h"
 #include "webrtc/common_types.h"  // NULL
-#include "webrtc/modules/audio_coding/codecs/audio_decoder_factory.h"
-#include "webrtc/modules/audio_coding/codecs/audio_format.h"
 #include "webrtc/modules/audio_coding/codecs/cng/webrtc_cng.h"
 #include "webrtc/modules/audio_coding/neteq/audio_decoder_impl.h"
 #include "webrtc/modules/audio_coding/neteq/packet.h"
diff --git a/webrtc/modules/audio_coding/neteq/decoder_database_unittest.cc b/webrtc/modules/audio_coding/neteq/decoder_database_unittest.cc
index 22bbf6c..f3e6a64 100644
--- a/webrtc/modules/audio_coding/neteq/decoder_database_unittest.cc
+++ b/webrtc/modules/audio_coding/neteq/decoder_database_unittest.cc
@@ -15,7 +15,7 @@
 
 #include <string>
 
-#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h"
+#include "webrtc/api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/modules/audio_coding/codecs/mock/mock_audio_decoder_factory.h"
 #include "webrtc/modules/audio_coding/neteq/mock/mock_audio_decoder.h"
 #include "webrtc/test/gmock.h"
diff --git a/webrtc/modules/audio_coding/neteq/mock/mock_audio_decoder.h b/webrtc/modules/audio_coding/neteq/mock/mock_audio_decoder.h
index 64eeed1..f5b343d 100644
--- a/webrtc/modules/audio_coding/neteq/mock/mock_audio_decoder.h
+++ b/webrtc/modules/audio_coding/neteq/mock/mock_audio_decoder.h
@@ -11,8 +11,7 @@
 #ifndef WEBRTC_MODULES_AUDIO_CODING_NETEQ_MOCK_MOCK_AUDIO_DECODER_H_
 #define WEBRTC_MODULES_AUDIO_CODING_NETEQ_MOCK_MOCK_AUDIO_DECODER_H_
 
-#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
-
+#include "webrtc/api/audio_codecs/audio_decoder.h"
 #include "webrtc/test/gmock.h"
 
 namespace webrtc {
diff --git a/webrtc/modules/audio_coding/neteq/mock/mock_external_decoder_pcm16b.h b/webrtc/modules/audio_coding/neteq/mock/mock_external_decoder_pcm16b.h
index dd12f18..a8919f2 100644
--- a/webrtc/modules/audio_coding/neteq/mock/mock_external_decoder_pcm16b.h
+++ b/webrtc/modules/audio_coding/neteq/mock/mock_external_decoder_pcm16b.h
@@ -11,8 +11,7 @@
 #ifndef WEBRTC_MODULES_AUDIO_CODING_NETEQ_MOCK_MOCK_EXTERNAL_DECODER_PCM16B_H_
 #define WEBRTC_MODULES_AUDIO_CODING_NETEQ_MOCK_MOCK_EXTERNAL_DECODER_PCM16B_H_
 
-#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
-
+#include "webrtc/api/audio_codecs/audio_decoder.h"
 #include "webrtc/base/constructormagic.h"
 #include "webrtc/modules/audio_coding/codecs/pcm16b/pcm16b.h"
 #include "webrtc/test/gmock.h"
diff --git a/webrtc/modules/audio_coding/neteq/neteq_external_decoder_unittest.cc b/webrtc/modules/audio_coding/neteq/neteq_external_decoder_unittest.cc
index f1ccfa9..4b3c0b7 100644
--- a/webrtc/modules/audio_coding/neteq/neteq_external_decoder_unittest.cc
+++ b/webrtc/modules/audio_coding/neteq/neteq_external_decoder_unittest.cc
@@ -12,7 +12,7 @@
 
 #include <memory>
 
-#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h"
+#include "webrtc/api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/modules/audio_coding/neteq/mock/mock_external_decoder_pcm16b.h"
 #include "webrtc/modules/audio_coding/neteq/tools/input_audio_file.h"
 #include "webrtc/modules/audio_coding/neteq/tools/neteq_external_decoder_test.h"
diff --git a/webrtc/modules/audio_coding/neteq/neteq_impl.cc b/webrtc/modules/audio_coding/neteq/neteq_impl.cc
index 592d284..09a3296 100644
--- a/webrtc/modules/audio_coding/neteq/neteq_impl.cc
+++ b/webrtc/modules/audio_coding/neteq/neteq_impl.cc
@@ -17,13 +17,13 @@
 #include <utility>
 #include <vector>
 
+#include "webrtc/api/audio_codecs/audio_decoder.h"
 #include "webrtc/base/checks.h"
 #include "webrtc/base/logging.h"
 #include "webrtc/base/safe_conversions.h"
 #include "webrtc/base/sanitizer.h"
 #include "webrtc/base/trace_event.h"
 #include "webrtc/common_audio/signal_processing/include/signal_processing_library.h"
-#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
 #include "webrtc/modules/audio_coding/neteq/accelerate.h"
 #include "webrtc/modules/audio_coding/neteq/background_noise.h"
 #include "webrtc/modules/audio_coding/neteq/buffer_level_filter.h"
@@ -39,11 +39,11 @@
 #include "webrtc/modules/audio_coding/neteq/merge.h"
 #include "webrtc/modules/audio_coding/neteq/nack_tracker.h"
 #include "webrtc/modules/audio_coding/neteq/normal.h"
-#include "webrtc/modules/audio_coding/neteq/packet_buffer.h"
 #include "webrtc/modules/audio_coding/neteq/packet.h"
-#include "webrtc/modules/audio_coding/neteq/red_payload_splitter.h"
+#include "webrtc/modules/audio_coding/neteq/packet_buffer.h"
 #include "webrtc/modules/audio_coding/neteq/post_decode_vad.h"
 #include "webrtc/modules/audio_coding/neteq/preemptive_expand.h"
+#include "webrtc/modules/audio_coding/neteq/red_payload_splitter.h"
 #include "webrtc/modules/audio_coding/neteq/sync_buffer.h"
 #include "webrtc/modules/audio_coding/neteq/tick_timer.h"
 #include "webrtc/modules/audio_coding/neteq/timestamp_scaler.h"
diff --git a/webrtc/modules/audio_coding/neteq/neteq_impl_unittest.cc b/webrtc/modules/audio_coding/neteq/neteq_impl_unittest.cc
index 1c93543..de07ae2 100644
--- a/webrtc/modules/audio_coding/neteq/neteq_impl_unittest.cc
+++ b/webrtc/modules/audio_coding/neteq/neteq_impl_unittest.cc
@@ -10,14 +10,12 @@
 
 #include <memory>
 
-#include "webrtc/modules/audio_coding/neteq/include/neteq.h"
-#include "webrtc/modules/audio_coding/neteq/neteq_impl.h"
-
+#include "webrtc/api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/base/safe_conversions.h"
-#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/modules/audio_coding/codecs/mock/mock_audio_decoder_factory.h"
 #include "webrtc/modules/audio_coding/neteq/accelerate.h"
 #include "webrtc/modules/audio_coding/neteq/expand.h"
+#include "webrtc/modules/audio_coding/neteq/include/neteq.h"
 #include "webrtc/modules/audio_coding/neteq/mock/mock_audio_decoder.h"
 #include "webrtc/modules/audio_coding/neteq/mock/mock_buffer_level_filter.h"
 #include "webrtc/modules/audio_coding/neteq/mock/mock_decoder_database.h"
@@ -27,6 +25,7 @@
 #include "webrtc/modules/audio_coding/neteq/mock/mock_dtmf_tone_generator.h"
 #include "webrtc/modules/audio_coding/neteq/mock/mock_packet_buffer.h"
 #include "webrtc/modules/audio_coding/neteq/mock/mock_red_payload_splitter.h"
+#include "webrtc/modules/audio_coding/neteq/neteq_impl.h"
 #include "webrtc/modules/audio_coding/neteq/preemptive_expand.h"
 #include "webrtc/modules/audio_coding/neteq/sync_buffer.h"
 #include "webrtc/modules/audio_coding/neteq/timestamp_scaler.h"
diff --git a/webrtc/modules/audio_coding/neteq/neteq_stereo_unittest.cc b/webrtc/modules/audio_coding/neteq/neteq_stereo_unittest.cc
index fb2648d..0d15f88 100644
--- a/webrtc/modules/audio_coding/neteq/neteq_stereo_unittest.cc
+++ b/webrtc/modules/audio_coding/neteq/neteq_stereo_unittest.cc
@@ -15,7 +15,7 @@
 #include <string>
 #include <list>
 
-#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h"
+#include "webrtc/api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/modules/audio_coding/codecs/pcm16b/pcm16b.h"
 #include "webrtc/modules/audio_coding/neteq/include/neteq.h"
 #include "webrtc/modules/audio_coding/neteq/tools/input_audio_file.h"
diff --git a/webrtc/modules/audio_coding/neteq/neteq_unittest.cc b/webrtc/modules/audio_coding/neteq/neteq_unittest.cc
index ecefc45..b77b734 100644
--- a/webrtc/modules/audio_coding/neteq/neteq_unittest.cc
+++ b/webrtc/modules/audio_coding/neteq/neteq_unittest.cc
@@ -21,10 +21,10 @@
 #include <vector>
 
 #include "gflags/gflags.h"
+#include "webrtc/api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/base/ignore_wundef.h"
 #include "webrtc/base/sha1digest.h"
 #include "webrtc/base/stringencode.h"
-#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/modules/audio_coding/codecs/pcm16b/pcm16b.h"
 #include "webrtc/modules/audio_coding/neteq/tools/audio_loop.h"
 #include "webrtc/modules/audio_coding/neteq/tools/rtp_file_source.h"
diff --git a/webrtc/modules/audio_coding/neteq/normal.cc b/webrtc/modules/audio_coding/neteq/normal.cc
index 9e6f19e..3dee39a 100644
--- a/webrtc/modules/audio_coding/neteq/normal.cc
+++ b/webrtc/modules/audio_coding/neteq/normal.cc
@@ -14,9 +14,9 @@
 
 #include <algorithm>  // min
 
+#include "webrtc/api/audio_codecs/audio_decoder.h"
 #include "webrtc/base/checks.h"
 #include "webrtc/common_audio/signal_processing/include/signal_processing_library.h"
-#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
 #include "webrtc/modules/audio_coding/neteq/audio_multi_vector.h"
 #include "webrtc/modules/audio_coding/neteq/background_noise.h"
 #include "webrtc/modules/audio_coding/neteq/decoder_database.h"
diff --git a/webrtc/modules/audio_coding/neteq/packet.h b/webrtc/modules/audio_coding/neteq/packet.h
index 74da83f..7d91f25 100644
--- a/webrtc/modules/audio_coding/neteq/packet.h
+++ b/webrtc/modules/audio_coding/neteq/packet.h
@@ -14,8 +14,8 @@
 #include <list>
 #include <memory>
 
+#include "webrtc/api/audio_codecs/audio_decoder.h"
 #include "webrtc/base/buffer.h"
-#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
 #include "webrtc/modules/audio_coding/neteq/tick_timer.h"
 #include "webrtc/typedefs.h"
 
diff --git a/webrtc/modules/audio_coding/neteq/packet_buffer.cc b/webrtc/modules/audio_coding/neteq/packet_buffer.cc
index a9a396d..489c7c7 100644
--- a/webrtc/modules/audio_coding/neteq/packet_buffer.cc
+++ b/webrtc/modules/audio_coding/neteq/packet_buffer.cc
@@ -16,8 +16,8 @@
 
 #include <algorithm>  // find_if()
 
+#include "webrtc/api/audio_codecs/audio_decoder.h"
 #include "webrtc/base/logging.h"
-#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
 #include "webrtc/modules/audio_coding/neteq/decoder_database.h"
 #include "webrtc/modules/audio_coding/neteq/tick_timer.h"
 
diff --git a/webrtc/modules/audio_coding/neteq/packet_buffer_unittest.cc b/webrtc/modules/audio_coding/neteq/packet_buffer_unittest.cc
index dcb4f1a..e8795a9 100644
--- a/webrtc/modules/audio_coding/neteq/packet_buffer_unittest.cc
+++ b/webrtc/modules/audio_coding/neteq/packet_buffer_unittest.cc
@@ -10,11 +10,10 @@
 
 // Unit tests for PacketBuffer class.
 
-#include "webrtc/modules/audio_coding/neteq/packet_buffer.h"
-
-#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h"
+#include "webrtc/api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/modules/audio_coding/neteq/mock/mock_decoder_database.h"
 #include "webrtc/modules/audio_coding/neteq/packet.h"
+#include "webrtc/modules/audio_coding/neteq/packet_buffer.h"
 #include "webrtc/modules/audio_coding/neteq/tick_timer.h"
 #include "webrtc/test/gmock.h"
 #include "webrtc/test/gtest.h"
diff --git a/webrtc/modules/audio_coding/neteq/post_decode_vad.h b/webrtc/modules/audio_coding/neteq/post_decode_vad.h
index 7bf5ad1..dd64818 100644
--- a/webrtc/modules/audio_coding/neteq/post_decode_vad.h
+++ b/webrtc/modules/audio_coding/neteq/post_decode_vad.h
@@ -13,10 +13,10 @@
 
 #include <string>  // size_t
 
+#include "webrtc/api/audio_codecs/audio_decoder.h"
 #include "webrtc/base/constructormagic.h"
 #include "webrtc/common_audio/vad/include/webrtc_vad.h"
 #include "webrtc/common_types.h"  // NULL
-#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
 #include "webrtc/modules/audio_coding/neteq/defines.h"
 #include "webrtc/modules/audio_coding/neteq/packet.h"
 #include "webrtc/typedefs.h"
diff --git a/webrtc/modules/audio_coding/neteq/red_payload_splitter_unittest.cc b/webrtc/modules/audio_coding/neteq/red_payload_splitter_unittest.cc
index cd85f03..60cf39f 100644
--- a/webrtc/modules/audio_coding/neteq/red_payload_splitter_unittest.cc
+++ b/webrtc/modules/audio_coding/neteq/red_payload_splitter_unittest.cc
@@ -17,7 +17,7 @@
 #include <memory>
 #include <utility>  // pair
 
-#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h"
+#include "webrtc/api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/modules/audio_coding/codecs/mock/mock_audio_decoder_factory.h"
 #include "webrtc/modules/audio_coding/neteq/mock/mock_decoder_database.h"
 #include "webrtc/modules/audio_coding/neteq/packet.h"
diff --git a/webrtc/modules/audio_coding/neteq/timestamp_scaler_unittest.cc b/webrtc/modules/audio_coding/neteq/timestamp_scaler_unittest.cc
index 41c3342..13c4554 100644
--- a/webrtc/modules/audio_coding/neteq/timestamp_scaler_unittest.cc
+++ b/webrtc/modules/audio_coding/neteq/timestamp_scaler_unittest.cc
@@ -8,11 +8,10 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "webrtc/modules/audio_coding/neteq/timestamp_scaler.h"
-
-#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h"
+#include "webrtc/api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/modules/audio_coding/neteq/mock/mock_decoder_database.h"
 #include "webrtc/modules/audio_coding/neteq/packet.h"
+#include "webrtc/modules/audio_coding/neteq/timestamp_scaler.h"
 #include "webrtc/test/gmock.h"
 #include "webrtc/test/gtest.h"
 
diff --git a/webrtc/modules/audio_coding/neteq/tools/fake_decode_from_file.h b/webrtc/modules/audio_coding/neteq/tools/fake_decode_from_file.h
index 69f9c82..9f91c81 100644
--- a/webrtc/modules/audio_coding/neteq/tools/fake_decode_from_file.h
+++ b/webrtc/modules/audio_coding/neteq/tools/fake_decode_from_file.h
@@ -13,9 +13,9 @@
 
 #include <memory>
 
+#include "webrtc/api/audio_codecs/audio_decoder.h"
 #include "webrtc/base/array_view.h"
 #include "webrtc/base/optional.h"
-#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
 #include "webrtc/modules/audio_coding/neteq/tools/input_audio_file.h"
 
 namespace webrtc {
diff --git a/webrtc/modules/audio_coding/neteq/tools/neteq_external_decoder_test.cc b/webrtc/modules/audio_coding/neteq/tools/neteq_external_decoder_test.cc
index 123a315..ed51279 100644
--- a/webrtc/modules/audio_coding/neteq/tools/neteq_external_decoder_test.cc
+++ b/webrtc/modules/audio_coding/neteq/tools/neteq_external_decoder_test.cc
@@ -11,8 +11,8 @@
 
 #include "webrtc/modules/audio_coding/neteq/tools/neteq_external_decoder_test.h"
 
+#include "webrtc/api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/base/format_macros.h"
-#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/test/gtest.h"
 
 namespace webrtc {
diff --git a/webrtc/modules/audio_coding/neteq/tools/neteq_external_decoder_test.h b/webrtc/modules/audio_coding/neteq/tools/neteq_external_decoder_test.h
index fb1c5b2..208d8da 100644
--- a/webrtc/modules/audio_coding/neteq/tools/neteq_external_decoder_test.h
+++ b/webrtc/modules/audio_coding/neteq/tools/neteq_external_decoder_test.h
@@ -14,7 +14,7 @@
 #include <memory>
 #include <string>
 
-#include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
+#include "webrtc/api/audio_codecs/audio_decoder.h"
 #include "webrtc/modules/audio_coding/neteq/include/neteq.h"
 #include "webrtc/modules/include/module_common_types.h"
 
diff --git a/webrtc/modules/audio_coding/neteq/tools/neteq_performance_test.cc b/webrtc/modules/audio_coding/neteq/tools/neteq_performance_test.cc
index 73e004c..4349a70 100644
--- a/webrtc/modules/audio_coding/neteq/tools/neteq_performance_test.cc
+++ b/webrtc/modules/audio_coding/neteq/tools/neteq_performance_test.cc
@@ -10,8 +10,8 @@
 
 #include "webrtc/modules/audio_coding/neteq/tools/neteq_performance_test.h"
 
+#include "webrtc/api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/base/checks.h"
-#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/modules/audio_coding/codecs/pcm16b/pcm16b.h"
 #include "webrtc/modules/audio_coding/neteq/include/neteq.h"
 #include "webrtc/modules/audio_coding/neteq/tools/audio_loop.h"
diff --git a/webrtc/modules/audio_coding/neteq/tools/neteq_quality_test.cc b/webrtc/modules/audio_coding/neteq/tools/neteq_quality_test.cc
index 0b4edc6..7b3a35b 100644
--- a/webrtc/modules/audio_coding/neteq/tools/neteq_quality_test.cc
+++ b/webrtc/modules/audio_coding/neteq/tools/neteq_quality_test.cc
@@ -10,8 +10,9 @@
 
 #include <math.h>
 #include <stdio.h>
+
+#include "webrtc/api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/base/checks.h"
-#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/modules/audio_coding/neteq/tools/neteq_quality_test.h"
 #include "webrtc/modules/audio_coding/neteq/tools/output_audio_file.h"
 #include "webrtc/modules/audio_coding/neteq/tools/output_wav_file.h"
diff --git a/webrtc/modules/audio_coding/neteq/tools/neteq_test.cc b/webrtc/modules/audio_coding/neteq/tools/neteq_test.cc
index 1ea2cb8..cc88b38 100644
--- a/webrtc/modules/audio_coding/neteq/tools/neteq_test.cc
+++ b/webrtc/modules/audio_coding/neteq/tools/neteq_test.cc
@@ -12,7 +12,7 @@
 
 #include <iostream>
 
-#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h"
+#include "webrtc/api/audio_codecs/builtin_audio_decoder_factory.h"
 
 namespace webrtc {
 namespace test {
diff --git a/webrtc/modules/audio_coding/test/TwoWayCommunication.cc b/webrtc/modules/audio_coding/test/TwoWayCommunication.cc
index d080811..f575b2a 100644
--- a/webrtc/modules/audio_coding/test/TwoWayCommunication.cc
+++ b/webrtc/modules/audio_coding/test/TwoWayCommunication.cc
@@ -20,9 +20,9 @@
 #include <Windows.h>
 #endif
 
+#include "webrtc/api/audio_codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/common_types.h"
 #include "webrtc/modules/audio_coding/codecs/audio_format_conversion.h"
-#include "webrtc/modules/audio_coding/codecs/builtin_audio_decoder_factory.h"
 #include "webrtc/modules/audio_coding/test/PCMFile.h"
 #include "webrtc/modules/audio_coding/test/utility.h"
 #include "webrtc/system_wrappers/include/trace.h"