Copy VP8EncoderSimulcastProxy to EncoderSimulcastProxy

Use the new class internally where appropriate too.

The objective is to rename it, but due to some external dependency,
it is better to copy, update dependencies and remove.

Bug: webrtc:10069
Change-Id: I8477ce5a2982933db27513cc9509f51558dafaf3
Reviewed-on: https://webrtc-review.googlesource.com/c/113265
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25920}
diff --git a/media/BUILD.gn b/media/BUILD.gn
index 4fa2d71..f54bb73 100644
--- a/media/BUILD.gn
+++ b/media/BUILD.gn
@@ -214,12 +214,35 @@
   }
 }
 
+rtc_static_library("rtc_encoder_simulcast_proxy") {
+  visibility = [ "*" ]
+  defines = []
+  libs = []
+  sources = [
+    "engine/encoder_simulcast_proxy.cc",
+    "engine/encoder_simulcast_proxy.h",
+  ]
+  deps = [
+    ":rtc_simulcast_encoder_adapter",
+    "../:webrtc_common",
+    "../api/video:video_bitrate_allocation",
+    "../api/video:video_frame",
+    "../api/video_codecs:video_codecs_api",
+    "../modules/video_coding:video_codec_interface",
+  ]
+  if (!build_with_chromium && is_clang) {
+    # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
+    suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
+  }
+}
+
 rtc_static_library("rtc_internal_video_codecs") {
   visibility = [ "*" ]
   allow_poison = [ "software_video_codecs" ]
   defines = []
   libs = []
   deps = [
+    ":rtc_encoder_simulcast_proxy",
     ":rtc_h264_profile_id",
     ":rtc_simulcast_encoder_adapter",
     ":rtc_vp8_encoder_simulcast_proxy",
@@ -244,7 +267,8 @@
     "engine/scopedvideoencoder.h",
 
     # TODO(bugs.webrtc.org/7925): stop exporting this header once downstream
-    # targets depend on :rtc_vp8_encoder_simulcast_proxy directly.
+    # targets depend on :rtc_encoder_simulcast_proxy directly.
+    "engine/encoder_simulcast_proxy.h",
     "engine/vp8_encoder_simulcast_proxy.h",
     "engine/webrtcvideodecoderfactory.h",
     "engine/webrtcvideoencoderfactory.h",
@@ -591,6 +615,7 @@
       "base/videocapturer_unittest.cc",
       "base/videocommon_unittest.cc",
       "engine/apm_helpers_unittest.cc",
+      "engine/encoder_simulcast_proxy_unittest.cc",
       "engine/internaldecoderfactory_unittest.cc",
       "engine/multiplexcodecfactory_unittest.cc",
       "engine/nullwebrtcvideoengine_unittest.cc",
@@ -643,6 +668,7 @@
     }
 
     deps += [
+      ":rtc_encoder_simulcast_proxy",
       ":rtc_internal_video_codecs",
       ":rtc_media",
       ":rtc_media_base",