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

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: I67a4d016a11deca5ac5459826741dd2d3f7931d5
Reviewed-on: https://webrtc-review.googlesource.com/c/107400
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25298}
diff --git a/api/video_codecs/BUILD.gn b/api/video_codecs/BUILD.gn
index 3e07298..129336b 100644
--- a/api/video_codecs/BUILD.gn
+++ b/api/video_codecs/BUILD.gn
@@ -59,6 +59,7 @@
     ":video_codecs_api",
     "../../media:rtc_internal_video_codecs",
     "../../rtc_base:ptr_util",
+    "../../rtc_base/system:rtc_export",
     "//third_party/abseil-cpp/absl/memory",
   ]
 }
@@ -79,6 +80,7 @@
     "../../media:rtc_internal_video_codecs",
     "../../media:rtc_media_base",
     "../../rtc_base:ptr_util",
+    "../../rtc_base/system:rtc_export",
     "//third_party/abseil-cpp/absl/memory",
   ]
 }
diff --git a/api/video_codecs/builtin_video_decoder_factory.h b/api/video_codecs/builtin_video_decoder_factory.h
index 1f8e75c..d516077 100644
--- a/api/video_codecs/builtin_video_decoder_factory.h
+++ b/api/video_codecs/builtin_video_decoder_factory.h
@@ -14,11 +14,13 @@
 #include <memory>
 
 #include "api/video_codecs/video_decoder_factory.h"
+#include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
 
 // Creates a new factory that can create the built-in types of video decoders.
-std::unique_ptr<VideoDecoderFactory> CreateBuiltinVideoDecoderFactory();
+RTC_EXPORT std::unique_ptr<VideoDecoderFactory>
+CreateBuiltinVideoDecoderFactory();
 
 }  // namespace webrtc
 
diff --git a/api/video_codecs/builtin_video_encoder_factory.h b/api/video_codecs/builtin_video_encoder_factory.h
index 6a6618f..2c45372 100644
--- a/api/video_codecs/builtin_video_encoder_factory.h
+++ b/api/video_codecs/builtin_video_encoder_factory.h
@@ -14,12 +14,14 @@
 #include <memory>
 
 #include "api/video_codecs/video_encoder_factory.h"
+#include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
 
 // Creates a new factory that can create the built-in types of video encoders.
 // The factory has simulcast support for VP8.
-std::unique_ptr<VideoEncoderFactory> CreateBuiltinVideoEncoderFactory();
+RTC_EXPORT std::unique_ptr<VideoEncoderFactory>
+CreateBuiltinVideoEncoderFactory();
 
 }  // namespace webrtc
 
diff --git a/api/video_codecs/sdp_video_format.h b/api/video_codecs/sdp_video_format.h
index c25b857..edb7819 100644
--- a/api/video_codecs/sdp_video_format.h
+++ b/api/video_codecs/sdp_video_format.h
@@ -14,11 +14,13 @@
 #include <map>
 #include <string>
 
+#include "rtc_base/system/rtc_export.h"
+
 namespace webrtc {
 
 // SDP specification for a single video codec.
 // NOTE: This class is still under development and may change without notice.
-struct SdpVideoFormat {
+struct RTC_EXPORT SdpVideoFormat {
   using Parameters = std::map<std::string, std::string>;
 
   explicit SdpVideoFormat(const std::string& name);
diff --git a/api/video_codecs/video_codec.h b/api/video_codecs/video_codec.h
index c5758a4..cbbb649 100644
--- a/api/video_codecs/video_codec.h
+++ b/api/video_codecs/video_codec.h
@@ -87,8 +87,8 @@
 };
 
 // Translates from name of codec to codec type and vice versa.
-const char* CodecTypeToPayloadString(VideoCodecType type);
-VideoCodecType PayloadStringToCodecType(const std::string& name);
+RTC_EXPORT const char* CodecTypeToPayloadString(VideoCodecType type);
+RTC_EXPORT VideoCodecType PayloadStringToCodecType(const std::string& name);
 
 union VideoCodecUnion {
   VideoCodecVP8 VP8;