Removed the ProcessingComponent class

BUG=

Review URL: https://codereview.webrtc.org/1772553002

Cr-Commit-Position: refs/heads/master@{#11950}
diff --git a/webrtc/modules/audio_processing/BUILD.gn b/webrtc/modules/audio_processing/BUILD.gn
index 6f5a046..3b49745 100644
--- a/webrtc/modules/audio_processing/BUILD.gn
+++ b/webrtc/modules/audio_processing/BUILD.gn
@@ -86,8 +86,7 @@
     "logging/aec_logging_file_handling.h",
     "noise_suppression_impl.cc",
     "noise_suppression_impl.h",
-    "processing_component.cc",
-    "processing_component.h",
+    "render_queue_item_verifier.h",
     "rms_level.cc",
     "rms_level.h",
     "splitting_filter.cc",
diff --git a/webrtc/modules/audio_processing/audio_processing.gypi b/webrtc/modules/audio_processing/audio_processing.gypi
index 7a04358..77f0a14 100644
--- a/webrtc/modules/audio_processing/audio_processing.gypi
+++ b/webrtc/modules/audio_processing/audio_processing.gypi
@@ -96,8 +96,7 @@
         'logging/aec_logging_file_handling.h',
         'noise_suppression_impl.cc',
         'noise_suppression_impl.h',
-        'processing_component.cc',
-        'processing_component.h',
+        'render_queue_item_verifier.h',
         'rms_level.cc',
         'rms_level.h',
         'splitting_filter.cc',
diff --git a/webrtc/modules/audio_processing/audio_processing_impl.cc b/webrtc/modules/audio_processing/audio_processing_impl.cc
index 37a824b..67dcd90 100644
--- a/webrtc/modules/audio_processing/audio_processing_impl.cc
+++ b/webrtc/modules/audio_processing/audio_processing_impl.cc
@@ -33,7 +33,6 @@
 #include "webrtc/modules/audio_processing/intelligibility/intelligibility_enhancer.h"
 #include "webrtc/modules/audio_processing/level_estimator_impl.h"
 #include "webrtc/modules/audio_processing/noise_suppression_impl.h"
-#include "webrtc/modules/audio_processing/processing_component.h"
 #include "webrtc/modules/audio_processing/transient/transient_suppressor.h"
 #include "webrtc/modules/audio_processing/voice_detection_impl.h"
 #include "webrtc/modules/include/module_common_types.h"
@@ -101,7 +100,6 @@
   explicit ApmPrivateSubmodules(Beamformer<float>* beamformer)
       : beamformer(beamformer) {}
   // Accessed internally from capture or during initialization
-  std::list<ProcessingComponent*> component_list;
   std::unique_ptr<Beamformer<float>> beamformer;
   std::unique_ptr<AgcManagerDirect> agc_manager;
 };
@@ -197,13 +195,6 @@
   private_submodules_->agc_manager.reset();
   // Depends on gain_control_.
   public_submodules_->gain_control_for_experimental_agc.reset();
-  while (!private_submodules_->component_list.empty()) {
-    ProcessingComponent* component =
-        private_submodules_->component_list.front();
-    component->Destroy();
-    delete component;
-    private_submodules_->component_list.pop_front();
-  }
 
 #ifdef WEBRTC_AUDIOPROC_DEBUG_DUMP
   if (debug_dump_.debug_file->Open()) {
@@ -308,14 +299,6 @@
                       fwd_audio_buffer_channels,
                       formats_.api_format.output_stream().num_frames()));
 
-  // Initialize all components.
-  for (auto item : private_submodules_->component_list) {
-    int err = item->Initialize();
-    if (err != kNoError) {
-      return err;
-    }
-  }
-
   InitializeGainController();
   InitializeEchoCanceller();
   InitializeEchoControlMobile();
@@ -416,9 +399,6 @@
   // Run in a single-threaded manner when setting the extra options.
   rtc::CritScope cs_render(&crit_render_);
   rtc::CritScope cs_capture(&crit_capture_);
-  for (auto item : private_submodules_->component_list) {
-    item->SetExtraOptions(config);
-  }
 
   public_submodules_->echo_cancellation->SetExtraOptions(config);
 
@@ -1131,13 +1111,6 @@
     return true;
   }
 
-  // All of the private submodules modify the data.
-  for (auto item : private_submodules_->component_list) {
-    if (item->is_component_enabled()) {
-      return true;
-    }
-  }
-
   // The capture data is otherwise unchanged.
   return false;
 }
diff --git a/webrtc/modules/audio_processing/echo_cancellation_impl.h b/webrtc/modules/audio_processing/echo_cancellation_impl.h
index 935e720..dccef33 100644
--- a/webrtc/modules/audio_processing/echo_cancellation_impl.h
+++ b/webrtc/modules/audio_processing/echo_cancellation_impl.h
@@ -17,7 +17,7 @@
 #include "webrtc/base/criticalsection.h"
 #include "webrtc/common_audio/swap_queue.h"
 #include "webrtc/modules/audio_processing/include/audio_processing.h"
-#include "webrtc/modules/audio_processing/processing_component.h"
+#include "webrtc/modules/audio_processing/render_queue_item_verifier.h"
 
 namespace webrtc {
 
diff --git a/webrtc/modules/audio_processing/echo_control_mobile_impl.h b/webrtc/modules/audio_processing/echo_control_mobile_impl.h
index 6f2c28d..f565ab2 100644
--- a/webrtc/modules/audio_processing/echo_control_mobile_impl.h
+++ b/webrtc/modules/audio_processing/echo_control_mobile_impl.h
@@ -17,7 +17,7 @@
 #include "webrtc/base/criticalsection.h"
 #include "webrtc/common_audio/swap_queue.h"
 #include "webrtc/modules/audio_processing/include/audio_processing.h"
-#include "webrtc/modules/audio_processing/processing_component.h"
+#include "webrtc/modules/audio_processing/render_queue_item_verifier.h"
 
 namespace webrtc {
 
diff --git a/webrtc/modules/audio_processing/gain_control_impl.h b/webrtc/modules/audio_processing/gain_control_impl.h
index 54b8ea7..b5fe1e3 100644
--- a/webrtc/modules/audio_processing/gain_control_impl.h
+++ b/webrtc/modules/audio_processing/gain_control_impl.h
@@ -19,7 +19,7 @@
 #include "webrtc/base/thread_annotations.h"
 #include "webrtc/common_audio/swap_queue.h"
 #include "webrtc/modules/audio_processing/include/audio_processing.h"
-#include "webrtc/modules/audio_processing/processing_component.h"
+#include "webrtc/modules/audio_processing/render_queue_item_verifier.h"
 
 namespace webrtc {
 
diff --git a/webrtc/modules/audio_processing/intelligibility/intelligibility_enhancer.h b/webrtc/modules/audio_processing/intelligibility/intelligibility_enhancer.h
index c857661..940b9c5 100644
--- a/webrtc/modules/audio_processing/intelligibility/intelligibility_enhancer.h
+++ b/webrtc/modules/audio_processing/intelligibility/intelligibility_enhancer.h
@@ -19,7 +19,7 @@
 #include "webrtc/common_audio/channel_buffer.h"
 #include "webrtc/common_audio/swap_queue.h"
 #include "webrtc/modules/audio_processing/intelligibility/intelligibility_utils.h"
-#include "webrtc/modules/audio_processing/processing_component.h"
+#include "webrtc/modules/audio_processing/render_queue_item_verifier.h"
 #include "webrtc/modules/audio_processing/vad/voice_activity_detector.h"
 
 namespace webrtc {
diff --git a/webrtc/modules/audio_processing/processing_component.cc b/webrtc/modules/audio_processing/processing_component.cc
deleted file mode 100644
index 7abd8e2..0000000
--- a/webrtc/modules/audio_processing/processing_component.cc
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- *  Copyright (c) 2011 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_processing/processing_component.h"
-
-#include <assert.h>
-
-#include "webrtc/modules/audio_processing/include/audio_processing.h"
-
-namespace webrtc {
-
-ProcessingComponent::ProcessingComponent()
-  : initialized_(false),
-    enabled_(false),
-    num_handles_(0) {}
-
-ProcessingComponent::~ProcessingComponent() {
-  assert(initialized_ == false);
-}
-
-int ProcessingComponent::Destroy() {
-  while (!handles_.empty()) {
-    DestroyHandle(handles_.back());
-    handles_.pop_back();
-  }
-  initialized_ = false;
-
-  return AudioProcessing::kNoError;
-}
-
-int ProcessingComponent::EnableComponent(bool enable) {
-  if (enable && !enabled_) {
-    enabled_ = enable; // Must be set before Initialize() is called.
-
-    int err = Initialize();
-    if (err != AudioProcessing::kNoError) {
-      enabled_ = false;
-      return err;
-    }
-  } else {
-    enabled_ = enable;
-  }
-
-  return AudioProcessing::kNoError;
-}
-
-bool ProcessingComponent::is_component_enabled() const {
-  return enabled_;
-}
-
-void* ProcessingComponent::handle(size_t index) const {
-  assert(index < num_handles_);
-  return handles_[index];
-}
-
-size_t ProcessingComponent::num_handles() const {
-  return num_handles_;
-}
-
-int ProcessingComponent::Initialize() {
-  if (!enabled_) {
-    return AudioProcessing::kNoError;
-  }
-
-  num_handles_ = num_handles_required();
-  if (num_handles_ > handles_.size()) {
-    handles_.resize(num_handles_, NULL);
-  }
-
-  assert(handles_.size() >= num_handles_);
-  for (size_t i = 0; i < num_handles_; i++) {
-    if (handles_[i] == NULL) {
-      handles_[i] = CreateHandle();
-      if (handles_[i] == NULL) {
-        return AudioProcessing::kCreationFailedError;
-      }
-    }
-
-    int err = InitializeHandle(handles_[i]);
-    if (err != AudioProcessing::kNoError) {
-      return GetHandleError(handles_[i]);
-    }
-  }
-
-  initialized_ = true;
-  return Configure();
-}
-
-int ProcessingComponent::Configure() {
-  if (!initialized_) {
-    return AudioProcessing::kNoError;
-  }
-
-  assert(handles_.size() >= num_handles_);
-  for (size_t i = 0; i < num_handles_; i++) {
-    int err = ConfigureHandle(handles_[i]);
-    if (err != AudioProcessing::kNoError) {
-      return GetHandleError(handles_[i]);
-    }
-  }
-
-  return AudioProcessing::kNoError;
-}
-}  // namespace webrtc
diff --git a/webrtc/modules/audio_processing/processing_component.h b/webrtc/modules/audio_processing/processing_component.h
deleted file mode 100644
index 577f157..0000000
--- a/webrtc/modules/audio_processing/processing_component.h
+++ /dev/null
@@ -1,69 +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 WEBRTC_MODULES_AUDIO_PROCESSING_PROCESSING_COMPONENT_H_
-#define WEBRTC_MODULES_AUDIO_PROCESSING_PROCESSING_COMPONENT_H_
-
-#include <vector>
-
-#include "webrtc/common.h"
-
-namespace webrtc {
-
-// Functor to use when supplying a verifier function for the queue item
-// verifcation.
-template <typename T>
-class RenderQueueItemVerifier {
- public:
-  explicit RenderQueueItemVerifier(size_t minimum_capacity)
-      : minimum_capacity_(minimum_capacity) {}
-
-  bool operator()(const std::vector<T>& v) const {
-    return v.capacity() >= minimum_capacity_;
-  }
-
- private:
-  size_t minimum_capacity_;
-};
-
-class ProcessingComponent {
- public:
-  ProcessingComponent();
-  virtual ~ProcessingComponent();
-
-  virtual int Initialize();
-  virtual void SetExtraOptions(const Config& config) {}
-  virtual int Destroy();
-
-  bool is_component_enabled() const;
-
- protected:
-  virtual int Configure();
-  int EnableComponent(bool enable);
-  void* handle(size_t index) const;
-  size_t num_handles() const;
-
- private:
-  virtual void* CreateHandle() const = 0;
-  virtual int InitializeHandle(void* handle) const = 0;
-  virtual int ConfigureHandle(void* handle) const = 0;
-  virtual void DestroyHandle(void* handle) const = 0;
-  virtual size_t num_handles_required() const = 0;
-  virtual int GetHandleError(void* handle) const = 0;
-
-  std::vector<void*> handles_;
-  bool initialized_;
-  bool enabled_;
-  size_t num_handles_;
-};
-
-}  // namespace webrtc
-
-#endif  // WEBRTC_MODULES_AUDIO_PROCESSING_PROCESSING_COMPONENT_H__
diff --git a/webrtc/modules/audio_processing/render_queue_item_verifier.h b/webrtc/modules/audio_processing/render_queue_item_verifier.h
new file mode 100644
index 0000000..a7fbbb4
--- /dev/null
+++ b/webrtc/modules/audio_processing/render_queue_item_verifier.h
@@ -0,0 +1,36 @@
+/*
+ *  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_PROCESSING_RENDER_QUEUE_ITEM_VERIFIER_H_
+#define WEBRTC_MODULES_AUDIO_PROCESSING_RENDER_QUEUE_ITEM_VERIFIER_H_
+
+#include <vector>
+
+namespace webrtc {
+
+// Functor to use when supplying a verifier function for the queue item
+// verifcation.
+template <typename T>
+class RenderQueueItemVerifier {
+ public:
+  explicit RenderQueueItemVerifier(size_t minimum_capacity)
+      : minimum_capacity_(minimum_capacity) {}
+
+  bool operator()(const std::vector<T>& v) const {
+    return v.capacity() >= minimum_capacity_;
+  }
+
+ private:
+  size_t minimum_capacity_;
+};
+
+}  // namespace webrtc
+
+#endif  // WEBRTC_MODULES_AUDIO_PROCESSING_RENDER_QUEUE_ITEM_VERIFIER_H__