Move VideoEncoderConfig from api/ into video/config

This cl move VideoEncoderConfig from api/ to video/config.

VideoStreamEncoderInterface and VideoStreamEncoderObserver
are moved as collateral.

brandt@ think that the reason these were in api/ in the
first place had to downstream project.

Functionality wise, this is a NOP, but it makes it easier
to modify the encoder (config).

Bug: webrtc:14451
Change-Id: I2610d815aeb186298498e7102cac773ecac8cd36
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/277002
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38242}
diff --git a/video/config/BUILD.gn b/video/config/BUILD.gn
index be76be9..11871b8 100644
--- a/video/config/BUILD.gn
+++ b/video/config/BUILD.gn
@@ -17,6 +17,7 @@
   ]
 
   deps = [
+    ":encoder_config",
     "../../api:field_trials_view",
     "../../api/transport:field_trial_based_config",
     "../../api/units:data_rate",
@@ -40,6 +41,29 @@
   ]
 }
 
+rtc_library("encoder_config") {
+  sources = [
+    "video_encoder_config.cc",
+    "video_encoder_config.h",
+  ]
+
+  deps = [
+    "../../api:scoped_refptr",
+    "../../api/video:resolution",
+    "../../api/video_codecs:scalability_mode",
+    "../../api/video_codecs:video_codecs_api",
+    "../../rtc_base:checks",
+    "../../rtc_base:refcount",
+    "../../rtc_base:stringutils",
+  ]
+  absl_deps = [
+    "//third_party/abseil-cpp/absl/algorithm:container",
+    "//third_party/abseil-cpp/absl/memory",
+    "//third_party/abseil-cpp/absl/strings",
+    "//third_party/abseil-cpp/absl/types:optional",
+  ]
+}
+
 if (rtc_include_tests) {
   rtc_library("video_config_tests") {
     testonly = true
@@ -66,8 +90,3 @@
     }
   }
 }
-
-rtc_library("encoder_config") {
-  sources = [ "video_encoder_config.h" ]
-  deps = [ "../../api/video_codecs:video_codecs_api" ]
-}