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}
This commit is contained in:
Mirko Bonadei
2018-10-03 16:44:10 +02:00
committed by Commit Bot
parent 4a72ba99a7
commit 9e24dcff16
34 changed files with 84 additions and 39 deletions

View File

@ -39,6 +39,9 @@ rtc_source_set("aec3_config") {
"echo_canceller3_config.cc", "echo_canceller3_config.cc",
"echo_canceller3_config.h", "echo_canceller3_config.h",
] ]
deps = [
"../../rtc_base/system:rtc_export",
]
} }
rtc_source_set("aec3_factory") { rtc_source_set("aec3_factory") {
@ -54,6 +57,7 @@ rtc_source_set("aec3_factory") {
":echo_control", ":echo_control",
"../../modules/audio_processing/aec3", "../../modules/audio_processing/aec3",
"../../rtc_base:rtc_base_approved", "../../rtc_base:rtc_base_approved",
"../../rtc_base/system:rtc_export",
"//third_party/abseil-cpp/absl/memory", "//third_party/abseil-cpp/absl/memory",
] ]
} }

View File

@ -13,10 +13,12 @@
#include <stddef.h> // size_t #include <stddef.h> // size_t
#include "rtc_base/system/rtc_export.h"
namespace webrtc { namespace webrtc {
// Configuration struct for EchoCanceller3 // Configuration struct for EchoCanceller3
struct EchoCanceller3Config { struct RTC_EXPORT EchoCanceller3Config {
EchoCanceller3Config(); EchoCanceller3Config();
EchoCanceller3Config(const EchoCanceller3Config& e); EchoCanceller3Config(const EchoCanceller3Config& e);
struct Delay { struct Delay {

View File

@ -15,10 +15,11 @@
#include "api/audio/echo_canceller3_config.h" #include "api/audio/echo_canceller3_config.h"
#include "api/audio/echo_control.h" #include "api/audio/echo_control.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc { namespace webrtc {
class EchoCanceller3Factory : public EchoControlFactory { class RTC_EXPORT EchoCanceller3Factory : public EchoControlFactory {
public: public:
// Factory producing EchoCanceller3 instances with the default configuration. // Factory producing EchoCanceller3 instances with the default configuration.
EchoCanceller3Factory(); EchoCanceller3Factory();

View File

@ -25,6 +25,7 @@ rtc_static_library("audio_encoder_L16") {
"../../../modules/audio_coding:pcm16b", "../../../modules/audio_coding:pcm16b",
"../../../rtc_base:rtc_base_approved", "../../../rtc_base:rtc_base_approved",
"../../../rtc_base:safe_minmax", "../../../rtc_base:safe_minmax",
"../../../rtc_base/system:rtc_export",
"//third_party/abseil-cpp/absl/memory", "//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/types:optional", "//third_party/abseil-cpp/absl/types:optional",
] ]

View File

@ -18,6 +18,7 @@
#include "api/audio_codecs/audio_codec_pair_id.h" #include "api/audio_codecs/audio_codec_pair_id.h"
#include "api/audio_codecs/audio_encoder.h" #include "api/audio_codecs/audio_encoder.h"
#include "api/audio_codecs/audio_format.h" #include "api/audio_codecs/audio_format.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc { namespace webrtc {
@ -25,7 +26,7 @@ namespace webrtc {
// CreateAudioEncoderFactory<...>(). // CreateAudioEncoderFactory<...>().
// //
// NOTE: This struct is still under development and may change without notice. // NOTE: This struct is still under development and may change without notice.
struct AudioEncoderL16 { struct RTC_EXPORT AudioEncoderL16 {
struct Config { struct Config {
bool IsOk() const { bool IsOk() const {
return (sample_rate_hz == 8000 || sample_rate_hz == 16000 || return (sample_rate_hz == 8000 || sample_rate_hz == 16000 ||

View File

@ -25,6 +25,7 @@ rtc_static_library("audio_encoder_g711") {
"../../../modules/audio_coding:g711", "../../../modules/audio_coding:g711",
"../../../rtc_base:rtc_base_approved", "../../../rtc_base:rtc_base_approved",
"../../../rtc_base:safe_minmax", "../../../rtc_base:safe_minmax",
"../../../rtc_base/system:rtc_export",
"//third_party/abseil-cpp/absl/memory", "//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/types:optional", "//third_party/abseil-cpp/absl/types:optional",
] ]

View File

@ -18,6 +18,7 @@
#include "api/audio_codecs/audio_codec_pair_id.h" #include "api/audio_codecs/audio_codec_pair_id.h"
#include "api/audio_codecs/audio_encoder.h" #include "api/audio_codecs/audio_encoder.h"
#include "api/audio_codecs/audio_format.h" #include "api/audio_codecs/audio_format.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc { namespace webrtc {
@ -25,7 +26,7 @@ namespace webrtc {
// CreateAudioEncoderFactory<...>(). // CreateAudioEncoderFactory<...>().
// //
// NOTE: This struct is still under development and may change without notice. // NOTE: This struct is still under development and may change without notice.
struct AudioEncoderG711 { struct RTC_EXPORT AudioEncoderG711 {
struct Config { struct Config {
enum class Type { kPcmU, kPcmA }; enum class Type { kPcmU, kPcmA };
bool IsOk() const { bool IsOk() const {

View File

@ -33,6 +33,7 @@ rtc_static_library("audio_encoder_g722") {
"../../../modules/audio_coding:g722", "../../../modules/audio_coding:g722",
"../../../rtc_base:rtc_base_approved", "../../../rtc_base:rtc_base_approved",
"../../../rtc_base:safe_minmax", "../../../rtc_base:safe_minmax",
"../../../rtc_base/system:rtc_export",
"//third_party/abseil-cpp/absl/memory", "//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/types:optional", "//third_party/abseil-cpp/absl/types:optional",
] ]

View File

@ -19,6 +19,7 @@
#include "api/audio_codecs/audio_encoder.h" #include "api/audio_codecs/audio_encoder.h"
#include "api/audio_codecs/audio_format.h" #include "api/audio_codecs/audio_format.h"
#include "api/audio_codecs/g722/audio_encoder_g722_config.h" #include "api/audio_codecs/g722/audio_encoder_g722_config.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc { namespace webrtc {
@ -26,7 +27,7 @@ namespace webrtc {
// CreateAudioEncoderFactory<...>(). // CreateAudioEncoderFactory<...>().
// //
// NOTE: This struct is still under development and may change without notice. // NOTE: This struct is still under development and may change without notice.
struct AudioEncoderG722 { struct RTC_EXPORT AudioEncoderG722 {
using Config = AudioEncoderG722Config; using Config = AudioEncoderG722Config;
static absl::optional<AudioEncoderG722Config> SdpToConfig( static absl::optional<AudioEncoderG722Config> SdpToConfig(
const SdpAudioFormat& audio_format); const SdpAudioFormat& audio_format);

View File

@ -131,6 +131,7 @@ rtc_static_library("audio_decoder_isac_float") {
"../../..:webrtc_common", "../../..:webrtc_common",
"../../../modules/audio_coding:isac", "../../../modules/audio_coding:isac",
"../../../rtc_base:rtc_base_approved", "../../../rtc_base:rtc_base_approved",
"../../../rtc_base/system:rtc_export",
"//third_party/abseil-cpp/absl/memory", "//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/types:optional", "//third_party/abseil-cpp/absl/types:optional",
] ]

View File

@ -18,6 +18,7 @@
#include "api/audio_codecs/audio_codec_pair_id.h" #include "api/audio_codecs/audio_codec_pair_id.h"
#include "api/audio_codecs/audio_decoder.h" #include "api/audio_codecs/audio_decoder.h"
#include "api/audio_codecs/audio_format.h" #include "api/audio_codecs/audio_format.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc { namespace webrtc {
@ -25,7 +26,7 @@ namespace webrtc {
// parameter to CreateAudioDecoderFactory<...>(). // parameter to CreateAudioDecoderFactory<...>().
// //
// NOTE: This struct is still under development and may change without notice. // NOTE: This struct is still under development and may change without notice.
struct AudioDecoderIsacFloat { struct RTC_EXPORT AudioDecoderIsacFloat {
struct Config { struct Config {
bool IsOk() const { bool IsOk() const {
return sample_rate_hz == 16000 || sample_rate_hz == 32000; return sample_rate_hz == 16000 || sample_rate_hz == 32000;

View File

@ -44,6 +44,7 @@ rtc_source_set("audio_encoder_opus") {
"..:audio_codecs_api", "..:audio_codecs_api",
"../../../modules/audio_coding:webrtc_opus", "../../../modules/audio_coding:webrtc_opus",
"../../../rtc_base:rtc_base_approved", "../../../rtc_base:rtc_base_approved",
"../../../rtc_base/system:rtc_export",
"//third_party/abseil-cpp/absl/types:optional", "//third_party/abseil-cpp/absl/types:optional",
] ]
} }
@ -60,6 +61,7 @@ rtc_static_library("audio_decoder_opus") {
"../../..:webrtc_common", "../../..:webrtc_common",
"../../../modules/audio_coding:webrtc_opus", "../../../modules/audio_coding:webrtc_opus",
"../../../rtc_base:rtc_base_approved", "../../../rtc_base:rtc_base_approved",
"../../../rtc_base/system:rtc_export",
"//third_party/abseil-cpp/absl/memory", "//third_party/abseil-cpp/absl/memory",
"//third_party/abseil-cpp/absl/types:optional", "//third_party/abseil-cpp/absl/types:optional",
] ]

View File

@ -18,6 +18,7 @@
#include "api/audio_codecs/audio_codec_pair_id.h" #include "api/audio_codecs/audio_codec_pair_id.h"
#include "api/audio_codecs/audio_decoder.h" #include "api/audio_codecs/audio_decoder.h"
#include "api/audio_codecs/audio_format.h" #include "api/audio_codecs/audio_format.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc { namespace webrtc {
@ -25,7 +26,7 @@ namespace webrtc {
// CreateAudioDecoderFactory<...>(). // CreateAudioDecoderFactory<...>().
// //
// NOTE: This struct is still under development and may change without notice. // NOTE: This struct is still under development and may change without notice.
struct AudioDecoderOpus { struct RTC_EXPORT AudioDecoderOpus {
struct Config { struct Config {
int num_channels; int num_channels;
}; };

View File

@ -19,6 +19,7 @@
#include "api/audio_codecs/audio_encoder.h" #include "api/audio_codecs/audio_encoder.h"
#include "api/audio_codecs/audio_format.h" #include "api/audio_codecs/audio_format.h"
#include "api/audio_codecs/opus/audio_encoder_opus_config.h" #include "api/audio_codecs/opus/audio_encoder_opus_config.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc { namespace webrtc {
@ -26,7 +27,7 @@ namespace webrtc {
// CreateAudioEncoderFactory<...>(). // CreateAudioEncoderFactory<...>().
// //
// NOTE: This struct is still under development and may change without notice. // NOTE: This struct is still under development and may change without notice.
struct AudioEncoderOpus { struct RTC_EXPORT AudioEncoderOpus {
using Config = AudioEncoderOpusConfig; using Config = AudioEncoderOpusConfig;
static absl::optional<AudioEncoderOpusConfig> SdpToConfig( static absl::optional<AudioEncoderOpusConfig> SdpToConfig(
const SdpAudioFormat& audio_format); const SdpAudioFormat& audio_format);

View File

@ -136,6 +136,7 @@ rtc_static_library("rtc_media_base") {
"../modules/audio_processing:audio_processing_statistics", "../modules/audio_processing:audio_processing_statistics",
"../rtc_base:rtc_base", "../rtc_base:rtc_base",
"../rtc_base:rtc_base_approved", "../rtc_base:rtc_base_approved",
"../rtc_base/system:rtc_export",
"../rtc_base/third_party/sigslot", "../rtc_base/third_party/sigslot",
"//third_party/abseil-cpp/absl/types:optional", "//third_party/abseil-cpp/absl/types:optional",
] ]

View File

@ -12,6 +12,7 @@
#define MEDIA_BASE_RTPUTILS_H_ #define MEDIA_BASE_RTPUTILS_H_
#include "rtc_base/byteorder.h" #include "rtc_base/byteorder.h"
#include "rtc_base/system/rtc_export.h"
namespace rtc { namespace rtc {
struct PacketTimeUpdateParams; struct PacketTimeUpdateParams;
@ -68,9 +69,9 @@ bool IsValidRtpRtcpPacketSize(bool rtcp, size_t size);
const char* RtpRtcpStringLiteral(bool rtcp); const char* RtpRtcpStringLiteral(bool rtcp);
// Verifies that a packet has a valid RTP header. // Verifies that a packet has a valid RTP header.
bool ValidateRtpHeader(const uint8_t* rtp, bool RTC_EXPORT ValidateRtpHeader(const uint8_t* rtp,
size_t length, size_t length,
size_t* header_length); size_t* header_length);
// Helper method which updates the absolute send time extension if present. // Helper method which updates the absolute send time extension if present.
bool UpdateRtpAbsSendTimeExtension(uint8_t* rtp, bool UpdateRtpAbsSendTimeExtension(uint8_t* rtp,
@ -80,10 +81,11 @@ bool UpdateRtpAbsSendTimeExtension(uint8_t* rtp,
// Applies specified |options| to the packet. It updates the absolute send time // Applies specified |options| to the packet. It updates the absolute send time
// extension header if it is present present then updates HMAC. // extension header if it is present present then updates HMAC.
bool ApplyPacketOptions(uint8_t* data, bool RTC_EXPORT
size_t length, ApplyPacketOptions(uint8_t* data,
const rtc::PacketTimeUpdateParams& packet_time_params, size_t length,
uint64_t time_us); const rtc::PacketTimeUpdateParams& packet_time_params,
uint64_t time_us);
} // namespace cricket } // namespace cricket

View File

@ -14,16 +14,18 @@
#include <cstddef> #include <cstddef>
#include <cstdint> #include <cstdint>
#include "rtc_base/system/rtc_export.h"
namespace cricket { namespace cricket {
struct PacketOptions; struct PacketOptions;
// Finds data location within a TURN Channel Message or TURN Send Indication // Finds data location within a TURN Channel Message or TURN Send Indication
// message. // message.
bool UnwrapTurnPacket(const uint8_t* packet, bool RTC_EXPORT UnwrapTurnPacket(const uint8_t* packet,
size_t packet_size, size_t packet_size,
size_t* content_position, size_t* content_position,
size_t* content_size); size_t* content_size);
} // namespace cricket } // namespace cricket

View File

@ -119,6 +119,7 @@ rtc_static_library("audio_processing") {
"../../rtc_base:safe_minmax", "../../rtc_base:safe_minmax",
"../../rtc_base:sanitizer", "../../rtc_base:sanitizer",
"../../rtc_base/system:arch", "../../rtc_base/system:arch",
"../../rtc_base/system:rtc_export",
"../../system_wrappers:cpu_features_api", "../../system_wrappers:cpu_features_api",
"../../system_wrappers:field_trial", "../../system_wrappers:field_trial",
"../../system_wrappers:metrics", "../../system_wrappers:metrics",
@ -166,6 +167,7 @@ rtc_source_set("audio_processing_statistics") {
"include/audio_processing_statistics.h", "include/audio_processing_statistics.h",
] ]
deps = [ deps = [
"../../rtc_base/system:rtc_export",
"//third_party/abseil-cpp/absl/types:optional", "//third_party/abseil-cpp/absl/types:optional",
] ]
} }

View File

@ -17,6 +17,7 @@ rtc_source_set("aec_dump") {
deps = [ deps = [
"../", "../",
"../../../rtc_base:rtc_base_approved", "../../../rtc_base:rtc_base_approved",
"../../../rtc_base/system:rtc_export",
] ]
} }

View File

@ -16,6 +16,7 @@
#include "modules/audio_processing/include/aec_dump.h" #include "modules/audio_processing/include/aec_dump.h"
#include "rtc_base/platform_file.h" #include "rtc_base/platform_file.h"
#include "rtc_base/system/rtc_export.h"
namespace rtc { namespace rtc {
class TaskQueue; class TaskQueue;
@ -23,7 +24,7 @@ class TaskQueue;
namespace webrtc { namespace webrtc {
class AecDumpFactory { class RTC_EXPORT AecDumpFactory {
public: public:
// The |worker_queue| may not be null and must outlive the created // The |worker_queue| may not be null and must outlive the created
// AecDump instance. |max_log_size_bytes == -1| means the log size // AecDump instance. |max_log_size_bytes == -1| means the log size

View File

@ -34,6 +34,7 @@
#include "rtc_base/platform_file.h" #include "rtc_base/platform_file.h"
#include "rtc_base/refcount.h" #include "rtc_base/refcount.h"
#include "rtc_base/scoped_ref_ptr.h" #include "rtc_base/scoped_ref_ptr.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc { namespace webrtc {
@ -554,7 +555,7 @@ class AudioProcessing : public rtc::RefCountInterface {
float minimum_ = 0.0f; // Long-term minimum. float minimum_ = 0.0f; // Long-term minimum.
}; };
struct AudioProcessingStatistics { struct RTC_EXPORT AudioProcessingStatistics {
AudioProcessingStatistics(); AudioProcessingStatistics();
AudioProcessingStatistics(const AudioProcessingStatistics& other); AudioProcessingStatistics(const AudioProcessingStatistics& other);
~AudioProcessingStatistics(); ~AudioProcessingStatistics();
@ -653,7 +654,7 @@ class AudioProcessing : public rtc::RefCountInterface {
static const int kChunkSizeMs = 10; static const int kChunkSizeMs = 10;
}; };
class AudioProcessingBuilder { class RTC_EXPORT AudioProcessingBuilder {
public: public:
AudioProcessingBuilder(); AudioProcessingBuilder();
~AudioProcessingBuilder(); ~AudioProcessingBuilder();

View File

@ -12,11 +12,12 @@
#define MODULES_AUDIO_PROCESSING_INCLUDE_AUDIO_PROCESSING_STATISTICS_H_ #define MODULES_AUDIO_PROCESSING_INCLUDE_AUDIO_PROCESSING_STATISTICS_H_
#include "absl/types/optional.h" #include "absl/types/optional.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc { namespace webrtc {
// This version of the stats uses Optionals, it will replace the regular // This version of the stats uses Optionals, it will replace the regular
// AudioProcessingStatistics struct. // AudioProcessingStatistics struct.
struct AudioProcessingStats { struct RTC_EXPORT AudioProcessingStats {
AudioProcessingStats(); AudioProcessingStats();
AudioProcessingStats(const AudioProcessingStats& other); AudioProcessingStats(const AudioProcessingStats& other);
~AudioProcessingStats(); ~AudioProcessingStats();

View File

@ -14,6 +14,7 @@
#include <map> #include <map>
#include "rtc_base/constructormagic.h" #include "rtc_base/constructormagic.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc { namespace webrtc {
@ -57,7 +58,7 @@ enum class ConfigOptionID {
// config.Set<Algo1_CostFunction>(new SqrCost()); // config.Set<Algo1_CostFunction>(new SqrCost());
// //
// Note: This class is thread-compatible (like STL containers). // Note: This class is thread-compatible (like STL containers).
class Config { class RTC_EXPORT Config {
public: public:
// Returns the option if set or a default constructed one. // Returns the option if set or a default constructed one.
// Callers that access options too often are encouraged to cache the result. // Callers that access options too often are encouraged to cache the result.

View File

@ -11,9 +11,11 @@
#ifndef MODULES_AUDIO_PROCESSING_TYPING_DETECTION_H_ #ifndef MODULES_AUDIO_PROCESSING_TYPING_DETECTION_H_
#define MODULES_AUDIO_PROCESSING_TYPING_DETECTION_H_ #define MODULES_AUDIO_PROCESSING_TYPING_DETECTION_H_
#include "rtc_base/system/rtc_export.h"
namespace webrtc { namespace webrtc {
class TypingDetection { class RTC_EXPORT TypingDetection {
public: public:
TypingDetection(); TypingDetection();
virtual ~TypingDetection(); virtual ~TypingDetection();

View File

@ -30,6 +30,7 @@ rtc_static_library("primitives") {
deps = [ deps = [
"../..:webrtc_common", "../..:webrtc_common",
"../../rtc_base:checks", "../../rtc_base:checks",
"../../rtc_base/system:rtc_export",
"//third_party/abseil-cpp/absl/memory", "//third_party/abseil-cpp/absl/memory",
] ]
@ -376,6 +377,7 @@ rtc_static_library("desktop_capture_generic") {
"../../rtc_base:rtc_base", # TODO(kjellander): Cleanup in bugs.webrtc.org/3806. "../../rtc_base:rtc_base", # TODO(kjellander): Cleanup in bugs.webrtc.org/3806.
"../../rtc_base/synchronization:rw_lock_wrapper", "../../rtc_base/synchronization:rw_lock_wrapper",
"../../rtc_base/system:arch", "../../rtc_base/system:arch",
"../../rtc_base/system:rtc_export",
"../../system_wrappers", "../../system_wrappers",
"../../system_wrappers:cpu_features_api", "../../system_wrappers:cpu_features_api",
"../../system_wrappers:metrics", "../../system_wrappers:metrics",

View File

@ -12,6 +12,7 @@
#define MODULES_DESKTOP_CAPTURE_CROPPED_DESKTOP_FRAME_H_ #define MODULES_DESKTOP_CAPTURE_CROPPED_DESKTOP_FRAME_H_
#include "modules/desktop_capture/desktop_frame.h" #include "modules/desktop_capture/desktop_frame.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc { namespace webrtc {
@ -20,9 +21,9 @@ namespace webrtc {
// |frame| should not be nullptr. |rect| is in |frame| coordinate, i.e. // |frame| should not be nullptr. |rect| is in |frame| coordinate, i.e.
// |frame|->top_left() does not impact the area of |rect|. // |frame|->top_left() does not impact the area of |rect|.
// Returns nullptr frame if |rect| is not contained by the bounds of |frame|. // Returns nullptr frame if |rect| is not contained by the bounds of |frame|.
std::unique_ptr<DesktopFrame> CreateCroppedDesktopFrame( std::unique_ptr<DesktopFrame> RTC_EXPORT
std::unique_ptr<DesktopFrame> frame, CreateCroppedDesktopFrame(std::unique_ptr<DesktopFrame> frame,
const DesktopRect& rect); const DesktopRect& rect);
} // namespace webrtc } // namespace webrtc

View File

@ -15,14 +15,15 @@
#include "modules/desktop_capture/desktop_capture_options.h" #include "modules/desktop_capture/desktop_capture_options.h"
#include "modules/desktop_capture/desktop_capturer.h" #include "modules/desktop_capture/desktop_capturer.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc { namespace webrtc {
// WindowCapturer implementation that uses a screen capturer to capture the // WindowCapturer implementation that uses a screen capturer to capture the
// whole screen and crops the video frame to the window area when the captured // whole screen and crops the video frame to the window area when the captured
// window is on top. // window is on top.
class CroppingWindowCapturer : public DesktopCapturer, class RTC_EXPORT CroppingWindowCapturer : public DesktopCapturer,
public DesktopCapturer::Callback { public DesktopCapturer::Callback {
public: public:
static std::unique_ptr<DesktopCapturer> CreateCapturer( static std::unique_ptr<DesktopCapturer> CreateCapturer(
const DesktopCaptureOptions& options); const DesktopCaptureOptions& options);

View File

@ -17,14 +17,16 @@
#include "modules/desktop_capture/desktop_capturer.h" #include "modules/desktop_capture/desktop_capturer.h"
#include "modules/desktop_capture/mouse_cursor_monitor.h" #include "modules/desktop_capture/mouse_cursor_monitor.h"
#include "rtc_base/constructormagic.h" #include "rtc_base/constructormagic.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc { namespace webrtc {
// A wrapper for DesktopCapturer that also captures mouse using specified // A wrapper for DesktopCapturer that also captures mouse using specified
// MouseCursorMonitor and renders it on the generated streams. // MouseCursorMonitor and renders it on the generated streams.
class DesktopAndCursorComposer : public DesktopCapturer, class RTC_EXPORT DesktopAndCursorComposer
public DesktopCapturer::Callback, : public DesktopCapturer,
public MouseCursorMonitor::Callback { public DesktopCapturer::Callback,
public MouseCursorMonitor::Callback {
public: public:
// Creates a new blender that captures mouse cursor using // Creates a new blender that captures mouse cursor using
// MouseCursorMonitor::Create(options) and renders it into the frames // MouseCursorMonitor::Create(options) and renders it into the frames

View File

@ -12,6 +12,7 @@
#include "rtc_base/constructormagic.h" #include "rtc_base/constructormagic.h"
#include "rtc_base/scoped_ref_ptr.h" #include "rtc_base/scoped_ref_ptr.h"
#include "rtc_base/system/rtc_export.h"
#if defined(USE_X11) #if defined(USE_X11)
#include "modules/desktop_capture/x11/shared_x_display.h" #include "modules/desktop_capture/x11/shared_x_display.h"
@ -26,7 +27,7 @@ namespace webrtc {
// An object that stores initialization parameters for screen and window // An object that stores initialization parameters for screen and window
// capturers. // capturers.
class DesktopCaptureOptions { class RTC_EXPORT DesktopCaptureOptions {
public: public:
// Returns instance of DesktopCaptureOptions with default parameters. On Linux // Returns instance of DesktopCaptureOptions with default parameters. On Linux
// also initializes X window connection. x_display() will be set to null if // also initializes X window connection. x_display() will be set to null if

View File

@ -22,6 +22,7 @@
#include "modules/desktop_capture/desktop_capture_types.h" #include "modules/desktop_capture/desktop_capture_types.h"
#include "modules/desktop_capture/desktop_frame.h" #include "modules/desktop_capture/desktop_frame.h"
#include "modules/desktop_capture/shared_memory.h" #include "modules/desktop_capture/shared_memory.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc { namespace webrtc {
@ -29,7 +30,7 @@ class DesktopCaptureOptions;
class DesktopFrame; class DesktopFrame;
// Abstract interface for screen and window capturers. // Abstract interface for screen and window capturers.
class DesktopCapturer { class RTC_EXPORT DesktopCapturer {
public: public:
enum class Result { enum class Result {
// The frame was captured successfully. // The frame was captured successfully.

View File

@ -18,13 +18,14 @@
#include "modules/desktop_capture/desktop_region.h" #include "modules/desktop_capture/desktop_region.h"
#include "modules/desktop_capture/shared_memory.h" #include "modules/desktop_capture/shared_memory.h"
#include "rtc_base/constructormagic.h" #include "rtc_base/constructormagic.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc { namespace webrtc {
const int kStandardDPI = 96; const int kStandardDPI = 96;
// DesktopFrame represents a video frame captured from the screen. // DesktopFrame represents a video frame captured from the screen.
class DesktopFrame { class RTC_EXPORT DesktopFrame {
public: public:
// DesktopFrame objects always hold RGBA data. // DesktopFrame objects always hold RGBA data.
static const int kBytesPerPixel = 4; static const int kBytesPerPixel = 4;
@ -135,7 +136,7 @@ class DesktopFrame {
}; };
// A DesktopFrame that stores data in the heap. // A DesktopFrame that stores data in the heap.
class BasicDesktopFrame : public DesktopFrame { class RTC_EXPORT BasicDesktopFrame : public DesktopFrame {
public: public:
explicit BasicDesktopFrame(DesktopSize size); explicit BasicDesktopFrame(DesktopSize size);

View File

@ -17,6 +17,7 @@
#include "modules/desktop_capture/desktop_capturer.h" #include "modules/desktop_capture/desktop_capturer.h"
#include "modules/desktop_capture/desktop_frame_generator.h" #include "modules/desktop_capture/desktop_frame_generator.h"
#include "modules/desktop_capture/shared_memory.h" #include "modules/desktop_capture/shared_memory.h"
#include "rtc_base/system/rtc_export.h"
namespace webrtc { namespace webrtc {
@ -31,7 +32,7 @@ namespace webrtc {
// Double buffering is guaranteed by the FrameGenerator. FrameGenerator // Double buffering is guaranteed by the FrameGenerator. FrameGenerator
// implements in desktop_frame_generator.h guarantee double buffering, they // implements in desktop_frame_generator.h guarantee double buffering, they
// creates a new instance of DesktopFrame each time. // creates a new instance of DesktopFrame each time.
class FakeDesktopCapturer : public DesktopCapturer { class RTC_EXPORT FakeDesktopCapturer : public DesktopCapturer {
public: public:
FakeDesktopCapturer(); FakeDesktopCapturer();
~FakeDesktopCapturer() override; ~FakeDesktopCapturer() override;

View File

@ -529,6 +529,7 @@ rtc_source_set("rtc_task_queue_api") {
deps = [ deps = [
":macromagic", ":macromagic",
":ptr_util", ":ptr_util",
"system:rtc_export",
"//third_party/abseil-cpp/absl/memory", "//third_party/abseil-cpp/absl/memory",
] ]
} }

View File

@ -18,6 +18,7 @@
#include "absl/memory/memory.h" #include "absl/memory/memory.h"
#include "rtc_base/constructormagic.h" #include "rtc_base/constructormagic.h"
#include "rtc_base/scoped_ref_ptr.h" #include "rtc_base/scoped_ref_ptr.h"
#include "rtc_base/system/rtc_export.h"
#include "rtc_base/thread_annotations.h" #include "rtc_base/thread_annotations.h"
namespace rtc { namespace rtc {
@ -150,7 +151,7 @@ static std::unique_ptr<QueuedTask> NewClosure(Closure&& closure,
// TaskQueue itself has been deleted or it may happen synchronously while the // TaskQueue itself has been deleted or it may happen synchronously while the
// TaskQueue instance is being deleted. This may vary from one OS to the next // TaskQueue instance is being deleted. This may vary from one OS to the next
// so assumptions about lifetimes of pending tasks should not be made. // so assumptions about lifetimes of pending tasks should not be made.
class RTC_LOCKABLE TaskQueue { class RTC_LOCKABLE RTC_EXPORT TaskQueue {
public: public:
// TaskQueue priority levels. On some platforms these will map to thread // TaskQueue priority levels. On some platforms these will map to thread
// priorities, on others such as Mac and iOS, GCD queue priorities. // priorities, on others such as Mac and iOS, GCD queue priorities.