mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-13 05:40:42 +01:00
Remove RTC_DISALLOW_COPY_AND_ASSIGN usages completely
Bug: webrtc:13555, webrtc:13082 Change-Id: Iff2cda6f516739419e97e975e03f77a98f74be03 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/249260 Reviewed-by: Harald Alvestrand <hta@webrtc.org> Reviewed-by: Artem Titov <titovartem@webrtc.org> Commit-Queue: (Daniel.L) Byoungchan Lee <daniel.l@hpcnt.com> Cr-Commit-Position: refs/heads/main@{#35805}
This commit is contained in:
parent
38c762c0ab
commit
5f0eb93d2a
77 changed files with 257 additions and 232 deletions
15
api/DEPS
15
api/DEPS
|
@ -112,14 +112,6 @@ specific_include_rules = {
|
||||||
"+rtc_base/ref_count.h",
|
"+rtc_base/ref_count.h",
|
||||||
],
|
],
|
||||||
|
|
||||||
"jsep_ice_candidate\.h": [
|
|
||||||
"+rtc_base/constructor_magic.h",
|
|
||||||
],
|
|
||||||
|
|
||||||
"jsep_session_description\.h": [
|
|
||||||
"+rtc_base/constructor_magic.h",
|
|
||||||
],
|
|
||||||
|
|
||||||
"media_stream_interface\.h": [
|
"media_stream_interface\.h": [
|
||||||
"+modules/audio_processing/include/audio_processing_statistics.h",
|
"+modules/audio_processing/include/audio_processing_statistics.h",
|
||||||
"+rtc_base/ref_count.h",
|
"+rtc_base/ref_count.h",
|
||||||
|
@ -156,7 +148,6 @@ specific_include_rules = {
|
||||||
],
|
],
|
||||||
|
|
||||||
"ref_counted_base\.h": [
|
"ref_counted_base\.h": [
|
||||||
"+rtc_base/constructor_magic.h",
|
|
||||||
"+rtc_base/ref_count.h",
|
"+rtc_base/ref_count.h",
|
||||||
"+rtc_base/ref_counter.h",
|
"+rtc_base/ref_counter.h",
|
||||||
],
|
],
|
||||||
|
@ -195,7 +186,6 @@ specific_include_rules = {
|
||||||
],
|
],
|
||||||
|
|
||||||
"stats_types\.h": [
|
"stats_types\.h": [
|
||||||
"+rtc_base/constructor_magic.h",
|
|
||||||
"+rtc_base/ref_count.h",
|
"+rtc_base/ref_count.h",
|
||||||
"+rtc_base/thread_checker.h",
|
"+rtc_base/thread_checker.h",
|
||||||
],
|
],
|
||||||
|
@ -204,17 +194,12 @@ specific_include_rules = {
|
||||||
"+rtc_base/ref_count.h",
|
"+rtc_base/ref_count.h",
|
||||||
],
|
],
|
||||||
|
|
||||||
"audio_frame\.h": [
|
|
||||||
"+rtc_base/constructor_magic.h",
|
|
||||||
],
|
|
||||||
|
|
||||||
"audio_mixer\.h": [
|
"audio_mixer\.h": [
|
||||||
"+rtc_base/ref_count.h",
|
"+rtc_base/ref_count.h",
|
||||||
],
|
],
|
||||||
|
|
||||||
"audio_decoder\.h": [
|
"audio_decoder\.h": [
|
||||||
"+rtc_base/buffer.h",
|
"+rtc_base/buffer.h",
|
||||||
"+rtc_base/constructor_magic.h",
|
|
||||||
],
|
],
|
||||||
|
|
||||||
"audio_decoder_factory\.h": [
|
"audio_decoder_factory\.h": [
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
#include "call/adaptation/video_source_restrictions.h"
|
#include "call/adaptation/video_source_restrictions.h"
|
||||||
#include "call/adaptation/video_stream_input_state.h"
|
#include "call/adaptation/video_stream_input_state.h"
|
||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/logging.h"
|
#include "rtc_base/logging.h"
|
||||||
#include "rtc_base/numerics/safe_conversions.h"
|
#include "rtc_base/numerics/safe_conversions.h"
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,6 @@
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
// Format conversion (remixing and resampling) for audio. Only simple remixing
|
// Format conversion (remixing and resampling) for audio. Only simple remixing
|
||||||
|
@ -35,6 +33,9 @@ class AudioConverter {
|
||||||
size_t dst_frames);
|
size_t dst_frames);
|
||||||
virtual ~AudioConverter() {}
|
virtual ~AudioConverter() {}
|
||||||
|
|
||||||
|
AudioConverter(const AudioConverter&) = delete;
|
||||||
|
AudioConverter& operator=(const AudioConverter&) = delete;
|
||||||
|
|
||||||
// Convert `src`, containing `src_size` samples, to `dst`, having a sample
|
// Convert `src`, containing `src_size` samples, to `dst`, having a sample
|
||||||
// capacity of `dst_capacity`. Both point to a series of buffers containing
|
// capacity of `dst_capacity`. Both point to a series of buffers containing
|
||||||
// the samples for each channel. The sizes must correspond to the format
|
// the samples for each channel. The sizes must correspond to the format
|
||||||
|
@ -64,8 +65,6 @@ class AudioConverter {
|
||||||
const size_t src_frames_;
|
const size_t src_frames_;
|
||||||
const size_t dst_channels_;
|
const size_t dst_channels_;
|
||||||
const size_t dst_frames_;
|
const size_t dst_frames_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(AudioConverter);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
#include "common_audio/resampler/sinc_resampler.h"
|
#include "common_audio/resampler/sinc_resampler.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
|
@ -33,6 +32,9 @@ class PushSincResampler : public SincResamplerCallback {
|
||||||
PushSincResampler(size_t source_frames, size_t destination_frames);
|
PushSincResampler(size_t source_frames, size_t destination_frames);
|
||||||
~PushSincResampler() override;
|
~PushSincResampler() override;
|
||||||
|
|
||||||
|
PushSincResampler(const PushSincResampler&) = delete;
|
||||||
|
PushSincResampler& operator=(const PushSincResampler&) = delete;
|
||||||
|
|
||||||
// Perform the resampling. `source_frames` must always equal the
|
// Perform the resampling. `source_frames` must always equal the
|
||||||
// `source_frames` provided at construction. `destination_capacity` must be
|
// `source_frames` provided at construction. `destination_capacity` must be
|
||||||
// at least as large as `destination_frames`. Returns the number of samples
|
// at least as large as `destination_frames`. Returns the number of samples
|
||||||
|
@ -72,8 +74,6 @@ class PushSincResampler : public SincResamplerCallback {
|
||||||
|
|
||||||
// Used to assert we are only requested for as much data as is available.
|
// Used to assert we are only requested for as much data as is available.
|
||||||
size_t source_available_;
|
size_t source_available_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(PushSincResampler);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/gtest_prod_util.h"
|
#include "rtc_base/gtest_prod_util.h"
|
||||||
#include "rtc_base/memory/aligned_malloc.h"
|
#include "rtc_base/memory/aligned_malloc.h"
|
||||||
#include "rtc_base/system/arch.h"
|
#include "rtc_base/system/arch.h"
|
||||||
|
@ -64,6 +63,9 @@ class SincResampler {
|
||||||
SincResamplerCallback* read_cb);
|
SincResamplerCallback* read_cb);
|
||||||
virtual ~SincResampler();
|
virtual ~SincResampler();
|
||||||
|
|
||||||
|
SincResampler(const SincResampler&) = delete;
|
||||||
|
SincResampler& operator=(const SincResampler&) = delete;
|
||||||
|
|
||||||
// Resample `frames` of data from `read_cb_` into `destination`.
|
// Resample `frames` of data from `read_cb_` into `destination`.
|
||||||
void Resample(size_t frames, float* destination);
|
void Resample(size_t frames, float* destination);
|
||||||
|
|
||||||
|
@ -172,8 +174,6 @@ class SincResampler {
|
||||||
float* const r2_;
|
float* const r2_;
|
||||||
float* r3_;
|
float* r3_;
|
||||||
float* r4_;
|
float* r4_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(SincResampler);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
#define COMMON_AUDIO_RESAMPLER_SINUSOIDAL_LINEAR_CHIRP_SOURCE_H_
|
#define COMMON_AUDIO_RESAMPLER_SINUSOIDAL_LINEAR_CHIRP_SOURCE_H_
|
||||||
|
|
||||||
#include "common_audio/resampler/sinc_resampler.h"
|
#include "common_audio/resampler/sinc_resampler.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
|
@ -33,6 +32,10 @@ class SinusoidalLinearChirpSource : public SincResamplerCallback {
|
||||||
|
|
||||||
~SinusoidalLinearChirpSource() override {}
|
~SinusoidalLinearChirpSource() override {}
|
||||||
|
|
||||||
|
SinusoidalLinearChirpSource(const SinusoidalLinearChirpSource&) = delete;
|
||||||
|
SinusoidalLinearChirpSource& operator=(const SinusoidalLinearChirpSource&) =
|
||||||
|
delete;
|
||||||
|
|
||||||
void Run(size_t frames, float* destination) override;
|
void Run(size_t frames, float* destination) override;
|
||||||
|
|
||||||
double Frequency(size_t position);
|
double Frequency(size_t position);
|
||||||
|
@ -46,8 +49,6 @@ class SinusoidalLinearChirpSource : public SincResamplerCallback {
|
||||||
double k_;
|
double k_;
|
||||||
size_t current_index_;
|
size_t current_index_;
|
||||||
double delay_samples_;
|
double delay_samples_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(SinusoidalLinearChirpSource);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
#include "examples/peerconnection/client/main_wnd.h"
|
#include "examples/peerconnection/client/main_wnd.h"
|
||||||
#include "examples/peerconnection/client/peer_connection_client.h"
|
#include "examples/peerconnection/client/peer_connection_client.h"
|
||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/ssl_adapter.h"
|
#include "rtc_base/ssl_adapter.h"
|
||||||
#include "rtc_base/string_utils.h" // For ToUtf8
|
#include "rtc_base/string_utils.h" // For ToUtf8
|
||||||
#include "rtc_base/win32_socket_init.h"
|
#include "rtc_base/win32_socket_init.h"
|
||||||
|
@ -40,6 +39,9 @@ class WindowsCommandLineArguments {
|
||||||
public:
|
public:
|
||||||
WindowsCommandLineArguments();
|
WindowsCommandLineArguments();
|
||||||
|
|
||||||
|
WindowsCommandLineArguments(const WindowsCommandLineArguments&) = delete;
|
||||||
|
WindowsCommandLineArguments& operator=(WindowsCommandLineArguments&) = delete;
|
||||||
|
|
||||||
int argc() { return argv_.size(); }
|
int argc() { return argv_.size(); }
|
||||||
char** argv() { return argv_.data(); }
|
char** argv() { return argv_.data(); }
|
||||||
|
|
||||||
|
@ -48,9 +50,6 @@ class WindowsCommandLineArguments {
|
||||||
std::vector<std::string> args_;
|
std::vector<std::string> args_;
|
||||||
// Pointers, to get layout compatible with char** argv.
|
// Pointers, to get layout compatible with char** argv.
|
||||||
std::vector<char*> argv_;
|
std::vector<char*> argv_;
|
||||||
|
|
||||||
private:
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(WindowsCommandLineArguments);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
WindowsCommandLineArguments::WindowsCommandLineArguments() {
|
WindowsCommandLineArguments::WindowsCommandLineArguments() {
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
#include "logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.h"
|
#include "logging/rtc_event_log/encoder/rtc_event_log_encoder_legacy.h"
|
||||||
#include "logging/rtc_event_log/encoder/rtc_event_log_encoder_new_format.h"
|
#include "logging/rtc_event_log/encoder/rtc_event_log_encoder_new_format.h"
|
||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/event.h"
|
#include "rtc_base/event.h"
|
||||||
#include "rtc_base/logging.h"
|
#include "rtc_base/logging.h"
|
||||||
#include "rtc_base/numerics/safe_conversions.h"
|
#include "rtc_base/numerics/safe_conversions.h"
|
||||||
|
|
|
@ -64,7 +64,9 @@ class VoiceEngineInterface : public RtpHeaderExtensionQueryInterface {
|
||||||
public:
|
public:
|
||||||
VoiceEngineInterface() = default;
|
VoiceEngineInterface() = default;
|
||||||
virtual ~VoiceEngineInterface() = default;
|
virtual ~VoiceEngineInterface() = default;
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(VoiceEngineInterface);
|
|
||||||
|
VoiceEngineInterface(const VoiceEngineInterface&) = delete;
|
||||||
|
VoiceEngineInterface& operator=(const VoiceEngineInterface&) = delete;
|
||||||
|
|
||||||
// Initialization
|
// Initialization
|
||||||
// Starts the engine.
|
// Starts the engine.
|
||||||
|
@ -98,7 +100,9 @@ class VideoEngineInterface : public RtpHeaderExtensionQueryInterface {
|
||||||
public:
|
public:
|
||||||
VideoEngineInterface() = default;
|
VideoEngineInterface() = default;
|
||||||
virtual ~VideoEngineInterface() = default;
|
virtual ~VideoEngineInterface() = default;
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(VideoEngineInterface);
|
|
||||||
|
VideoEngineInterface(const VideoEngineInterface&) = delete;
|
||||||
|
VideoEngineInterface& operator=(const VideoEngineInterface&) = delete;
|
||||||
|
|
||||||
// Creates a video media channel, paired with the specified voice channel.
|
// Creates a video media channel, paired with the specified voice channel.
|
||||||
// Returns NULL on failure.
|
// Returns NULL on failure.
|
||||||
|
|
|
@ -54,7 +54,6 @@
|
||||||
|
|
||||||
#include "absl/algorithm/container.h"
|
#include "absl/algorithm/container.h"
|
||||||
#include "media/base/rid_description.h"
|
#include "media/base/rid_description.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/unique_id_generator.h"
|
#include "rtc_base/unique_id_generator.h"
|
||||||
|
|
||||||
namespace cricket {
|
namespace cricket {
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
#include "api/video/video_source_interface.h"
|
#include "api/video/video_source_interface.h"
|
||||||
#include "common_video/framerate_controller.h"
|
#include "common_video/framerate_controller.h"
|
||||||
#include "media/base/video_common.h"
|
#include "media/base/video_common.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/synchronization/mutex.h"
|
#include "rtc_base/synchronization/mutex.h"
|
||||||
#include "rtc_base/system/rtc_export.h"
|
#include "rtc_base/system/rtc_export.h"
|
||||||
#include "rtc_base/thread_annotations.h"
|
#include "rtc_base/thread_annotations.h"
|
||||||
|
@ -38,6 +37,9 @@ class RTC_EXPORT VideoAdapter {
|
||||||
explicit VideoAdapter(int source_resolution_alignment);
|
explicit VideoAdapter(int source_resolution_alignment);
|
||||||
virtual ~VideoAdapter();
|
virtual ~VideoAdapter();
|
||||||
|
|
||||||
|
VideoAdapter(const VideoAdapter&) = delete;
|
||||||
|
VideoAdapter& operator=(const VideoAdapter&) = delete;
|
||||||
|
|
||||||
// Return the adapted resolution and cropping parameters given the
|
// Return the adapted resolution and cropping parameters given the
|
||||||
// input resolution. The input frame should first be cropped, then
|
// input resolution. The input frame should first be cropped, then
|
||||||
// scaled to the final output resolution. Returns true if the frame
|
// scaled to the final output resolution. Returns true if the frame
|
||||||
|
@ -146,8 +148,6 @@ class RTC_EXPORT VideoAdapter {
|
||||||
|
|
||||||
// The critical section to protect the above variables.
|
// The critical section to protect the above variables.
|
||||||
mutable webrtc::Mutex mutex_;
|
mutable webrtc::Mutex mutex_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(VideoAdapter);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace cricket
|
} // namespace cricket
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
|
|
||||||
#include "absl/types/optional.h"
|
#include "absl/types/optional.h"
|
||||||
#include "rtc_base/buffer.h"
|
#include "rtc_base/buffer.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/copy_on_write_buffer.h"
|
#include "rtc_base/copy_on_write_buffer.h"
|
||||||
#include "rtc_base/task_utils/pending_task_safety_flag.h"
|
#include "rtc_base/task_utils/pending_task_safety_flag.h"
|
||||||
#include "rtc_base/third_party/sigslot/sigslot.h"
|
#include "rtc_base/third_party/sigslot/sigslot.h"
|
||||||
|
@ -76,6 +75,9 @@ class UsrsctpTransport : public SctpTransportInternal,
|
||||||
rtc::PacketTransportInternal* transport);
|
rtc::PacketTransportInternal* transport);
|
||||||
~UsrsctpTransport() override;
|
~UsrsctpTransport() override;
|
||||||
|
|
||||||
|
UsrsctpTransport(const UsrsctpTransport&) = delete;
|
||||||
|
UsrsctpTransport& operator=(const UsrsctpTransport&) = delete;
|
||||||
|
|
||||||
// SctpTransportInternal overrides (see sctptransportinternal.h for comments).
|
// SctpTransportInternal overrides (see sctptransportinternal.h for comments).
|
||||||
void SetDtlsTransport(rtc::PacketTransportInternal* transport) override;
|
void SetDtlsTransport(rtc::PacketTransportInternal* transport) override;
|
||||||
bool Start(int local_port, int remote_port, int max_message_size) override;
|
bool Start(int local_port, int remote_port, int max_message_size) override;
|
||||||
|
@ -285,8 +287,6 @@ class UsrsctpTransport : public SctpTransportInternal,
|
||||||
uintptr_t id_ = 0;
|
uintptr_t id_ = 0;
|
||||||
|
|
||||||
friend class UsrsctpTransportMap;
|
friend class UsrsctpTransportMap;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(UsrsctpTransport);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class UsrsctpTransportMap;
|
class UsrsctpTransportMap;
|
||||||
|
|
|
@ -58,6 +58,9 @@ class SimulatedPacketTransport final : public rtc::PacketTransportInternal {
|
||||||
SignalWritableState(this);
|
SignalWritableState(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SimulatedPacketTransport(const SimulatedPacketTransport&) = delete;
|
||||||
|
SimulatedPacketTransport& operator=(const SimulatedPacketTransport&) = delete;
|
||||||
|
|
||||||
const std::string& transport_name() const override { return transport_name_; }
|
const std::string& transport_name() const override { return transport_name_; }
|
||||||
|
|
||||||
bool writable() const override { return destination_ != nullptr; }
|
bool writable() const override { return destination_ != nullptr; }
|
||||||
|
@ -129,7 +132,6 @@ class SimulatedPacketTransport final : public rtc::PacketTransportInternal {
|
||||||
std::atomic<SimulatedPacketTransport*> destination_ ATOMIC_VAR_INIT(nullptr);
|
std::atomic<SimulatedPacketTransport*> destination_ ATOMIC_VAR_INIT(nullptr);
|
||||||
webrtc::Random random_;
|
webrtc::Random random_;
|
||||||
webrtc::ScopedTaskSafety task_safety_;
|
webrtc::ScopedTaskSafety task_safety_;
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(SimulatedPacketTransport);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -156,6 +158,9 @@ class SctpDataSender final {
|
||||||
RTC_DCHECK(transport_);
|
RTC_DCHECK(transport_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SctpDataSender(const SctpDataSender&) = delete;
|
||||||
|
SctpDataSender& operator=(const SctpDataSender&) = delete;
|
||||||
|
|
||||||
void Start() {
|
void Start() {
|
||||||
thread_->PostTask(ToQueuedTask(task_safety_.flag(), [this] {
|
thread_->PostTask(ToQueuedTask(task_safety_.flag(), [this] {
|
||||||
if (started_) {
|
if (started_) {
|
||||||
|
@ -236,7 +241,6 @@ class SctpDataSender final {
|
||||||
std::atomic<uint64_t> num_bytes_sent_ ATOMIC_VAR_INIT(0);
|
std::atomic<uint64_t> num_bytes_sent_ ATOMIC_VAR_INIT(0);
|
||||||
absl::optional<std::string> last_error_;
|
absl::optional<std::string> last_error_;
|
||||||
webrtc::ScopedTaskSafetyDetached task_safety_;
|
webrtc::ScopedTaskSafetyDetached task_safety_;
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(SctpDataSender);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -251,6 +255,9 @@ class SctpDataReceiver final : public sigslot::has_slots<> {
|
||||||
: receiver_id_(receiver_id),
|
: receiver_id_(receiver_id),
|
||||||
target_messages_count_(target_messages_count) {}
|
target_messages_count_(target_messages_count) {}
|
||||||
|
|
||||||
|
SctpDataReceiver(const SctpDataReceiver&) = delete;
|
||||||
|
SctpDataReceiver& operator=(const SctpDataReceiver&) = delete;
|
||||||
|
|
||||||
void OnDataReceived(const cricket::ReceiveDataParams& params,
|
void OnDataReceived(const cricket::ReceiveDataParams& params,
|
||||||
const rtc::CopyOnWriteBuffer& data) {
|
const rtc::CopyOnWriteBuffer& data) {
|
||||||
num_bytes_received_ += data.size();
|
num_bytes_received_ += data.size();
|
||||||
|
@ -278,7 +285,6 @@ class SctpDataReceiver final : public sigslot::has_slots<> {
|
||||||
rtc::Event received_target_messages_count_{true, false};
|
rtc::Event received_target_messages_count_{true, false};
|
||||||
const uint32_t receiver_id_;
|
const uint32_t receiver_id_;
|
||||||
const uint64_t target_messages_count_;
|
const uint64_t target_messages_count_;
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(SctpDataReceiver);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -297,6 +303,9 @@ class ThreadPool final {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ThreadPool(const ThreadPool&) = delete;
|
||||||
|
ThreadPool& operator=(const ThreadPool&) = delete;
|
||||||
|
|
||||||
rtc::Thread* GetRandomThread() {
|
rtc::Thread* GetRandomThread() {
|
||||||
return threads_[random_.Rand(0U, threads_.size() - 1)].get();
|
return threads_[random_.Rand(0U, threads_.size() - 1)].get();
|
||||||
}
|
}
|
||||||
|
@ -304,7 +313,6 @@ class ThreadPool final {
|
||||||
private:
|
private:
|
||||||
webrtc::Random random_;
|
webrtc::Random random_;
|
||||||
std::vector<std::unique_ptr<rtc::Thread>> threads_;
|
std::vector<std::unique_ptr<rtc::Thread>> threads_;
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(ThreadPool);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -360,6 +368,9 @@ class SctpPingPong final {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SctpPingPong(const SctpPingPong&) = delete;
|
||||||
|
SctpPingPong& operator=(const SctpPingPong&) = delete;
|
||||||
|
|
||||||
bool Start() {
|
bool Start() {
|
||||||
CreateTwoConnectedSctpTransportsWithAllStreams();
|
CreateTwoConnectedSctpTransportsWithAllStreams();
|
||||||
|
|
||||||
|
@ -577,7 +588,6 @@ class SctpPingPong final {
|
||||||
const uint8_t packet_loss_percents_;
|
const uint8_t packet_loss_percents_;
|
||||||
const uint16_t avg_send_delay_millis_;
|
const uint16_t avg_send_delay_millis_;
|
||||||
const webrtc::SendDataParams send_params_;
|
const webrtc::SendDataParams send_params_;
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(SctpPingPong);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
|
|
||||||
#include "modules/audio_coding/audio_network_adaptor/controller.h"
|
#include "modules/audio_coding/audio_network_adaptor/controller.h"
|
||||||
#include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor.h"
|
#include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/ignore_wundef.h"
|
#include "rtc_base/ignore_wundef.h"
|
||||||
#include "rtc_base/system/file_wrapper.h"
|
#include "rtc_base/system/file_wrapper.h"
|
||||||
#if WEBRTC_ENABLE_PROTOBUF
|
#if WEBRTC_ENABLE_PROTOBUF
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "common_audio/vad/mock/mock_vad.h"
|
#include "common_audio/vad/mock/mock_vad.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/numerics/safe_conversions.h"
|
#include "rtc_base/numerics/safe_conversions.h"
|
||||||
#include "test/gtest.h"
|
#include "test/gtest.h"
|
||||||
#include "test/mock_audio_encoder.h"
|
#include "test/mock_audio_encoder.h"
|
||||||
|
@ -50,6 +49,9 @@ class AudioEncoderCngTest : public ::testing::Test {
|
||||||
EXPECT_CALL(*mock_encoder_, NumChannels()).WillRepeatedly(Return(1));
|
EXPECT_CALL(*mock_encoder_, NumChannels()).WillRepeatedly(Return(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AudioEncoderCngTest(const AudioEncoderCngTest&) = delete;
|
||||||
|
AudioEncoderCngTest& operator=(const AudioEncoderCngTest&) = delete;
|
||||||
|
|
||||||
void TearDown() override {
|
void TearDown() override {
|
||||||
EXPECT_CALL(*mock_vad_, Die()).Times(1);
|
EXPECT_CALL(*mock_vad_, Die()).Times(1);
|
||||||
cng_.reset();
|
cng_.reset();
|
||||||
|
@ -208,8 +210,6 @@ class AudioEncoderCngTest : public ::testing::Test {
|
||||||
rtc::Buffer encoded_;
|
rtc::Buffer encoded_;
|
||||||
AudioEncoder::EncodedInfo encoded_info_;
|
AudioEncoder::EncodedInfo encoded_info_;
|
||||||
int sample_rate_hz_;
|
int sample_rate_hz_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderCngTest);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
TEST_F(AudioEncoderCngTest, CreateAndDestroy) {
|
TEST_F(AudioEncoderCngTest, CreateAndDestroy) {
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
// This file provides macros for creating "symbol table" classes to simplify the
|
// This file provides macros for creating "symbol table" classes to simplify the
|
||||||
// dynamic loading of symbols from DLLs. Currently the implementation only
|
// dynamic loading of symbols from DLLs. Currently the implementation only
|
||||||
|
@ -55,6 +54,9 @@ class LateBindingSymbolTable {
|
||||||
|
|
||||||
~LateBindingSymbolTable() { Unload(); }
|
~LateBindingSymbolTable() { Unload(); }
|
||||||
|
|
||||||
|
LateBindingSymbolTable(const LateBindingSymbolTable&) = delete;
|
||||||
|
LateBindingSymbolTable& operator=(LateBindingSymbolTable&) = delete;
|
||||||
|
|
||||||
static int NumSymbols() { return SYMBOL_TABLE_SIZE; }
|
static int NumSymbols() { return SYMBOL_TABLE_SIZE; }
|
||||||
|
|
||||||
// We do not use this, but we offer it for theoretical convenience.
|
// We do not use this, but we offer it for theoretical convenience.
|
||||||
|
@ -109,8 +111,6 @@ class LateBindingSymbolTable {
|
||||||
DllHandle handle_;
|
DllHandle handle_;
|
||||||
bool undefined_symbols_;
|
bool undefined_symbols_;
|
||||||
void* symbols_[SYMBOL_TABLE_SIZE];
|
void* symbols_[SYMBOL_TABLE_SIZE];
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(LateBindingSymbolTable);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// This macro must be invoked in a header to declare a symbol table class.
|
// This macro must be invoked in a header to declare a symbol table class.
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
#include "modules/audio_processing/aec3/aec3_common.h"
|
#include "modules/audio_processing/aec3/aec3_common.h"
|
||||||
#include "modules/audio_processing/aec3/aec_state.h"
|
#include "modules/audio_processing/aec3/aec_state.h"
|
||||||
#include "modules/audio_processing/aec3/fft_data.h"
|
#include "modules/audio_processing/aec3/fft_data.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/system/arch.h"
|
#include "rtc_base/system/arch.h"
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
#include "modules/audio_processing/aec3/render_buffer.h"
|
#include "modules/audio_processing/aec3/render_buffer.h"
|
||||||
#include "modules/audio_processing/aec3/spectrum_buffer.h"
|
#include "modules/audio_processing/aec3/spectrum_buffer.h"
|
||||||
#include "modules/audio_processing/aec3/stationarity_estimator.h"
|
#include "modules/audio_processing/aec3/stationarity_estimator.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,6 @@
|
||||||
#include "api/array_view.h"
|
#include "api/array_view.h"
|
||||||
#include "api/audio/echo_canceller3_config.h"
|
#include "api/audio/echo_canceller3_config.h"
|
||||||
#include "modules/audio_processing/aec3/aec3_common.h"
|
#include "modules/audio_processing/aec3/aec3_common.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
#include "modules/audio_processing/agc2/fixed_digital_level_estimator.h"
|
#include "modules/audio_processing/agc2/fixed_digital_level_estimator.h"
|
||||||
#include "modules/audio_processing/agc2/interpolated_gain_curve.h"
|
#include "modules/audio_processing/agc2/interpolated_gain_curve.h"
|
||||||
#include "modules/audio_processing/include/audio_frame_view.h"
|
#include "modules/audio_processing/include/audio_frame_view.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
class ApmDataDumper;
|
class ApmDataDumper;
|
||||||
|
|
|
@ -30,7 +30,6 @@
|
||||||
#include "modules/audio_processing/optionally_built_submodule_creators.h"
|
#include "modules/audio_processing/optionally_built_submodule_creators.h"
|
||||||
#include "rtc_base/atomic_ops.h"
|
#include "rtc_base/atomic_ops.h"
|
||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/logging.h"
|
#include "rtc_base/logging.h"
|
||||||
#include "rtc_base/ref_counted_object.h"
|
#include "rtc_base/ref_counted_object.h"
|
||||||
#include "rtc_base/time_utils.h"
|
#include "rtc_base/time_utils.h"
|
||||||
|
|
|
@ -30,7 +30,6 @@
|
||||||
#include "api/scoped_refptr.h"
|
#include "api/scoped_refptr.h"
|
||||||
#include "modules/audio_processing/include/audio_processing_statistics.h"
|
#include "modules/audio_processing/include/audio_processing_statistics.h"
|
||||||
#include "rtc_base/arraysize.h"
|
#include "rtc_base/arraysize.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/ref_count.h"
|
#include "rtc_base/ref_count.h"
|
||||||
#include "rtc_base/system/file_wrapper.h"
|
#include "rtc_base/system/file_wrapper.h"
|
||||||
#include "rtc_base/system/rtc_export.h"
|
#include "rtc_base/system/rtc_export.h"
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
#include "common_audio/include/audio_util.h"
|
#include "common_audio/include/audio_util.h"
|
||||||
#include "common_audio/wav_file.h"
|
#include "common_audio/wav_file.h"
|
||||||
#include "modules/audio_processing/test/conversational_speech/wavreader_interface.h"
|
#include "modules/audio_processing/test/conversational_speech/wavreader_interface.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/logging.h"
|
#include "rtc_base/logging.h"
|
||||||
#include "rtc_base/numerics/safe_conversions.h"
|
#include "rtc_base/numerics/safe_conversions.h"
|
||||||
#include "test/testsupport/file_utils.h"
|
#include "test/testsupport/file_utils.h"
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
#include "modules/audio_processing/test/conversational_speech/multiend_call.h"
|
#include "modules/audio_processing/test/conversational_speech/multiend_call.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
namespace test {
|
namespace test {
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
#include "modules/desktop_capture/desktop_frame.h"
|
#include "modules/desktop_capture/desktop_frame.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
|
@ -26,6 +25,9 @@ class DesktopFrameWin : public DesktopFrame {
|
||||||
public:
|
public:
|
||||||
~DesktopFrameWin() override;
|
~DesktopFrameWin() override;
|
||||||
|
|
||||||
|
DesktopFrameWin(const DesktopFrameWin&) = delete;
|
||||||
|
DesktopFrameWin& operator=(const DesktopFrameWin&) = delete;
|
||||||
|
|
||||||
static std::unique_ptr<DesktopFrameWin>
|
static std::unique_ptr<DesktopFrameWin>
|
||||||
Create(DesktopSize size, SharedMemoryFactory* shared_memory_factory, HDC hdc);
|
Create(DesktopSize size, SharedMemoryFactory* shared_memory_factory, HDC hdc);
|
||||||
|
|
||||||
|
@ -40,8 +42,6 @@ class DesktopFrameWin : public DesktopFrame {
|
||||||
|
|
||||||
HBITMAP bitmap_;
|
HBITMAP bitmap_;
|
||||||
std::unique_ptr<SharedMemory> owned_shared_memory_;
|
std::unique_ptr<SharedMemory> owned_shared_memory_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(DesktopFrameWin);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
#include "modules/desktop_capture/desktop_capturer.h"
|
#include "modules/desktop_capture/desktop_capturer.h"
|
||||||
#include "modules/desktop_capture/linux/wayland/screencast_portal.h"
|
#include "modules/desktop_capture/linux/wayland/screencast_portal.h"
|
||||||
#include "modules/desktop_capture/linux/wayland/shared_screencast_stream.h"
|
#include "modules/desktop_capture/linux/wayland/shared_screencast_stream.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
|
@ -25,6 +24,9 @@ class BaseCapturerPipeWire : public DesktopCapturer,
|
||||||
BaseCapturerPipeWire(const DesktopCaptureOptions& options);
|
BaseCapturerPipeWire(const DesktopCaptureOptions& options);
|
||||||
~BaseCapturerPipeWire() override;
|
~BaseCapturerPipeWire() override;
|
||||||
|
|
||||||
|
BaseCapturerPipeWire(const BaseCapturerPipeWire&) = delete;
|
||||||
|
BaseCapturerPipeWire& operator=(const BaseCapturerPipeWire&) = delete;
|
||||||
|
|
||||||
// DesktopCapturer interface.
|
// DesktopCapturer interface.
|
||||||
void Start(Callback* delegate) override;
|
void Start(Callback* delegate) override;
|
||||||
void CaptureFrame() override;
|
void CaptureFrame() override;
|
||||||
|
@ -42,8 +44,6 @@ class BaseCapturerPipeWire : public DesktopCapturer,
|
||||||
Callback* callback_ = nullptr;
|
Callback* callback_ = nullptr;
|
||||||
bool capturer_failed_ = false;
|
bool capturer_failed_ = false;
|
||||||
std::unique_ptr<ScreenCastPortal> screencast_portal_;
|
std::unique_ptr<ScreenCastPortal> screencast_portal_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(BaseCapturerPipeWire);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -29,7 +29,6 @@
|
||||||
#include "modules/desktop_capture/screen_capture_frame_queue.h"
|
#include "modules/desktop_capture/screen_capture_frame_queue.h"
|
||||||
#include "modules/desktop_capture/screen_capturer_helper.h"
|
#include "modules/desktop_capture/screen_capturer_helper.h"
|
||||||
#include "modules/desktop_capture/shared_desktop_frame.h"
|
#include "modules/desktop_capture/shared_desktop_frame.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
|
@ -46,6 +45,9 @@ class ScreenCapturerX11 : public DesktopCapturer,
|
||||||
ScreenCapturerX11();
|
ScreenCapturerX11();
|
||||||
~ScreenCapturerX11() override;
|
~ScreenCapturerX11() override;
|
||||||
|
|
||||||
|
ScreenCapturerX11(const ScreenCapturerX11&) = delete;
|
||||||
|
ScreenCapturerX11& operator=(const ScreenCapturerX11&) = delete;
|
||||||
|
|
||||||
static std::unique_ptr<DesktopCapturer> CreateRawScreenCapturer(
|
static std::unique_ptr<DesktopCapturer> CreateRawScreenCapturer(
|
||||||
const DesktopCaptureOptions& options);
|
const DesktopCaptureOptions& options);
|
||||||
|
|
||||||
|
@ -138,8 +140,6 @@ class ScreenCapturerX11 : public DesktopCapturer,
|
||||||
DesktopRegion last_invalid_region_;
|
DesktopRegion last_invalid_region_;
|
||||||
|
|
||||||
std::unique_ptr<XAtomCache> atom_cache_;
|
std::unique_ptr<XAtomCache> atom_cache_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(ScreenCapturerX11);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
|
|
||||||
#include "api/ref_counted_base.h"
|
#include "api/ref_counted_base.h"
|
||||||
#include "api/scoped_refptr.h"
|
#include "api/scoped_refptr.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/system/rtc_export.h"
|
#include "rtc_base/system/rtc_export.h"
|
||||||
|
|
||||||
// Including Xlib.h will involve evil defines (Bool, Status, True, False), which
|
// Including Xlib.h will involve evil defines (Bool, Status, True, False), which
|
||||||
|
@ -65,6 +64,9 @@ class RTC_EXPORT SharedXDisplay
|
||||||
|
|
||||||
~SharedXDisplay();
|
~SharedXDisplay();
|
||||||
|
|
||||||
|
SharedXDisplay(const SharedXDisplay&) = delete;
|
||||||
|
SharedXDisplay& operator=(const SharedXDisplay&) = delete;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// Takes ownership of `display`.
|
// Takes ownership of `display`.
|
||||||
explicit SharedXDisplay(Display* display);
|
explicit SharedXDisplay(Display* display);
|
||||||
|
@ -75,8 +77,6 @@ class RTC_EXPORT SharedXDisplay
|
||||||
Display* display_;
|
Display* display_;
|
||||||
|
|
||||||
EventHandlersMap event_handlers_;
|
EventHandlersMap event_handlers_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(SharedXDisplay);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -25,7 +25,6 @@
|
||||||
#include "modules/desktop_capture/linux/x11/window_finder_x11.h"
|
#include "modules/desktop_capture/linux/x11/window_finder_x11.h"
|
||||||
#include "modules/desktop_capture/linux/x11/x_atom_cache.h"
|
#include "modules/desktop_capture/linux/x11/x_atom_cache.h"
|
||||||
#include "modules/desktop_capture/linux/x11/x_server_pixel_buffer.h"
|
#include "modules/desktop_capture/linux/x11/x_server_pixel_buffer.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
|
@ -35,6 +34,9 @@ class WindowCapturerX11 : public DesktopCapturer,
|
||||||
explicit WindowCapturerX11(const DesktopCaptureOptions& options);
|
explicit WindowCapturerX11(const DesktopCaptureOptions& options);
|
||||||
~WindowCapturerX11() override;
|
~WindowCapturerX11() override;
|
||||||
|
|
||||||
|
WindowCapturerX11(const WindowCapturerX11&) = delete;
|
||||||
|
WindowCapturerX11& operator=(const WindowCapturerX11&) = delete;
|
||||||
|
|
||||||
static std::unique_ptr<DesktopCapturer> CreateRawWindowCapturer(
|
static std::unique_ptr<DesktopCapturer> CreateRawWindowCapturer(
|
||||||
const DesktopCaptureOptions& options);
|
const DesktopCaptureOptions& options);
|
||||||
|
|
||||||
|
@ -65,8 +67,6 @@ class WindowCapturerX11 : public DesktopCapturer,
|
||||||
XServerPixelBuffer x_server_pixel_buffer_;
|
XServerPixelBuffer x_server_pixel_buffer_;
|
||||||
XAtomCache atom_cache_;
|
XAtomCache atom_cache_;
|
||||||
WindowFinderX11 window_finder_;
|
WindowFinderX11 window_finder_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(WindowCapturerX11);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
#include "modules/desktop_capture/linux/x11/x_error_trap.h"
|
#include "modules/desktop_capture/linux/x11/x_error_trap.h"
|
||||||
#include "modules/desktop_capture/linux/x11/x_window_property.h"
|
#include "modules/desktop_capture/linux/x11/x_window_property.h"
|
||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/logging.h"
|
#include "rtc_base/logging.h"
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
|
@ -13,8 +13,6 @@
|
||||||
|
|
||||||
#include <X11/Xlib.h>
|
#include <X11/Xlib.h>
|
||||||
|
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
// Helper class that registers X Window error handler. Caller can use
|
// Helper class that registers X Window error handler. Caller can use
|
||||||
|
@ -24,14 +22,15 @@ class XErrorTrap {
|
||||||
explicit XErrorTrap(Display* display);
|
explicit XErrorTrap(Display* display);
|
||||||
~XErrorTrap();
|
~XErrorTrap();
|
||||||
|
|
||||||
|
XErrorTrap(const XErrorTrap&) = delete;
|
||||||
|
XErrorTrap& operator=(const XErrorTrap&) = delete;
|
||||||
|
|
||||||
// Returns last error and removes unregisters the error handler.
|
// Returns last error and removes unregisters the error handler.
|
||||||
int GetLastErrorAndDisable();
|
int GetLastErrorAndDisable();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
XErrorHandler original_error_handler_;
|
XErrorHandler original_error_handler_;
|
||||||
bool enabled_;
|
bool enabled_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(XErrorTrap);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -20,7 +20,6 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "modules/desktop_capture/desktop_geometry.h"
|
#include "modules/desktop_capture/desktop_geometry.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
|
@ -34,6 +33,9 @@ class XServerPixelBuffer {
|
||||||
XServerPixelBuffer();
|
XServerPixelBuffer();
|
||||||
~XServerPixelBuffer();
|
~XServerPixelBuffer();
|
||||||
|
|
||||||
|
XServerPixelBuffer(const XServerPixelBuffer&) = delete;
|
||||||
|
XServerPixelBuffer& operator=(const XServerPixelBuffer&) = delete;
|
||||||
|
|
||||||
void Release();
|
void Release();
|
||||||
|
|
||||||
// Allocate (or reallocate) the pixel buffer for `window`. Returns false in
|
// Allocate (or reallocate) the pixel buffer for `window`. Returns false in
|
||||||
|
@ -80,8 +82,6 @@ class XServerPixelBuffer {
|
||||||
GC shm_gc_ = nullptr;
|
GC shm_gc_ = nullptr;
|
||||||
bool xshm_get_image_succeeded_ = false;
|
bool xshm_get_image_succeeded_ = false;
|
||||||
std::vector<uint8_t> icc_profile_;
|
std::vector<uint8_t> icc_profile_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(XServerPixelBuffer);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -14,8 +14,6 @@
|
||||||
#include <X11/X.h>
|
#include <X11/X.h>
|
||||||
#include <X11/Xlib.h>
|
#include <X11/Xlib.h>
|
||||||
|
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
class XWindowPropertyBase {
|
class XWindowPropertyBase {
|
||||||
|
@ -26,6 +24,9 @@ class XWindowPropertyBase {
|
||||||
int expected_size);
|
int expected_size);
|
||||||
virtual ~XWindowPropertyBase();
|
virtual ~XWindowPropertyBase();
|
||||||
|
|
||||||
|
XWindowPropertyBase(const XWindowPropertyBase&) = delete;
|
||||||
|
XWindowPropertyBase& operator=(const XWindowPropertyBase&) = delete;
|
||||||
|
|
||||||
// True if we got properly value successfully.
|
// True if we got properly value successfully.
|
||||||
bool is_valid() const { return is_valid_; }
|
bool is_valid() const { return is_valid_; }
|
||||||
|
|
||||||
|
@ -38,8 +39,6 @@ class XWindowPropertyBase {
|
||||||
private:
|
private:
|
||||||
bool is_valid_ = false;
|
bool is_valid_ = false;
|
||||||
unsigned long size_ = 0; // NOLINT: type required by XGetWindowProperty
|
unsigned long size_ = 0; // NOLINT: type required by XGetWindowProperty
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(XWindowPropertyBase);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Convenience wrapper for XGetWindowProperty() results.
|
// Convenience wrapper for XGetWindowProperty() results.
|
||||||
|
@ -50,12 +49,13 @@ class XWindowProperty : public XWindowPropertyBase {
|
||||||
: XWindowPropertyBase(display, window, property, sizeof(PropertyType)) {}
|
: XWindowPropertyBase(display, window, property, sizeof(PropertyType)) {}
|
||||||
~XWindowProperty() override = default;
|
~XWindowProperty() override = default;
|
||||||
|
|
||||||
|
XWindowProperty(const XWindowProperty&) = delete;
|
||||||
|
XWindowProperty& operator=(const XWindowProperty&) = delete;
|
||||||
|
|
||||||
const PropertyType* data() const {
|
const PropertyType* data() const {
|
||||||
return reinterpret_cast<PropertyType*>(data_);
|
return reinterpret_cast<PropertyType*>(data_);
|
||||||
}
|
}
|
||||||
PropertyType* data() { return reinterpret_cast<PropertyType*>(data_); }
|
PropertyType* data() { return reinterpret_cast<PropertyType*>(data_); }
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(XWindowProperty);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
#include "modules/desktop_capture/mac/desktop_frame_provider.h"
|
#include "modules/desktop_capture/mac/desktop_frame_provider.h"
|
||||||
#include "modules/desktop_capture/mac/window_list_utils.h"
|
#include "modules/desktop_capture/mac/window_list_utils.h"
|
||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/logging.h"
|
#include "rtc_base/logging.h"
|
||||||
#include "rtc_base/time_utils.h"
|
#include "rtc_base/time_utils.h"
|
||||||
#include "rtc_base/trace_event.h"
|
#include "rtc_base/trace_event.h"
|
||||||
|
|
|
@ -25,7 +25,6 @@
|
||||||
#include "modules/desktop_capture/rgba_color.h"
|
#include "modules/desktop_capture/rgba_color.h"
|
||||||
#include "modules/desktop_capture/screen_drawer.h"
|
#include "modules/desktop_capture/screen_drawer.h"
|
||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/logging.h"
|
#include "rtc_base/logging.h"
|
||||||
#include "rtc_base/third_party/base64/base64.h"
|
#include "rtc_base/third_party/base64/base64.h"
|
||||||
#include "test/gmock.h"
|
#include "test/gmock.h"
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/system/rtc_export.h"
|
#include "rtc_base/system/rtc_export.h"
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
@ -24,6 +23,9 @@ class RTC_EXPORT Desktop {
|
||||||
public:
|
public:
|
||||||
~Desktop();
|
~Desktop();
|
||||||
|
|
||||||
|
Desktop(const Desktop&) = delete;
|
||||||
|
Desktop& operator=(const Desktop&) = delete;
|
||||||
|
|
||||||
// Returns the name of the desktop represented by the object. Return false if
|
// Returns the name of the desktop represented by the object. Return false if
|
||||||
// quering the name failed for any reason.
|
// quering the name failed for any reason.
|
||||||
bool GetName(std::wstring* desktop_name_out) const;
|
bool GetName(std::wstring* desktop_name_out) const;
|
||||||
|
@ -56,8 +58,6 @@ class RTC_EXPORT Desktop {
|
||||||
|
|
||||||
// True if `desktop_` must be closed on teardown.
|
// True if `desktop_` must be closed on teardown.
|
||||||
bool own_;
|
bool own_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(Desktop);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -13,8 +13,6 @@
|
||||||
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
namespace win {
|
namespace win {
|
||||||
|
|
||||||
|
@ -27,6 +25,9 @@ class ScopedGDIObject {
|
||||||
|
|
||||||
~ScopedGDIObject() { Traits::Close(handle_); }
|
~ScopedGDIObject() { Traits::Close(handle_); }
|
||||||
|
|
||||||
|
ScopedGDIObject(const ScopedGDIObject&) = delete;
|
||||||
|
ScopedGDIObject& operator=(const ScopedGDIObject&) = delete;
|
||||||
|
|
||||||
T Get() { return handle_; }
|
T Get() { return handle_; }
|
||||||
|
|
||||||
void Set(T object) {
|
void Set(T object) {
|
||||||
|
@ -50,8 +51,6 @@ class ScopedGDIObject {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
T handle_;
|
T handle_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(ScopedGDIObject);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// The traits class that uses DeleteObject() to close a handle.
|
// The traits class that uses DeleteObject() to close a handle.
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/system/rtc_export.h"
|
#include "rtc_base/system/rtc_export.h"
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
@ -27,6 +26,9 @@ class RTC_EXPORT ScopedThreadDesktop {
|
||||||
ScopedThreadDesktop();
|
ScopedThreadDesktop();
|
||||||
~ScopedThreadDesktop();
|
~ScopedThreadDesktop();
|
||||||
|
|
||||||
|
ScopedThreadDesktop(const ScopedThreadDesktop&) = delete;
|
||||||
|
ScopedThreadDesktop& operator=(const ScopedThreadDesktop&) = delete;
|
||||||
|
|
||||||
// Returns true if `desktop` has the same desktop name as the currently
|
// Returns true if `desktop` has the same desktop name as the currently
|
||||||
// assigned desktop (if assigned) or as the initial desktop (if not assigned).
|
// assigned desktop (if assigned) or as the initial desktop (if not assigned).
|
||||||
// Returns false in any other case including failing Win32 APIs and
|
// Returns false in any other case including failing Win32 APIs and
|
||||||
|
@ -46,8 +48,6 @@ class RTC_EXPORT ScopedThreadDesktop {
|
||||||
|
|
||||||
// The desktop handle assigned to the calling thread at creation.
|
// The desktop handle assigned to the calling thread at creation.
|
||||||
std::unique_ptr<Desktop> initial_;
|
std::unique_ptr<Desktop> initial_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(ScopedThreadDesktop);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
#include "modules/desktop_capture/screen_capture_frame_queue.h"
|
#include "modules/desktop_capture/screen_capture_frame_queue.h"
|
||||||
#include "modules/desktop_capture/win/dxgi_duplicator_controller.h"
|
#include "modules/desktop_capture/win/dxgi_duplicator_controller.h"
|
||||||
#include "modules/desktop_capture/win/dxgi_frame.h"
|
#include "modules/desktop_capture/win/dxgi_frame.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/system/rtc_export.h"
|
#include "rtc_base/system/rtc_export.h"
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
@ -74,6 +73,9 @@ class RTC_EXPORT ScreenCapturerWinDirectx : public DesktopCapturer {
|
||||||
|
|
||||||
~ScreenCapturerWinDirectx() override;
|
~ScreenCapturerWinDirectx() override;
|
||||||
|
|
||||||
|
ScreenCapturerWinDirectx(const ScreenCapturerWinDirectx&) = delete;
|
||||||
|
ScreenCapturerWinDirectx& operator=(const ScreenCapturerWinDirectx&) = delete;
|
||||||
|
|
||||||
// DesktopCapturer implementation.
|
// DesktopCapturer implementation.
|
||||||
void Start(Callback* callback) override;
|
void Start(Callback* callback) override;
|
||||||
void SetSharedMemoryFactory(
|
void SetSharedMemoryFactory(
|
||||||
|
@ -88,8 +90,6 @@ class RTC_EXPORT ScreenCapturerWinDirectx : public DesktopCapturer {
|
||||||
std::unique_ptr<SharedMemoryFactory> shared_memory_factory_;
|
std::unique_ptr<SharedMemoryFactory> shared_memory_factory_;
|
||||||
Callback* callback_ = nullptr;
|
Callback* callback_ = nullptr;
|
||||||
SourceId current_screen_id_ = kFullDesktopScreenId;
|
SourceId current_screen_id_ = kFullDesktopScreenId;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(ScreenCapturerWinDirectx);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -20,7 +20,6 @@
|
||||||
#include "modules/desktop_capture/shared_desktop_frame.h"
|
#include "modules/desktop_capture/shared_desktop_frame.h"
|
||||||
#include "modules/desktop_capture/win/display_configuration_monitor.h"
|
#include "modules/desktop_capture/win/display_configuration_monitor.h"
|
||||||
#include "modules/desktop_capture/win/scoped_thread_desktop.h"
|
#include "modules/desktop_capture/win/scoped_thread_desktop.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
|
@ -35,6 +34,9 @@ class ScreenCapturerWinGdi : public DesktopCapturer {
|
||||||
explicit ScreenCapturerWinGdi(const DesktopCaptureOptions& options);
|
explicit ScreenCapturerWinGdi(const DesktopCaptureOptions& options);
|
||||||
~ScreenCapturerWinGdi() override;
|
~ScreenCapturerWinGdi() override;
|
||||||
|
|
||||||
|
ScreenCapturerWinGdi(const ScreenCapturerWinGdi&) = delete;
|
||||||
|
ScreenCapturerWinGdi& operator=(const ScreenCapturerWinGdi&) = delete;
|
||||||
|
|
||||||
// Overridden from ScreenCapturer:
|
// Overridden from ScreenCapturer:
|
||||||
void Start(Callback* callback) override;
|
void Start(Callback* callback) override;
|
||||||
void SetSharedMemoryFactory(
|
void SetSharedMemoryFactory(
|
||||||
|
@ -74,8 +76,6 @@ class ScreenCapturerWinGdi : public DesktopCapturer {
|
||||||
|
|
||||||
HMODULE dwmapi_library_ = NULL;
|
HMODULE dwmapi_library_ = NULL;
|
||||||
DwmEnableCompositionFunc composition_func_ = nullptr;
|
DwmEnableCompositionFunc composition_func_ = nullptr;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(ScreenCapturerWinGdi);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
#include "modules/desktop_capture/screen_capturer_helper.h"
|
#include "modules/desktop_capture/screen_capturer_helper.h"
|
||||||
#include "modules/desktop_capture/shared_desktop_frame.h"
|
#include "modules/desktop_capture/shared_desktop_frame.h"
|
||||||
#include "modules/desktop_capture/win/scoped_thread_desktop.h"
|
#include "modules/desktop_capture/win/scoped_thread_desktop.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
|
@ -42,6 +41,10 @@ class ScreenCapturerWinMagnifier : public DesktopCapturer {
|
||||||
ScreenCapturerWinMagnifier();
|
ScreenCapturerWinMagnifier();
|
||||||
~ScreenCapturerWinMagnifier() override;
|
~ScreenCapturerWinMagnifier() override;
|
||||||
|
|
||||||
|
ScreenCapturerWinMagnifier(const ScreenCapturerWinMagnifier&) = delete;
|
||||||
|
ScreenCapturerWinMagnifier& operator=(const ScreenCapturerWinMagnifier&) =
|
||||||
|
delete;
|
||||||
|
|
||||||
// Overridden from ScreenCapturer:
|
// Overridden from ScreenCapturer:
|
||||||
void Start(Callback* callback) override;
|
void Start(Callback* callback) override;
|
||||||
void SetSharedMemoryFactory(
|
void SetSharedMemoryFactory(
|
||||||
|
@ -130,8 +133,6 @@ class ScreenCapturerWinMagnifier : public DesktopCapturer {
|
||||||
// True if the last OnMagImageScalingCallback was called and handled
|
// True if the last OnMagImageScalingCallback was called and handled
|
||||||
// successfully. Reset at the beginning of each CaptureImage call.
|
// successfully. Reset at the beginning of each CaptureImage call.
|
||||||
bool magnifier_capture_succeeded_ = true;
|
bool magnifier_capture_succeeded_ = true;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(ScreenCapturerWinMagnifier);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
|
|
||||||
#include "modules/desktop_capture/desktop_capturer.h"
|
#include "modules/desktop_capture/desktop_capturer.h"
|
||||||
#include "modules/desktop_capture/desktop_geometry.h"
|
#include "modules/desktop_capture/desktop_geometry.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
|
@ -104,6 +103,9 @@ class WindowCaptureHelperWin {
|
||||||
WindowCaptureHelperWin();
|
WindowCaptureHelperWin();
|
||||||
~WindowCaptureHelperWin();
|
~WindowCaptureHelperWin();
|
||||||
|
|
||||||
|
WindowCaptureHelperWin(const WindowCaptureHelperWin&) = delete;
|
||||||
|
WindowCaptureHelperWin& operator=(const WindowCaptureHelperWin&) = delete;
|
||||||
|
|
||||||
bool IsAeroEnabled();
|
bool IsAeroEnabled();
|
||||||
bool IsWindowChromeNotification(HWND hwnd);
|
bool IsWindowChromeNotification(HWND hwnd);
|
||||||
bool AreWindowsOverlapping(HWND hwnd,
|
bool AreWindowsOverlapping(HWND hwnd,
|
||||||
|
@ -127,8 +129,6 @@ class WindowCaptureHelperWin {
|
||||||
|
|
||||||
// Only used on Win10+.
|
// Only used on Win10+.
|
||||||
Microsoft::WRL::ComPtr<IVirtualDesktopManager> virtual_desktop_manager_;
|
Microsoft::WRL::ComPtr<IVirtualDesktopManager> virtual_desktop_manager_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(WindowCaptureHelperWin);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
#include "modules/desktop_capture/desktop_capturer.h"
|
#include "modules/desktop_capture/desktop_capturer.h"
|
||||||
#include "modules/desktop_capture/desktop_frame.h"
|
#include "modules/desktop_capture/desktop_frame.h"
|
||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
|
@ -22,6 +21,9 @@ class WindowCapturerNull : public DesktopCapturer {
|
||||||
WindowCapturerNull();
|
WindowCapturerNull();
|
||||||
~WindowCapturerNull() override;
|
~WindowCapturerNull() override;
|
||||||
|
|
||||||
|
WindowCapturerNull(const WindowCapturerNull&) = delete;
|
||||||
|
WindowCapturerNull& operator=(const WindowCapturerNull&) = delete;
|
||||||
|
|
||||||
// DesktopCapturer interface.
|
// DesktopCapturer interface.
|
||||||
void Start(Callback* callback) override;
|
void Start(Callback* callback) override;
|
||||||
void CaptureFrame() override;
|
void CaptureFrame() override;
|
||||||
|
@ -30,8 +32,6 @@ class WindowCapturerNull : public DesktopCapturer {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Callback* callback_ = nullptr;
|
Callback* callback_ = nullptr;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(WindowCapturerNull);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
WindowCapturerNull::WindowCapturerNull() {}
|
WindowCapturerNull::WindowCapturerNull() {}
|
||||||
|
|
|
@ -128,7 +128,6 @@
|
||||||
#include <stack>
|
#include <stack>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/synchronization/mutex.h"
|
#include "rtc_base/synchronization/mutex.h"
|
||||||
|
|
||||||
#define BWE_TEST_LOGGING_GLOBAL_CONTEXT(name) \
|
#define BWE_TEST_LOGGING_GLOBAL_CONTEXT(name) \
|
||||||
|
@ -341,6 +340,10 @@ class Logging {
|
||||||
|
|
||||||
Logging();
|
Logging();
|
||||||
~Logging();
|
~Logging();
|
||||||
|
|
||||||
|
Logging(const Logging&) = delete;
|
||||||
|
Logging& operator=(const Logging&) = delete;
|
||||||
|
|
||||||
void PushState(const std::string& append_to_tag,
|
void PushState(const std::string& append_to_tag,
|
||||||
int64_t timestamp_ms,
|
int64_t timestamp_ms,
|
||||||
bool enabled);
|
bool enabled);
|
||||||
|
@ -348,8 +351,6 @@ class Logging {
|
||||||
|
|
||||||
Mutex mutex_;
|
Mutex mutex_;
|
||||||
ThreadMap thread_map_;
|
ThreadMap thread_map_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(Logging);
|
|
||||||
};
|
};
|
||||||
} // namespace bwe
|
} // namespace bwe
|
||||||
} // namespace testing
|
} // namespace testing
|
||||||
|
|
|
@ -27,7 +27,6 @@
|
||||||
#include "api/sequence_checker.h"
|
#include "api/sequence_checker.h"
|
||||||
#include "pc/session_description.h"
|
#include "pc/session_description.h"
|
||||||
#include "rtc_base/buffer.h"
|
#include "rtc_base/buffer.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/ssl_stream_adapter.h"
|
#include "rtc_base/ssl_stream_adapter.h"
|
||||||
|
|
||||||
// Forward declaration to avoid pulling in libsrtp headers here
|
// Forward declaration to avoid pulling in libsrtp headers here
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include "rtc_base/buffer.h"
|
#include "rtc_base/buffer.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/ssl_certificate.h"
|
#include "rtc_base/ssl_certificate.h"
|
||||||
#include "rtc_base/ssl_identity.h"
|
#include "rtc_base/ssl_identity.h"
|
||||||
|
|
||||||
|
@ -42,6 +41,9 @@ class OpenSSLCertificate final : public SSLCertificate {
|
||||||
|
|
||||||
~OpenSSLCertificate() override;
|
~OpenSSLCertificate() override;
|
||||||
|
|
||||||
|
OpenSSLCertificate(const OpenSSLCertificate&) = delete;
|
||||||
|
OpenSSLCertificate& operator=(const OpenSSLCertificate&) = delete;
|
||||||
|
|
||||||
std::unique_ptr<SSLCertificate> Clone() const override;
|
std::unique_ptr<SSLCertificate> Clone() const override;
|
||||||
|
|
||||||
X509* x509() const { return x509_; }
|
X509* x509() const { return x509_; }
|
||||||
|
@ -70,7 +72,6 @@ class OpenSSLCertificate final : public SSLCertificate {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
X509* x509_; // NOT OWNED
|
X509* x509_; // NOT OWNED
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(OpenSSLCertificate);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace rtc
|
} // namespace rtc
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/openssl_certificate.h"
|
#include "rtc_base/openssl_certificate.h"
|
||||||
#include "rtc_base/openssl_key_pair.h"
|
#include "rtc_base/openssl_key_pair.h"
|
||||||
#include "rtc_base/ssl_certificate.h"
|
#include "rtc_base/ssl_certificate.h"
|
||||||
|
@ -43,6 +42,9 @@ class OpenSSLIdentity final : public SSLIdentity {
|
||||||
const std::string& certificate_chain);
|
const std::string& certificate_chain);
|
||||||
~OpenSSLIdentity() override;
|
~OpenSSLIdentity() override;
|
||||||
|
|
||||||
|
OpenSSLIdentity(const OpenSSLIdentity&) = delete;
|
||||||
|
OpenSSLIdentity& operator=(const OpenSSLIdentity&) = delete;
|
||||||
|
|
||||||
const OpenSSLCertificate& certificate() const override;
|
const OpenSSLCertificate& certificate() const override;
|
||||||
const SSLCertChain& cert_chain() const override;
|
const SSLCertChain& cert_chain() const override;
|
||||||
|
|
||||||
|
@ -66,8 +68,6 @@ class OpenSSLIdentity final : public SSLIdentity {
|
||||||
|
|
||||||
std::unique_ptr<OpenSSLKeyPair> key_pair_;
|
std::unique_ptr<OpenSSLKeyPair> key_pair_;
|
||||||
std::unique_ptr<SSLCertChain> cert_chain_;
|
std::unique_ptr<SSLCertChain> cert_chain_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(OpenSSLIdentity);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace rtc
|
} // namespace rtc
|
||||||
|
|
|
@ -35,7 +35,6 @@
|
||||||
// EXPECT_EQ("hello", capture);
|
// EXPECT_EQ("hello", capture);
|
||||||
// /* See unit-tests for more examples */
|
// /* See unit-tests for more examples */
|
||||||
|
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/third_party/sigslot/sigslot.h"
|
#include "rtc_base/third_party/sigslot/sigslot.h"
|
||||||
|
|
||||||
namespace rtc {
|
namespace rtc {
|
||||||
|
@ -47,13 +46,14 @@ class SigslotTester0 : public sigslot::has_slots<> {
|
||||||
signal->connect(this, &SigslotTester0::OnSignalCallback);
|
signal->connect(this, &SigslotTester0::OnSignalCallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SigslotTester0(const SigslotTester0&) = delete;
|
||||||
|
SigslotTester0& operator=(const SigslotTester0&) = delete;
|
||||||
|
|
||||||
int callback_count() const { return callback_count_; }
|
int callback_count() const { return callback_count_; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void OnSignalCallback() { callback_count_++; }
|
void OnSignalCallback() { callback_count_++; }
|
||||||
int callback_count_;
|
int callback_count_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(SigslotTester0);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Versions below are for testing signals that pass arguments. For all the
|
// Versions below are for testing signals that pass arguments. For all the
|
||||||
|
@ -78,6 +78,9 @@ class SigslotTester$i : public sigslot::has_slots<> {
|
||||||
signal->connect(this, &SigslotTester$i::OnSignalCallback);
|
signal->connect(this, &SigslotTester$i::OnSignalCallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SigslotTester$i(const SigslotTester$i&) = delete;
|
||||||
|
SigslotTester$i& operator=(const SigslotTester$i&) = delete;
|
||||||
|
|
||||||
int callback_count() const { return callback_count_; }
|
int callback_count() const { return callback_count_; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -91,9 +94,6 @@ class SigslotTester$i : public sigslot::has_slots<> {
|
||||||
int callback_count_;$for j [[
|
int callback_count_;$for j [[
|
||||||
|
|
||||||
C$j* capture$j[[]]_;]]
|
C$j* capture$j[[]]_;]]
|
||||||
|
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(SigslotTester$i);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
]]
|
]]
|
||||||
|
|
|
@ -34,7 +34,6 @@
|
||||||
#include "api/task_queue/task_queue_base.h"
|
#include "api/task_queue/task_queue_base.h"
|
||||||
#include "rtc_base/arraysize.h"
|
#include "rtc_base/arraysize.h"
|
||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/event.h"
|
#include "rtc_base/event.h"
|
||||||
#include "rtc_base/logging.h"
|
#include "rtc_base/logging.h"
|
||||||
#include "rtc_base/numerics/safe_conversions.h"
|
#include "rtc_base/numerics/safe_conversions.h"
|
||||||
|
@ -122,6 +121,9 @@ class MultimediaTimer {
|
||||||
::CloseHandle(event_);
|
::CloseHandle(event_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MultimediaTimer(const MultimediaTimer&) = delete;
|
||||||
|
MultimediaTimer& operator=(const MultimediaTimer&) = delete;
|
||||||
|
|
||||||
bool StartOneShotTimer(UINT delay_ms) {
|
bool StartOneShotTimer(UINT delay_ms) {
|
||||||
RTC_DCHECK_EQ(0, timer_id_);
|
RTC_DCHECK_EQ(0, timer_id_);
|
||||||
RTC_DCHECK(event_ != nullptr);
|
RTC_DCHECK(event_ != nullptr);
|
||||||
|
@ -148,8 +150,6 @@ class MultimediaTimer {
|
||||||
private:
|
private:
|
||||||
HANDLE event_ = nullptr;
|
HANDLE event_ = nullptr;
|
||||||
MMRESULT timer_id_ = 0;
|
MMRESULT timer_id_ = 0;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(MultimediaTimer);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class TaskQueueWin : public TaskQueueBase {
|
class TaskQueueWin : public TaskQueueBase {
|
||||||
|
|
|
@ -15,8 +15,6 @@
|
||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
typedef void* HANDLE;
|
typedef void* HANDLE;
|
||||||
|
|
||||||
namespace rtc {
|
namespace rtc {
|
||||||
|
@ -105,6 +103,9 @@ class OSInfo {
|
||||||
WOW64_UNKNOWN,
|
WOW64_UNKNOWN,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
OSInfo(const OSInfo&) = delete;
|
||||||
|
OSInfo& operator=(const OSInfo&) = delete;
|
||||||
|
|
||||||
static OSInfo* GetInstance();
|
static OSInfo* GetInstance();
|
||||||
|
|
||||||
Version version() const { return version_; }
|
Version version() const { return version_; }
|
||||||
|
@ -140,8 +141,6 @@ class OSInfo {
|
||||||
size_t allocation_granularity_;
|
size_t allocation_granularity_;
|
||||||
WOW64Status wow64_status_;
|
WOW64Status wow64_status_;
|
||||||
std::string processor_model_name_;
|
std::string processor_model_name_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(OSInfo);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Because this is by far the most commonly-requested value from the above
|
// Because this is by far the most commonly-requested value from the above
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include "absl/types/optional.h"
|
#include "absl/types/optional.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/ignore_wundef.h"
|
#include "rtc_base/ignore_wundef.h"
|
||||||
|
|
||||||
#ifdef WEBRTC_NETWORK_TESTER_PROTO
|
#ifdef WEBRTC_NETWORK_TESTER_PROTO
|
||||||
|
@ -39,12 +38,14 @@ class ConfigReader {
|
||||||
explicit ConfigReader(const std::string& config_file_path);
|
explicit ConfigReader(const std::string& config_file_path);
|
||||||
~ConfigReader();
|
~ConfigReader();
|
||||||
|
|
||||||
|
ConfigReader(const ConfigReader&) = delete;
|
||||||
|
ConfigReader& operator=(const ConfigReader&) = delete;
|
||||||
|
|
||||||
absl::optional<Config> GetNextConfig();
|
absl::optional<Config> GetNextConfig();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
NetworkTesterAllConfigs proto_all_configs_;
|
NetworkTesterAllConfigs proto_all_configs_;
|
||||||
int proto_config_index_;
|
int proto_config_index_;
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(ConfigReader);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/ignore_wundef.h"
|
#include "rtc_base/ignore_wundef.h"
|
||||||
|
|
||||||
#ifdef WEBRTC_NETWORK_TESTER_PROTO
|
#ifdef WEBRTC_NETWORK_TESTER_PROTO
|
||||||
|
@ -33,12 +32,13 @@ class PacketLogger {
|
||||||
explicit PacketLogger(const std::string& log_file_path);
|
explicit PacketLogger(const std::string& log_file_path);
|
||||||
~PacketLogger();
|
~PacketLogger();
|
||||||
|
|
||||||
|
PacketLogger(const PacketLogger&) = delete;
|
||||||
|
PacketLogger& operator=(const PacketLogger&) = delete;
|
||||||
|
|
||||||
void LogPacket(const NetworkTesterPacket& packet);
|
void LogPacket(const NetworkTesterPacket& packet);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::ofstream packet_logger_stream_;
|
std::ofstream packet_logger_stream_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(PacketLogger);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
|
|
||||||
#include "api/sequence_checker.h"
|
#include "api/sequence_checker.h"
|
||||||
#include "api/task_queue/task_queue_factory.h"
|
#include "api/task_queue/task_queue_factory.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/ignore_wundef.h"
|
#include "rtc_base/ignore_wundef.h"
|
||||||
#include "rtc_base/system/no_unique_address.h"
|
#include "rtc_base/system/no_unique_address.h"
|
||||||
#include "rtc_base/task_queue.h"
|
#include "rtc_base/task_queue.h"
|
||||||
|
@ -40,6 +39,9 @@ class PacketSender {
|
||||||
const std::string& config_file_path);
|
const std::string& config_file_path);
|
||||||
~PacketSender();
|
~PacketSender();
|
||||||
|
|
||||||
|
PacketSender(const PacketSender&) = delete;
|
||||||
|
PacketSender& operator=(const PacketSender&) = delete;
|
||||||
|
|
||||||
void StartSending();
|
void StartSending();
|
||||||
void StopSending();
|
void StopSending();
|
||||||
bool IsSending() const;
|
bool IsSending() const;
|
||||||
|
@ -59,8 +61,6 @@ class PacketSender {
|
||||||
TestController* const test_controller_;
|
TestController* const test_controller_;
|
||||||
std::unique_ptr<TaskQueueFactory> task_queue_factory_;
|
std::unique_ptr<TaskQueueFactory> task_queue_factory_;
|
||||||
rtc::TaskQueue worker_queue_;
|
rtc::TaskQueue worker_queue_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(PacketSender);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
#include "api/sequence_checker.h"
|
#include "api/sequence_checker.h"
|
||||||
#include "p2p/base/basic_packet_socket_factory.h"
|
#include "p2p/base/basic_packet_socket_factory.h"
|
||||||
#include "rtc_base/async_packet_socket.h"
|
#include "rtc_base/async_packet_socket.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/ignore_wundef.h"
|
#include "rtc_base/ignore_wundef.h"
|
||||||
#include "rtc_base/socket_address.h"
|
#include "rtc_base/socket_address.h"
|
||||||
#include "rtc_base/synchronization/mutex.h"
|
#include "rtc_base/synchronization/mutex.h"
|
||||||
|
@ -51,6 +50,9 @@ class TestController : public sigslot::has_slots<> {
|
||||||
const std::string& config_file_path,
|
const std::string& config_file_path,
|
||||||
const std::string& log_file_path);
|
const std::string& log_file_path);
|
||||||
|
|
||||||
|
TestController(const TestController&) = delete;
|
||||||
|
TestController& operator=(const TestController&) = delete;
|
||||||
|
|
||||||
void Run();
|
void Run();
|
||||||
|
|
||||||
void SendConnectTo(const std::string& hostname, int port);
|
void SendConnectTo(const std::string& hostname, int port);
|
||||||
|
@ -80,8 +82,6 @@ class TestController : public sigslot::has_slots<> {
|
||||||
std::unique_ptr<rtc::AsyncPacketSocket> udp_socket_;
|
std::unique_ptr<rtc::AsyncPacketSocket> udp_socket_;
|
||||||
rtc::SocketAddress remote_address_;
|
rtc::SocketAddress remote_address_;
|
||||||
std::unique_ptr<PacketSender> packet_sender_;
|
std::unique_ptr<PacketSender> packet_sender_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(TestController);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
|
|
||||||
#include "absl/strings/string_view.h"
|
#include "absl/strings/string_view.h"
|
||||||
#include "logging/rtc_event_log/rtc_event_log_parser.h"
|
#include "logging/rtc_event_log/rtc_event_log_parser.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_tools/rtc_event_log_visualizer/analyzer_common.h"
|
#include "rtc_tools/rtc_event_log_visualizer/analyzer_common.h"
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
@ -49,6 +48,9 @@ class TriageHelper {
|
||||||
public:
|
public:
|
||||||
explicit TriageHelper(const AnalyzerConfig& config) : config_(config) {}
|
explicit TriageHelper(const AnalyzerConfig& config) : config_(config) {}
|
||||||
|
|
||||||
|
TriageHelper(const TriageHelper&) = delete;
|
||||||
|
TriageHelper& operator=(const TriageHelper&) = delete;
|
||||||
|
|
||||||
void AnalyzeLog(const ParsedRtcEventLog& parsed_log);
|
void AnalyzeLog(const ParsedRtcEventLog& parsed_log);
|
||||||
|
|
||||||
void AnalyzeStreamGaps(const ParsedRtcEventLog& parsed_log,
|
void AnalyzeStreamGaps(const ParsedRtcEventLog& parsed_log,
|
||||||
|
@ -80,7 +82,6 @@ class TriageHelper {
|
||||||
it->second.count += 1;
|
it->second.count += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(TriageHelper);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
#include <random>
|
#include <random>
|
||||||
|
|
||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/null_socket_server.h"
|
#include "rtc_base/null_socket_server.h"
|
||||||
#include "rtc_base/thread.h"
|
#include "rtc_base/thread.h"
|
||||||
#include "test/gtest.h"
|
#include "test/gtest.h"
|
||||||
|
@ -88,6 +87,9 @@ class IncrementThread : public Thread {
|
||||||
explicit IncrementThread(int* value)
|
explicit IncrementThread(int* value)
|
||||||
: Thread(std::make_unique<NullSocketServer>()), value_(value) {}
|
: Thread(std::make_unique<NullSocketServer>()), value_(value) {}
|
||||||
|
|
||||||
|
IncrementThread(const IncrementThread&) = delete;
|
||||||
|
IncrementThread& operator=(const IncrementThread&) = delete;
|
||||||
|
|
||||||
void Run() override {
|
void Run() override {
|
||||||
++*value_;
|
++*value_;
|
||||||
Thread::Current()->SleepMs(100);
|
Thread::Current()->SleepMs(100);
|
||||||
|
@ -98,8 +100,6 @@ class IncrementThread : public Thread {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int* value_;
|
int* value_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(IncrementThread);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void DataRace() {
|
void DataRace() {
|
||||||
|
|
|
@ -57,6 +57,9 @@ class Iterable {
|
||||||
|
|
||||||
~Iterable();
|
~Iterable();
|
||||||
|
|
||||||
|
Iterable(const Iterable&) = delete;
|
||||||
|
Iterable& operator=(const Iterable&) = delete;
|
||||||
|
|
||||||
class Iterator {
|
class Iterator {
|
||||||
public:
|
public:
|
||||||
// Creates an iterator representing the end of any collection.
|
// Creates an iterator representing the end of any collection.
|
||||||
|
@ -71,6 +74,9 @@ class Iterable {
|
||||||
|
|
||||||
~Iterator();
|
~Iterator();
|
||||||
|
|
||||||
|
Iterator(const Iterator&) = delete;
|
||||||
|
Iterator& operator=(const Iterator&) = delete;
|
||||||
|
|
||||||
// Move assignment should not be used.
|
// Move assignment should not be used.
|
||||||
Iterator& operator=(Iterator&&) = delete;
|
Iterator& operator=(Iterator&&) = delete;
|
||||||
|
|
||||||
|
@ -96,8 +102,6 @@ class Iterable {
|
||||||
ScopedJavaLocalRef<jobject> iterator_;
|
ScopedJavaLocalRef<jobject> iterator_;
|
||||||
ScopedJavaLocalRef<jobject> value_;
|
ScopedJavaLocalRef<jobject> value_;
|
||||||
SequenceChecker thread_checker_;
|
SequenceChecker thread_checker_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(Iterator);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Iterable::Iterator begin() { return Iterable::Iterator(jni_, iterable_); }
|
Iterable::Iterator begin() { return Iterable::Iterator(jni_, iterable_); }
|
||||||
|
@ -106,8 +110,6 @@ class Iterable {
|
||||||
private:
|
private:
|
||||||
JNIEnv* jni_;
|
JNIEnv* jni_;
|
||||||
ScopedJavaLocalRef<jobject> iterable_;
|
ScopedJavaLocalRef<jobject> iterable_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(Iterable);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Returns true if `obj` == null in Java.
|
// Returns true if `obj` == null in Java.
|
||||||
|
|
|
@ -15,9 +15,9 @@
|
||||||
#define SDK_ANDROID_NATIVE_API_JNI_SCOPED_JAVA_REF_H_
|
#define SDK_ANDROID_NATIVE_API_JNI_SCOPED_JAVA_REF_H_
|
||||||
|
|
||||||
#include <jni.h>
|
#include <jni.h>
|
||||||
|
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "sdk/android/native_api/jni/jvm.h"
|
#include "sdk/android/native_api/jni/jvm.h"
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
@ -34,6 +34,9 @@ class JavaRef;
|
||||||
template <>
|
template <>
|
||||||
class JavaRef<jobject> {
|
class JavaRef<jobject> {
|
||||||
public:
|
public:
|
||||||
|
JavaRef(const JavaRef&) = delete;
|
||||||
|
JavaRef& operator=(const JavaRef&) = delete;
|
||||||
|
|
||||||
jobject obj() const { return obj_; }
|
jobject obj() const { return obj_; }
|
||||||
bool is_null() const {
|
bool is_null() const {
|
||||||
// This is not valid for weak references. For weak references you need to
|
// This is not valid for weak references. For weak references you need to
|
||||||
|
@ -49,22 +52,19 @@ class JavaRef<jobject> {
|
||||||
constexpr JavaRef() : obj_(nullptr) {}
|
constexpr JavaRef() : obj_(nullptr) {}
|
||||||
explicit JavaRef(jobject obj) : obj_(obj) {}
|
explicit JavaRef(jobject obj) : obj_(obj) {}
|
||||||
jobject obj_;
|
jobject obj_;
|
||||||
|
|
||||||
private:
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(JavaRef);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
class JavaRef : public JavaRef<jobject> {
|
class JavaRef : public JavaRef<jobject> {
|
||||||
public:
|
public:
|
||||||
|
JavaRef(const JavaRef&) = delete;
|
||||||
|
JavaRef& operator=(const JavaRef&) = delete;
|
||||||
|
|
||||||
T obj() const { return static_cast<T>(obj_); }
|
T obj() const { return static_cast<T>(obj_); }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
JavaRef() : JavaRef<jobject>(nullptr) {}
|
JavaRef() : JavaRef<jobject>(nullptr) {}
|
||||||
explicit JavaRef(T obj) : JavaRef<jobject>(obj) {}
|
explicit JavaRef(T obj) : JavaRef<jobject>(obj) {}
|
||||||
|
|
||||||
private:
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(JavaRef);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Holds a local reference to a JNI method parameter.
|
// Holds a local reference to a JNI method parameter.
|
||||||
|
@ -79,8 +79,8 @@ class JavaParamRef : public JavaRef<T> {
|
||||||
explicit JavaParamRef(T obj) : JavaRef<T>(obj) {}
|
explicit JavaParamRef(T obj) : JavaRef<T>(obj) {}
|
||||||
JavaParamRef(JNIEnv*, T obj) : JavaRef<T>(obj) {}
|
JavaParamRef(JNIEnv*, T obj) : JavaRef<T>(obj) {}
|
||||||
|
|
||||||
private:
|
JavaParamRef(const JavaParamRef&) = delete;
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(JavaParamRef);
|
JavaParamRef& operator=(const JavaParamRef&) = delete;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Holds a local reference to a Java object. The local reference is scoped
|
// Holds a local reference to a Java object. The local reference is scoped
|
||||||
|
@ -186,6 +186,9 @@ class ScopedJavaGlobalRef : public JavaRef<T> {
|
||||||
AttachCurrentThreadIfNeeded()->DeleteGlobalRef(obj_);
|
AttachCurrentThreadIfNeeded()->DeleteGlobalRef(obj_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ScopedJavaGlobalRef(const ScopedJavaGlobalRef&) = delete;
|
||||||
|
ScopedJavaGlobalRef& operator=(const ScopedJavaGlobalRef&) = delete;
|
||||||
|
|
||||||
void operator=(const JavaRef<T>& other) {
|
void operator=(const JavaRef<T>& other) {
|
||||||
JNIEnv* env = AttachCurrentThreadIfNeeded();
|
JNIEnv* env = AttachCurrentThreadIfNeeded();
|
||||||
if (obj_ != nullptr) {
|
if (obj_ != nullptr) {
|
||||||
|
@ -209,9 +212,6 @@ class ScopedJavaGlobalRef : public JavaRef<T> {
|
||||||
obj_ = nullptr;
|
obj_ = nullptr;
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(ScopedJavaGlobalRef);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
|
|
|
@ -31,10 +31,13 @@ class Demuxer {
|
||||||
public:
|
public:
|
||||||
explicit Demuxer(const std::map<uint8_t, MediaType>& payload_type_map);
|
explicit Demuxer(const std::map<uint8_t, MediaType>& payload_type_map);
|
||||||
~Demuxer() = default;
|
~Demuxer() = default;
|
||||||
|
|
||||||
|
Demuxer(const Demuxer&) = delete;
|
||||||
|
Demuxer& operator=(const Demuxer&) = delete;
|
||||||
|
|
||||||
MediaType GetMediaType(const uint8_t* packet_data,
|
MediaType GetMediaType(const uint8_t* packet_data,
|
||||||
size_t packet_length) const;
|
size_t packet_length) const;
|
||||||
const std::map<uint8_t, MediaType> payload_type_map_;
|
const std::map<uint8_t, MediaType> payload_type_map_;
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(Demuxer);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Objects of this class are expected to be allocated and destroyed on the
|
// Objects of this class are expected to be allocated and destroyed on the
|
||||||
|
|
|
@ -11,7 +11,6 @@
|
||||||
#ifndef TEST_MAC_VIDEO_RENDERER_MAC_H_
|
#ifndef TEST_MAC_VIDEO_RENDERER_MAC_H_
|
||||||
#define TEST_MAC_VIDEO_RENDERER_MAC_H_
|
#define TEST_MAC_VIDEO_RENDERER_MAC_H_
|
||||||
|
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "test/gl/gl_renderer.h"
|
#include "test/gl/gl_renderer.h"
|
||||||
|
|
||||||
@class CocoaWindow;
|
@class CocoaWindow;
|
||||||
|
@ -24,6 +23,9 @@ class MacRenderer : public GlRenderer {
|
||||||
MacRenderer();
|
MacRenderer();
|
||||||
virtual ~MacRenderer();
|
virtual ~MacRenderer();
|
||||||
|
|
||||||
|
MacRenderer(const MacRenderer&) = delete;
|
||||||
|
MacRenderer& operator=(const MacRenderer&) = delete;
|
||||||
|
|
||||||
bool Init(const char* window_title, int width, int height);
|
bool Init(const char* window_title, int width, int height);
|
||||||
|
|
||||||
// Implements GlRenderer.
|
// Implements GlRenderer.
|
||||||
|
@ -31,8 +33,6 @@ class MacRenderer : public GlRenderer {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CocoaWindow* window_;
|
CocoaWindow* window_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(MacRenderer);
|
|
||||||
};
|
};
|
||||||
} // namespace test
|
} // namespace test
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -26,7 +26,6 @@
|
||||||
#include "api/test/network_emulation_manager.h"
|
#include "api/test/network_emulation_manager.h"
|
||||||
#include "api/test/simulated_network.h"
|
#include "api/test/simulated_network.h"
|
||||||
#include "api/units/timestamp.h"
|
#include "api/units/timestamp.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/copy_on_write_buffer.h"
|
#include "rtc_base/copy_on_write_buffer.h"
|
||||||
#include "rtc_base/network.h"
|
#include "rtc_base/network.h"
|
||||||
#include "rtc_base/network_constants.h"
|
#include "rtc_base/network_constants.h"
|
||||||
|
@ -467,7 +466,9 @@ class EmulatedNetworkNode : public EmulatedNetworkReceiverInterface {
|
||||||
rtc::TaskQueue* task_queue,
|
rtc::TaskQueue* task_queue,
|
||||||
std::unique_ptr<NetworkBehaviorInterface> network_behavior);
|
std::unique_ptr<NetworkBehaviorInterface> network_behavior);
|
||||||
~EmulatedNetworkNode() override;
|
~EmulatedNetworkNode() override;
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(EmulatedNetworkNode);
|
|
||||||
|
EmulatedNetworkNode(const EmulatedNetworkNode&) = delete;
|
||||||
|
EmulatedNetworkNode& operator=(const EmulatedNetworkNode&) = delete;
|
||||||
|
|
||||||
void OnPacketReceived(EmulatedIpPacket packet) override;
|
void OnPacketReceived(EmulatedIpPacket packet) override;
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
|
|
||||||
#include "modules/rtp_rtcp/source/rtp_util.h"
|
#include "modules/rtp_rtcp/source/rtp_util.h"
|
||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/format_macros.h"
|
#include "rtc_base/format_macros.h"
|
||||||
#include "rtc_base/logging.h"
|
#include "rtc_base/logging.h"
|
||||||
#include "rtc_base/system/arch.h"
|
#include "rtc_base/system/arch.h"
|
||||||
|
@ -118,6 +117,9 @@ class RtpDumpReader : public RtpFileReaderImpl {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RtpDumpReader(const RtpDumpReader&) = delete;
|
||||||
|
RtpDumpReader& operator=(const RtpDumpReader&) = delete;
|
||||||
|
|
||||||
bool Init(FILE* file, const std::set<uint32_t>& ssrc_filter) override {
|
bool Init(FILE* file, const std::set<uint32_t>& ssrc_filter) override {
|
||||||
file_ = file;
|
file_ = file;
|
||||||
|
|
||||||
|
@ -187,8 +189,6 @@ class RtpDumpReader : public RtpFileReaderImpl {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
FILE* file_;
|
FILE* file_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(RtpDumpReader);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
@ -253,6 +253,9 @@ class PcapReader : public RtpFileReaderImpl {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PcapReader(const PcapReader&) = delete;
|
||||||
|
PcapReader& operator=(const PcapReader&) = delete;
|
||||||
|
|
||||||
bool Init(FILE* file, const std::set<uint32_t>& ssrc_filter) override {
|
bool Init(FILE* file, const std::set<uint32_t>& ssrc_filter) override {
|
||||||
return Initialize(file, ssrc_filter) == kResultSuccess;
|
return Initialize(file, ssrc_filter) == kResultSuccess;
|
||||||
}
|
}
|
||||||
|
@ -619,8 +622,6 @@ class PcapReader : public RtpFileReaderImpl {
|
||||||
SsrcMap packets_by_ssrc_;
|
SsrcMap packets_by_ssrc_;
|
||||||
std::vector<RtpPacketMarker> packets_;
|
std::vector<RtpPacketMarker> packets_;
|
||||||
PacketIterator next_packet_it_;
|
PacketIterator next_packet_it_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(PcapReader);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
RtpFileReaderImpl* CreateReaderForFormat(RtpFileReader::FileFormat format) {
|
RtpFileReaderImpl* CreateReaderForFormat(RtpFileReader::FileFormat format) {
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
namespace test {
|
namespace test {
|
||||||
|
@ -39,6 +38,9 @@ class RtpDumpWriter : public RtpFileWriter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
RtpDumpWriter(const RtpDumpWriter&) = delete;
|
||||||
|
RtpDumpWriter& operator=(const RtpDumpWriter&) = delete;
|
||||||
|
|
||||||
bool WritePacket(const RtpPacket* packet) override {
|
bool WritePacket(const RtpPacket* packet) override {
|
||||||
uint16_t len = static_cast<uint16_t>(packet->length + kPacketHeaderSize);
|
uint16_t len = static_cast<uint16_t>(packet->length + kPacketHeaderSize);
|
||||||
uint16_t plen = static_cast<uint16_t>(packet->original_length);
|
uint16_t plen = static_cast<uint16_t>(packet->original_length);
|
||||||
|
@ -86,8 +88,6 @@ class RtpDumpWriter : public RtpFileWriter {
|
||||||
}
|
}
|
||||||
|
|
||||||
FILE* file_;
|
FILE* file_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(RtpDumpWriter);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
RtpFileWriter* RtpFileWriter::Create(FileFormat format,
|
RtpFileWriter* RtpFileWriter::Create(FileFormat format,
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "test/scenario/call_client.h"
|
#include "test/scenario/call_client.h"
|
||||||
#include "test/scenario/column_printer.h"
|
#include "test/scenario/column_printer.h"
|
||||||
#include "test/scenario/network_node.h"
|
#include "test/scenario/network_node.h"
|
||||||
|
@ -26,8 +25,11 @@ namespace test {
|
||||||
// stream if neccessary.
|
// stream if neccessary.
|
||||||
class SendAudioStream {
|
class SendAudioStream {
|
||||||
public:
|
public:
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(SendAudioStream);
|
|
||||||
~SendAudioStream();
|
~SendAudioStream();
|
||||||
|
|
||||||
|
SendAudioStream(const SendAudioStream&) = delete;
|
||||||
|
SendAudioStream& operator=(const SendAudioStream&) = delete;
|
||||||
|
|
||||||
void Start();
|
void Start();
|
||||||
void Stop();
|
void Stop();
|
||||||
void SetMuted(bool mute);
|
void SetMuted(bool mute);
|
||||||
|
@ -50,8 +52,11 @@ class SendAudioStream {
|
||||||
// ReceiveAudioStream represents an audio receiver. It can't be used directly.
|
// ReceiveAudioStream represents an audio receiver. It can't be used directly.
|
||||||
class ReceiveAudioStream {
|
class ReceiveAudioStream {
|
||||||
public:
|
public:
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(ReceiveAudioStream);
|
|
||||||
~ReceiveAudioStream();
|
~ReceiveAudioStream();
|
||||||
|
|
||||||
|
ReceiveAudioStream(const ReceiveAudioStream&) = delete;
|
||||||
|
ReceiveAudioStream& operator=(const ReceiveAudioStream&) = delete;
|
||||||
|
|
||||||
void Start();
|
void Start();
|
||||||
void Stop();
|
void Stop();
|
||||||
AudioReceiveStream::Stats GetStats() const;
|
AudioReceiveStream::Stats GetStats() const;
|
||||||
|
@ -74,8 +79,11 @@ class ReceiveAudioStream {
|
||||||
// the Scenario class.
|
// the Scenario class.
|
||||||
class AudioStreamPair {
|
class AudioStreamPair {
|
||||||
public:
|
public:
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(AudioStreamPair);
|
|
||||||
~AudioStreamPair();
|
~AudioStreamPair();
|
||||||
|
|
||||||
|
AudioStreamPair(const AudioStreamPair&) = delete;
|
||||||
|
AudioStreamPair& operator=(const AudioStreamPair&) = delete;
|
||||||
|
|
||||||
SendAudioStream* send() { return &send_stream_; }
|
SendAudioStream* send() { return &send_stream_; }
|
||||||
ReceiveAudioStream* receive() { return &receive_stream_; }
|
ReceiveAudioStream* receive() { return &receive_stream_; }
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
#include "call/call.h"
|
#include "call/call.h"
|
||||||
#include "modules/audio_device/include/test_audio_device.h"
|
#include "modules/audio_device/include/test_audio_device.h"
|
||||||
#include "modules/congestion_controller/goog_cc/test/goog_cc_printer.h"
|
#include "modules/congestion_controller/goog_cc/test/goog_cc_printer.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/task_queue_for_test.h"
|
#include "rtc_base/task_queue_for_test.h"
|
||||||
#include "test/logging/log_writer.h"
|
#include "test/logging/log_writer.h"
|
||||||
#include "test/network/network_emulation.h"
|
#include "test/network/network_emulation.h"
|
||||||
|
@ -68,8 +67,14 @@ class LoggingNetworkControllerFactory
|
||||||
public:
|
public:
|
||||||
LoggingNetworkControllerFactory(LogWriterFactoryInterface* log_writer_factory,
|
LoggingNetworkControllerFactory(LogWriterFactoryInterface* log_writer_factory,
|
||||||
TransportControllerConfig config);
|
TransportControllerConfig config);
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(LoggingNetworkControllerFactory);
|
|
||||||
~LoggingNetworkControllerFactory();
|
~LoggingNetworkControllerFactory();
|
||||||
|
|
||||||
|
LoggingNetworkControllerFactory(const LoggingNetworkControllerFactory&) =
|
||||||
|
delete;
|
||||||
|
LoggingNetworkControllerFactory& operator=(
|
||||||
|
const LoggingNetworkControllerFactory&) = delete;
|
||||||
|
|
||||||
std::unique_ptr<NetworkControllerInterface> Create(
|
std::unique_ptr<NetworkControllerInterface> Create(
|
||||||
NetworkControllerConfig config) override;
|
NetworkControllerConfig config) override;
|
||||||
TimeDelta GetProcessInterval() const override;
|
TimeDelta GetProcessInterval() const override;
|
||||||
|
@ -99,9 +104,12 @@ class CallClient : public EmulatedNetworkReceiverInterface {
|
||||||
CallClient(TimeController* time_controller,
|
CallClient(TimeController* time_controller,
|
||||||
std::unique_ptr<LogWriterFactoryInterface> log_writer_factory,
|
std::unique_ptr<LogWriterFactoryInterface> log_writer_factory,
|
||||||
CallClientConfig config);
|
CallClientConfig config);
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(CallClient);
|
|
||||||
|
|
||||||
~CallClient();
|
~CallClient();
|
||||||
|
|
||||||
|
CallClient(const CallClient&) = delete;
|
||||||
|
CallClient& operator=(const CallClient&) = delete;
|
||||||
|
|
||||||
ColumnPrinter StatsPrinter();
|
ColumnPrinter StatsPrinter();
|
||||||
Call::Stats GetStats();
|
Call::Stats GetStats();
|
||||||
DataRate send_bandwidth() {
|
DataRate send_bandwidth() {
|
||||||
|
@ -165,8 +173,11 @@ class CallClient : public EmulatedNetworkReceiverInterface {
|
||||||
|
|
||||||
class CallClientPair {
|
class CallClientPair {
|
||||||
public:
|
public:
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(CallClientPair);
|
|
||||||
~CallClientPair();
|
~CallClientPair();
|
||||||
|
|
||||||
|
CallClientPair(const CallClientPair&) = delete;
|
||||||
|
CallClientPair& operator=(const CallClientPair&) = delete;
|
||||||
|
|
||||||
CallClient* first() { return first_; }
|
CallClient* first() { return first_; }
|
||||||
CallClient* second() { return second_; }
|
CallClient* second() { return second_; }
|
||||||
std::pair<CallClient*, CallClient*> forward() { return {first(), second()}; }
|
std::pair<CallClient*, CallClient*> forward() { return {first(), second()}; }
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/strings/string_builder.h"
|
#include "rtc_base/strings/string_builder.h"
|
||||||
#include "test/logging/log_writer.h"
|
#include "test/logging/log_writer.h"
|
||||||
|
|
||||||
|
@ -46,8 +45,12 @@ class StatesPrinter {
|
||||||
public:
|
public:
|
||||||
StatesPrinter(std::unique_ptr<RtcEventLogOutput> writer,
|
StatesPrinter(std::unique_ptr<RtcEventLogOutput> writer,
|
||||||
std::vector<ColumnPrinter> printers);
|
std::vector<ColumnPrinter> printers);
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(StatesPrinter);
|
|
||||||
~StatesPrinter();
|
~StatesPrinter();
|
||||||
|
|
||||||
|
StatesPrinter(const StatesPrinter&) = delete;
|
||||||
|
StatesPrinter& operator=(const StatesPrinter&) = delete;
|
||||||
|
|
||||||
void PrintHeaders();
|
void PrintHeaders();
|
||||||
void PrintRow();
|
void PrintRow();
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,6 @@
|
||||||
#include "api/units/timestamp.h"
|
#include "api/units/timestamp.h"
|
||||||
#include "call/call.h"
|
#include "call/call.h"
|
||||||
#include "call/simulated_network.h"
|
#include "call/simulated_network.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/copy_on_write_buffer.h"
|
#include "rtc_base/copy_on_write_buffer.h"
|
||||||
#include "rtc_base/synchronization/mutex.h"
|
#include "rtc_base/synchronization/mutex.h"
|
||||||
#include "rtc_base/task_queue.h"
|
#include "rtc_base/task_queue.h"
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "api/test/time_controller.h"
|
#include "api/test/time_controller.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/fake_clock.h"
|
#include "rtc_base/fake_clock.h"
|
||||||
#include "rtc_base/task_queue.h"
|
#include "rtc_base/task_queue.h"
|
||||||
#include "rtc_base/task_utils/repeating_task.h"
|
#include "rtc_base/task_utils/repeating_task.h"
|
||||||
|
@ -47,8 +46,12 @@ class Scenario {
|
||||||
Scenario(std::string file_name, bool real_time);
|
Scenario(std::string file_name, bool real_time);
|
||||||
Scenario(std::unique_ptr<LogWriterFactoryInterface> log_writer_manager,
|
Scenario(std::unique_ptr<LogWriterFactoryInterface> log_writer_manager,
|
||||||
bool real_time);
|
bool real_time);
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(Scenario);
|
|
||||||
~Scenario();
|
~Scenario();
|
||||||
|
|
||||||
|
Scenario(const Scenario&) = delete;
|
||||||
|
Scenario& operator=(const Scenario&) = delete;
|
||||||
|
|
||||||
NetworkEmulationManagerImpl* net() { return &network_manager_; }
|
NetworkEmulationManagerImpl* net() { return &network_manager_; }
|
||||||
|
|
||||||
EmulatedNetworkNode* CreateSimulationNode(NetworkSimulationConfig config);
|
EmulatedNetworkNode* CreateSimulationNode(NetworkSimulationConfig config);
|
||||||
|
|
|
@ -13,7 +13,6 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/synchronization/mutex.h"
|
#include "rtc_base/synchronization/mutex.h"
|
||||||
#include "test/fake_encoder.h"
|
#include "test/fake_encoder.h"
|
||||||
#include "test/fake_videorenderer.h"
|
#include "test/fake_videorenderer.h"
|
||||||
|
@ -32,8 +31,11 @@ namespace test {
|
||||||
// states at run time.
|
// states at run time.
|
||||||
class SendVideoStream {
|
class SendVideoStream {
|
||||||
public:
|
public:
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(SendVideoStream);
|
|
||||||
~SendVideoStream();
|
~SendVideoStream();
|
||||||
|
|
||||||
|
SendVideoStream(const SendVideoStream&) = delete;
|
||||||
|
SendVideoStream& operator=(const SendVideoStream&) = delete;
|
||||||
|
|
||||||
void SetCaptureFramerate(int framerate);
|
void SetCaptureFramerate(int framerate);
|
||||||
VideoSendStream::Stats GetStats() const;
|
VideoSendStream::Stats GetStats() const;
|
||||||
ColumnPrinter StatsPrinter();
|
ColumnPrinter StatsPrinter();
|
||||||
|
@ -72,8 +74,11 @@ class SendVideoStream {
|
||||||
// ReceiveVideoStream represents a video receiver. It can't be used directly.
|
// ReceiveVideoStream represents a video receiver. It can't be used directly.
|
||||||
class ReceiveVideoStream {
|
class ReceiveVideoStream {
|
||||||
public:
|
public:
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(ReceiveVideoStream);
|
|
||||||
~ReceiveVideoStream();
|
~ReceiveVideoStream();
|
||||||
|
|
||||||
|
ReceiveVideoStream(const ReceiveVideoStream&) = delete;
|
||||||
|
ReceiveVideoStream& operator=(const ReceiveVideoStream&) = delete;
|
||||||
|
|
||||||
void Start();
|
void Start();
|
||||||
void Stop();
|
void Stop();
|
||||||
VideoReceiveStream::Stats GetStats() const;
|
VideoReceiveStream::Stats GetStats() const;
|
||||||
|
@ -103,8 +108,11 @@ class ReceiveVideoStream {
|
||||||
// the Scenario class.
|
// the Scenario class.
|
||||||
class VideoStreamPair {
|
class VideoStreamPair {
|
||||||
public:
|
public:
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(VideoStreamPair);
|
|
||||||
~VideoStreamPair();
|
~VideoStreamPair();
|
||||||
|
|
||||||
|
VideoStreamPair(const VideoStreamPair&) = delete;
|
||||||
|
VideoStreamPair& operator=(const VideoStreamPair&) = delete;
|
||||||
|
|
||||||
SendVideoStream* send() { return &send_stream_; }
|
SendVideoStream* send() { return &send_stream_; }
|
||||||
ReceiveVideoStream* receive() { return &receive_stream_; }
|
ReceiveVideoStream* receive() { return &receive_stream_; }
|
||||||
VideoFrameMatcher* matcher() { return &matcher_; }
|
VideoFrameMatcher* matcher() { return &matcher_; }
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
#include "api/sequence_checker.h"
|
#include "api/sequence_checker.h"
|
||||||
#include "api/task_queue/task_queue_base.h"
|
#include "api/task_queue/task_queue_base.h"
|
||||||
#include "api/video/video_stream_encoder_observer.h"
|
#include "api/video/video_stream_encoder_observer.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/experiments/field_trial_parser.h"
|
#include "rtc_base/experiments/field_trial_parser.h"
|
||||||
#include "rtc_base/numerics/exp_filter.h"
|
#include "rtc_base/numerics/exp_filter.h"
|
||||||
#include "rtc_base/system/no_unique_address.h"
|
#include "rtc_base/system/no_unique_address.h"
|
||||||
|
@ -68,6 +67,9 @@ class OveruseFrameDetector {
|
||||||
explicit OveruseFrameDetector(CpuOveruseMetricsObserver* metrics_observer);
|
explicit OveruseFrameDetector(CpuOveruseMetricsObserver* metrics_observer);
|
||||||
virtual ~OveruseFrameDetector();
|
virtual ~OveruseFrameDetector();
|
||||||
|
|
||||||
|
OveruseFrameDetector(const OveruseFrameDetector&) = delete;
|
||||||
|
OveruseFrameDetector& operator=(const OveruseFrameDetector&) = delete;
|
||||||
|
|
||||||
// Start to periodically check for overuse.
|
// Start to periodically check for overuse.
|
||||||
void StartCheckForOveruse(
|
void StartCheckForOveruse(
|
||||||
TaskQueueBase* task_queue_base,
|
TaskQueueBase* task_queue_base,
|
||||||
|
@ -161,8 +163,6 @@ class OveruseFrameDetector {
|
||||||
|
|
||||||
// If set by field trial, overrides CpuOveruseOptions::filter_time_ms.
|
// If set by field trial, overrides CpuOveruseOptions::filter_time_ms.
|
||||||
FieldTrialOptional<TimeDelta> filter_time_constant_{"tau"};
|
FieldTrialOptional<TimeDelta> filter_time_constant_{"tau"};
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(OveruseFrameDetector);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -18,7 +18,6 @@
|
||||||
#include "modules/include/module.h"
|
#include "modules/include/module.h"
|
||||||
#include "modules/include/module_common_types.h"
|
#include "modules/include/module_common_types.h"
|
||||||
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/synchronization/mutex.h"
|
#include "rtc_base/synchronization/mutex.h"
|
||||||
#include "system_wrappers/include/clock.h"
|
#include "system_wrappers/include/clock.h"
|
||||||
|
|
||||||
|
@ -35,6 +34,9 @@ class CallStats : public Module, public RtcpRttStats {
|
||||||
CallStats(Clock* clock, ProcessThread* process_thread);
|
CallStats(Clock* clock, ProcessThread* process_thread);
|
||||||
~CallStats() override;
|
~CallStats() override;
|
||||||
|
|
||||||
|
CallStats(const CallStats&) = delete;
|
||||||
|
CallStats& operator=(const CallStats&) = delete;
|
||||||
|
|
||||||
// Registers/deregisters a new observer to receive statistics updates.
|
// Registers/deregisters a new observer to receive statistics updates.
|
||||||
// Must be called from the construction thread.
|
// Must be called from the construction thread.
|
||||||
void RegisterStatsObserver(CallStatsObserver* observer);
|
void RegisterStatsObserver(CallStatsObserver* observer);
|
||||||
|
@ -114,8 +116,6 @@ class CallStats : public Module, public RtcpRttStats {
|
||||||
SequenceChecker process_thread_checker_;
|
SequenceChecker process_thread_checker_;
|
||||||
ProcessThread* const process_thread_;
|
ProcessThread* const process_thread_;
|
||||||
bool process_thread_running_ RTC_GUARDED_BY(construction_thread_checker_);
|
bool process_thread_running_ RTC_GUARDED_BY(construction_thread_checker_);
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(CallStats);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
#include "api/units/timestamp.h"
|
#include "api/units/timestamp.h"
|
||||||
#include "modules/include/module_common_types.h"
|
#include "modules/include/module_common_types.h"
|
||||||
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/task_queue.h"
|
#include "rtc_base/task_queue.h"
|
||||||
#include "rtc_base/task_utils/pending_task_safety_flag.h"
|
#include "rtc_base/task_utils/pending_task_safety_flag.h"
|
||||||
#include "rtc_base/task_utils/repeating_task.h"
|
#include "rtc_base/task_utils/repeating_task.h"
|
||||||
|
@ -35,6 +34,9 @@ class CallStats {
|
||||||
CallStats(Clock* clock, TaskQueueBase* task_queue);
|
CallStats(Clock* clock, TaskQueueBase* task_queue);
|
||||||
~CallStats();
|
~CallStats();
|
||||||
|
|
||||||
|
CallStats(const CallStats&) = delete;
|
||||||
|
CallStats& operator=(const CallStats&) = delete;
|
||||||
|
|
||||||
// Ensure that necessary repeating tasks are started.
|
// Ensure that necessary repeating tasks are started.
|
||||||
void EnsureStarted();
|
void EnsureStarted();
|
||||||
|
|
||||||
|
@ -125,8 +127,6 @@ class CallStats {
|
||||||
|
|
||||||
// Used to signal destruction to potentially pending tasks.
|
// Used to signal destruction to potentially pending tasks.
|
||||||
ScopedTaskSafety task_safety_;
|
ScopedTaskSafety task_safety_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(CallStats);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace internal
|
} // namespace internal
|
||||||
|
|
|
@ -46,7 +46,6 @@
|
||||||
#include "modules/video_coding/packet_buffer.h"
|
#include "modules/video_coding/packet_buffer.h"
|
||||||
#include "modules/video_coding/rtp_frame_reference_finder.h"
|
#include "modules/video_coding/rtp_frame_reference_finder.h"
|
||||||
#include "modules/video_coding/unique_timestamp_counter.h"
|
#include "modules/video_coding/unique_timestamp_counter.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/experiments/field_trial_parser.h"
|
#include "rtc_base/experiments/field_trial_parser.h"
|
||||||
#include "rtc_base/numerics/sequence_number_util.h"
|
#include "rtc_base/numerics/sequence_number_util.h"
|
||||||
#include "rtc_base/synchronization/mutex.h"
|
#include "rtc_base/synchronization/mutex.h"
|
||||||
|
|
|
@ -43,7 +43,6 @@
|
||||||
#include "modules/video_coding/packet_buffer.h"
|
#include "modules/video_coding/packet_buffer.h"
|
||||||
#include "modules/video_coding/rtp_frame_reference_finder.h"
|
#include "modules/video_coding/rtp_frame_reference_finder.h"
|
||||||
#include "modules/video_coding/unique_timestamp_counter.h"
|
#include "modules/video_coding/unique_timestamp_counter.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/experiments/field_trial_parser.h"
|
#include "rtc_base/experiments/field_trial_parser.h"
|
||||||
#include "rtc_base/numerics/sequence_number_util.h"
|
#include "rtc_base/numerics/sequence_number_util.h"
|
||||||
#include "rtc_base/system/no_unique_address.h"
|
#include "rtc_base/system/no_unique_address.h"
|
||||||
|
|
|
@ -14,8 +14,6 @@
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
class AggregatedCounter;
|
class AggregatedCounter;
|
||||||
|
@ -156,6 +154,9 @@ class AvgCounter : public StatsCounter {
|
||||||
bool include_empty_intervals);
|
bool include_empty_intervals);
|
||||||
~AvgCounter() override {}
|
~AvgCounter() override {}
|
||||||
|
|
||||||
|
AvgCounter(const AvgCounter&) = delete;
|
||||||
|
AvgCounter& operator=(const AvgCounter&) = delete;
|
||||||
|
|
||||||
void Add(int sample);
|
void Add(int sample);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -163,8 +164,6 @@ class AvgCounter : public StatsCounter {
|
||||||
|
|
||||||
// Returns the last computed metric (i.e. from GetMetric).
|
// Returns the last computed metric (i.e. from GetMetric).
|
||||||
int GetValueForEmptyInterval() const override;
|
int GetValueForEmptyInterval() const override;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(AvgCounter);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// MaxCounter: maximum of samples
|
// MaxCounter: maximum of samples
|
||||||
|
@ -180,13 +179,14 @@ class MaxCounter : public StatsCounter {
|
||||||
int64_t process_intervals_ms);
|
int64_t process_intervals_ms);
|
||||||
~MaxCounter() override {}
|
~MaxCounter() override {}
|
||||||
|
|
||||||
|
MaxCounter(const MaxCounter&) = delete;
|
||||||
|
MaxCounter& operator=(const MaxCounter&) = delete;
|
||||||
|
|
||||||
void Add(int sample);
|
void Add(int sample);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool GetMetric(int* metric) const override;
|
bool GetMetric(int* metric) const override;
|
||||||
int GetValueForEmptyInterval() const override;
|
int GetValueForEmptyInterval() const override;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(MaxCounter);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// PercentCounter: percentage of samples
|
// PercentCounter: percentage of samples
|
||||||
|
@ -200,13 +200,14 @@ class PercentCounter : public StatsCounter {
|
||||||
PercentCounter(Clock* clock, StatsCounterObserver* observer);
|
PercentCounter(Clock* clock, StatsCounterObserver* observer);
|
||||||
~PercentCounter() override {}
|
~PercentCounter() override {}
|
||||||
|
|
||||||
|
PercentCounter(const PercentCounter&) = delete;
|
||||||
|
PercentCounter& operator=(const PercentCounter&) = delete;
|
||||||
|
|
||||||
void Add(bool sample);
|
void Add(bool sample);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool GetMetric(int* metric) const override;
|
bool GetMetric(int* metric) const override;
|
||||||
int GetValueForEmptyInterval() const override;
|
int GetValueForEmptyInterval() const override;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(PercentCounter);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// PermilleCounter: permille of samples
|
// PermilleCounter: permille of samples
|
||||||
|
@ -220,13 +221,14 @@ class PermilleCounter : public StatsCounter {
|
||||||
PermilleCounter(Clock* clock, StatsCounterObserver* observer);
|
PermilleCounter(Clock* clock, StatsCounterObserver* observer);
|
||||||
~PermilleCounter() override {}
|
~PermilleCounter() override {}
|
||||||
|
|
||||||
|
PermilleCounter(const PermilleCounter&) = delete;
|
||||||
|
PermilleCounter& operator=(const PermilleCounter&) = delete;
|
||||||
|
|
||||||
void Add(bool sample);
|
void Add(bool sample);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool GetMetric(int* metric) const override;
|
bool GetMetric(int* metric) const override;
|
||||||
int GetValueForEmptyInterval() const override;
|
int GetValueForEmptyInterval() const override;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(PermilleCounter);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// RateCounter: units per second
|
// RateCounter: units per second
|
||||||
|
@ -247,13 +249,14 @@ class RateCounter : public StatsCounter {
|
||||||
bool include_empty_intervals);
|
bool include_empty_intervals);
|
||||||
~RateCounter() override {}
|
~RateCounter() override {}
|
||||||
|
|
||||||
|
RateCounter(const RateCounter&) = delete;
|
||||||
|
RateCounter& operator=(const RateCounter&) = delete;
|
||||||
|
|
||||||
void Add(int sample);
|
void Add(int sample);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool GetMetric(int* metric) const override;
|
bool GetMetric(int* metric) const override;
|
||||||
int GetValueForEmptyInterval() const override; // Returns zero.
|
int GetValueForEmptyInterval() const override; // Returns zero.
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(RateCounter);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// RateAccCounter: units per second (used for counters)
|
// RateAccCounter: units per second (used for counters)
|
||||||
|
@ -274,6 +277,9 @@ class RateAccCounter : public StatsCounter {
|
||||||
bool include_empty_intervals);
|
bool include_empty_intervals);
|
||||||
~RateAccCounter() override {}
|
~RateAccCounter() override {}
|
||||||
|
|
||||||
|
RateAccCounter(const RateAccCounter&) = delete;
|
||||||
|
RateAccCounter& operator=(const RateAccCounter&) = delete;
|
||||||
|
|
||||||
void Set(int64_t sample, uint32_t stream_id);
|
void Set(int64_t sample, uint32_t stream_id);
|
||||||
|
|
||||||
// Sets the value for previous interval.
|
// Sets the value for previous interval.
|
||||||
|
@ -283,8 +289,6 @@ class RateAccCounter : public StatsCounter {
|
||||||
private:
|
private:
|
||||||
bool GetMetric(int* metric) const override;
|
bool GetMetric(int* metric) const override;
|
||||||
int GetValueForEmptyInterval() const override; // Returns zero.
|
int GetValueForEmptyInterval() const override; // Returns zero.
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(RateAccCounter);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
|
@ -36,7 +36,6 @@
|
||||||
#include "modules/video_coding/svc/svc_rate_allocator.h"
|
#include "modules/video_coding/svc/svc_rate_allocator.h"
|
||||||
#include "rtc_base/arraysize.h"
|
#include "rtc_base/arraysize.h"
|
||||||
#include "rtc_base/checks.h"
|
#include "rtc_base/checks.h"
|
||||||
#include "rtc_base/constructor_magic.h"
|
|
||||||
#include "rtc_base/event.h"
|
#include "rtc_base/event.h"
|
||||||
#include "rtc_base/experiments/alr_experiment.h"
|
#include "rtc_base/experiments/alr_experiment.h"
|
||||||
#include "rtc_base/experiments/encoder_info_settings.h"
|
#include "rtc_base/experiments/encoder_info_settings.h"
|
||||||
|
|
|
@ -82,6 +82,9 @@ class VideoStreamEncoder : public VideoStreamEncoderInterface,
|
||||||
BitrateAllocationCallbackType allocation_cb_type);
|
BitrateAllocationCallbackType allocation_cb_type);
|
||||||
~VideoStreamEncoder() override;
|
~VideoStreamEncoder() override;
|
||||||
|
|
||||||
|
VideoStreamEncoder(const VideoStreamEncoder&) = delete;
|
||||||
|
VideoStreamEncoder& operator=(const VideoStreamEncoder&) = delete;
|
||||||
|
|
||||||
void AddAdaptationResource(rtc::scoped_refptr<Resource> resource) override;
|
void AddAdaptationResource(rtc::scoped_refptr<Resource> resource) override;
|
||||||
std::vector<rtc::scoped_refptr<Resource>> GetAdaptationResources() override;
|
std::vector<rtc::scoped_refptr<Resource>> GetAdaptationResources() override;
|
||||||
|
|
||||||
|
@ -440,8 +443,6 @@ class VideoStreamEncoder : public VideoStreamEncoderInterface,
|
||||||
|
|
||||||
// Used to cancel any potentially pending tasks to the worker thread.
|
// Used to cancel any potentially pending tasks to the worker thread.
|
||||||
ScopedTaskSafety task_safety_;
|
ScopedTaskSafety task_safety_;
|
||||||
|
|
||||||
RTC_DISALLOW_COPY_AND_ASSIGN(VideoStreamEncoder);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace webrtc
|
} // namespace webrtc
|
||||||
|
|
Loading…
Reference in a new issue