Move NetEq headers to api/

This CL also introduces NetEqFactory and NetEqControllerFactory
interfaces, as well as several convenience classes for working with
them: DefaultNetEqFactory, DefaultNetEqControllerFactory and
CustomNetEqFactory.

Bug: webrtc:11005
Change-Id: I1e8fc5154636ac2aad1a856828f80a2a758ad392
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/156945
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29671}
diff --git a/modules/audio_coding/neteq/neteq_impl.h b/modules/audio_coding/neteq/neteq_impl.h
index aa7eba1..956cb6e 100644
--- a/modules/audio_coding/neteq/neteq_impl.h
+++ b/modules/audio_coding/neteq/neteq_impl.h
@@ -19,16 +19,16 @@
 
 #include "absl/types/optional.h"
 #include "api/audio/audio_frame.h"
+#include "api/neteq/neteq.h"
+#include "api/neteq/neteq_controller.h"
+#include "api/neteq/neteq_controller_factory.h"
+#include "api/neteq/tick_timer.h"
 #include "api/rtp_packet_info.h"
 #include "modules/audio_coding/neteq/audio_multi_vector.h"
-#include "modules/audio_coding/neteq/defines.h"  // Modes, Operations
 #include "modules/audio_coding/neteq/expand_uma_logger.h"
-#include "modules/audio_coding/neteq/include/neteq.h"
-#include "modules/audio_coding/neteq/neteq_controller.h"
 #include "modules/audio_coding/neteq/packet.h"
 #include "modules/audio_coding/neteq/random_vector.h"
 #include "modules/audio_coding/neteq/statistics_calculator.h"
-#include "modules/audio_coding/neteq/tick_timer.h"
 #include "rtc_base/constructor_magic.h"
 #include "rtc_base/critical_section.h"
 #include "rtc_base/thread_annotations.h"
@@ -96,10 +96,10 @@
     // before sending the struct to the NetEqImpl constructor. However, there
     // are dependencies between some of the classes inside the struct, so
     // swapping out one may make it necessary to re-create another one.
-    Dependencies(
-        const NetEq::Config& config,
-        Clock* clock,
-        const rtc::scoped_refptr<AudioDecoderFactory>& decoder_factory);
+    Dependencies(const NetEq::Config& config,
+                 Clock* clock,
+                 const rtc::scoped_refptr<AudioDecoderFactory>& decoder_factory,
+                 const NetEqControllerFactory& controller_factory);
     ~Dependencies();
 
     Clock* const clock;
@@ -133,7 +133,7 @@
   int GetAudio(
       AudioFrame* audio_frame,
       bool* muted,
-      absl::optional<Operations> action_override = absl::nullopt) override;
+      absl::optional<Operation> action_override = absl::nullopt) override;
 
   void SetCodecs(const std::map<int, SdpAudioFormat>& codecs) override;
 
@@ -195,7 +195,7 @@
 
   // This accessor method is only intended for testing purposes.
   const SyncBuffer* sync_buffer_for_test() const;
-  Operations last_operation_for_test() const;
+  Operation last_operation_for_test() const;
 
  protected:
   static const int kOutputSizeMs = 10;
@@ -216,7 +216,7 @@
   // Returns 0 on success, otherwise an error code.
   int GetAudioInternal(AudioFrame* audio_frame,
                        bool* muted,
-                       absl::optional<Operations> action_override)
+                       absl::optional<Operation> action_override)
       RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_sect_);
 
   // Provides a decision to the GetAudioInternal method. The decision what to
@@ -224,11 +224,11 @@
   // |packet_list|, and a DTMF event to play is written to |dtmf_event|. When
   // DTMF should be played, |play_dtmf| is set to true by the method.
   // Returns 0 on success, otherwise an error code.
-  int GetDecision(Operations* operation,
+  int GetDecision(Operation* operation,
                   PacketList* packet_list,
                   DtmfEvent* dtmf_event,
                   bool* play_dtmf,
-                  absl::optional<Operations> action_override)
+                  absl::optional<Operation> action_override)
       RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_sect_);
 
   // Decodes the speech packets in |packet_list|, and writes the results to
@@ -238,7 +238,7 @@
   // to |speech_type|. If |packet_list| contains any SID frames for RFC 3389
   // comfort noise, those are not decoded.
   int Decode(PacketList* packet_list,
-             Operations* operation,
+             Operation* operation,
              int* decoded_length,
              AudioDecoder::SpeechType* speech_type)
       RTC_EXCLUSIVE_LOCKS_REQUIRED(crit_sect_);
@@ -251,7 +251,7 @@
 
   // Sub-method to Decode(). Performs the actual decoding.
   int DecodeLoop(PacketList* packet_list,
-                 const Operations& operation,
+                 const Operation& operation,
                  AudioDecoder* decoder,
                  int* decoded_length,
                  AudioDecoder::SpeechType* speech_type)
@@ -374,8 +374,8 @@
   int last_output_sample_rate_hz_ RTC_GUARDED_BY(crit_sect_);
   size_t output_size_samples_ RTC_GUARDED_BY(crit_sect_);
   size_t decoder_frame_length_ RTC_GUARDED_BY(crit_sect_);
-  Modes last_mode_ RTC_GUARDED_BY(crit_sect_);
-  Operations last_operation_ RTC_GUARDED_BY(crit_sect_);
+  Mode last_mode_ RTC_GUARDED_BY(crit_sect_);
+  Operation last_operation_ RTC_GUARDED_BY(crit_sect_);
   size_t decoded_buffer_length_ RTC_GUARDED_BY(crit_sect_);
   std::unique_ptr<int16_t[]> decoded_buffer_ RTC_GUARDED_BY(crit_sect_);
   uint32_t playout_timestamp_ RTC_GUARDED_BY(crit_sect_);