Export symbols needed by the Chromium component build (part 1).

This CL uses RTC_EXPORT (defined in rtc_base/system/rtc_export.h)
to mark WebRTC symbols as visible from a shared library, this doesn't
mean these symbols are part of the public API (please continue to refer
to [1] for info about what is considered public WebRTC API).

[1] - https://webrtc.googlesource.com/src/+/HEAD/native-api.md

Bug: webrtc:9419
Change-Id: I802abd32874d42d3aa5ecd3c8022e7cf5e043d99
Reviewed-on: https://webrtc-review.googlesource.com/c/103505
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24969}
diff --git a/modules/audio_processing/BUILD.gn b/modules/audio_processing/BUILD.gn
index 84b8906..42184c1 100644
--- a/modules/audio_processing/BUILD.gn
+++ b/modules/audio_processing/BUILD.gn
@@ -119,6 +119,7 @@
     "../../rtc_base:safe_minmax",
     "../../rtc_base:sanitizer",
     "../../rtc_base/system:arch",
+    "../../rtc_base/system:rtc_export",
     "../../system_wrappers:cpu_features_api",
     "../../system_wrappers:field_trial",
     "../../system_wrappers:metrics",
@@ -166,6 +167,7 @@
     "include/audio_processing_statistics.h",
   ]
   deps = [
+    "../../rtc_base/system:rtc_export",
     "//third_party/abseil-cpp/absl/types:optional",
   ]
 }
diff --git a/modules/audio_processing/aec_dump/BUILD.gn b/modules/audio_processing/aec_dump/BUILD.gn
index e5fee3e..5b55526 100644
--- a/modules/audio_processing/aec_dump/BUILD.gn
+++ b/modules/audio_processing/aec_dump/BUILD.gn
@@ -17,6 +17,7 @@
   deps = [
     "../",
     "../../../rtc_base:rtc_base_approved",
+    "../../../rtc_base/system:rtc_export",
   ]
 }
 
diff --git a/modules/audio_processing/aec_dump/aec_dump_factory.h b/modules/audio_processing/aec_dump/aec_dump_factory.h
index e3f00f6..1e55d59 100644
--- a/modules/audio_processing/aec_dump/aec_dump_factory.h
+++ b/modules/audio_processing/aec_dump/aec_dump_factory.h
@@ -16,6 +16,7 @@
 
 #include "modules/audio_processing/include/aec_dump.h"
 #include "rtc_base/platform_file.h"
+#include "rtc_base/system/rtc_export.h"
 
 namespace rtc {
 class TaskQueue;
@@ -23,7 +24,7 @@
 
 namespace webrtc {
 
-class AecDumpFactory {
+class RTC_EXPORT AecDumpFactory {
  public:
   // The |worker_queue| may not be null and must outlive the created
   // AecDump instance. |max_log_size_bytes == -1| means the log size
diff --git a/modules/audio_processing/include/audio_processing.h b/modules/audio_processing/include/audio_processing.h
index 9d0c65e..868a66f 100644
--- a/modules/audio_processing/include/audio_processing.h
+++ b/modules/audio_processing/include/audio_processing.h
@@ -34,6 +34,7 @@
 #include "rtc_base/platform_file.h"
 #include "rtc_base/refcount.h"
 #include "rtc_base/scoped_ref_ptr.h"
+#include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
 
@@ -554,7 +555,7 @@
     float minimum_ = 0.0f;  // Long-term minimum.
   };
 
-  struct AudioProcessingStatistics {
+  struct RTC_EXPORT AudioProcessingStatistics {
     AudioProcessingStatistics();
     AudioProcessingStatistics(const AudioProcessingStatistics& other);
     ~AudioProcessingStatistics();
@@ -653,7 +654,7 @@
   static const int kChunkSizeMs = 10;
 };
 
-class AudioProcessingBuilder {
+class RTC_EXPORT AudioProcessingBuilder {
  public:
   AudioProcessingBuilder();
   ~AudioProcessingBuilder();
diff --git a/modules/audio_processing/include/audio_processing_statistics.h b/modules/audio_processing/include/audio_processing_statistics.h
index 237d23c..2318bad 100644
--- a/modules/audio_processing/include/audio_processing_statistics.h
+++ b/modules/audio_processing/include/audio_processing_statistics.h
@@ -12,11 +12,12 @@
 #define MODULES_AUDIO_PROCESSING_INCLUDE_AUDIO_PROCESSING_STATISTICS_H_
 
 #include "absl/types/optional.h"
+#include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
 // This version of the stats uses Optionals, it will replace the regular
 // AudioProcessingStatistics struct.
-struct AudioProcessingStats {
+struct RTC_EXPORT AudioProcessingStats {
   AudioProcessingStats();
   AudioProcessingStats(const AudioProcessingStats& other);
   ~AudioProcessingStats();
diff --git a/modules/audio_processing/include/config.h b/modules/audio_processing/include/config.h
index 398aab6..e77d3fd 100644
--- a/modules/audio_processing/include/config.h
+++ b/modules/audio_processing/include/config.h
@@ -14,6 +14,7 @@
 #include <map>
 
 #include "rtc_base/constructormagic.h"
+#include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
 
@@ -57,7 +58,7 @@
 //    config.Set<Algo1_CostFunction>(new SqrCost());
 //
 // Note: This class is thread-compatible (like STL containers).
-class Config {
+class RTC_EXPORT Config {
  public:
   // Returns the option if set or a default constructed one.
   // Callers that access options too often are encouraged to cache the result.
diff --git a/modules/audio_processing/typing_detection.h b/modules/audio_processing/typing_detection.h
index 70fd903..d8fb359 100644
--- a/modules/audio_processing/typing_detection.h
+++ b/modules/audio_processing/typing_detection.h
@@ -11,9 +11,11 @@
 #ifndef MODULES_AUDIO_PROCESSING_TYPING_DETECTION_H_
 #define MODULES_AUDIO_PROCESSING_TYPING_DETECTION_H_
 
+#include "rtc_base/system/rtc_export.h"
+
 namespace webrtc {
 
-class TypingDetection {
+class RTC_EXPORT TypingDetection {
  public:
   TypingDetection();
   virtual ~TypingDetection();