Adding missing RTC_EXPORT for component build.

Bug: webrtc:9419
Change-Id: Ifa5d21edc708b5012b71e2e5101e10c6352a7218
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/157162
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29533}
diff --git a/api/audio_codecs/isac/BUILD.gn b/api/audio_codecs/isac/BUILD.gn
index 719aee6..469176f 100644
--- a/api/audio_codecs/isac/BUILD.gn
+++ b/api/audio_codecs/isac/BUILD.gn
@@ -79,6 +79,7 @@
     "..:audio_codecs_api",
     "../../../modules/audio_coding:isac_fix",
     "../../../rtc_base:rtc_base_approved",
+    "../../../rtc_base/system:rtc_export",
     "//third_party/abseil-cpp/absl/strings",
     "//third_party/abseil-cpp/absl/types:optional",
   ]
@@ -95,6 +96,7 @@
     "..:audio_codecs_api",
     "../../../modules/audio_coding:isac_fix",
     "../../../rtc_base:rtc_base_approved",
+    "../../../rtc_base/system:rtc_export",
     "//third_party/abseil-cpp/absl/strings",
     "//third_party/abseil-cpp/absl/types:optional",
   ]
diff --git a/api/audio_codecs/isac/audio_decoder_isac_fix.h b/api/audio_codecs/isac/audio_decoder_isac_fix.h
index b7a5cef..200914a 100644
--- a/api/audio_codecs/isac/audio_decoder_isac_fix.h
+++ b/api/audio_codecs/isac/audio_decoder_isac_fix.h
@@ -18,12 +18,13 @@
 #include "api/audio_codecs/audio_codec_pair_id.h"
 #include "api/audio_codecs/audio_decoder.h"
 #include "api/audio_codecs/audio_format.h"
+#include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
 
 // iSAC decoder API (fixed-point implementation) for use as a template
 // parameter to CreateAudioDecoderFactory<...>().
-struct AudioDecoderIsacFix {
+struct RTC_EXPORT AudioDecoderIsacFix {
   struct Config {};  // Empty---no config values needed!
   static absl::optional<Config> SdpToConfig(const SdpAudioFormat& audio_format);
   static void AppendSupportedDecoders(std::vector<AudioCodecSpec>* specs);
diff --git a/api/audio_codecs/isac/audio_encoder_isac_fix.h b/api/audio_codecs/isac/audio_encoder_isac_fix.h
index c3c3672..9bedde5 100644
--- a/api/audio_codecs/isac/audio_encoder_isac_fix.h
+++ b/api/audio_codecs/isac/audio_encoder_isac_fix.h
@@ -18,12 +18,13 @@
 #include "api/audio_codecs/audio_codec_pair_id.h"
 #include "api/audio_codecs/audio_encoder.h"
 #include "api/audio_codecs/audio_format.h"
+#include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
 
 // iSAC encoder API (fixed-point implementation) for use as a template
 // parameter to CreateAudioEncoderFactory<...>().
-struct AudioEncoderIsacFix {
+struct RTC_EXPORT AudioEncoderIsacFix {
   struct Config {
     bool IsOk() const { return frame_size_ms == 30 || frame_size_ms == 60; }
     int frame_size_ms = 30;
diff --git a/api/video/encoded_image.h b/api/video/encoded_image.h
index 91f2e0f..32308c9 100644
--- a/api/video/encoded_image.h
+++ b/api/video/encoded_image.h
@@ -54,7 +54,7 @@
 };
 
 // Basic implementation of EncodedImageBufferInterface.
-class EncodedImageBuffer : public EncodedImageBufferInterface {
+class RTC_EXPORT EncodedImageBuffer : public EncodedImageBufferInterface {
  public:
   static rtc::scoped_refptr<EncodedImageBuffer> Create() { return Create(0); }
   static rtc::scoped_refptr<EncodedImageBuffer> Create(size_t size);
diff --git a/common_video/BUILD.gn b/common_video/BUILD.gn
index d77f4b8..d22e4fd 100644
--- a/common_video/BUILD.gn
+++ b/common_video/BUILD.gn
@@ -58,6 +58,7 @@
     "../rtc_base:checks",
     "../rtc_base:rtc_task_queue",
     "../rtc_base:safe_minmax",
+    "../rtc_base/system:rtc_export",
     "../system_wrappers:metrics",
     "//third_party/abseil-cpp/absl/types:optional",
     "//third_party/libyuv",
diff --git a/common_video/include/bitrate_adjuster.h b/common_video/include/bitrate_adjuster.h
index 8ede3f9..aea1872 100644
--- a/common_video/include/bitrate_adjuster.h
+++ b/common_video/include/bitrate_adjuster.h
@@ -17,6 +17,7 @@
 #include "absl/types/optional.h"
 #include "rtc_base/critical_section.h"
 #include "rtc_base/rate_statistics.h"
+#include "rtc_base/system/rtc_export.h"
 #include "rtc_base/thread_annotations.h"
 
 namespace webrtc {
@@ -24,7 +25,7 @@
 // Certain hardware encoders tend to consistently overshoot the bitrate that
 // they are configured to encode at. This class estimates an adjusted bitrate
 // that when set on the encoder will produce the desired bitrate.
-class BitrateAdjuster {
+class RTC_EXPORT BitrateAdjuster {
  public:
   // min_adjusted_bitrate_pct and max_adjusted_bitrate_pct are the lower and
   // upper bound outputted adjusted bitrates as a percentage of the target
diff --git a/common_video/libyuv/include/webrtc_libyuv.h b/common_video/libyuv/include/webrtc_libyuv.h
index 408841e..ba17577 100644
--- a/common_video/libyuv/include/webrtc_libyuv.h
+++ b/common_video/libyuv/include/webrtc_libyuv.h
@@ -23,6 +23,7 @@
 #include "api/scoped_refptr.h"
 #include "api/video/video_frame.h"
 #include "api/video/video_frame_buffer.h"
+#include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
 
@@ -133,7 +134,7 @@
 // Helper class for directly converting and scaling NV12 to I420. The Y-plane
 // will be scaled directly to the I420 destination, which makes this faster
 // than separate NV12->I420 + I420->I420 scaling.
-class NV12ToI420Scaler {
+class RTC_EXPORT NV12ToI420Scaler {
  public:
   NV12ToI420Scaler();
   ~NV12ToI420Scaler();
diff --git a/modules/desktop_capture/BUILD.gn b/modules/desktop_capture/BUILD.gn
index b72bf7e..6b318b8 100644
--- a/modules/desktop_capture/BUILD.gn
+++ b/modules/desktop_capture/BUILD.gn
@@ -242,6 +242,7 @@
       "../../rtc_base:checks",
       "../../rtc_base:rtc_base_approved",
       "../../rtc_base/synchronization:rw_lock_wrapper",
+      "../../rtc_base/system:rtc_export",
       "../../sdk:helpers_objc",
     ]
     libs = [
diff --git a/modules/desktop_capture/mac/desktop_configuration.h b/modules/desktop_capture/mac/desktop_configuration.h
index 53a9081..d95957d 100644
--- a/modules/desktop_capture/mac/desktop_configuration.h
+++ b/modules/desktop_capture/mac/desktop_configuration.h
@@ -16,6 +16,7 @@
 #include <vector>
 
 #include "modules/desktop_capture/desktop_geometry.h"
+#include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
 
@@ -48,7 +49,7 @@
 typedef std::vector<MacDisplayConfiguration> MacDisplayConfigurations;
 
 // Describes the configuration of the whole desktop.
-struct MacDesktopConfiguration {
+struct RTC_EXPORT MacDesktopConfiguration {
   // Used to request bottom-up or top-down coordinates.
   enum Origin { BottomLeftOrigin, TopLeftOrigin };
 
diff --git a/rtc_base/BUILD.gn b/rtc_base/BUILD.gn
index 9f6f148..b643344 100644
--- a/rtc_base/BUILD.gn
+++ b/rtc_base/BUILD.gn
@@ -186,6 +186,7 @@
     ":checks",
     ":macromagic",
     ":platform_thread_types",
+    "system:rtc_export",
     "system:unused",
   ]
 }
diff --git a/rtc_base/critical_section.h b/rtc_base/critical_section.h
index a13721e..cf10463 100644
--- a/rtc_base/critical_section.h
+++ b/rtc_base/critical_section.h
@@ -14,6 +14,7 @@
 #include "rtc_base/checks.h"
 #include "rtc_base/constructor_magic.h"
 #include "rtc_base/platform_thread_types.h"
+#include "rtc_base/system/rtc_export.h"
 #include "rtc_base/thread_annotations.h"
 
 #if defined(WEBRTC_WIN)
@@ -45,7 +46,7 @@
 // Locking methods (Enter, TryEnter, Leave)are const to permit protecting
 // members inside a const context without requiring mutable CriticalSections
 // everywhere. CriticalSection is reentrant lock.
-class RTC_LOCKABLE CriticalSection {
+class RTC_LOCKABLE RTC_EXPORT CriticalSection {
  public:
   CriticalSection();
   ~CriticalSection();
diff --git a/rtc_base/rate_statistics.h b/rtc_base/rate_statistics.h
index a423654..65b5fa1 100644
--- a/rtc_base/rate_statistics.h
+++ b/rtc_base/rate_statistics.h
@@ -17,10 +17,11 @@
 #include <memory>
 
 #include "absl/types/optional.h"
+#include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
 
-class RateStatistics {
+class RTC_EXPORT RateStatistics {
  public:
   static constexpr float kBpsScale = 8000.0f;