Move ACD settings generator to api/video/corruption_detection

This moves the corruption_detection_settings_generator files from
modules/video_coding/utility to api/video/corruption_detection so to
facilitate external reuse.

Bug: webrtc:358039777
Change-Id: I968fd413203a768bfa885bcda7764a7ceedb2976
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/422964
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#46121}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index c02971a..d3e8597 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -1790,6 +1790,7 @@
       "video:rtp_video_frame_assembler_unittests",
       "video:video_frame",
       "video:video_frame_metadata_unittest",
+      "video/corruption_detection:corruption_detection_unittests",
       "video/corruption_detection:frame_instrumentation_data_reader_unittest",
       "video/corruption_detection:frame_instrumentation_data_unittest",
       "video/corruption_detection:frame_instrumentation_evaluation_unittest",
diff --git a/api/video/corruption_detection/BUILD.gn b/api/video/corruption_detection/BUILD.gn
index a5785c2..a409ee5 100644
--- a/api/video/corruption_detection/BUILD.gn
+++ b/api/video/corruption_detection/BUILD.gn
@@ -8,6 +8,18 @@
 
 import("../../../webrtc.gni")
 
+rtc_library("corruption_detection_settings_generator") {
+  visibility = [ "*" ]
+  sources = [
+    "corruption_detection_settings_generator.cc",
+    "corruption_detection_settings_generator.h",
+  ]
+  deps = [
+    ":filter_settings",
+    "../../../rtc_base:checks",
+  ]
+}
+
 rtc_source_set("filter_settings") {
   visibility = [ "*" ]
   sources = [ "corruption_detection_filter_settings.h" ]
@@ -88,6 +100,17 @@
 }
 
 if (rtc_include_tests) {
+  rtc_library("corruption_detection_unittests") {
+    testonly = true
+    sources = [ "corruption_detection_settings_generator_unittest.cc" ]
+    deps = [
+      ":corruption_detection_settings_generator",
+      ":filter_settings",
+      "../../:field_trials",
+      "../../../test:test_support",
+    ]
+  }
+
   rtc_library("frame_instrumentation_data_unittest") {
     testonly = true
     sources = [ "frame_instrumentation_data_unittest.cc" ]
diff --git a/modules/video_coding/utility/corruption_detection_settings_generator.cc b/api/video/corruption_detection/corruption_detection_settings_generator.cc
similarity index 96%
rename from modules/video_coding/utility/corruption_detection_settings_generator.cc
rename to api/video/corruption_detection/corruption_detection_settings_generator.cc
index 0666c3e..5d9314e 100644
--- a/modules/video_coding/utility/corruption_detection_settings_generator.cc
+++ b/api/video/corruption_detection/corruption_detection_settings_generator.cc
@@ -1,5 +1,5 @@
 /*
- *  Copyright (c) 2024 The WebRTC project authors. All Rights Reserved.
+ *  Copyright (c) 2025 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
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "modules/video_coding/utility/corruption_detection_settings_generator.h"
+#include "api/video/corruption_detection/corruption_detection_settings_generator.h"
 
 #include <algorithm>
 #include <cmath>
diff --git a/modules/video_coding/utility/corruption_detection_settings_generator.h b/api/video/corruption_detection/corruption_detection_settings_generator.h
similarity index 90%
rename from modules/video_coding/utility/corruption_detection_settings_generator.h
rename to api/video/corruption_detection/corruption_detection_settings_generator.h
index ab71a60..acd28bb 100644
--- a/modules/video_coding/utility/corruption_detection_settings_generator.h
+++ b/api/video/corruption_detection/corruption_detection_settings_generator.h
@@ -1,5 +1,5 @@
 /*
- *  Copyright (c) 2024 The WebRTC project authors. All Rights Reserved.
+ *  Copyright (c) 2025 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
@@ -8,8 +8,8 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#ifndef MODULES_VIDEO_CODING_UTILITY_CORRUPTION_DETECTION_SETTINGS_GENERATOR_H_
-#define MODULES_VIDEO_CODING_UTILITY_CORRUPTION_DETECTION_SETTINGS_GENERATOR_H_
+#ifndef API_VIDEO_CORRUPTION_DETECTION_CORRUPTION_DETECTION_SETTINGS_GENERATOR_H_
+#define API_VIDEO_CORRUPTION_DETECTION_CORRUPTION_DETECTION_SETTINGS_GENERATOR_H_
 
 #include <optional>
 #include <variant>
@@ -89,4 +89,4 @@
 
 }  // namespace webrtc
 
-#endif  // MODULES_VIDEO_CODING_UTILITY_CORRUPTION_DETECTION_SETTINGS_GENERATOR_H_
+#endif  // API_VIDEO_CORRUPTION_DETECTION_CORRUPTION_DETECTION_SETTINGS_GENERATOR_H_
diff --git a/modules/video_coding/utility/corruption_detection_settings_generator_unittest.cc b/api/video/corruption_detection/corruption_detection_settings_generator_unittest.cc
similarity index 98%
rename from modules/video_coding/utility/corruption_detection_settings_generator_unittest.cc
rename to api/video/corruption_detection/corruption_detection_settings_generator_unittest.cc
index ce56cb0..33a8568 100644
--- a/modules/video_coding/utility/corruption_detection_settings_generator_unittest.cc
+++ b/api/video/corruption_detection/corruption_detection_settings_generator_unittest.cc
@@ -1,5 +1,5 @@
 /*
- *  Copyright (c) 2024 The WebRTC project authors. All Rights Reserved.
+ *  Copyright (c) 2025 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
@@ -8,7 +8,7 @@
  *  be found in the AUTHORS file in the root of the source tree.
  */
 
-#include "modules/video_coding/utility/corruption_detection_settings_generator.h"
+#include "api/video/corruption_detection/corruption_detection_settings_generator.h"
 
 #include "api/video/corruption_detection/corruption_detection_filter_settings.h"
 #include "test/gmock.h"
diff --git a/modules/video_coding/BUILD.gn b/modules/video_coding/BUILD.gn
index 7a77e63..95d8f1f 100644
--- a/modules/video_coding/BUILD.gn
+++ b/modules/video_coding/BUILD.gn
@@ -406,8 +406,6 @@
   sources = [
     "utility/bandwidth_quality_scaler.cc",
     "utility/bandwidth_quality_scaler.h",
-    "utility/corruption_detection_settings_generator.cc",
-    "utility/corruption_detection_settings_generator.h",
     "utility/decoded_frames_history.cc",
     "utility/decoded_frames_history.h",
     "utility/frame_dropper.cc",
@@ -453,6 +451,7 @@
     "../../api/video:video_codec_constants",
     "../../api/video:video_frame",
     "../../api/video:video_frame_type",
+    "../../api/video/corruption_detection:corruption_detection_settings_generator",
     "../../api/video/corruption_detection:filter_settings",
     "../../api/video_codecs:video_codecs_api",
     "../../common_video",
@@ -627,6 +626,7 @@
     "../../api/video:video_frame",
     "../../api/video:video_frame_type",
     "../../api/video:video_rtp_headers",
+    "../../api/video/corruption_detection:corruption_detection_settings_generator",
     "../../api/video_codecs:encoder_speed_controller_factory",
     "../../api/video_codecs:scalability_mode",
     "../../api/video_codecs:video_codecs_api",
@@ -1243,7 +1243,6 @@
       "rtp_vp8_ref_finder_unittest.cc",
       "rtp_vp9_ref_finder_unittest.cc",
       "utility/bandwidth_quality_scaler_unittest.cc",
-      "utility/corruption_detection_settings_generator_unittest.cc",
       "utility/decoded_frames_history_unittest.cc",
       "utility/encoder_speed_controller_impl_unittest.cc",
       "utility/frame_dropper_unittest.cc",
@@ -1330,6 +1329,7 @@
       "../../api/video:video_frame",
       "../../api/video:video_frame_type",
       "../../api/video:video_rtp_headers",
+      "../../api/video/corruption_detection:corruption_detection_unittests",
       "../../api/video/corruption_detection:filter_settings",
       "../../api/video/corruption_detection:frame_instrumentation_data",
       "../../api/video_codecs:scalability_mode",
diff --git a/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.cc b/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.cc
index 06bc5df..19c463c 100644
--- a/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.cc
+++ b/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.cc
@@ -29,6 +29,7 @@
 #include "api/scoped_refptr.h"
 #include "api/units/time_delta.h"
 #include "api/units/timestamp.h"
+#include "api/video/corruption_detection/corruption_detection_settings_generator.h"
 #include "api/video/encoded_image.h"
 #include "api/video/render_resolution.h"
 #include "api/video/video_bitrate_allocation.h"
@@ -51,7 +52,6 @@
 #include "modules/video_coding/codecs/vp8/vp8_scalability.h"
 #include "modules/video_coding/include/video_codec_interface.h"
 #include "modules/video_coding/include/video_error_codes.h"
-#include "modules/video_coding/utility/corruption_detection_settings_generator.h"
 #include "modules/video_coding/utility/simulcast_rate_allocator.h"
 #include "modules/video_coding/utility/simulcast_utility.h"
 #include "modules/video_coding/utility/vp8_constants.h"
diff --git a/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.h b/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.h
index 2eae9d4..ec2def9 100644
--- a/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.h
+++ b/modules/video_coding/codecs/vp8/libvpx_vp8_encoder.h
@@ -22,6 +22,7 @@
 #include "api/scoped_refptr.h"
 #include "api/units/time_delta.h"
 #include "api/units/timestamp.h"
+#include "api/video/corruption_detection/corruption_detection_settings_generator.h"
 #include "api/video/encoded_image.h"
 #include "api/video/video_frame.h"
 #include "api/video/video_frame_buffer.h"
@@ -33,7 +34,6 @@
 #include "modules/video_coding/codecs/interface/libvpx_interface.h"
 #include "modules/video_coding/codecs/vp8/include/vp8.h"
 #include "modules/video_coding/include/video_codec_interface.h"
-#include "modules/video_coding/utility/corruption_detection_settings_generator.h"
 #include "modules/video_coding/utility/frame_sampler.h"
 #include "modules/video_coding/utility/framerate_controller_deprecated.h"
 #include "rtc_base/experiments/encoder_info_settings.h"