Remove complexity parameter from video codec specific structs.

Now only using the complexity from the main VideoCodec settings.

Bug: webrtc:13694
Change-Id: I5a29df0fac0c0686bf5ea0b677f8946d23ef9888
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262762
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36912}
diff --git a/api/video_codecs/video_codec.cc b/api/video_codecs/video_codec.cc
index e807e4c..b4bc5b7 100644
--- a/api/video_codecs/video_codec.cc
+++ b/api/video_codecs/video_codec.cc
@@ -31,8 +31,7 @@
 }  // namespace
 
 bool VideoCodecVP8::operator==(const VideoCodecVP8& other) const {
-  return (complexity == other.complexity &&
-          numberOfTemporalLayers == other.numberOfTemporalLayers &&
+  return (numberOfTemporalLayers == other.numberOfTemporalLayers &&
           denoisingOn == other.denoisingOn &&
           automaticResizeOn == other.automaticResizeOn &&
           frameDroppingOn == other.frameDroppingOn &&
@@ -40,8 +39,7 @@
 }
 
 bool VideoCodecVP9::operator==(const VideoCodecVP9& other) const {
-  return (complexity == other.complexity &&
-          numberOfTemporalLayers == other.numberOfTemporalLayers &&
+  return (numberOfTemporalLayers == other.numberOfTemporalLayers &&
           denoisingOn == other.denoisingOn &&
           frameDroppingOn == other.frameDroppingOn &&
           keyFrameInterval == other.keyFrameInterval &&
@@ -74,7 +72,8 @@
       expect_encode_from_texture(false),
       timing_frame_thresholds({0, 0}),
       legacy_conference_mode(false),
-      codec_specific_() {}
+      codec_specific_(),
+      complexity_(VideoCodecComplexity::kComplexityNormal) {}
 
 VideoCodecVP8* VideoCodec::VP8() {
   RTC_DCHECK_EQ(codecType, kVideoCodecVP8);
@@ -140,17 +139,7 @@
 }
 
 VideoCodecComplexity VideoCodec::GetVideoEncoderComplexity() const {
-  if (complexity_.has_value()) {
-    return complexity_.value();
-  }
-  switch (codecType) {
-    case kVideoCodecVP8:
-      return VP8().complexity;
-    case kVideoCodecVP9:
-      return VP9().complexity;
-    default:
-      return VideoCodecComplexity::kComplexityNormal;
-  }
+  return complexity_;
 }
 
 void VideoCodec::SetVideoEncoderComplexity(
diff --git a/api/video_codecs/video_codec.h b/api/video_codecs/video_codec.h
index 51c0ed7..e0cdad9 100644
--- a/api/video_codecs/video_codec.h
+++ b/api/video_codecs/video_codec.h
@@ -43,7 +43,6 @@
   bool operator!=(const VideoCodecVP8& other) const {
     return !(*this == other);
   }
-  VideoCodecComplexity complexity;
   unsigned char numberOfTemporalLayers;
   bool denoisingOn;
   bool automaticResizeOn;
@@ -63,7 +62,6 @@
   bool operator!=(const VideoCodecVP9& other) const {
     return !(*this == other);
   }
-  VideoCodecComplexity complexity;
   unsigned char numberOfTemporalLayers;
   bool denoisingOn;
   bool frameDroppingOn;
@@ -181,7 +179,7 @@
   absl::optional<ScalabilityMode> scalability_mode_;
   // 'complexity_' indicates the CPU capability of the client. It's used to
   // determine encoder CPU complexity (e.g., cpu_used for VP8, VP9. and AV1).
-  absl::optional<VideoCodecComplexity> complexity_;
+  VideoCodecComplexity complexity_;
   // TODO(bugs.webrtc.org/6883): When unset, GetEnableFrameDrop checks the
   // codec-specific settings.
   absl::optional<bool> frame_drop_enabled_;
diff --git a/api/video_codecs/video_encoder.cc b/api/video_codecs/video_encoder.cc
index 6d61e5d..83c3291 100644
--- a/api/video_codecs/video_encoder.cc
+++ b/api/video_codecs/video_encoder.cc
@@ -45,7 +45,6 @@
   vp9_settings.numberOfSpatialLayers = 1;
   vp9_settings.flexibleMode = false;
   vp9_settings.interLayerPred = InterLayerPredMode::kOn;
-  vp9_settings.complexity = VideoCodecComplexity::kComplexityNormal;
 
   return vp9_settings;
 }