Remove RTC_DISALLOW_COPY_AND_ASSIGN from modules/

Bug: webrtc:13555, webrtc:13082
Change-Id: I2c2cbcbd918f0cfa970c1a964893220ba11d4b41
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/247960
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: (Daniel.L) Byoungchan Lee <daniel.l@hpcnt.com>
Cr-Commit-Position: refs/heads/main@{#35771}
diff --git a/modules/audio_coding/acm2/acm_receive_test.h b/modules/audio_coding/acm2/acm_receive_test.h
index 6349c63..2095ef9 100644
--- a/modules/audio_coding/acm2/acm_receive_test.h
+++ b/modules/audio_coding/acm2/acm_receive_test.h
@@ -18,7 +18,6 @@
 
 #include "api/audio_codecs/audio_decoder_factory.h"
 #include "api/scoped_refptr.h"
-#include "rtc_base/constructor_magic.h"
 #include "system_wrappers/include/clock.h"
 
 namespace webrtc {
@@ -45,6 +44,9 @@
                        rtc::scoped_refptr<AudioDecoderFactory> decoder_factory);
   virtual ~AcmReceiveTestOldApi();
 
+  AcmReceiveTestOldApi(const AcmReceiveTestOldApi&) = delete;
+  AcmReceiveTestOldApi& operator=(const AcmReceiveTestOldApi&) = delete;
+
   // Registers the codecs with default parameters from ACM.
   void RegisterDefaultCodecs();
 
@@ -67,8 +69,6 @@
   AudioSink* audio_sink_;
   int output_freq_hz_;
   NumOutputChannels exptected_output_channels_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(AcmReceiveTestOldApi);
 };
 
 // This test toggles the output frequency every `toggle_period_ms`. The test
diff --git a/modules/audio_coding/acm2/acm_send_test.h b/modules/audio_coding/acm2/acm_send_test.h
index 0c82415..b14cb80 100644
--- a/modules/audio_coding/acm2/acm_send_test.h
+++ b/modules/audio_coding/acm2/acm_send_test.h
@@ -17,7 +17,6 @@
 #include "api/audio/audio_frame.h"
 #include "modules/audio_coding/include/audio_coding_module.h"
 #include "modules/audio_coding/neteq/tools/packet_source.h"
-#include "rtc_base/constructor_magic.h"
 #include "system_wrappers/include/clock.h"
 
 namespace webrtc {
@@ -35,6 +34,9 @@
                     int test_duration_ms);
   ~AcmSendTestOldApi() override;
 
+  AcmSendTestOldApi(const AcmSendTestOldApi&) = delete;
+  AcmSendTestOldApi& operator=(const AcmSendTestOldApi&) = delete;
+
   // Registers the send codec. Returns true on success, false otherwise.
   bool RegisterCodec(const char* payload_name,
                      int sampling_freq_hz,
@@ -81,8 +83,6 @@
   uint16_t sequence_number_;
   std::vector<uint8_t> last_payload_vec_;
   bool data_to_send_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(AcmSendTestOldApi);
 };
 
 }  // namespace test
diff --git a/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl.h b/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl.h
index 1c91fa1..664e76b 100644
--- a/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl.h
+++ b/modules/audio_coding/audio_network_adaptor/audio_network_adaptor_impl.h
@@ -21,7 +21,6 @@
 #include "modules/audio_coding/audio_network_adaptor/debug_dump_writer.h"
 #include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor.h"
 #include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -44,6 +43,9 @@
 
   ~AudioNetworkAdaptorImpl() override;
 
+  AudioNetworkAdaptorImpl(const AudioNetworkAdaptorImpl&) = delete;
+  AudioNetworkAdaptorImpl& operator=(const AudioNetworkAdaptorImpl&) = delete;
+
   void SetUplinkBandwidth(int uplink_bandwidth_bps) override;
 
   void SetUplinkPacketLossFraction(float uplink_packet_loss_fraction) override;
@@ -80,8 +82,6 @@
   absl::optional<AudioEncoderRuntimeConfig> prev_config_;
 
   ANAStats stats_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioNetworkAdaptorImpl);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/audio_network_adaptor/bitrate_controller.h b/modules/audio_coding/audio_network_adaptor/bitrate_controller.h
index 41bfbd1..c103214 100644
--- a/modules/audio_coding/audio_network_adaptor/bitrate_controller.h
+++ b/modules/audio_coding/audio_network_adaptor/bitrate_controller.h
@@ -16,7 +16,6 @@
 #include "absl/types/optional.h"
 #include "modules/audio_coding/audio_network_adaptor/controller.h"
 #include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 namespace audio_network_adaptor {
@@ -39,6 +38,9 @@
 
   ~BitrateController() override;
 
+  BitrateController(const BitrateController&) = delete;
+  BitrateController& operator=(const BitrateController&) = delete;
+
   void UpdateNetworkMetrics(const NetworkMetrics& network_metrics) override;
 
   void MakeDecision(AudioEncoderRuntimeConfig* config) override;
@@ -49,7 +51,6 @@
   int frame_length_ms_;
   absl::optional<int> target_audio_bitrate_bps_;
   absl::optional<size_t> overhead_bytes_per_packet_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(BitrateController);
 };
 
 }  // namespace audio_network_adaptor
diff --git a/modules/audio_coding/audio_network_adaptor/channel_controller.h b/modules/audio_coding/audio_network_adaptor/channel_controller.h
index f211f40..3cd4bb7 100644
--- a/modules/audio_coding/audio_network_adaptor/channel_controller.h
+++ b/modules/audio_coding/audio_network_adaptor/channel_controller.h
@@ -16,7 +16,6 @@
 #include "absl/types/optional.h"
 #include "modules/audio_coding/audio_network_adaptor/controller.h"
 #include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -41,6 +40,9 @@
 
   ~ChannelController() override;
 
+  ChannelController(const ChannelController&) = delete;
+  ChannelController& operator=(const ChannelController&) = delete;
+
   void UpdateNetworkMetrics(const NetworkMetrics& network_metrics) override;
 
   void MakeDecision(AudioEncoderRuntimeConfig* config) override;
@@ -49,7 +51,6 @@
   const Config config_;
   size_t channels_to_encode_;
   absl::optional<int> uplink_bandwidth_bps_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(ChannelController);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/audio_network_adaptor/controller_manager.h b/modules/audio_coding/audio_network_adaptor/controller_manager.h
index c168ebc..f7d7b34 100644
--- a/modules/audio_coding/audio_network_adaptor/controller_manager.h
+++ b/modules/audio_coding/audio_network_adaptor/controller_manager.h
@@ -17,7 +17,6 @@
 #include <vector>
 
 #include "modules/audio_coding/audio_network_adaptor/controller.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -80,6 +79,9 @@
 
   ~ControllerManagerImpl() override;
 
+  ControllerManagerImpl(const ControllerManagerImpl&) = delete;
+  ControllerManagerImpl& operator=(const ControllerManagerImpl&) = delete;
+
   // Sort controllers based on their significance.
   std::vector<Controller*> GetSortedControllers(
       const Controller::NetworkMetrics& metrics) override;
@@ -114,8 +116,6 @@
   // `scoring_points_` saves the scoring points of various
   // controllers.
   std::map<const Controller*, ScoringPoint> controller_scoring_points_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(ControllerManagerImpl);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/audio_network_adaptor/dtx_controller.h b/modules/audio_coding/audio_network_adaptor/dtx_controller.h
index 83fdf3d..b8a8e47 100644
--- a/modules/audio_coding/audio_network_adaptor/dtx_controller.h
+++ b/modules/audio_coding/audio_network_adaptor/dtx_controller.h
@@ -14,7 +14,6 @@
 #include "absl/types/optional.h"
 #include "modules/audio_coding/audio_network_adaptor/controller.h"
 #include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -35,6 +34,9 @@
 
   ~DtxController() override;
 
+  DtxController(const DtxController&) = delete;
+  DtxController& operator=(const DtxController&) = delete;
+
   void UpdateNetworkMetrics(const NetworkMetrics& network_metrics) override;
 
   void MakeDecision(AudioEncoderRuntimeConfig* config) override;
@@ -43,7 +45,6 @@
   const Config config_;
   bool dtx_enabled_;
   absl::optional<int> uplink_bandwidth_bps_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(DtxController);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/audio_network_adaptor/event_log_writer.h b/modules/audio_coding/audio_network_adaptor/event_log_writer.h
index c5e57e6..a147311 100644
--- a/modules/audio_coding/audio_network_adaptor/event_log_writer.h
+++ b/modules/audio_coding/audio_network_adaptor/event_log_writer.h
@@ -12,7 +12,6 @@
 #define MODULES_AUDIO_CODING_AUDIO_NETWORK_ADAPTOR_EVENT_LOG_WRITER_H_
 
 #include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 class RtcEventLog;
@@ -24,6 +23,10 @@
                  float min_bitrate_change_fraction,
                  float min_packet_loss_change_fraction);
   ~EventLogWriter();
+
+  EventLogWriter(const EventLogWriter&) = delete;
+  EventLogWriter& operator=(const EventLogWriter&) = delete;
+
   void MaybeLogEncoderConfig(const AudioEncoderRuntimeConfig& config);
 
  private:
@@ -34,7 +37,6 @@
   const float min_bitrate_change_fraction_;
   const float min_packet_loss_change_fraction_;
   AudioEncoderRuntimeConfig last_logged_config_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(EventLogWriter);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/audio_network_adaptor/fec_controller_plr_based.h b/modules/audio_coding/audio_network_adaptor/fec_controller_plr_based.h
index 85d235e..0c57ad1 100644
--- a/modules/audio_coding/audio_network_adaptor/fec_controller_plr_based.h
+++ b/modules/audio_coding/audio_network_adaptor/fec_controller_plr_based.h
@@ -18,7 +18,6 @@
 #include "modules/audio_coding/audio_network_adaptor/controller.h"
 #include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h"
 #include "modules/audio_coding/audio_network_adaptor/util/threshold_curve.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -53,6 +52,9 @@
 
   ~FecControllerPlrBased() override;
 
+  FecControllerPlrBased(const FecControllerPlrBased&) = delete;
+  FecControllerPlrBased& operator=(const FecControllerPlrBased&) = delete;
+
   void UpdateNetworkMetrics(const NetworkMetrics& network_metrics) override;
 
   void MakeDecision(AudioEncoderRuntimeConfig* config) override;
@@ -65,8 +67,6 @@
   bool fec_enabled_;
   absl::optional<int> uplink_bandwidth_bps_;
   const std::unique_ptr<SmoothingFilter> packet_loss_smoother_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(FecControllerPlrBased);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/audio_network_adaptor/frame_length_controller.h b/modules/audio_coding/audio_network_adaptor/frame_length_controller.h
index 74a787e..04693f8 100644
--- a/modules/audio_coding/audio_network_adaptor/frame_length_controller.h
+++ b/modules/audio_coding/audio_network_adaptor/frame_length_controller.h
@@ -19,7 +19,6 @@
 #include "absl/types/optional.h"
 #include "modules/audio_coding/audio_network_adaptor/controller.h"
 #include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor_config.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -62,6 +61,9 @@
 
   ~FrameLengthController() override;
 
+  FrameLengthController(const FrameLengthController&) = delete;
+  FrameLengthController& operator=(const FrameLengthController&) = delete;
+
   void UpdateNetworkMetrics(const NetworkMetrics& network_metrics) override;
 
   void MakeDecision(AudioEncoderRuntimeConfig* config) override;
@@ -84,8 +86,6 @@
   // True if the previous frame length decision was an increase, otherwise
   // false.
   bool prev_decision_increase_ = false;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(FrameLengthController);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/codecs/g711/audio_decoder_pcm.h b/modules/audio_coding/codecs/g711/audio_decoder_pcm.h
index 6185918..3fa42cb 100644
--- a/modules/audio_coding/codecs/g711/audio_decoder_pcm.h
+++ b/modules/audio_coding/codecs/g711/audio_decoder_pcm.h
@@ -19,7 +19,6 @@
 #include "api/audio_codecs/audio_decoder.h"
 #include "rtc_base/buffer.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -28,6 +27,10 @@
   explicit AudioDecoderPcmU(size_t num_channels) : num_channels_(num_channels) {
     RTC_DCHECK_GE(num_channels, 1);
   }
+
+  AudioDecoderPcmU(const AudioDecoderPcmU&) = delete;
+  AudioDecoderPcmU& operator=(const AudioDecoderPcmU&) = delete;
+
   void Reset() override;
   std::vector<ParseResult> ParsePayload(rtc::Buffer&& payload,
                                         uint32_t timestamp) override;
@@ -44,7 +47,6 @@
 
  private:
   const size_t num_channels_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioDecoderPcmU);
 };
 
 class AudioDecoderPcmA final : public AudioDecoder {
@@ -52,6 +54,10 @@
   explicit AudioDecoderPcmA(size_t num_channels) : num_channels_(num_channels) {
     RTC_DCHECK_GE(num_channels, 1);
   }
+
+  AudioDecoderPcmA(const AudioDecoderPcmA&) = delete;
+  AudioDecoderPcmA& operator=(const AudioDecoderPcmA&) = delete;
+
   void Reset() override;
   std::vector<ParseResult> ParsePayload(rtc::Buffer&& payload,
                                         uint32_t timestamp) override;
@@ -68,7 +74,6 @@
 
  private:
   const size_t num_channels_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioDecoderPcmA);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/codecs/g711/audio_encoder_pcm.h b/modules/audio_coding/codecs/g711/audio_encoder_pcm.h
index c4413f5..d50be4b 100644
--- a/modules/audio_coding/codecs/g711/audio_encoder_pcm.h
+++ b/modules/audio_coding/codecs/g711/audio_encoder_pcm.h
@@ -17,7 +17,6 @@
 #include "absl/types/optional.h"
 #include "api/audio_codecs/audio_encoder.h"
 #include "api/units/time_delta.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -83,6 +82,9 @@
   explicit AudioEncoderPcmA(const Config& config)
       : AudioEncoderPcm(config, kSampleRateHz) {}
 
+  AudioEncoderPcmA(const AudioEncoderPcmA&) = delete;
+  AudioEncoderPcmA& operator=(const AudioEncoderPcmA&) = delete;
+
  protected:
   size_t EncodeCall(const int16_t* audio,
                     size_t input_len,
@@ -94,7 +96,6 @@
 
  private:
   static const int kSampleRateHz = 8000;
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderPcmA);
 };
 
 class AudioEncoderPcmU final : public AudioEncoderPcm {
@@ -106,6 +107,9 @@
   explicit AudioEncoderPcmU(const Config& config)
       : AudioEncoderPcm(config, kSampleRateHz) {}
 
+  AudioEncoderPcmU(const AudioEncoderPcmU&) = delete;
+  AudioEncoderPcmU& operator=(const AudioEncoderPcmU&) = delete;
+
  protected:
   size_t EncodeCall(const int16_t* audio,
                     size_t input_len,
@@ -117,7 +121,6 @@
 
  private:
   static const int kSampleRateHz = 8000;
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderPcmU);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/codecs/g722/audio_decoder_g722.h b/modules/audio_coding/codecs/g722/audio_decoder_g722.h
index eeca139..39e9e63 100644
--- a/modules/audio_coding/codecs/g722/audio_decoder_g722.h
+++ b/modules/audio_coding/codecs/g722/audio_decoder_g722.h
@@ -12,7 +12,6 @@
 #define MODULES_AUDIO_CODING_CODECS_G722_AUDIO_DECODER_G722_H_
 
 #include "api/audio_codecs/audio_decoder.h"
-#include "rtc_base/constructor_magic.h"
 
 typedef struct WebRtcG722DecInst G722DecInst;
 
@@ -22,6 +21,10 @@
  public:
   AudioDecoderG722Impl();
   ~AudioDecoderG722Impl() override;
+
+  AudioDecoderG722Impl(const AudioDecoderG722Impl&) = delete;
+  AudioDecoderG722Impl& operator=(const AudioDecoderG722Impl&) = delete;
+
   bool HasDecodePlc() const override;
   void Reset() override;
   std::vector<ParseResult> ParsePayload(rtc::Buffer&& payload,
@@ -39,13 +42,17 @@
 
  private:
   G722DecInst* dec_state_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioDecoderG722Impl);
 };
 
 class AudioDecoderG722StereoImpl final : public AudioDecoder {
  public:
   AudioDecoderG722StereoImpl();
   ~AudioDecoderG722StereoImpl() override;
+
+  AudioDecoderG722StereoImpl(const AudioDecoderG722StereoImpl&) = delete;
+  AudioDecoderG722StereoImpl& operator=(const AudioDecoderG722StereoImpl&) =
+      delete;
+
   void Reset() override;
   std::vector<ParseResult> ParsePayload(rtc::Buffer&& payload,
                                         uint32_t timestamp) override;
@@ -71,7 +78,6 @@
 
   G722DecInst* dec_state_left_;
   G722DecInst* dec_state_right_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioDecoderG722StereoImpl);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/codecs/g722/audio_encoder_g722.h b/modules/audio_coding/codecs/g722/audio_encoder_g722.h
index c836503..a932aa8 100644
--- a/modules/audio_coding/codecs/g722/audio_encoder_g722.h
+++ b/modules/audio_coding/codecs/g722/audio_encoder_g722.h
@@ -20,7 +20,6 @@
 #include "api/units/time_delta.h"
 #include "modules/audio_coding/codecs/g722/g722_interface.h"
 #include "rtc_base/buffer.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -29,6 +28,9 @@
   AudioEncoderG722Impl(const AudioEncoderG722Config& config, int payload_type);
   ~AudioEncoderG722Impl() override;
 
+  AudioEncoderG722Impl(const AudioEncoderG722Impl&) = delete;
+  AudioEncoderG722Impl& operator=(const AudioEncoderG722Impl&) = delete;
+
   int SampleRateHz() const override;
   size_t NumChannels() const override;
   int RtpTimestampRateHz() const override;
@@ -63,7 +65,6 @@
   uint32_t first_timestamp_in_buffer_;
   const std::unique_ptr<EncoderState[]> encoders_;
   rtc::Buffer interleave_buffer_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderG722Impl);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/codecs/ilbc/audio_decoder_ilbc.h b/modules/audio_coding/codecs/ilbc/audio_decoder_ilbc.h
index c2d62ed..46ba755 100644
--- a/modules/audio_coding/codecs/ilbc/audio_decoder_ilbc.h
+++ b/modules/audio_coding/codecs/ilbc/audio_decoder_ilbc.h
@@ -18,7 +18,6 @@
 
 #include "api/audio_codecs/audio_decoder.h"
 #include "rtc_base/buffer.h"
-#include "rtc_base/constructor_magic.h"
 
 typedef struct iLBC_decinst_t_ IlbcDecoderInstance;
 
@@ -28,6 +27,10 @@
  public:
   AudioDecoderIlbcImpl();
   ~AudioDecoderIlbcImpl() override;
+
+  AudioDecoderIlbcImpl(const AudioDecoderIlbcImpl&) = delete;
+  AudioDecoderIlbcImpl& operator=(const AudioDecoderIlbcImpl&) = delete;
+
   bool HasDecodePlc() const override;
   size_t DecodePlc(size_t num_frames, int16_t* decoded) override;
   void Reset() override;
@@ -45,7 +48,6 @@
 
  private:
   IlbcDecoderInstance* dec_state_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioDecoderIlbcImpl);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/codecs/ilbc/audio_encoder_ilbc.h b/modules/audio_coding/codecs/ilbc/audio_encoder_ilbc.h
index 05a900e..c8dfa2c 100644
--- a/modules/audio_coding/codecs/ilbc/audio_encoder_ilbc.h
+++ b/modules/audio_coding/codecs/ilbc/audio_encoder_ilbc.h
@@ -21,7 +21,6 @@
 #include "api/audio_codecs/ilbc/audio_encoder_ilbc_config.h"
 #include "api/units/time_delta.h"
 #include "modules/audio_coding/codecs/ilbc/ilbc.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -30,6 +29,9 @@
   AudioEncoderIlbcImpl(const AudioEncoderIlbcConfig& config, int payload_type);
   ~AudioEncoderIlbcImpl() override;
 
+  AudioEncoderIlbcImpl(const AudioEncoderIlbcImpl&) = delete;
+  AudioEncoderIlbcImpl& operator=(const AudioEncoderIlbcImpl&) = delete;
+
   int SampleRateHz() const override;
   size_t NumChannels() const override;
   size_t Num10MsFramesInNextPacket() const override;
@@ -53,7 +55,6 @@
   uint32_t first_timestamp_in_buffer_;
   int16_t input_buffer_[kMaxSamplesPerPacket];
   IlbcEncoderInstance* encoder_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderIlbcImpl);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/codecs/isac/audio_decoder_isac_t.h b/modules/audio_coding/codecs/isac/audio_decoder_isac_t.h
index 23a3020..aae708f 100644
--- a/modules/audio_coding/codecs/isac/audio_decoder_isac_t.h
+++ b/modules/audio_coding/codecs/isac/audio_decoder_isac_t.h
@@ -16,7 +16,6 @@
 #include "absl/types/optional.h"
 #include "api/audio_codecs/audio_decoder.h"
 #include "api/scoped_refptr.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -30,6 +29,9 @@
   explicit AudioDecoderIsacT(const Config& config);
   virtual ~AudioDecoderIsacT() override;
 
+  AudioDecoderIsacT(const AudioDecoderIsacT&) = delete;
+  AudioDecoderIsacT& operator=(const AudioDecoderIsacT&) = delete;
+
   bool HasDecodePlc() const override;
   size_t DecodePlc(size_t num_frames, int16_t* decoded) override;
   void Reset() override;
@@ -45,8 +47,6 @@
  private:
   typename T::instance_type* isac_state_;
   int sample_rate_hz_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioDecoderIsacT);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/codecs/isac/audio_encoder_isac_t.h b/modules/audio_coding/codecs/isac/audio_encoder_isac_t.h
index 8bde0e3..c382ea0 100644
--- a/modules/audio_coding/codecs/isac/audio_encoder_isac_t.h
+++ b/modules/audio_coding/codecs/isac/audio_encoder_isac_t.h
@@ -18,7 +18,6 @@
 #include "api/audio_codecs/audio_encoder.h"
 #include "api/scoped_refptr.h"
 #include "api/units/time_delta.h"
-#include "rtc_base/constructor_magic.h"
 #include "system_wrappers/include/field_trial.h"
 
 namespace webrtc {
@@ -44,6 +43,9 @@
   explicit AudioEncoderIsacT(const Config& config);
   ~AudioEncoderIsacT() override;
 
+  AudioEncoderIsacT(const AudioEncoderIsacT&) = delete;
+  AudioEncoderIsacT& operator=(const AudioEncoderIsacT&) = delete;
+
   int SampleRateHz() const override;
   size_t NumChannels() const override;
   size_t Num10MsFramesInNextPacket() const override;
@@ -99,8 +101,6 @@
   // Start out with a reasonable default that we can use until we receive a real
   // value.
   DataSize overhead_per_packet_ = DataSize::Bytes(28);
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderIsacT);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/codecs/opus/audio_decoder_multi_channel_opus_impl.h b/modules/audio_coding/codecs/opus/audio_decoder_multi_channel_opus_impl.h
index efc3f0d..2ff47a8 100644
--- a/modules/audio_coding/codecs/opus/audio_decoder_multi_channel_opus_impl.h
+++ b/modules/audio_coding/codecs/opus/audio_decoder_multi_channel_opus_impl.h
@@ -21,7 +21,6 @@
 #include "api/audio_codecs/opus/audio_decoder_multi_channel_opus_config.h"
 #include "modules/audio_coding/codecs/opus/opus_interface.h"
 #include "rtc_base/buffer.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -32,6 +31,11 @@
 
   ~AudioDecoderMultiChannelOpusImpl() override;
 
+  AudioDecoderMultiChannelOpusImpl(const AudioDecoderMultiChannelOpusImpl&) =
+      delete;
+  AudioDecoderMultiChannelOpusImpl& operator=(
+      const AudioDecoderMultiChannelOpusImpl&) = delete;
+
   std::vector<ParseResult> ParsePayload(rtc::Buffer&& payload,
                                         uint32_t timestamp) override;
   void Reset() override;
@@ -63,7 +67,6 @@
 
   OpusDecInst* dec_state_;
   const AudioDecoderMultiChannelOpusConfig config_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioDecoderMultiChannelOpusImpl);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/codecs/opus/audio_decoder_opus.h b/modules/audio_coding/codecs/opus/audio_decoder_opus.h
index c792722..e8fd044 100644
--- a/modules/audio_coding/codecs/opus/audio_decoder_opus.h
+++ b/modules/audio_coding/codecs/opus/audio_decoder_opus.h
@@ -19,7 +19,6 @@
 #include "api/audio_codecs/audio_decoder.h"
 #include "modules/audio_coding/codecs/opus/opus_interface.h"
 #include "rtc_base/buffer.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -29,6 +28,9 @@
                                 int sample_rate_hz = 48000);
   ~AudioDecoderOpusImpl() override;
 
+  AudioDecoderOpusImpl(const AudioDecoderOpusImpl&) = delete;
+  AudioDecoderOpusImpl& operator=(const AudioDecoderOpusImpl&) = delete;
+
   std::vector<ParseResult> ParsePayload(rtc::Buffer&& payload,
                                         uint32_t timestamp) override;
   void Reset() override;
@@ -55,7 +57,6 @@
   OpusDecInst* dec_state_;
   const size_t channels_;
   const int sample_rate_hz_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioDecoderOpusImpl);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/codecs/opus/audio_encoder_multi_channel_opus_impl.h b/modules/audio_coding/codecs/opus/audio_encoder_multi_channel_opus_impl.h
index eadb4a6..8a72105 100644
--- a/modules/audio_coding/codecs/opus/audio_encoder_multi_channel_opus_impl.h
+++ b/modules/audio_coding/codecs/opus/audio_encoder_multi_channel_opus_impl.h
@@ -21,7 +21,6 @@
 #include "api/audio_codecs/opus/audio_encoder_multi_channel_opus_config.h"
 #include "api/units/time_delta.h"
 #include "modules/audio_coding/codecs/opus/opus_interface.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -34,6 +33,11 @@
       int payload_type);
   ~AudioEncoderMultiChannelOpusImpl() override;
 
+  AudioEncoderMultiChannelOpusImpl(const AudioEncoderMultiChannelOpusImpl&) =
+      delete;
+  AudioEncoderMultiChannelOpusImpl& operator=(
+      const AudioEncoderMultiChannelOpusImpl&) = delete;
+
   // Static interface for use by BuiltinAudioEncoderFactory.
   static constexpr const char* GetPayloadName() { return "multiopus"; }
   static absl::optional<AudioCodecInfo> QueryAudioEncoder(
@@ -81,7 +85,6 @@
   int next_frame_length_ms_;
 
   friend struct AudioEncoderMultiChannelOpus;
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderMultiChannelOpusImpl);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/codecs/opus/audio_encoder_opus.h b/modules/audio_coding/codecs/opus/audio_encoder_opus.h
index c7ee4f4..14477cc 100644
--- a/modules/audio_coding/codecs/opus/audio_encoder_opus.h
+++ b/modules/audio_coding/codecs/opus/audio_encoder_opus.h
@@ -23,7 +23,6 @@
 #include "common_audio/smoothing_filter.h"
 #include "modules/audio_coding/audio_network_adaptor/include/audio_network_adaptor.h"
 #include "modules/audio_coding/codecs/opus/opus_interface.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -61,6 +60,9 @@
   AudioEncoderOpusImpl(int payload_type, const SdpAudioFormat& format);
   ~AudioEncoderOpusImpl() override;
 
+  AudioEncoderOpusImpl(const AudioEncoderOpusImpl&) = delete;
+  AudioEncoderOpusImpl& operator=(const AudioEncoderOpusImpl&) = delete;
+
   int SampleRateHz() const override;
   size_t NumChannels() const override;
   int RtpTimestampRateHz() const override;
@@ -175,7 +177,6 @@
   int consecutive_dtx_frames_;
 
   friend struct AudioEncoderOpus;
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderOpusImpl);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/codecs/pcm16b/audio_decoder_pcm16b.h b/modules/audio_coding/codecs/pcm16b/audio_decoder_pcm16b.h
index f08c4a6..6f50161 100644
--- a/modules/audio_coding/codecs/pcm16b/audio_decoder_pcm16b.h
+++ b/modules/audio_coding/codecs/pcm16b/audio_decoder_pcm16b.h
@@ -18,13 +18,16 @@
 
 #include "api/audio_codecs/audio_decoder.h"
 #include "rtc_base/buffer.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
 class AudioDecoderPcm16B final : public AudioDecoder {
  public:
   AudioDecoderPcm16B(int sample_rate_hz, size_t num_channels);
+
+  AudioDecoderPcm16B(const AudioDecoderPcm16B&) = delete;
+  AudioDecoderPcm16B& operator=(const AudioDecoderPcm16B&) = delete;
+
   void Reset() override;
   std::vector<ParseResult> ParsePayload(rtc::Buffer&& payload,
                                         uint32_t timestamp) override;
@@ -42,7 +45,6 @@
  private:
   const int sample_rate_hz_;
   const size_t num_channels_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioDecoderPcm16B);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/codecs/pcm16b/audio_encoder_pcm16b.h b/modules/audio_coding/codecs/pcm16b/audio_encoder_pcm16b.h
index 71c7572..c363b40 100644
--- a/modules/audio_coding/codecs/pcm16b/audio_encoder_pcm16b.h
+++ b/modules/audio_coding/codecs/pcm16b/audio_encoder_pcm16b.h
@@ -12,7 +12,6 @@
 #define MODULES_AUDIO_CODING_CODECS_PCM16B_AUDIO_ENCODER_PCM16B_H_
 
 #include "modules/audio_coding/codecs/g711/audio_encoder_pcm.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -29,6 +28,9 @@
   explicit AudioEncoderPcm16B(const Config& config)
       : AudioEncoderPcm(config, config.sample_rate_hz) {}
 
+  AudioEncoderPcm16B(const AudioEncoderPcm16B&) = delete;
+  AudioEncoderPcm16B& operator=(const AudioEncoderPcm16B&) = delete;
+
  protected:
   size_t EncodeCall(const int16_t* audio,
                     size_t input_len,
@@ -37,9 +39,6 @@
   size_t BytesPerSample() const override;
 
   AudioEncoder::CodecType GetCodecType() const override;
-
- private:
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderPcm16B);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/codecs/red/audio_encoder_copy_red.h b/modules/audio_coding/codecs/red/audio_encoder_copy_red.h
index d5b1bf6..d163193 100644
--- a/modules/audio_coding/codecs/red/audio_encoder_copy_red.h
+++ b/modules/audio_coding/codecs/red/audio_encoder_copy_red.h
@@ -23,7 +23,6 @@
 #include "api/audio_codecs/audio_encoder.h"
 #include "api/units/time_delta.h"
 #include "rtc_base/buffer.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -47,6 +46,9 @@
 
   ~AudioEncoderCopyRed() override;
 
+  AudioEncoderCopyRed(const AudioEncoderCopyRed&) = delete;
+  AudioEncoderCopyRed& operator=(const AudioEncoderCopyRed&) = delete;
+
   int SampleRateHz() const override;
   size_t NumChannels() const override;
   int RtpTimestampRateHz() const override;
@@ -92,8 +94,6 @@
   size_t max_packet_length_;
   int red_payload_type_;
   std::list<std::pair<EncodedInfo, rtc::Buffer>> redundant_encodings_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioEncoderCopyRed);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/accelerate.h b/modules/audio_coding/neteq/accelerate.h
index e03f609..01fe874 100644
--- a/modules/audio_coding/neteq/accelerate.h
+++ b/modules/audio_coding/neteq/accelerate.h
@@ -15,7 +15,6 @@
 #include <stdint.h>
 
 #include "modules/audio_coding/neteq/time_stretch.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -33,6 +32,9 @@
              const BackgroundNoise& background_noise)
       : TimeStretch(sample_rate_hz, num_channels, background_noise) {}
 
+  Accelerate(const Accelerate&) = delete;
+  Accelerate& operator=(const Accelerate&) = delete;
+
   // This method performs the actual Accelerate operation. The samples are
   // read from `input`, of length `input_length` elements, and are written to
   // `output`. The number of samples removed through time-stretching is
@@ -62,9 +64,6 @@
                                       bool active_speech,
                                       bool fast_mode,
                                       AudioMultiVector* output) const override;
-
- private:
-  RTC_DISALLOW_COPY_AND_ASSIGN(Accelerate);
 };
 
 struct AccelerateFactory {
diff --git a/modules/audio_coding/neteq/audio_multi_vector.h b/modules/audio_coding/neteq/audio_multi_vector.h
index 10179d7..715ec6d 100644
--- a/modules/audio_coding/neteq/audio_multi_vector.h
+++ b/modules/audio_coding/neteq/audio_multi_vector.h
@@ -18,7 +18,6 @@
 
 #include "api/array_view.h"
 #include "modules/audio_coding/neteq/audio_vector.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -34,6 +33,9 @@
 
   virtual ~AudioMultiVector();
 
+  AudioMultiVector(const AudioMultiVector&) = delete;
+  AudioMultiVector& operator=(const AudioMultiVector&) = delete;
+
   // Deletes all values and make the vector empty.
   virtual void Clear();
 
@@ -130,9 +132,6 @@
  protected:
   std::vector<AudioVector*> channels_;
   size_t num_channels_;
-
- private:
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioMultiVector);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/audio_vector.h b/modules/audio_coding/neteq/audio_vector.h
index c722b56..d68f3ec 100644
--- a/modules/audio_coding/neteq/audio_vector.h
+++ b/modules/audio_coding/neteq/audio_vector.h
@@ -17,7 +17,6 @@
 #include <memory>
 
 #include "rtc_base/checks.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -31,6 +30,9 @@
 
   virtual ~AudioVector();
 
+  AudioVector(const AudioVector&) = delete;
+  AudioVector& operator=(const AudioVector&) = delete;
+
   // Deletes all values and make the vector empty.
   virtual void Clear();
 
@@ -164,8 +166,6 @@
 
   // The index of the sample after the last sample in `array_`.
   size_t end_index_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioVector);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/background_noise.h b/modules/audio_coding/neteq/background_noise.h
index 005b376..8e6d589 100644
--- a/modules/audio_coding/neteq/background_noise.h
+++ b/modules/audio_coding/neteq/background_noise.h
@@ -16,7 +16,6 @@
 #include <memory>
 
 #include "api/array_view.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -34,6 +33,9 @@
   explicit BackgroundNoise(size_t num_channels);
   virtual ~BackgroundNoise();
 
+  BackgroundNoise(const BackgroundNoise&) = delete;
+  BackgroundNoise& operator=(const BackgroundNoise&) = delete;
+
   void Reset();
 
   // Updates the parameter estimates based on the signal currently in the
@@ -130,8 +132,6 @@
   size_t num_channels_;
   std::unique_ptr<ChannelParameters[]> channel_parameters_;
   bool initialized_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(BackgroundNoise);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/buffer_level_filter.h b/modules/audio_coding/neteq/buffer_level_filter.h
index 94a3715..ced36da 100644
--- a/modules/audio_coding/neteq/buffer_level_filter.h
+++ b/modules/audio_coding/neteq/buffer_level_filter.h
@@ -14,14 +14,16 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#include "rtc_base/constructor_magic.h"
-
 namespace webrtc {
 
 class BufferLevelFilter {
  public:
   BufferLevelFilter();
   virtual ~BufferLevelFilter() {}
+
+  BufferLevelFilter(const BufferLevelFilter&) = delete;
+  BufferLevelFilter& operator=(const BufferLevelFilter&) = delete;
+
   virtual void Reset();
 
   // Updates the filter. Current buffer size is `buffer_size_samples`.
@@ -46,8 +48,6 @@
  private:
   int level_factor_;  // Filter factor for the buffer level filter in Q8.
   int filtered_current_level_;  // Filtered current buffer level in Q8.
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(BufferLevelFilter);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/comfort_noise.h b/modules/audio_coding/neteq/comfort_noise.h
index 6419d39..31fcee3 100644
--- a/modules/audio_coding/neteq/comfort_noise.h
+++ b/modules/audio_coding/neteq/comfort_noise.h
@@ -13,8 +13,6 @@
 
 #include <stddef.h>
 
-#include "rtc_base/constructor_magic.h"
-
 namespace webrtc {
 
 // Forward declarations.
@@ -42,6 +40,9 @@
         decoder_database_(decoder_database),
         sync_buffer_(sync_buffer) {}
 
+  ComfortNoise(const ComfortNoise&) = delete;
+  ComfortNoise& operator=(const ComfortNoise&) = delete;
+
   // Resets the state. Should be called before each new comfort noise period.
   void Reset();
 
@@ -65,7 +66,6 @@
   DecoderDatabase* decoder_database_;
   SyncBuffer* sync_buffer_;
   int internal_error_code_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(ComfortNoise);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/decision_logic.h b/modules/audio_coding/neteq/decision_logic.h
index 693f616..a8571ad 100644
--- a/modules/audio_coding/neteq/decision_logic.h
+++ b/modules/audio_coding/neteq/decision_logic.h
@@ -18,7 +18,6 @@
 #include "api/neteq/tick_timer.h"
 #include "modules/audio_coding/neteq/buffer_level_filter.h"
 #include "modules/audio_coding/neteq/delay_manager.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/experiments/field_trial_parser.h"
 
 namespace webrtc {
@@ -37,6 +36,9 @@
 
   ~DecisionLogic() override;
 
+  DecisionLogic(const DecisionLogic&) = delete;
+  DecisionLogic& operator=(const DecisionLogic&) = delete;
+
   // Resets object to a clean state.
   void Reset() override;
 
@@ -192,8 +194,6 @@
   FieldTrialParameter<bool> estimate_dtx_delay_;
   FieldTrialParameter<bool> time_stretch_cn_;
   FieldTrialConstrained<int> target_level_window_ms_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(DecisionLogic);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/decoder_database.h b/modules/audio_coding/neteq/decoder_database.h
index a63a9cf..6c2ce54 100644
--- a/modules/audio_coding/neteq/decoder_database.h
+++ b/modules/audio_coding/neteq/decoder_database.h
@@ -20,7 +20,6 @@
 #include "api/scoped_refptr.h"
 #include "modules/audio_coding/codecs/cng/webrtc_cng.h"
 #include "modules/audio_coding/neteq/packet.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -122,6 +121,9 @@
 
   virtual ~DecoderDatabase();
 
+  DecoderDatabase(const DecoderDatabase&) = delete;
+  DecoderDatabase& operator=(const DecoderDatabase&) = delete;
+
   // Returns true if the database is empty.
   virtual bool Empty() const;
 
@@ -208,8 +210,6 @@
   mutable std::unique_ptr<ComfortNoiseDecoder> active_cng_decoder_;
   rtc::scoped_refptr<AudioDecoderFactory> decoder_factory_;
   const absl::optional<AudioCodecPairId> codec_pair_id_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(DecoderDatabase);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/delay_manager.h b/modules/audio_coding/neteq/delay_manager.h
index 410aa94..56d108a 100644
--- a/modules/audio_coding/neteq/delay_manager.h
+++ b/modules/audio_coding/neteq/delay_manager.h
@@ -22,7 +22,6 @@
 #include "modules/audio_coding/neteq/relative_arrival_delay_tracker.h"
 #include "modules/audio_coding/neteq/reorder_optimizer.h"
 #include "modules/audio_coding/neteq/underrun_optimizer.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -52,6 +51,9 @@
 
   virtual ~DelayManager();
 
+  DelayManager(const DelayManager&) = delete;
+  DelayManager& operator=(const DelayManager&) = delete;
+
   // Updates the delay manager with a new incoming packet, with `timestamp` from
   // the RTP header. This updates the statistics and a new target buffer level
   // is calculated. Returns the relative delay if it can be calculated. If
@@ -111,9 +113,7 @@
   int maximum_delay_ms_;            // Externally set maximum allowed delay.
 
   int packet_len_ms_ = 0;
-  int target_level_ms_;       // Currently preferred buffer level.
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(DelayManager);
+  int target_level_ms_;  // Currently preferred buffer level.
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/dsp_helper.h b/modules/audio_coding/neteq/dsp_helper.h
index 7bdeba6..4aead7d 100644
--- a/modules/audio_coding/neteq/dsp_helper.h
+++ b/modules/audio_coding/neteq/dsp_helper.h
@@ -16,7 +16,6 @@
 
 #include "modules/audio_coding/neteq/audio_multi_vector.h"
 #include "modules/audio_coding/neteq/audio_vector.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -150,11 +149,12 @@
                               bool compensate_delay,
                               int16_t* output);
 
+  DspHelper(const DspHelper&) = delete;
+  DspHelper& operator=(const DspHelper&) = delete;
+
  private:
   // Table of constants used in method DspHelper::ParabolicFit().
   static const int16_t kParabolaCoefficients[17][3];
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(DspHelper);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/dtmf_buffer.h b/modules/audio_coding/neteq/dtmf_buffer.h
index 9209cae..62b7515 100644
--- a/modules/audio_coding/neteq/dtmf_buffer.h
+++ b/modules/audio_coding/neteq/dtmf_buffer.h
@@ -16,8 +16,6 @@
 
 #include <list>
 
-#include "rtc_base/constructor_magic.h"
-
 namespace webrtc {
 
 struct DtmfEvent {
@@ -50,6 +48,9 @@
 
   virtual ~DtmfBuffer();
 
+  DtmfBuffer(const DtmfBuffer&) = delete;
+  DtmfBuffer& operator=(const DtmfBuffer&) = delete;
+
   // Flushes the buffer.
   virtual void Flush();
 
@@ -97,8 +98,6 @@
   static bool CompareEvents(const DtmfEvent& a, const DtmfEvent& b);
 
   DtmfList buffer_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(DtmfBuffer);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/dtmf_tone_generator.h b/modules/audio_coding/neteq/dtmf_tone_generator.h
index 968bc7f..35114f4 100644
--- a/modules/audio_coding/neteq/dtmf_tone_generator.h
+++ b/modules/audio_coding/neteq/dtmf_tone_generator.h
@@ -15,7 +15,6 @@
 #include <stdint.h>
 
 #include "modules/audio_coding/neteq/audio_multi_vector.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -29,6 +28,10 @@
 
   DtmfToneGenerator();
   virtual ~DtmfToneGenerator() {}
+
+  DtmfToneGenerator(const DtmfToneGenerator&) = delete;
+  DtmfToneGenerator& operator=(const DtmfToneGenerator&) = delete;
+
   virtual int Init(int fs, int event, int attenuation);
   virtual void Reset();
   virtual int Generate(size_t num_samples, AudioMultiVector* output);
@@ -48,8 +51,6 @@
   int amplitude_;               // Amplitude for this event.
   int16_t sample_history1_[2];  // Last 2 samples for the 1st oscillator.
   int16_t sample_history2_[2];  // Last 2 samples for the 2nd oscillator.
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(DtmfToneGenerator);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/expand.h b/modules/audio_coding/neteq/expand.h
index 2d22b11..2e64583 100644
--- a/modules/audio_coding/neteq/expand.h
+++ b/modules/audio_coding/neteq/expand.h
@@ -15,7 +15,6 @@
 #include <memory>
 
 #include "modules/audio_coding/neteq/audio_vector.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -41,6 +40,9 @@
 
   virtual ~Expand();
 
+  Expand(const Expand&) = delete;
+  Expand& operator=(const Expand&) = delete;
+
   // Resets the object.
   virtual void Reset();
 
@@ -134,8 +136,6 @@
   bool stop_muting_;
   size_t expand_duration_samples_;
   std::unique_ptr<ChannelParameters[]> channel_parameters_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(Expand);
 };
 
 struct ExpandFactory {
diff --git a/modules/audio_coding/neteq/expand_uma_logger.h b/modules/audio_coding/neteq/expand_uma_logger.h
index 246aaff..a29d353 100644
--- a/modules/audio_coding/neteq/expand_uma_logger.h
+++ b/modules/audio_coding/neteq/expand_uma_logger.h
@@ -17,7 +17,6 @@
 
 #include "absl/types/optional.h"
 #include "api/neteq/tick_timer.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -36,6 +35,9 @@
 
   ~ExpandUmaLogger();
 
+  ExpandUmaLogger(const ExpandUmaLogger&) = delete;
+  ExpandUmaLogger& operator=(const ExpandUmaLogger&) = delete;
+
   // In this call, value should be an incremental sample counter. The sample
   // rate must be strictly positive.
   void UpdateSampleCounter(uint64_t value, int sample_rate_hz);
@@ -48,8 +50,6 @@
   absl::optional<uint64_t> last_logged_value_;
   uint64_t last_value_ = 0;
   int sample_rate_hz_ = 0;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(ExpandUmaLogger);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/merge.h b/modules/audio_coding/neteq/merge.h
index 13aa31d..2f27106 100644
--- a/modules/audio_coding/neteq/merge.h
+++ b/modules/audio_coding/neteq/merge.h
@@ -12,7 +12,6 @@
 #define MODULES_AUDIO_CODING_NETEQ_MERGE_H_
 
 #include "modules/audio_coding/neteq/audio_multi_vector.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -36,6 +35,9 @@
         SyncBuffer* sync_buffer);
   virtual ~Merge();
 
+  Merge(const Merge&) = delete;
+  Merge& operator=(const Merge&) = delete;
+
   // The main method to produce the audio data. The decoded data is supplied in
   // `input`, having `input_length` samples in total for all channels
   // (interleaved). The result is written to `output`. The number of channels
@@ -93,8 +95,6 @@
   int16_t input_downsampled_[kInputDownsampLength];
   AudioMultiVector expanded_;
   std::vector<int16_t> temp_data_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(Merge);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/neteq_impl.h b/modules/audio_coding/neteq/neteq_impl.h
index 2522e31..e2cd6c6 100644
--- a/modules/audio_coding/neteq/neteq_impl.h
+++ b/modules/audio_coding/neteq/neteq_impl.h
@@ -29,7 +29,6 @@
 #include "modules/audio_coding/neteq/packet.h"
 #include "modules/audio_coding/neteq/random_vector.h"
 #include "modules/audio_coding/neteq/statistics_calculator.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/synchronization/mutex.h"
 #include "rtc_base/thread_annotations.h"
 
@@ -124,6 +123,9 @@
 
   ~NetEqImpl() override;
 
+  NetEqImpl(const NetEqImpl&) = delete;
+  NetEqImpl& operator=(const NetEqImpl&) = delete;
+
   // Inserts a new packet into NetEq. Returns 0 on success, -1 on failure.
   int InsertPacket(const RTPHeader& rtp_header,
                    rtc::ArrayView<const uint8_t> payload) override;
@@ -399,9 +401,6 @@
   ExpandUmaLogger speech_expand_uma_logger_ RTC_GUARDED_BY(mutex_);
   bool no_time_stretching_ RTC_GUARDED_BY(mutex_);  // Only used for test.
   rtc::BufferT<int16_t> concealment_audio_ RTC_GUARDED_BY(mutex_);
-
- private:
-  RTC_DISALLOW_COPY_AND_ASSIGN(NetEqImpl);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/normal.h b/modules/audio_coding/neteq/normal.h
index 3607208..772293b 100644
--- a/modules/audio_coding/neteq/normal.h
+++ b/modules/audio_coding/neteq/normal.h
@@ -17,7 +17,6 @@
 #include "api/neteq/neteq.h"
 #include "modules/audio_coding/neteq/statistics_calculator.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/numerics/safe_conversions.h"
 
 namespace webrtc {
@@ -49,6 +48,9 @@
 
   virtual ~Normal() {}
 
+  Normal(const Normal&) = delete;
+  Normal& operator=(const Normal&) = delete;
+
   // Performs the "Normal" operation. The decoder data is supplied in `input`,
   // having `length` samples in total for all channels (interleaved). The
   // result is written to `output`. The number of channels allocated in
@@ -68,8 +70,6 @@
   const size_t samples_per_ms_;
   const int16_t default_win_slope_Q14_;
   StatisticsCalculator* const statistics_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(Normal);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/packet_buffer.h b/modules/audio_coding/neteq/packet_buffer.h
index 20a0533..c6fb47f 100644
--- a/modules/audio_coding/neteq/packet_buffer.h
+++ b/modules/audio_coding/neteq/packet_buffer.h
@@ -15,7 +15,6 @@
 #include "modules/audio_coding/neteq/decoder_database.h"
 #include "modules/audio_coding/neteq/packet.h"
 #include "modules/include/module_common_types_public.h"  // IsNewerTimestamp
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -51,6 +50,9 @@
   // Deletes all packets in the buffer before destroying the buffer.
   virtual ~PacketBuffer();
 
+  PacketBuffer(const PacketBuffer&) = delete;
+  PacketBuffer& operator=(const PacketBuffer&) = delete;
+
   // Flushes the buffer and deletes all packets in it.
   virtual void Flush(StatisticsCalculator* stats);
 
@@ -173,7 +175,6 @@
   size_t max_number_of_packets_;
   PacketList buffer_;
   const TickTimer* tick_timer_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(PacketBuffer);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/post_decode_vad.h b/modules/audio_coding/neteq/post_decode_vad.h
index 3134d5f..3bd91b9 100644
--- a/modules/audio_coding/neteq/post_decode_vad.h
+++ b/modules/audio_coding/neteq/post_decode_vad.h
@@ -16,7 +16,6 @@
 
 #include "api/audio_codecs/audio_decoder.h"
 #include "common_audio/vad/include/webrtc_vad.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -31,6 +30,9 @@
 
   virtual ~PostDecodeVad();
 
+  PostDecodeVad(const PostDecodeVad&) = delete;
+  PostDecodeVad& operator=(const PostDecodeVad&) = delete;
+
   // Enables post-decode VAD.
   void Enable();
 
@@ -63,8 +65,6 @@
   bool active_speech_;
   int sid_interval_counter_;
   ::VadInst* vad_instance_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(PostDecodeVad);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/preemptive_expand.h b/modules/audio_coding/neteq/preemptive_expand.h
index 708ebfd..6338b99 100644
--- a/modules/audio_coding/neteq/preemptive_expand.h
+++ b/modules/audio_coding/neteq/preemptive_expand.h
@@ -15,7 +15,6 @@
 #include <stdint.h>
 
 #include "modules/audio_coding/neteq/time_stretch.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -36,6 +35,9 @@
         old_data_length_per_channel_(0),
         overlap_samples_(overlap_samples) {}
 
+  PreemptiveExpand(const PreemptiveExpand&) = delete;
+  PreemptiveExpand& operator=(const PreemptiveExpand&) = delete;
+
   // This method performs the actual PreemptiveExpand operation. The samples are
   // read from `input`, of length `input_length` elements, and are written to
   // `output`. The number of samples added through time-stretching is
@@ -67,8 +69,6 @@
  private:
   size_t old_data_length_per_channel_;
   size_t overlap_samples_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(PreemptiveExpand);
 };
 
 struct PreemptiveExpandFactory {
diff --git a/modules/audio_coding/neteq/random_vector.h b/modules/audio_coding/neteq/random_vector.h
index 1d37600..4a782f1 100644
--- a/modules/audio_coding/neteq/random_vector.h
+++ b/modules/audio_coding/neteq/random_vector.h
@@ -14,8 +14,6 @@
 #include <stddef.h>
 #include <stdint.h>
 
-#include "rtc_base/constructor_magic.h"
-
 namespace webrtc {
 
 // This class generates pseudo-random samples.
@@ -26,6 +24,9 @@
 
   RandomVector() : seed_(777), seed_increment_(1) {}
 
+  RandomVector(const RandomVector&) = delete;
+  RandomVector& operator=(const RandomVector&) = delete;
+
   void Reset();
 
   void Generate(size_t length, int16_t* output);
@@ -39,8 +40,6 @@
  private:
   uint32_t seed_;
   int16_t seed_increment_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(RandomVector);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/red_payload_splitter.h b/modules/audio_coding/neteq/red_payload_splitter.h
index 5566091..2f48e4b 100644
--- a/modules/audio_coding/neteq/red_payload_splitter.h
+++ b/modules/audio_coding/neteq/red_payload_splitter.h
@@ -12,7 +12,6 @@
 #define MODULES_AUDIO_CODING_NETEQ_RED_PAYLOAD_SPLITTER_H_
 
 #include "modules/audio_coding/neteq/packet.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -30,6 +29,9 @@
 
   virtual ~RedPayloadSplitter() {}
 
+  RedPayloadSplitter(const RedPayloadSplitter&) = delete;
+  RedPayloadSplitter& operator=(const RedPayloadSplitter&) = delete;
+
   // Splits each packet in `packet_list` into its separate RED payloads. Each
   // RED payload is packetized into a Packet. The original elements in
   // `packet_list` are properly deleted, and replaced by the new packets.
@@ -43,9 +45,6 @@
   // is accepted. Any packet with another payload type is discarded.
   virtual void CheckRedPayloads(PacketList* packet_list,
                                 const DecoderDatabase& decoder_database);
-
- private:
-  RTC_DISALLOW_COPY_AND_ASSIGN(RedPayloadSplitter);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/statistics_calculator.h b/modules/audio_coding/neteq/statistics_calculator.h
index 5c3fb75..269e6a0 100644
--- a/modules/audio_coding/neteq/statistics_calculator.h
+++ b/modules/audio_coding/neteq/statistics_calculator.h
@@ -15,7 +15,6 @@
 #include <string>
 
 #include "api/neteq/neteq.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -28,6 +27,9 @@
 
   virtual ~StatisticsCalculator();
 
+  StatisticsCalculator(const StatisticsCalculator&) = delete;
+  StatisticsCalculator& operator=(const StatisticsCalculator&) = delete;
+
   // Resets most of the counters.
   void Reset();
 
@@ -197,8 +199,6 @@
   PeriodicUmaAverage excess_buffer_delay_;
   PeriodicUmaCount buffer_full_counter_;
   bool decoded_output_played_ = false;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(StatisticsCalculator);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/sync_buffer.h b/modules/audio_coding/neteq/sync_buffer.h
index 7d24730..cf56c43 100644
--- a/modules/audio_coding/neteq/sync_buffer.h
+++ b/modules/audio_coding/neteq/sync_buffer.h
@@ -20,7 +20,6 @@
 #include "modules/audio_coding/neteq/audio_multi_vector.h"
 #include "modules/audio_coding/neteq/audio_vector.h"
 #include "rtc_base/buffer.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -32,6 +31,9 @@
         end_timestamp_(0),
         dtmf_index_(0) {}
 
+  SyncBuffer(const SyncBuffer&) = delete;
+  SyncBuffer& operator=(const SyncBuffer&) = delete;
+
   // Returns the number of samples yet to play out from the buffer.
   size_t FutureLength() const;
 
@@ -102,8 +104,6 @@
   size_t next_index_;
   uint32_t end_timestamp_;  // The timestamp of the last sample in the buffer.
   size_t dtmf_index_;       // Index to the first non-DTMF sample in the buffer.
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(SyncBuffer);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/time_stretch.h b/modules/audio_coding/neteq/time_stretch.h
index 998d080..f0ddaeb 100644
--- a/modules/audio_coding/neteq/time_stretch.h
+++ b/modules/audio_coding/neteq/time_stretch.h
@@ -14,7 +14,6 @@
 #include <string.h>  // memset, size_t
 
 #include "modules/audio_coding/neteq/audio_multi_vector.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -49,6 +48,9 @@
 
   virtual ~TimeStretch() {}
 
+  TimeStretch(const TimeStretch&) = delete;
+  TimeStretch& operator=(const TimeStretch&) = delete;
+
   // This method performs the processing common to both Accelerate and
   // PreemptiveExpand.
   ReturnCodes Process(const int16_t* input,
@@ -105,8 +107,6 @@
                        int32_t vec2_energy,
                        size_t peak_index,
                        int scaling) const;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(TimeStretch);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/timestamp_scaler.h b/modules/audio_coding/neteq/timestamp_scaler.h
index 4d578fc..f42ce72 100644
--- a/modules/audio_coding/neteq/timestamp_scaler.h
+++ b/modules/audio_coding/neteq/timestamp_scaler.h
@@ -12,7 +12,6 @@
 #define MODULES_AUDIO_CODING_NETEQ_TIMESTAMP_SCALER_H_
 
 #include "modules/audio_coding/neteq/packet.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -34,6 +33,9 @@
 
   virtual ~TimestampScaler() {}
 
+  TimestampScaler(const TimestampScaler&) = delete;
+  TimestampScaler& operator=(const TimestampScaler&) = delete;
+
   // Start over.
   virtual void Reset();
 
@@ -59,8 +61,6 @@
   uint32_t external_ref_;
   uint32_t internal_ref_;
   const DecoderDatabase& decoder_database_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(TimestampScaler);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_coding/neteq/tools/audio_checksum.h b/modules/audio_coding/neteq/tools/audio_checksum.h
index e4306fa..9d6f343 100644
--- a/modules/audio_coding/neteq/tools/audio_checksum.h
+++ b/modules/audio_coding/neteq/tools/audio_checksum.h
@@ -16,7 +16,6 @@
 
 #include "modules/audio_coding/neteq/tools/audio_sink.h"
 #include "rtc_base/buffer.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/message_digest.h"
 #include "rtc_base/string_encode.h"
 #include "rtc_base/system/arch.h"
@@ -31,6 +30,9 @@
         checksum_result_(checksum_->Size()),
         finished_(false) {}
 
+  AudioChecksum(const AudioChecksum&) = delete;
+  AudioChecksum& operator=(const AudioChecksum&) = delete;
+
   bool WriteArray(const int16_t* audio, size_t num_samples) override {
     if (finished_)
       return false;
@@ -56,8 +58,6 @@
   std::unique_ptr<rtc::MessageDigest> checksum_;
   rtc::Buffer checksum_result_;
   bool finished_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioChecksum);
 };
 
 }  // namespace test
diff --git a/modules/audio_coding/neteq/tools/audio_loop.h b/modules/audio_coding/neteq/tools/audio_loop.h
index 25da463..a73be2d 100644
--- a/modules/audio_coding/neteq/tools/audio_loop.h
+++ b/modules/audio_coding/neteq/tools/audio_loop.h
@@ -15,7 +15,6 @@
 #include <string>
 
 #include "api/array_view.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 namespace test {
@@ -29,6 +28,9 @@
 
   virtual ~AudioLoop() {}
 
+  AudioLoop(const AudioLoop&) = delete;
+  AudioLoop& operator=(const AudioLoop&) = delete;
+
   // Initializes the AudioLoop by reading from `file_name`. The loop will be no
   // longer than `max_loop_length_samples`, if the length of the file is
   // greater. Otherwise, the loop length is the same as the file length.
@@ -47,8 +49,6 @@
   size_t loop_length_samples_;
   size_t block_length_samples_;
   std::unique_ptr<int16_t[]> audio_array_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioLoop);
 };
 
 }  // namespace test
diff --git a/modules/audio_coding/neteq/tools/audio_sink.h b/modules/audio_coding/neteq/tools/audio_sink.h
index cd6733b..53729fa 100644
--- a/modules/audio_coding/neteq/tools/audio_sink.h
+++ b/modules/audio_coding/neteq/tools/audio_sink.h
@@ -12,7 +12,6 @@
 #define MODULES_AUDIO_CODING_NETEQ_TOOLS_AUDIO_SINK_H_
 
 #include "api/audio/audio_frame.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 namespace test {
@@ -24,6 +23,9 @@
   AudioSink() {}
   virtual ~AudioSink() {}
 
+  AudioSink(const AudioSink&) = delete;
+  AudioSink& operator=(const AudioSink&) = delete;
+
   // Writes `num_samples` from `audio` to the AudioSink. Returns true if
   // successful, otherwise false.
   virtual bool WriteArray(const int16_t* audio, size_t num_samples) = 0;
@@ -34,9 +36,6 @@
     return WriteArray(audio_frame.data(), audio_frame.samples_per_channel_ *
                                               audio_frame.num_channels_);
   }
-
- private:
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioSink);
 };
 
 // Forks the output audio to two AudioSink objects.
@@ -45,23 +44,25 @@
   AudioSinkFork(AudioSink* left, AudioSink* right)
       : left_sink_(left), right_sink_(right) {}
 
+  AudioSinkFork(const AudioSinkFork&) = delete;
+  AudioSinkFork& operator=(const AudioSinkFork&) = delete;
+
   bool WriteArray(const int16_t* audio, size_t num_samples) override;
 
  private:
   AudioSink* left_sink_;
   AudioSink* right_sink_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioSinkFork);
 };
 
 // An AudioSink implementation that does nothing.
 class VoidAudioSink : public AudioSink {
  public:
   VoidAudioSink() = default;
-  bool WriteArray(const int16_t* audio, size_t num_samples) override;
 
- private:
-  RTC_DISALLOW_COPY_AND_ASSIGN(VoidAudioSink);
+  VoidAudioSink(const VoidAudioSink&) = delete;
+  VoidAudioSink& operator=(const VoidAudioSink&) = delete;
+
+  bool WriteArray(const int16_t* audio, size_t num_samples) override;
 };
 
 }  // namespace test
diff --git a/modules/audio_coding/neteq/tools/constant_pcm_packet_source.h b/modules/audio_coding/neteq/tools/constant_pcm_packet_source.h
index 6a79ce4..ab4f5c2 100644
--- a/modules/audio_coding/neteq/tools/constant_pcm_packet_source.h
+++ b/modules/audio_coding/neteq/tools/constant_pcm_packet_source.h
@@ -16,7 +16,6 @@
 #include <string>
 
 #include "modules/audio_coding/neteq/tools/packet_source.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 namespace test {
@@ -31,6 +30,9 @@
                           int sample_rate_hz,
                           int payload_type);
 
+  ConstantPcmPacketSource(const ConstantPcmPacketSource&) = delete;
+  ConstantPcmPacketSource& operator=(const ConstantPcmPacketSource&) = delete;
+
   std::unique_ptr<Packet> NextPacket() override;
 
  private:
@@ -46,8 +48,6 @@
   uint16_t seq_number_;
   uint32_t timestamp_;
   const uint32_t payload_ssrc_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(ConstantPcmPacketSource);
 };
 
 }  // namespace test
diff --git a/modules/audio_coding/neteq/tools/input_audio_file.h b/modules/audio_coding/neteq/tools/input_audio_file.h
index 010d8cc..c6e65a0 100644
--- a/modules/audio_coding/neteq/tools/input_audio_file.h
+++ b/modules/audio_coding/neteq/tools/input_audio_file.h
@@ -15,8 +15,6 @@
 
 #include <string>
 
-#include "rtc_base/constructor_magic.h"
-
 namespace webrtc {
 namespace test {
 
@@ -27,6 +25,9 @@
 
   virtual ~InputAudioFile();
 
+  InputAudioFile(const InputAudioFile&) = delete;
+  InputAudioFile& operator=(const InputAudioFile&) = delete;
+
   // Reads `samples` elements from source file to `destination`. Returns true
   // if the read was successful, otherwise false. If the file end is reached,
   // the file is rewound and reading continues from the beginning.
@@ -52,7 +53,6 @@
  private:
   FILE* fp_;
   const bool loop_at_end_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(InputAudioFile);
 };
 
 }  // namespace test
diff --git a/modules/audio_coding/neteq/tools/output_audio_file.h b/modules/audio_coding/neteq/tools/output_audio_file.h
index ad97722..491cbd0 100644
--- a/modules/audio_coding/neteq/tools/output_audio_file.h
+++ b/modules/audio_coding/neteq/tools/output_audio_file.h
@@ -16,7 +16,6 @@
 #include <string>
 
 #include "modules/audio_coding/neteq/tools/audio_sink.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 namespace test {
@@ -34,6 +33,9 @@
       fclose(out_file_);
   }
 
+  OutputAudioFile(const OutputAudioFile&) = delete;
+  OutputAudioFile& operator=(const OutputAudioFile&) = delete;
+
   bool WriteArray(const int16_t* audio, size_t num_samples) override {
     RTC_DCHECK(out_file_);
     return fwrite(audio, sizeof(*audio), num_samples, out_file_) == num_samples;
@@ -41,8 +43,6 @@
 
  private:
   FILE* out_file_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(OutputAudioFile);
 };
 
 }  // namespace test
diff --git a/modules/audio_coding/neteq/tools/output_wav_file.h b/modules/audio_coding/neteq/tools/output_wav_file.h
index ae2e970..1485f4e 100644
--- a/modules/audio_coding/neteq/tools/output_wav_file.h
+++ b/modules/audio_coding/neteq/tools/output_wav_file.h
@@ -15,7 +15,6 @@
 
 #include "common_audio/wav_file.h"
 #include "modules/audio_coding/neteq/tools/audio_sink.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 namespace test {
@@ -29,6 +28,9 @@
                 int num_channels = 1)
       : wav_writer_(file_name, sample_rate_hz, num_channels) {}
 
+  OutputWavFile(const OutputWavFile&) = delete;
+  OutputWavFile& operator=(const OutputWavFile&) = delete;
+
   bool WriteArray(const int16_t* audio, size_t num_samples) override {
     wav_writer_.WriteSamples(audio, num_samples);
     return true;
@@ -36,8 +38,6 @@
 
  private:
   WavWriter wav_writer_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(OutputWavFile);
 };
 
 }  // namespace test
diff --git a/modules/audio_coding/neteq/tools/packet.h b/modules/audio_coding/neteq/tools/packet.h
index 92e5ee9..9671090 100644
--- a/modules/audio_coding/neteq/tools/packet.h
+++ b/modules/audio_coding/neteq/tools/packet.h
@@ -16,7 +16,6 @@
 #include "api/array_view.h"
 #include "api/rtp_headers.h"
 #include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/copy_on_write_buffer.h"
 
 namespace webrtc {
@@ -54,6 +53,9 @@
 
   virtual ~Packet();
 
+  Packet(const Packet&) = delete;
+  Packet& operator=(const Packet&) = delete;
+
   // Parses the first bytes of the RTP payload, interpreting them as RED headers
   // according to RFC 2198. The headers will be inserted into `headers`. The
   // caller of the method assumes ownership of the objects in the list, and
@@ -95,8 +97,6 @@
   size_t virtual_payload_length_bytes_ = 0;
   const double time_ms_;     // Used to denote a packet's arrival time.
   const bool valid_header_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(Packet);
 };
 
 }  // namespace test
diff --git a/modules/audio_coding/neteq/tools/packet_source.h b/modules/audio_coding/neteq/tools/packet_source.h
index 975680f..be1705c 100644
--- a/modules/audio_coding/neteq/tools/packet_source.h
+++ b/modules/audio_coding/neteq/tools/packet_source.h
@@ -15,7 +15,6 @@
 #include <memory>
 
 #include "modules/audio_coding/neteq/tools/packet.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 namespace test {
@@ -26,6 +25,9 @@
   PacketSource();
   virtual ~PacketSource();
 
+  PacketSource(const PacketSource&) = delete;
+  PacketSource& operator=(const PacketSource&) = delete;
+
   // Returns next packet. Returns nullptr if the source is depleted, or if an
   // error occurred.
   virtual std::unique_ptr<Packet> NextPacket() = 0;
@@ -34,9 +36,6 @@
 
  protected:
   std::bitset<128> filter_;  // Payload type is 7 bits in the RFC.
-
- private:
-  RTC_DISALLOW_COPY_AND_ASSIGN(PacketSource);
 };
 
 }  // namespace test
diff --git a/modules/audio_coding/neteq/tools/resample_input_audio_file.h b/modules/audio_coding/neteq/tools/resample_input_audio_file.h
index 9106d5b..497a410 100644
--- a/modules/audio_coding/neteq/tools/resample_input_audio_file.h
+++ b/modules/audio_coding/neteq/tools/resample_input_audio_file.h
@@ -15,7 +15,6 @@
 
 #include "common_audio/resampler/include/resampler.h"
 #include "modules/audio_coding/neteq/tools/input_audio_file.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 namespace test {
@@ -37,6 +36,9 @@
         file_rate_hz_(file_rate_hz),
         output_rate_hz_(output_rate_hz) {}
 
+  ResampleInputAudioFile(const ResampleInputAudioFile&) = delete;
+  ResampleInputAudioFile& operator=(const ResampleInputAudioFile&) = delete;
+
   bool Read(size_t samples, int output_rate_hz, int16_t* destination);
   bool Read(size_t samples, int16_t* destination) override;
   void set_output_rate_hz(int rate_hz);
@@ -45,7 +47,6 @@
   const int file_rate_hz_;
   int output_rate_hz_;
   Resampler resampler_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(ResampleInputAudioFile);
 };
 
 }  // namespace test
diff --git a/modules/audio_coding/neteq/tools/rtc_event_log_source.h b/modules/audio_coding/neteq/tools/rtc_event_log_source.h
index d4be2a7..e2d0f61 100644
--- a/modules/audio_coding/neteq/tools/rtc_event_log_source.h
+++ b/modules/audio_coding/neteq/tools/rtc_event_log_source.h
@@ -19,7 +19,6 @@
 #include "logging/rtc_event_log/rtc_event_log_parser.h"
 #include "modules/audio_coding/neteq/tools/packet_source.h"
 #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -43,6 +42,9 @@
 
   virtual ~RtcEventLogSource();
 
+  RtcEventLogSource(const RtcEventLogSource&) = delete;
+  RtcEventLogSource& operator=(const RtcEventLogSource&) = delete;
+
   std::unique_ptr<Packet> NextPacket() override;
 
   // Returns the timestamp of the next audio output event, in milliseconds. The
@@ -60,8 +62,6 @@
   size_t rtp_packet_index_ = 0;
   std::vector<int64_t> audio_outputs_;
   size_t audio_output_index_ = 0;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(RtcEventLogSource);
 };
 
 }  // namespace test
diff --git a/modules/audio_coding/neteq/tools/rtp_file_source.h b/modules/audio_coding/neteq/tools/rtp_file_source.h
index d6aab24..7e284ac 100644
--- a/modules/audio_coding/neteq/tools/rtp_file_source.h
+++ b/modules/audio_coding/neteq/tools/rtp_file_source.h
@@ -19,7 +19,6 @@
 #include "absl/types/optional.h"
 #include "modules/audio_coding/neteq/tools/packet_source.h"
 #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -41,6 +40,9 @@
 
   ~RtpFileSource() override;
 
+  RtpFileSource(const RtpFileSource&) = delete;
+  RtpFileSource& operator=(const RtpFileSource&) = delete;
+
   // Registers an RTP header extension and binds it to `id`.
   virtual bool RegisterRtpHeaderExtension(RTPExtensionType type, uint8_t id);
 
@@ -58,8 +60,6 @@
   std::unique_ptr<RtpFileReader> rtp_reader_;
   const absl::optional<uint32_t> ssrc_filter_;
   RtpHeaderExtensionMap rtp_header_extension_map_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(RtpFileSource);
 };
 
 }  // namespace test
diff --git a/modules/audio_coding/neteq/tools/rtp_generator.h b/modules/audio_coding/neteq/tools/rtp_generator.h
index 6ca6e1b..2e615ad 100644
--- a/modules/audio_coding/neteq/tools/rtp_generator.h
+++ b/modules/audio_coding/neteq/tools/rtp_generator.h
@@ -12,7 +12,6 @@
 #define MODULES_AUDIO_CODING_NETEQ_TOOLS_RTP_GENERATOR_H_
 
 #include "api/rtp_headers.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 namespace test {
@@ -34,6 +33,9 @@
 
   virtual ~RtpGenerator() {}
 
+  RtpGenerator(const RtpGenerator&) = delete;
+  RtpGenerator& operator=(const RtpGenerator&) = delete;
+
   // Writes the next RTP header to `rtp_header`, which will be of type
   // `payload_type`. Returns the send time for this packet (in ms). The value of
   // `payload_length_samples` determines the send time for the next packet.
@@ -50,9 +52,6 @@
   const uint32_t ssrc_;
   const int samples_per_ms_;
   double drift_factor_;
-
- private:
-  RTC_DISALLOW_COPY_AND_ASSIGN(RtpGenerator);
 };
 
 class TimestampJumpRtpGenerator : public RtpGenerator {
@@ -66,6 +65,10 @@
         jump_from_timestamp_(jump_from_timestamp),
         jump_to_timestamp_(jump_to_timestamp) {}
 
+  TimestampJumpRtpGenerator(const TimestampJumpRtpGenerator&) = delete;
+  TimestampJumpRtpGenerator& operator=(const TimestampJumpRtpGenerator&) =
+      delete;
+
   uint32_t GetRtpHeader(uint8_t payload_type,
                         size_t payload_length_samples,
                         RTPHeader* rtp_header) override;
@@ -73,7 +76,6 @@
  private:
   uint32_t jump_from_timestamp_;
   uint32_t jump_to_timestamp_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(TimestampJumpRtpGenerator);
 };
 
 }  // namespace test
diff --git a/modules/audio_mixer/audio_mixer_impl.h b/modules/audio_mixer/audio_mixer_impl.h
index 737fcbd..76b1131 100644
--- a/modules/audio_mixer/audio_mixer_impl.h
+++ b/modules/audio_mixer/audio_mixer_impl.h
@@ -22,7 +22,6 @@
 #include "api/scoped_refptr.h"
 #include "modules/audio_mixer/frame_combiner.h"
 #include "modules/audio_mixer/output_rate_calculator.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/race_checker.h"
 #include "rtc_base/synchronization/mutex.h"
 #include "rtc_base/thread_annotations.h"
@@ -48,6 +47,9 @@
 
   ~AudioMixerImpl() override;
 
+  AudioMixerImpl(const AudioMixerImpl&) = delete;
+  AudioMixerImpl& operator=(const AudioMixerImpl&) = delete;
+
   // AudioMixer functions
   bool AddSource(Source* audio_source) override;
   void RemoveSource(Source* audio_source) override;
@@ -92,8 +94,6 @@
 
   // Component that handles actual adding of audio frames.
   FrameCombiner frame_combiner_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(AudioMixerImpl);
 };
 }  // namespace webrtc
 
diff --git a/modules/audio_processing/aec3/aec3_fft.h b/modules/audio_processing/aec3/aec3_fft.h
index 6f7fbe4..c68de53 100644
--- a/modules/audio_processing/aec3/aec3_fft.h
+++ b/modules/audio_processing/aec3/aec3_fft.h
@@ -18,7 +18,6 @@
 #include "modules/audio_processing/aec3/aec3_common.h"
 #include "modules/audio_processing/aec3/fft_data.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -30,6 +29,9 @@
 
   Aec3Fft();
 
+  Aec3Fft(const Aec3Fft&) = delete;
+  Aec3Fft& operator=(const Aec3Fft&) = delete;
+
   // Computes the FFT. Note that both the input and output are modified.
   void Fft(std::array<float, kFftLength>* x, FftData* X) const {
     RTC_DCHECK(x);
@@ -66,8 +68,6 @@
 
  private:
   const OouraFft ooura_fft_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(Aec3Fft);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_processing/aec3/block_processor_metrics.h b/modules/audio_processing/aec3/block_processor_metrics.h
index 4ba0536..a70d0da 100644
--- a/modules/audio_processing/aec3/block_processor_metrics.h
+++ b/modules/audio_processing/aec3/block_processor_metrics.h
@@ -11,8 +11,6 @@
 #ifndef MODULES_AUDIO_PROCESSING_AEC3_BLOCK_PROCESSOR_METRICS_H_
 #define MODULES_AUDIO_PROCESSING_AEC3_BLOCK_PROCESSOR_METRICS_H_
 
-#include "rtc_base/constructor_magic.h"
-
 namespace webrtc {
 
 // Handles the reporting of metrics for the block_processor.
@@ -20,6 +18,9 @@
  public:
   BlockProcessorMetrics() = default;
 
+  BlockProcessorMetrics(const BlockProcessorMetrics&) = delete;
+  BlockProcessorMetrics& operator=(const BlockProcessorMetrics&) = delete;
+
   // Updates the metric with new capture data.
   void UpdateCapture(bool underrun);
 
@@ -38,8 +39,6 @@
   int render_buffer_underruns_ = 0;
   int render_buffer_overruns_ = 0;
   int buffer_render_calls_ = 0;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(BlockProcessorMetrics);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_processing/aec3/decimator.h b/modules/audio_processing/aec3/decimator.h
index 3ccd292..dbff3d9 100644
--- a/modules/audio_processing/aec3/decimator.h
+++ b/modules/audio_processing/aec3/decimator.h
@@ -17,7 +17,6 @@
 #include "api/array_view.h"
 #include "modules/audio_processing/aec3/aec3_common.h"
 #include "modules/audio_processing/utility/cascaded_biquad_filter.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -26,6 +25,9 @@
  public:
   explicit Decimator(size_t down_sampling_factor);
 
+  Decimator(const Decimator&) = delete;
+  Decimator& operator=(const Decimator&) = delete;
+
   // Downsamples the signal.
   void Decimate(rtc::ArrayView<const float> in, rtc::ArrayView<float> out);
 
@@ -33,8 +35,6 @@
   const size_t down_sampling_factor_;
   CascadedBiQuadFilter anti_aliasing_filter_;
   CascadedBiQuadFilter noise_reduction_filter_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(Decimator);
 };
 }  // namespace webrtc
 
diff --git a/modules/audio_processing/aec3/echo_path_delay_estimator.h b/modules/audio_processing/aec3/echo_path_delay_estimator.h
index 6c8c212..d8f9775 100644
--- a/modules/audio_processing/aec3/echo_path_delay_estimator.h
+++ b/modules/audio_processing/aec3/echo_path_delay_estimator.h
@@ -21,7 +21,6 @@
 #include "modules/audio_processing/aec3/delay_estimate.h"
 #include "modules/audio_processing/aec3/matched_filter.h"
 #include "modules/audio_processing/aec3/matched_filter_lag_aggregator.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -37,6 +36,9 @@
                          size_t num_capture_channels);
   ~EchoPathDelayEstimator();
 
+  EchoPathDelayEstimator(const EchoPathDelayEstimator&) = delete;
+  EchoPathDelayEstimator& operator=(const EchoPathDelayEstimator&) = delete;
+
   // Resets the estimation. If the delay confidence is reset, the reset behavior
   // is as if the call is restarted.
   void Reset(bool reset_delay_confidence);
@@ -71,8 +73,6 @@
 
   // Internal reset method with more granularity.
   void Reset(bool reset_lag_aggregator, bool reset_delay_confidence);
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(EchoPathDelayEstimator);
 };
 }  // namespace webrtc
 
diff --git a/modules/audio_processing/aec3/echo_remover_metrics.h b/modules/audio_processing/aec3/echo_remover_metrics.h
index c3d8e20..aec8084 100644
--- a/modules/audio_processing/aec3/echo_remover_metrics.h
+++ b/modules/audio_processing/aec3/echo_remover_metrics.h
@@ -15,7 +15,6 @@
 
 #include "modules/audio_processing/aec3/aec3_common.h"
 #include "modules/audio_processing/aec3/aec_state.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -34,6 +33,9 @@
 
   EchoRemoverMetrics();
 
+  EchoRemoverMetrics(const EchoRemoverMetrics&) = delete;
+  EchoRemoverMetrics& operator=(const EchoRemoverMetrics&) = delete;
+
   // Updates the metric with new data.
   void Update(
       const AecState& aec_state,
@@ -52,8 +54,6 @@
   DbMetric erle_time_domain_;
   bool saturated_capture_ = false;
   bool metrics_reported_ = false;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(EchoRemoverMetrics);
 };
 
 namespace aec3 {
diff --git a/modules/audio_processing/aec3/erl_estimator.h b/modules/audio_processing/aec3/erl_estimator.h
index 89bf6ac..639a52c 100644
--- a/modules/audio_processing/aec3/erl_estimator.h
+++ b/modules/audio_processing/aec3/erl_estimator.h
@@ -18,7 +18,6 @@
 
 #include "api/array_view.h"
 #include "modules/audio_processing/aec3/aec3_common.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -28,6 +27,9 @@
   explicit ErlEstimator(size_t startup_phase_length_blocks_);
   ~ErlEstimator();
 
+  ErlEstimator(const ErlEstimator&) = delete;
+  ErlEstimator& operator=(const ErlEstimator&) = delete;
+
   // Resets the ERL estimation.
   void Reset();
 
@@ -49,7 +51,6 @@
   float erl_time_domain_;
   int hold_counter_time_domain_;
   size_t blocks_since_reset_ = 0;
-  RTC_DISALLOW_COPY_AND_ASSIGN(ErlEstimator);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_processing/aec3/render_delay_controller_metrics.h b/modules/audio_processing/aec3/render_delay_controller_metrics.h
index 8c527a1..309122d 100644
--- a/modules/audio_processing/aec3/render_delay_controller_metrics.h
+++ b/modules/audio_processing/aec3/render_delay_controller_metrics.h
@@ -15,7 +15,6 @@
 
 #include "absl/types/optional.h"
 #include "modules/audio_processing/aec3/clockdrift_detector.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -24,6 +23,10 @@
  public:
   RenderDelayControllerMetrics();
 
+  RenderDelayControllerMetrics(const RenderDelayControllerMetrics&) = delete;
+  RenderDelayControllerMetrics& operator=(const RenderDelayControllerMetrics&) =
+      delete;
+
   // Updates the metric with new data.
   void Update(absl::optional<size_t> delay_samples,
               size_t buffer_delay_blocks,
@@ -46,8 +49,6 @@
   bool metrics_reported_ = false;
   bool initial_update = true;
   int skew_shift_count_ = 0;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(RenderDelayControllerMetrics);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_processing/aec3/render_signal_analyzer.h b/modules/audio_processing/aec3/render_signal_analyzer.h
index c7a3d8b..2e4aaa4 100644
--- a/modules/audio_processing/aec3/render_signal_analyzer.h
+++ b/modules/audio_processing/aec3/render_signal_analyzer.h
@@ -20,7 +20,6 @@
 #include "modules/audio_processing/aec3/aec3_common.h"
 #include "modules/audio_processing/aec3/render_buffer.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -30,6 +29,9 @@
   explicit RenderSignalAnalyzer(const EchoCanceller3Config& config);
   ~RenderSignalAnalyzer();
 
+  RenderSignalAnalyzer(const RenderSignalAnalyzer&) = delete;
+  RenderSignalAnalyzer& operator=(const RenderSignalAnalyzer&) = delete;
+
   // Updates the render signal analysis with the most recent render signal.
   void Update(const RenderBuffer& render_buffer,
               const absl::optional<size_t>& delay_partitions);
@@ -53,8 +55,6 @@
   std::array<size_t, kFftLengthBy2 - 1> narrow_band_counters_;
   absl::optional<int> narrow_peak_band_;
   size_t narrow_peak_counter_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(RenderSignalAnalyzer);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_processing/aec3/suppression_filter.h b/modules/audio_processing/aec3/suppression_filter.h
index dcf2292..375bfda 100644
--- a/modules/audio_processing/aec3/suppression_filter.h
+++ b/modules/audio_processing/aec3/suppression_filter.h
@@ -17,7 +17,6 @@
 #include "modules/audio_processing/aec3/aec3_common.h"
 #include "modules/audio_processing/aec3/aec3_fft.h"
 #include "modules/audio_processing/aec3/fft_data.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -27,6 +26,10 @@
                     int sample_rate_hz,
                     size_t num_capture_channels_);
   ~SuppressionFilter();
+
+  SuppressionFilter(const SuppressionFilter&) = delete;
+  SuppressionFilter& operator=(const SuppressionFilter&) = delete;
+
   void ApplyGain(rtc::ArrayView<const FftData> comfort_noise,
                  rtc::ArrayView<const FftData> comfort_noise_high_bands,
                  const std::array<float, kFftLengthBy2Plus1>& suppression_gain,
@@ -40,7 +43,6 @@
   const size_t num_capture_channels_;
   const Aec3Fft fft_;
   std::vector<std::vector<std::array<float, kFftLengthBy2>>> e_output_old_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(SuppressionFilter);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_processing/aec3/suppression_gain.h b/modules/audio_processing/aec3/suppression_gain.h
index 7c4a1c9..c8e13f7 100644
--- a/modules/audio_processing/aec3/suppression_gain.h
+++ b/modules/audio_processing/aec3/suppression_gain.h
@@ -25,7 +25,6 @@
 #include "modules/audio_processing/aec3/nearend_detector.h"
 #include "modules/audio_processing/aec3/render_signal_analyzer.h"
 #include "modules/audio_processing/logging/apm_data_dumper.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -36,6 +35,10 @@
                   int sample_rate_hz,
                   size_t num_capture_channels);
   ~SuppressionGain();
+
+  SuppressionGain(const SuppressionGain&) = delete;
+  SuppressionGain& operator=(const SuppressionGain&) = delete;
+
   void GetGain(
       rtc::ArrayView<const std::array<float, kFftLengthBy2Plus1>>
           nearend_spectrum,
@@ -134,8 +137,6 @@
   // echo spectrum.
   const bool use_unbounded_echo_spectrum_;
   std::unique_ptr<NearendDetector> dominant_nearend_detector_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(SuppressionGain);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_processing/agc2/fixed_digital_level_estimator.h b/modules/audio_processing/agc2/fixed_digital_level_estimator.h
index d96aeda..d26b559 100644
--- a/modules/audio_processing/agc2/fixed_digital_level_estimator.h
+++ b/modules/audio_processing/agc2/fixed_digital_level_estimator.h
@@ -16,7 +16,6 @@
 
 #include "modules/audio_processing/agc2/agc2_common.h"
 #include "modules/audio_processing/include/audio_frame_view.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -34,6 +33,10 @@
   FixedDigitalLevelEstimator(int sample_rate_hz,
                              ApmDataDumper* apm_data_dumper);
 
+  FixedDigitalLevelEstimator(const FixedDigitalLevelEstimator&) = delete;
+  FixedDigitalLevelEstimator& operator=(const FixedDigitalLevelEstimator&) =
+      delete;
+
   // The input is assumed to be in FloatS16 format. Scaled input will
   // produce similarly scaled output. A frame of with kFrameDurationMs
   // ms of audio produces a level estimates in the same scale. The
@@ -57,8 +60,6 @@
   float filter_state_level_;
   int samples_in_frame_;
   int samples_in_sub_frame_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(FixedDigitalLevelEstimator);
 };
 }  // namespace webrtc
 
diff --git a/modules/audio_processing/agc2/interpolated_gain_curve.h b/modules/audio_processing/agc2/interpolated_gain_curve.h
index af99320..b1a5cf4 100644
--- a/modules/audio_processing/agc2/interpolated_gain_curve.h
+++ b/modules/audio_processing/agc2/interpolated_gain_curve.h
@@ -15,7 +15,6 @@
 #include <string>
 
 #include "modules/audio_processing/agc2/agc2_common.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/gtest_prod_util.h"
 #include "system_wrappers/include/metrics.h"
 
@@ -64,6 +63,9 @@
                         const std::string& histogram_name_prefix);
   ~InterpolatedGainCurve();
 
+  InterpolatedGainCurve(const InterpolatedGainCurve&) = delete;
+  InterpolatedGainCurve& operator=(const InterpolatedGainCurve&) = delete;
+
   Stats get_stats() const { return stats_; }
 
   // Given a non-negative input level (linear scale), a scalar factor to apply
@@ -143,8 +145,6 @@
 
   // Stats.
   mutable Stats stats_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(InterpolatedGainCurve);
 };
 
 }  // namespace webrtc
diff --git a/modules/audio_processing/echo_control_mobile_impl.cc b/modules/audio_processing/echo_control_mobile_impl.cc
index 667d6bf..fa5cb8f 100644
--- a/modules/audio_processing/echo_control_mobile_impl.cc
+++ b/modules/audio_processing/echo_control_mobile_impl.cc
@@ -18,7 +18,6 @@
 #include "modules/audio_processing/audio_buffer.h"
 #include "modules/audio_processing/include/audio_processing.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -85,6 +84,9 @@
     WebRtcAecm_Free(state_);
   }
 
+  Canceller(const Canceller&) = delete;
+  Canceller& operator=(const Canceller&) = delete;
+
   void* state() {
     RTC_DCHECK(state_);
     return state_;
@@ -98,7 +100,6 @@
 
  private:
   void* state_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(Canceller);
 };
 
 EchoControlMobileImpl::EchoControlMobileImpl()
diff --git a/modules/audio_processing/test/conversational_speech/multiend_call.h b/modules/audio_processing/test/conversational_speech/multiend_call.h
index 5b6300f..693f00e 100644
--- a/modules/audio_processing/test/conversational_speech/multiend_call.h
+++ b/modules/audio_processing/test/conversational_speech/multiend_call.h
@@ -24,7 +24,6 @@
 #include "modules/audio_processing/test/conversational_speech/timing.h"
 #include "modules/audio_processing/test/conversational_speech/wavreader_abstract_factory.h"
 #include "modules/audio_processing/test/conversational_speech/wavreader_interface.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 namespace test {
@@ -57,6 +56,9 @@
       std::unique_ptr<WavReaderAbstractFactory> wavreader_abstract_factory);
   ~MultiEndCall();
 
+  MultiEndCall(const MultiEndCall&) = delete;
+  MultiEndCall& operator=(const MultiEndCall&) = delete;
+
   const std::set<std::string>& speaker_names() const { return speaker_names_; }
   const std::map<std::string, std::unique_ptr<WavReaderInterface>>&
   audiotrack_readers() const {
@@ -92,8 +94,6 @@
   int sample_rate_hz_;
   size_t total_duration_samples_;
   std::vector<SpeakingTurn> speaking_turns_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(MultiEndCall);
 };
 
 }  // namespace conversational_speech
diff --git a/modules/audio_processing/test/test_utils.h b/modules/audio_processing/test/test_utils.h
index 30674cb..aa13211 100644
--- a/modules/audio_processing/test/test_utils.h
+++ b/modules/audio_processing/test/test_utils.h
@@ -23,7 +23,6 @@
 #include "common_audio/channel_buffer.h"
 #include "common_audio/wav_file.h"
 #include "modules/audio_processing/include/audio_processing.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -35,13 +34,14 @@
   explicit RawFile(const std::string& filename);
   ~RawFile();
 
+  RawFile(const RawFile&) = delete;
+  RawFile& operator=(const RawFile&) = delete;
+
   void WriteSamples(const int16_t* samples, size_t num_samples);
   void WriteSamples(const float* samples, size_t num_samples);
 
  private:
   FILE* file_handle_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(RawFile);
 };
 
 // Encapsulates samples and metadata for an integer frame.
@@ -78,6 +78,9 @@
   explicit ChannelBufferWavReader(std::unique_ptr<WavReader> file);
   ~ChannelBufferWavReader();
 
+  ChannelBufferWavReader(const ChannelBufferWavReader&) = delete;
+  ChannelBufferWavReader& operator=(const ChannelBufferWavReader&) = delete;
+
   // Reads data from the file according to the `buffer` format. Returns false if
   // a full buffer can't be read from the file.
   bool Read(ChannelBuffer<float>* buffer);
@@ -85,8 +88,6 @@
  private:
   std::unique_ptr<WavReader> file_;
   std::vector<float> interleaved_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(ChannelBufferWavReader);
 };
 
 // Writes ChannelBuffers to a provided WavWriter.
@@ -95,13 +96,14 @@
   explicit ChannelBufferWavWriter(std::unique_ptr<WavWriter> file);
   ~ChannelBufferWavWriter();
 
+  ChannelBufferWavWriter(const ChannelBufferWavWriter&) = delete;
+  ChannelBufferWavWriter& operator=(const ChannelBufferWavWriter&) = delete;
+
   void Write(const ChannelBuffer<float>& buffer);
 
  private:
   std::unique_ptr<WavWriter> file_;
   std::vector<float> interleaved_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(ChannelBufferWavWriter);
 };
 
 // Takes a pointer to a vector. Allows appending the samples of channel buffers
diff --git a/modules/congestion_controller/goog_cc/delay_based_bwe_unittest_helper.h b/modules/congestion_controller/goog_cc/delay_based_bwe_unittest_helper.h
index 927cf9b..474d297 100644
--- a/modules/congestion_controller/goog_cc/delay_based_bwe_unittest_helper.h
+++ b/modules/congestion_controller/goog_cc/delay_based_bwe_unittest_helper.h
@@ -22,7 +22,6 @@
 #include "api/transport/network_types.h"
 #include "modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator.h"
 #include "modules/congestion_controller/goog_cc/delay_based_bwe.h"
-#include "rtc_base/constructor_magic.h"
 #include "system_wrappers/include/clock.h"
 #include "test/field_trial.h"
 #include "test/gtest.h"
@@ -54,6 +53,9 @@
 
   RtpStream(int fps, int bitrate_bps);
 
+  RtpStream(const RtpStream&) = delete;
+  RtpStream& operator=(const RtpStream&) = delete;
+
   // Generates a new frame for this stream. If called too soon after the
   // previous frame, no frame will be generated. The frame is split into
   // packets.
@@ -74,8 +76,6 @@
   int fps_;
   int bitrate_bps_;
   int64_t next_rtp_time_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(RtpStream);
 };
 
 class StreamGenerator {
@@ -83,6 +83,9 @@
   StreamGenerator(int capacity, int64_t time_now);
   ~StreamGenerator();
 
+  StreamGenerator(const StreamGenerator&) = delete;
+  StreamGenerator& operator=(const StreamGenerator&) = delete;
+
   // Add a new stream.
   void AddStream(RtpStream* stream);
 
@@ -108,8 +111,6 @@
   int64_t prev_arrival_time_us_;
   // All streams being transmitted on this simulated channel.
   std::vector<std::unique_ptr<RtpStream>> streams_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(StreamGenerator);
 };
 }  // namespace test
 
diff --git a/modules/congestion_controller/goog_cc/delay_increase_detector_interface.h b/modules/congestion_controller/goog_cc/delay_increase_detector_interface.h
index eaadb0d..fc12cff 100644
--- a/modules/congestion_controller/goog_cc/delay_increase_detector_interface.h
+++ b/modules/congestion_controller/goog_cc/delay_increase_detector_interface.h
@@ -13,7 +13,6 @@
 #include <stdint.h>
 
 #include "api/network_state_predictor.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -22,6 +21,11 @@
   DelayIncreaseDetectorInterface() {}
   virtual ~DelayIncreaseDetectorInterface() {}
 
+  DelayIncreaseDetectorInterface(const DelayIncreaseDetectorInterface&) =
+      delete;
+  DelayIncreaseDetectorInterface& operator=(
+      const DelayIncreaseDetectorInterface&) = delete;
+
   // Update the detector with a new sample. The deltas should represent deltas
   // between timestamp groups as defined by the InterArrival class.
   virtual void Update(double recv_delta_ms,
@@ -32,8 +36,6 @@
                       bool calculated_deltas) = 0;
 
   virtual BandwidthUsage State() const = 0;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(DelayIncreaseDetectorInterface);
 };
 
 }  // namespace webrtc
diff --git a/modules/congestion_controller/goog_cc/probe_controller.h b/modules/congestion_controller/goog_cc/probe_controller.h
index 7f24ff9..d0f1458 100644
--- a/modules/congestion_controller/goog_cc/probe_controller.h
+++ b/modules/congestion_controller/goog_cc/probe_controller.h
@@ -22,7 +22,6 @@
 #include "api/transport/network_control.h"
 #include "api/transport/webrtc_key_value_config.h"
 #include "api/units/data_rate.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/experiments/field_trial_parser.h"
 
 namespace webrtc {
@@ -63,6 +62,9 @@
                            RtcEventLog* event_log);
   ~ProbeController();
 
+  ProbeController(const ProbeController&) = delete;
+  ProbeController& operator=(const ProbeController&) = delete;
+
   ABSL_MUST_USE_RESULT std::vector<ProbeClusterConfig> SetBitrates(
       int64_t min_bitrate_bps,
       int64_t start_bitrate_bps,
@@ -143,8 +145,6 @@
   int32_t next_probe_cluster_id_ = 1;
 
   ProbeControllerConfig config_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(ProbeController);
 };
 
 }  // namespace webrtc
diff --git a/modules/congestion_controller/goog_cc/trendline_estimator.h b/modules/congestion_controller/goog_cc/trendline_estimator.h
index 75b971d..6fd44249 100644
--- a/modules/congestion_controller/goog_cc/trendline_estimator.h
+++ b/modules/congestion_controller/goog_cc/trendline_estimator.h
@@ -20,7 +20,6 @@
 #include "api/network_state_predictor.h"
 #include "api/transport/webrtc_key_value_config.h"
 #include "modules/congestion_controller/goog_cc/delay_increase_detector_interface.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/experiments/struct_parameters_parser.h"
 
 namespace webrtc {
@@ -57,6 +56,9 @@
 
   ~TrendlineEstimator() override;
 
+  TrendlineEstimator(const TrendlineEstimator&) = delete;
+  TrendlineEstimator& operator=(const TrendlineEstimator&) = delete;
+
   // Update the estimator with a new sample. The deltas should represent deltas
   // between timestamp groups as defined by the InterArrival class.
   void Update(double recv_delta_ms,
@@ -118,8 +120,6 @@
   BandwidthUsage hypothesis_;
   BandwidthUsage hypothesis_predicted_;
   NetworkStatePredictor* network_state_predictor_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(TrendlineEstimator);
 };
 }  // namespace webrtc
 
diff --git a/modules/congestion_controller/rtp/control_handler.h b/modules/congestion_controller/rtp/control_handler.h
index 1da6463..16ffc32 100644
--- a/modules/congestion_controller/rtp/control_handler.h
+++ b/modules/congestion_controller/rtp/control_handler.h
@@ -19,7 +19,6 @@
 #include "api/units/data_size.h"
 #include "api/units/time_delta.h"
 #include "modules/pacing/paced_sender.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/system/no_unique_address.h"
 
 namespace webrtc {
@@ -33,6 +32,9 @@
   CongestionControlHandler();
   ~CongestionControlHandler();
 
+  CongestionControlHandler(const CongestionControlHandler&) = delete;
+  CongestionControlHandler& operator=(const CongestionControlHandler&) = delete;
+
   void SetTargetRate(TargetTransferRate new_target_rate);
   void SetNetworkAvailability(bool network_available);
   void SetPacerQueue(TimeDelta expected_queue_time);
@@ -48,7 +50,6 @@
   int64_t pacer_expected_queue_ms_ = 0;
 
   RTC_NO_UNIQUE_ADDRESS SequenceChecker sequenced_checker_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(CongestionControlHandler);
 };
 }  // namespace webrtc
 #endif  // MODULES_CONGESTION_CONTROLLER_RTP_CONTROL_HANDLER_H_
diff --git a/modules/desktop_capture/cropped_desktop_frame.cc b/modules/desktop_capture/cropped_desktop_frame.cc
index 3c5c994..54488b7 100644
--- a/modules/desktop_capture/cropped_desktop_frame.cc
+++ b/modules/desktop_capture/cropped_desktop_frame.cc
@@ -15,7 +15,6 @@
 
 #include "modules/desktop_capture/desktop_region.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -25,10 +24,11 @@
   CroppedDesktopFrame(std::unique_ptr<DesktopFrame> frame,
                       const DesktopRect& rect);
 
+  CroppedDesktopFrame(const CroppedDesktopFrame&) = delete;
+  CroppedDesktopFrame& operator=(const CroppedDesktopFrame&) = delete;
+
  private:
   const std::unique_ptr<DesktopFrame> frame_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(CroppedDesktopFrame);
 };
 
 std::unique_ptr<DesktopFrame> CreateCroppedDesktopFrame(
diff --git a/modules/desktop_capture/desktop_and_cursor_composer.cc b/modules/desktop_capture/desktop_and_cursor_composer.cc
index 7be8982..7ca0af0 100644
--- a/modules/desktop_capture/desktop_and_cursor_composer.cc
+++ b/modules/desktop_capture/desktop_and_cursor_composer.cc
@@ -21,7 +21,6 @@
 #include "modules/desktop_capture/mouse_cursor.h"
 #include "modules/desktop_capture/mouse_cursor_monitor.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -72,6 +71,9 @@
                          bool cursor_changed);
   ~DesktopFrameWithCursor() override;
 
+  DesktopFrameWithCursor(const DesktopFrameWithCursor&) = delete;
+  DesktopFrameWithCursor& operator=(const DesktopFrameWithCursor&) = delete;
+
   DesktopRect cursor_rect() const { return cursor_rect_; }
 
  private:
@@ -80,8 +82,6 @@
   DesktopVector restore_position_;
   std::unique_ptr<DesktopFrame> restore_frame_;
   DesktopRect cursor_rect_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(DesktopFrameWithCursor);
 };
 
 DesktopFrameWithCursor::DesktopFrameWithCursor(
diff --git a/modules/desktop_capture/desktop_and_cursor_composer.h b/modules/desktop_capture/desktop_and_cursor_composer.h
index a027058..edb764d 100644
--- a/modules/desktop_capture/desktop_and_cursor_composer.h
+++ b/modules/desktop_capture/desktop_and_cursor_composer.h
@@ -21,7 +21,6 @@
 #include "modules/desktop_capture/mouse_cursor.h"
 #include "modules/desktop_capture/mouse_cursor_monitor.h"
 #include "modules/desktop_capture/shared_memory.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
@@ -41,6 +40,9 @@
 
   ~DesktopAndCursorComposer() override;
 
+  DesktopAndCursorComposer(const DesktopAndCursorComposer&) = delete;
+  DesktopAndCursorComposer& operator=(const DesktopAndCursorComposer&) = delete;
+
   // Creates a new composer that relies on an external source for cursor shape
   // and position information via the MouseCursorMonitor::Callback interface.
   static std::unique_ptr<DesktopAndCursorComposer>
@@ -84,8 +86,6 @@
   DesktopVector cursor_position_;
   DesktopRect previous_cursor_rect_;
   bool cursor_changed_ = false;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(DesktopAndCursorComposer);
 };
 
 }  // namespace webrtc
diff --git a/modules/desktop_capture/desktop_frame.h b/modules/desktop_capture/desktop_frame.h
index 9c53b83..3ee1867 100644
--- a/modules/desktop_capture/desktop_frame.h
+++ b/modules/desktop_capture/desktop_frame.h
@@ -19,7 +19,6 @@
 #include "modules/desktop_capture/desktop_geometry.h"
 #include "modules/desktop_capture/desktop_region.h"
 #include "modules/desktop_capture/shared_memory.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
@@ -34,6 +33,9 @@
 
   virtual ~DesktopFrame();
 
+  DesktopFrame(const DesktopFrame&) = delete;
+  DesktopFrame& operator=(const DesktopFrame&) = delete;
+
   // Returns the rectangle in full desktop coordinates to indicate it covers
   // the area of top_left() to top_letf() + size() / scale_factor().
   DesktopRect rect() const;
@@ -163,8 +165,6 @@
   int64_t capture_time_ms_;
   uint32_t capturer_id_;
   std::vector<uint8_t> icc_profile_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(DesktopFrame);
 };
 
 // A DesktopFrame that stores data in the heap.
@@ -175,12 +175,12 @@
 
   ~BasicDesktopFrame() override;
 
+  BasicDesktopFrame(const BasicDesktopFrame&) = delete;
+  BasicDesktopFrame& operator=(const BasicDesktopFrame&) = delete;
+
   // Creates a BasicDesktopFrame that contains copy of `frame`.
   // TODO(zijiehe): Return std::unique_ptr<DesktopFrame>
   static DesktopFrame* CopyOf(const DesktopFrame& frame);
-
- private:
-  RTC_DISALLOW_COPY_AND_ASSIGN(BasicDesktopFrame);
 };
 
 // A DesktopFrame that stores data in shared memory.
@@ -206,6 +206,9 @@
 
   ~SharedMemoryDesktopFrame() override;
 
+  SharedMemoryDesktopFrame(const SharedMemoryDesktopFrame&) = delete;
+  SharedMemoryDesktopFrame& operator=(const SharedMemoryDesktopFrame&) = delete;
+
  private:
   // Avoid unexpected order of parameter evaluation.
   // Executing both std::unique_ptr<T>::operator->() and
@@ -217,8 +220,6 @@
   SharedMemoryDesktopFrame(DesktopRect rect,
                            int stride,
                            SharedMemory* shared_memory);
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(SharedMemoryDesktopFrame);
 };
 
 }  // namespace webrtc
diff --git a/modules/desktop_capture/full_screen_application_handler.h b/modules/desktop_capture/full_screen_application_handler.h
index 849cb2c..b7e097a 100644
--- a/modules/desktop_capture/full_screen_application_handler.h
+++ b/modules/desktop_capture/full_screen_application_handler.h
@@ -12,8 +12,8 @@
 #define MODULES_DESKTOP_CAPTURE_FULL_SCREEN_APPLICATION_HANDLER_H_
 
 #include <memory>
+
 #include "modules/desktop_capture/desktop_capturer.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -25,6 +25,10 @@
  public:
   virtual ~FullScreenApplicationHandler() {}
 
+  FullScreenApplicationHandler(const FullScreenApplicationHandler&) = delete;
+  FullScreenApplicationHandler& operator=(const FullScreenApplicationHandler&) =
+      delete;
+
   explicit FullScreenApplicationHandler(DesktopCapturer::SourceId sourceId);
 
   // Returns the full-screen window in place of the original window if all the
@@ -39,8 +43,6 @@
 
  private:
   const DesktopCapturer::SourceId source_id_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(FullScreenApplicationHandler);
 };
 
 }  // namespace webrtc
diff --git a/modules/desktop_capture/full_screen_window_detector.h b/modules/desktop_capture/full_screen_window_detector.h
index ca30d95..998b720 100644
--- a/modules/desktop_capture/full_screen_window_detector.h
+++ b/modules/desktop_capture/full_screen_window_detector.h
@@ -12,12 +12,12 @@
 #define MODULES_DESKTOP_CAPTURE_FULL_SCREEN_WINDOW_DETECTOR_H_
 
 #include <memory>
+
 #include "api/function_view.h"
 #include "api/ref_counted_base.h"
 #include "api/scoped_refptr.h"
 #include "modules/desktop_capture/desktop_capturer.h"
 #include "modules/desktop_capture/full_screen_application_handler.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -42,6 +42,9 @@
   FullScreenWindowDetector(
       ApplicationHandlerFactory application_handler_factory);
 
+  FullScreenWindowDetector(const FullScreenWindowDetector&) = delete;
+  FullScreenWindowDetector& operator=(const FullScreenWindowDetector&) = delete;
+
   // Returns the full-screen window in place of the original window if all the
   // criteria provided by FullScreenApplicationHandler are met, or 0 if no such
   // window found.
@@ -73,7 +76,6 @@
   DesktopCapturer::SourceId no_handler_source_id_;
 
   DesktopCapturer::SourceList window_list_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(FullScreenWindowDetector);
 };
 
 }  // namespace webrtc
diff --git a/modules/desktop_capture/mac/desktop_configuration_monitor.h b/modules/desktop_capture/mac/desktop_configuration_monitor.h
index aa0ebfb..747295a 100644
--- a/modules/desktop_capture/mac/desktop_configuration_monitor.h
+++ b/modules/desktop_capture/mac/desktop_configuration_monitor.h
@@ -18,7 +18,6 @@
 
 #include "api/ref_counted_base.h"
 #include "modules/desktop_capture/mac/desktop_configuration.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/synchronization/mutex.h"
 
 namespace webrtc {
@@ -31,6 +30,10 @@
   DesktopConfigurationMonitor();
   ~DesktopConfigurationMonitor();
 
+  DesktopConfigurationMonitor(const DesktopConfigurationMonitor&) = delete;
+  DesktopConfigurationMonitor& operator=(const DesktopConfigurationMonitor&) =
+      delete;
+
   // Returns the current desktop configuration.
   MacDesktopConfiguration desktop_configuration();
 
@@ -45,8 +48,6 @@
   MacDesktopConfiguration desktop_configuration_
       RTC_GUARDED_BY(&desktop_configuration_lock_);
   std::set<CGDirectDisplayID> reconfiguring_displays_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(DesktopConfigurationMonitor);
 };
 
 }  // namespace webrtc
diff --git a/modules/desktop_capture/mac/desktop_frame_cgimage.h b/modules/desktop_capture/mac/desktop_frame_cgimage.h
index 8780438..d6279f9 100644
--- a/modules/desktop_capture/mac/desktop_frame_cgimage.h
+++ b/modules/desktop_capture/mac/desktop_frame_cgimage.h
@@ -35,6 +35,9 @@
 
   ~DesktopFrameCGImage() override;
 
+  DesktopFrameCGImage(const DesktopFrameCGImage&) = delete;
+  DesktopFrameCGImage& operator=(const DesktopFrameCGImage&) = delete;
+
  private:
   static std::unique_ptr<DesktopFrameCGImage> CreateFromCGImage(
       rtc::ScopedCFTypeRef<CGImageRef> cg_image);
@@ -48,8 +51,6 @@
 
   const rtc::ScopedCFTypeRef<CGImageRef> cg_image_;
   const rtc::ScopedCFTypeRef<CFDataRef> cg_data_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(DesktopFrameCGImage);
 };
 
 }  // namespace webrtc
diff --git a/modules/desktop_capture/mac/desktop_frame_iosurface.h b/modules/desktop_capture/mac/desktop_frame_iosurface.h
index f79197a..73da0f6 100644
--- a/modules/desktop_capture/mac/desktop_frame_iosurface.h
+++ b/modules/desktop_capture/mac/desktop_frame_iosurface.h
@@ -30,13 +30,14 @@
 
   ~DesktopFrameIOSurface() override;
 
+  DesktopFrameIOSurface(const DesktopFrameIOSurface&) = delete;
+  DesktopFrameIOSurface& operator=(const DesktopFrameIOSurface&) = delete;
+
  private:
   // This constructor expects `io_surface` to hold a non-null IOSurfaceRef.
   explicit DesktopFrameIOSurface(rtc::ScopedCFTypeRef<IOSurfaceRef> io_surface);
 
   const rtc::ScopedCFTypeRef<IOSurfaceRef> io_surface_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(DesktopFrameIOSurface);
 };
 
 }  // namespace webrtc
diff --git a/modules/desktop_capture/mac/desktop_frame_provider.h b/modules/desktop_capture/mac/desktop_frame_provider.h
index bb45d1e..aad28d2 100644
--- a/modules/desktop_capture/mac/desktop_frame_provider.h
+++ b/modules/desktop_capture/mac/desktop_frame_provider.h
@@ -28,6 +28,9 @@
   explicit DesktopFrameProvider(bool allow_iosurface);
   ~DesktopFrameProvider();
 
+  DesktopFrameProvider(const DesktopFrameProvider&) = delete;
+  DesktopFrameProvider& operator=(const DesktopFrameProvider&) = delete;
+
   // The caller takes ownership of the returned desktop frame. Otherwise
   // returns null if `display_id` is invalid or not ready. Note that this
   // function does not remove the frame from the internal container. Caller
@@ -49,8 +52,6 @@
 
   // Most recent IOSurface that contains a capture of matching display.
   std::map<CGDirectDisplayID, std::unique_ptr<SharedDesktopFrame>> io_surfaces_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(DesktopFrameProvider);
 };
 
 }  // namespace webrtc
diff --git a/modules/desktop_capture/mac/screen_capturer_mac.h b/modules/desktop_capture/mac/screen_capturer_mac.h
index 68b8655..d9a5966 100644
--- a/modules/desktop_capture/mac/screen_capturer_mac.h
+++ b/modules/desktop_capture/mac/screen_capturer_mac.h
@@ -42,6 +42,9 @@
       bool allow_iosurface);
   ~ScreenCapturerMac() override;
 
+  ScreenCapturerMac(const ScreenCapturerMac&) = delete;
+  ScreenCapturerMac& operator=(const ScreenCapturerMac&) = delete;
+
   // TODO(julien.isorce): Remove Init() or make it private.
   bool Init();
 
@@ -111,8 +114,6 @@
 
   // Start, CaptureFrame and destructor have to called in the same thread.
   SequenceChecker thread_checker_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(ScreenCapturerMac);
 };
 
 }  // namespace webrtc
diff --git a/modules/desktop_capture/mock_desktop_capturer_callback.h b/modules/desktop_capture/mock_desktop_capturer_callback.h
index 6530dc5..bb15cea 100644
--- a/modules/desktop_capture/mock_desktop_capturer_callback.h
+++ b/modules/desktop_capture/mock_desktop_capturer_callback.h
@@ -22,15 +22,16 @@
   MockDesktopCapturerCallback();
   ~MockDesktopCapturerCallback() override;
 
+  MockDesktopCapturerCallback(const MockDesktopCapturerCallback&) = delete;
+  MockDesktopCapturerCallback& operator=(const MockDesktopCapturerCallback&) =
+      delete;
+
   MOCK_METHOD(void,
               OnCaptureResultPtr,
               (DesktopCapturer::Result result,
                std::unique_ptr<DesktopFrame>* frame));
   void OnCaptureResult(DesktopCapturer::Result result,
                        std::unique_ptr<DesktopFrame> frame) final;
-
- private:
-  RTC_DISALLOW_COPY_AND_ASSIGN(MockDesktopCapturerCallback);
 };
 
 }  // namespace webrtc
diff --git a/modules/desktop_capture/mouse_cursor.h b/modules/desktop_capture/mouse_cursor.h
index 0a74140..2dd7931 100644
--- a/modules/desktop_capture/mouse_cursor.h
+++ b/modules/desktop_capture/mouse_cursor.h
@@ -15,7 +15,6 @@
 
 #include "modules/desktop_capture/desktop_frame.h"
 #include "modules/desktop_capture/desktop_geometry.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
@@ -29,6 +28,9 @@
 
   ~MouseCursor();
 
+  MouseCursor(const MouseCursor&) = delete;
+  MouseCursor& operator=(const MouseCursor&) = delete;
+
   static MouseCursor* CopyOf(const MouseCursor& cursor);
 
   void set_image(DesktopFrame* image) { image_.reset(image); }
@@ -40,8 +42,6 @@
  private:
   std::unique_ptr<DesktopFrame> image_;
   DesktopVector hotspot_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(MouseCursor);
 };
 
 }  // namespace webrtc
diff --git a/modules/desktop_capture/screen_capture_frame_queue.h b/modules/desktop_capture/screen_capture_frame_queue.h
index a92bac6..f54b8b6 100644
--- a/modules/desktop_capture/screen_capture_frame_queue.h
+++ b/modules/desktop_capture/screen_capture_frame_queue.h
@@ -13,7 +13,6 @@
 
 #include <memory>
 
-#include "rtc_base/constructor_magic.h"
 // TODO(zijiehe): These headers are not used in this file, but to avoid build
 // break in remoting/host. We should add headers in each individual files.
 #include "modules/desktop_capture/desktop_frame.h"         // Remove
@@ -40,6 +39,9 @@
   ScreenCaptureFrameQueue() : current_(0) {}
   ~ScreenCaptureFrameQueue() = default;
 
+  ScreenCaptureFrameQueue(const ScreenCaptureFrameQueue&) = delete;
+  ScreenCaptureFrameQueue& operator=(const ScreenCaptureFrameQueue&) = delete;
+
   // Moves to the next frame in the queue, moving the 'current' frame to become
   // the 'previous' one.
   void MoveToNextFrame() { current_ = (current_ + 1) % kQueueLength; }
@@ -71,8 +73,6 @@
 
   static const int kQueueLength = 2;
   std::unique_ptr<FrameType> frames_[kQueueLength];
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(ScreenCaptureFrameQueue);
 };
 
 }  // namespace webrtc
diff --git a/modules/desktop_capture/screen_capturer_helper.h b/modules/desktop_capture/screen_capturer_helper.h
index f7c447a..cd7fa68 100644
--- a/modules/desktop_capture/screen_capturer_helper.h
+++ b/modules/desktop_capture/screen_capturer_helper.h
@@ -15,7 +15,6 @@
 
 #include "modules/desktop_capture/desktop_geometry.h"
 #include "modules/desktop_capture/desktop_region.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/synchronization/mutex.h"
 #include "rtc_base/thread_annotations.h"
 
@@ -30,6 +29,9 @@
   ScreenCapturerHelper() = default;
   ~ScreenCapturerHelper() = default;
 
+  ScreenCapturerHelper(const ScreenCapturerHelper&) = delete;
+  ScreenCapturerHelper& operator=(const ScreenCapturerHelper&) = delete;
+
   // Clear out the invalid region.
   void ClearInvalidRegion();
 
@@ -82,8 +84,6 @@
   // expanded.
   // If the value is <= 0, then the invalid region is not expanded to a grid.
   int log_grid_size_ = 0;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(ScreenCapturerHelper);
 };
 
 }  // namespace webrtc
diff --git a/modules/desktop_capture/screen_capturer_unittest.cc b/modules/desktop_capture/screen_capturer_unittest.cc
index ba6b8bf..8f5fe63 100644
--- a/modules/desktop_capture/screen_capturer_unittest.cc
+++ b/modules/desktop_capture/screen_capturer_unittest.cc
@@ -15,7 +15,6 @@
 #include "modules/desktop_capture/desktop_frame.h"
 #include "modules/desktop_capture/desktop_region.h"
 #include "modules/desktop_capture/mock_desktop_capturer_callback.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/logging.h"
 #include "test/gmock.h"
 #include "test/gtest.h"
@@ -76,9 +75,11 @@
       : SharedMemory(buffer, size, 0, kTestSharedMemoryId), buffer_(buffer) {}
   ~FakeSharedMemory() override { delete[] buffer_; }
 
+  FakeSharedMemory(const FakeSharedMemory&) = delete;
+  FakeSharedMemory& operator=(const FakeSharedMemory&) = delete;
+
  private:
   char* buffer_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(FakeSharedMemory);
 };
 
 class FakeSharedMemoryFactory : public SharedMemoryFactory {
@@ -86,13 +87,13 @@
   FakeSharedMemoryFactory() {}
   ~FakeSharedMemoryFactory() override {}
 
+  FakeSharedMemoryFactory(const FakeSharedMemoryFactory&) = delete;
+  FakeSharedMemoryFactory& operator=(const FakeSharedMemoryFactory&) = delete;
+
   std::unique_ptr<SharedMemory> CreateSharedMemory(size_t size) override {
     return std::unique_ptr<SharedMemory>(
         new FakeSharedMemory(new char[size], size));
   }
-
- private:
-  RTC_DISALLOW_COPY_AND_ASSIGN(FakeSharedMemoryFactory);
 };
 
 ACTION_P(SaveUniquePtrArg, dest) {
diff --git a/modules/desktop_capture/shared_desktop_frame.h b/modules/desktop_capture/shared_desktop_frame.h
index 29f9306..c6f5224 100644
--- a/modules/desktop_capture/shared_desktop_frame.h
+++ b/modules/desktop_capture/shared_desktop_frame.h
@@ -15,7 +15,6 @@
 
 #include "api/scoped_refptr.h"
 #include "modules/desktop_capture/desktop_frame.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/ref_counted_object.h"
 #include "rtc_base/system/rtc_export.h"
 
@@ -27,6 +26,9 @@
  public:
   ~SharedDesktopFrame() override;
 
+  SharedDesktopFrame(const SharedDesktopFrame&) = delete;
+  SharedDesktopFrame& operator=(const SharedDesktopFrame&) = delete;
+
   static std::unique_ptr<SharedDesktopFrame> Wrap(
       std::unique_ptr<DesktopFrame> desktop_frame);
 
@@ -56,8 +58,6 @@
   SharedDesktopFrame(rtc::scoped_refptr<Core> core);
 
   const rtc::scoped_refptr<Core> core_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(SharedDesktopFrame);
 };
 
 }  // namespace webrtc
diff --git a/modules/desktop_capture/shared_memory.h b/modules/desktop_capture/shared_memory.h
index 49a9252..a7add44 100644
--- a/modules/desktop_capture/shared_memory.h
+++ b/modules/desktop_capture/shared_memory.h
@@ -21,7 +21,6 @@
 
 #include <memory>
 
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
@@ -54,6 +53,9 @@
 
   virtual ~SharedMemory() {}
 
+  SharedMemory(const SharedMemory&) = delete;
+  SharedMemory& operator=(const SharedMemory&) = delete;
+
  protected:
   SharedMemory(void* data, size_t size, Handle handle, int id);
 
@@ -61,9 +63,6 @@
   const size_t size_;
   const Handle handle_;
   const int id_;
-
- private:
-  RTC_DISALLOW_COPY_AND_ASSIGN(SharedMemory);
 };
 
 // Interface used to create SharedMemory instances.
@@ -72,10 +71,10 @@
   SharedMemoryFactory() {}
   virtual ~SharedMemoryFactory() {}
 
-  virtual std::unique_ptr<SharedMemory> CreateSharedMemory(size_t size) = 0;
+  SharedMemoryFactory(const SharedMemoryFactory&) = delete;
+  SharedMemoryFactory& operator=(const SharedMemoryFactory&) = delete;
 
- private:
-  RTC_DISALLOW_COPY_AND_ASSIGN(SharedMemoryFactory);
+  virtual std::unique_ptr<SharedMemory> CreateSharedMemory(size_t size) = 0;
 };
 
 }  // namespace webrtc
diff --git a/modules/desktop_capture/win/screen_capturer_win_directx.h b/modules/desktop_capture/win/screen_capturer_win_directx.h
index 378f9a7..2d0fce6 100644
--- a/modules/desktop_capture/win/screen_capturer_win_directx.h
+++ b/modules/desktop_capture/win/screen_capturer_win_directx.h
@@ -23,6 +23,7 @@
 #include "modules/desktop_capture/screen_capture_frame_queue.h"
 #include "modules/desktop_capture/win/dxgi_duplicator_controller.h"
 #include "modules/desktop_capture/win/dxgi_frame.h"
+#include "rtc_base/constructor_magic.h"
 #include "rtc_base/system/rtc_export.h"
 
 namespace webrtc {
diff --git a/modules/desktop_capture/window_capturer_mac.mm b/modules/desktop_capture/window_capturer_mac.mm
index de15d65..f0b413b 100644
--- a/modules/desktop_capture/window_capturer_mac.mm
+++ b/modules/desktop_capture/window_capturer_mac.mm
@@ -24,7 +24,6 @@
 #include "modules/desktop_capture/mac/window_list_utils.h"
 #include "modules/desktop_capture/window_finder_mac.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/logging.h"
 #include "rtc_base/trace_event.h"
 
@@ -52,6 +51,9 @@
       rtc::scoped_refptr<DesktopConfigurationMonitor> configuration_monitor);
   ~WindowCapturerMac() override;
 
+  WindowCapturerMac(const WindowCapturerMac&) = delete;
+  WindowCapturerMac& operator=(const WindowCapturerMac&) = delete;
+
   // DesktopCapturer interface.
   void Start(Callback* callback) override;
   void CaptureFrame() override;
@@ -71,8 +73,6 @@
   const rtc::scoped_refptr<DesktopConfigurationMonitor> configuration_monitor_;
 
   WindowFinderMac window_finder_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(WindowCapturerMac);
 };
 
 WindowCapturerMac::WindowCapturerMac(
diff --git a/modules/pacing/packet_router.h b/modules/pacing/packet_router.h
index 9958a50..11d8979 100644
--- a/modules/pacing/packet_router.h
+++ b/modules/pacing/packet_router.h
@@ -25,7 +25,6 @@
 #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "modules/rtp_rtcp/source/rtcp_packet.h"
 #include "modules/rtp_rtcp/source/rtp_packet_to_send.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/synchronization/mutex.h"
 #include "rtc_base/thread_annotations.h"
 
@@ -44,6 +43,9 @@
   explicit PacketRouter(uint16_t start_transport_seq);
   ~PacketRouter() override;
 
+  PacketRouter(const PacketRouter&) = delete;
+  PacketRouter& operator=(const PacketRouter&) = delete;
+
   void AddSendRtpModule(RtpRtcpInterface* rtp_module, bool remb_candidate);
   void RemoveSendRtpModule(RtpRtcpInterface* rtp_module);
 
@@ -107,8 +109,6 @@
   // process thread is gone.
   std::vector<std::unique_ptr<RtpPacketToSend>> pending_fec_packets_
       RTC_GUARDED_BY(modules_mutex_);
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(PacketRouter);
 };
 }  // namespace webrtc
 #endif  // MODULES_PACING_PACKET_ROUTER_H_
diff --git a/modules/remote_bitrate_estimator/overuse_detector.h b/modules/remote_bitrate_estimator/overuse_detector.h
index d1c6aa8..179e290 100644
--- a/modules/remote_bitrate_estimator/overuse_detector.h
+++ b/modules/remote_bitrate_estimator/overuse_detector.h
@@ -14,7 +14,6 @@
 
 #include "api/network_state_predictor.h"
 #include "api/transport/webrtc_key_value_config.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -26,6 +25,9 @@
   explicit OveruseDetector(const WebRtcKeyValueConfig* key_value_config);
   virtual ~OveruseDetector();
 
+  OveruseDetector(const OveruseDetector&) = delete;
+  OveruseDetector& operator=(const OveruseDetector&) = delete;
+
   // Update the detection state based on the estimated inter-arrival time delta
   // offset. `timestamp_delta` is the delta between the last timestamp which the
   // estimated offset is based on and the last timestamp on which the last
@@ -54,8 +56,6 @@
   double time_over_using_;
   int overuse_counter_;
   BandwidthUsage hypothesis_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(OveruseDetector);
 };
 }  // namespace webrtc
 
diff --git a/modules/remote_bitrate_estimator/overuse_estimator.h b/modules/remote_bitrate_estimator/overuse_estimator.h
index d023b36..c021f00 100644
--- a/modules/remote_bitrate_estimator/overuse_estimator.h
+++ b/modules/remote_bitrate_estimator/overuse_estimator.h
@@ -15,7 +15,6 @@
 #include <deque>
 
 #include "api/network_state_predictor.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -39,6 +38,9 @@
   explicit OveruseEstimator(const OverUseDetectorOptions& options);
   ~OveruseEstimator();
 
+  OveruseEstimator(const OveruseEstimator&) = delete;
+  OveruseEstimator& operator=(const OveruseEstimator&) = delete;
+
   // Update the estimator with a new sample. The deltas should represent deltas
   // between timestamp groups as defined by the InterArrival class.
   // `current_hypothesis` should be the hypothesis of the over-use detector at
@@ -75,8 +77,6 @@
   double avg_noise_;
   double var_noise_;
   std::deque<double> ts_delta_hist_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(OveruseEstimator);
 };
 }  // namespace webrtc
 
diff --git a/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time_unittest.cc b/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time_unittest.cc
index 10dd99c..d8ef23c 100644
--- a/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time_unittest.cc
+++ b/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time_unittest.cc
@@ -11,7 +11,6 @@
 #include "modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.h"
 
 #include "modules/remote_bitrate_estimator/remote_bitrate_estimator_unittest_helper.h"
-#include "rtc_base/constructor_magic.h"
 #include "test/gtest.h"
 
 namespace webrtc {
@@ -20,13 +19,18 @@
     : public RemoteBitrateEstimatorTest {
  public:
   RemoteBitrateEstimatorAbsSendTimeTest() {}
+
+  RemoteBitrateEstimatorAbsSendTimeTest(
+      const RemoteBitrateEstimatorAbsSendTimeTest&) = delete;
+  RemoteBitrateEstimatorAbsSendTimeTest& operator=(
+      const RemoteBitrateEstimatorAbsSendTimeTest&) = delete;
+
   virtual void SetUp() {
     bitrate_estimator_.reset(new RemoteBitrateEstimatorAbsSendTime(
         bitrate_observer_.get(), &clock_));
   }
 
  protected:
-  RTC_DISALLOW_COPY_AND_ASSIGN(RemoteBitrateEstimatorAbsSendTimeTest);
 };
 
 TEST_F(RemoteBitrateEstimatorAbsSendTimeTest, InitialBehavior) {
diff --git a/modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream_unittest.cc b/modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream_unittest.cc
index d0a7b22..64ef39d 100644
--- a/modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream_unittest.cc
+++ b/modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream_unittest.cc
@@ -11,7 +11,6 @@
 #include "modules/remote_bitrate_estimator/remote_bitrate_estimator_single_stream.h"
 
 #include "modules/remote_bitrate_estimator/remote_bitrate_estimator_unittest_helper.h"
-#include "rtc_base/constructor_magic.h"
 #include "test/gtest.h"
 
 namespace webrtc {
@@ -19,13 +18,18 @@
 class RemoteBitrateEstimatorSingleTest : public RemoteBitrateEstimatorTest {
  public:
   RemoteBitrateEstimatorSingleTest() {}
+
+  RemoteBitrateEstimatorSingleTest(const RemoteBitrateEstimatorSingleTest&) =
+      delete;
+  RemoteBitrateEstimatorSingleTest& operator=(
+      const RemoteBitrateEstimatorSingleTest&) = delete;
+
   virtual void SetUp() {
     bitrate_estimator_.reset(new RemoteBitrateEstimatorSingleStream(
         bitrate_observer_.get(), &clock_));
   }
 
  protected:
-  RTC_DISALLOW_COPY_AND_ASSIGN(RemoteBitrateEstimatorSingleTest);
 };
 
 TEST_F(RemoteBitrateEstimatorSingleTest, InitialBehavior) {
diff --git a/modules/remote_bitrate_estimator/remote_bitrate_estimator_unittest_helper.h b/modules/remote_bitrate_estimator/remote_bitrate_estimator_unittest_helper.h
index db4e899..a3b1cfd 100644
--- a/modules/remote_bitrate_estimator/remote_bitrate_estimator_unittest_helper.h
+++ b/modules/remote_bitrate_estimator/remote_bitrate_estimator_unittest_helper.h
@@ -18,7 +18,6 @@
 #include <vector>
 
 #include "modules/remote_bitrate_estimator/include/remote_bitrate_estimator.h"
-#include "rtc_base/constructor_magic.h"
 #include "system_wrappers/include/clock.h"
 #include "test/gtest.h"
 
@@ -71,6 +70,10 @@
             uint32_t frequency,
             uint32_t timestamp_offset,
             int64_t rtcp_receive_time);
+
+  RtpStream(const RtpStream&) = delete;
+  RtpStream& operator=(const RtpStream&) = delete;
+
   void set_rtp_timestamp_offset(uint32_t offset);
 
   // Generates a new frame for this stream. If called too soon after the
@@ -104,8 +107,6 @@
   int64_t next_rtcp_time_;
   uint32_t rtp_timestamp_offset_;
   const double kNtpFracPerMs;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(RtpStream);
 };
 
 class StreamGenerator {
@@ -116,6 +117,9 @@
 
   ~StreamGenerator();
 
+  StreamGenerator(const StreamGenerator&) = delete;
+  StreamGenerator& operator=(const StreamGenerator&) = delete;
+
   // Add a new stream.
   void AddStream(RtpStream* stream);
 
@@ -142,8 +146,6 @@
   int64_t prev_arrival_time_us_;
   // All streams being transmitted on this simulated channel.
   StreamMap streams_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(StreamGenerator);
 };
 }  // namespace testing
 
@@ -152,6 +154,10 @@
   RemoteBitrateEstimatorTest();
   virtual ~RemoteBitrateEstimatorTest();
 
+  RemoteBitrateEstimatorTest(const RemoteBitrateEstimatorTest&) = delete;
+  RemoteBitrateEstimatorTest& operator=(const RemoteBitrateEstimatorTest&) =
+      delete;
+
  protected:
   virtual void SetUp() = 0;
 
@@ -213,8 +219,6 @@
   std::unique_ptr<RemoteBitrateEstimator> bitrate_estimator_;
   std::unique_ptr<testing::StreamGenerator> stream_generator_;
   int64_t arrival_time_offset_ms_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(RemoteBitrateEstimatorTest);
 };
 }  // namespace webrtc
 
diff --git a/modules/rtp_rtcp/include/remote_ntp_time_estimator.h b/modules/rtp_rtcp/include/remote_ntp_time_estimator.h
index 5734a50..f31503d 100644
--- a/modules/rtp_rtcp/include/remote_ntp_time_estimator.h
+++ b/modules/rtp_rtcp/include/remote_ntp_time_estimator.h
@@ -14,7 +14,6 @@
 #include <stdint.h>
 
 #include "absl/types/optional.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/numerics/moving_median_filter.h"
 #include "system_wrappers/include/rtp_to_ntp_estimator.h"
 
@@ -32,6 +31,9 @@
 
   ~RemoteNtpTimeEstimator();
 
+  RemoteNtpTimeEstimator(const RemoteNtpTimeEstimator&) = delete;
+  RemoteNtpTimeEstimator& operator=(const RemoteNtpTimeEstimator&) = delete;
+
   // Updates the estimator with round trip time `rtt`, NTP seconds `ntp_secs`,
   // NTP fraction `ntp_frac` and RTP timestamp `rtp_timestamp`.
   bool UpdateRtcpTimestamp(int64_t rtt,
@@ -52,7 +54,6 @@
   MovingMedianFilter<int64_t> ntp_clocks_offset_estimator_;
   RtpToNtpEstimator rtp_to_ntp_;
   int64_t last_timing_log_ms_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(RemoteNtpTimeEstimator);
 };
 
 }  // namespace webrtc
diff --git a/modules/rtp_rtcp/source/rtcp_packet/compound_packet.h b/modules/rtp_rtcp/source/rtcp_packet/compound_packet.h
index 8bee600..d98dbd0 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/compound_packet.h
+++ b/modules/rtp_rtcp/source/rtcp_packet/compound_packet.h
@@ -16,7 +16,6 @@
 #include <vector>
 
 #include "modules/rtp_rtcp/source/rtcp_packet.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 namespace rtcp {
@@ -26,6 +25,9 @@
   CompoundPacket();
   ~CompoundPacket() override;
 
+  CompoundPacket(const CompoundPacket&) = delete;
+  CompoundPacket& operator=(const CompoundPacket&) = delete;
+
   void Append(std::unique_ptr<RtcpPacket> packet);
 
   // Size of this packet in bytes (i.e. total size of nested packets).
@@ -38,9 +40,6 @@
 
  protected:
   std::vector<std::unique_ptr<RtcpPacket>> appended_packets_;
-
- private:
-  RTC_DISALLOW_COPY_AND_ASSIGN(CompoundPacket);
 };
 
 }  // namespace rtcp
diff --git a/modules/rtp_rtcp/source/rtp_format_h264.h b/modules/rtp_rtcp/source/rtp_format_h264.h
index f658594..283beac 100644
--- a/modules/rtp_rtcp/source/rtp_format_h264.h
+++ b/modules/rtp_rtcp/source/rtp_format_h264.h
@@ -23,7 +23,6 @@
 #include "modules/rtp_rtcp/source/rtp_packet_to_send.h"
 #include "modules/video_coding/codecs/h264/include/h264_globals.h"
 #include "rtc_base/buffer.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -37,6 +36,9 @@
 
   ~RtpPacketizerH264() override;
 
+  RtpPacketizerH264(const RtpPacketizerH264&) = delete;
+  RtpPacketizerH264& operator=(const RtpPacketizerH264&) = delete;
+
   size_t NumPackets() const override;
 
   // Get the next payload with H264 payload header.
@@ -82,8 +84,6 @@
   size_t num_packets_left_;
   std::deque<rtc::ArrayView<const uint8_t>> input_fragments_;
   std::queue<PacketUnit> packets_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(RtpPacketizerH264);
 };
 }  // namespace webrtc
 #endif  // MODULES_RTP_RTCP_SOURCE_RTP_FORMAT_H264_H_
diff --git a/modules/rtp_rtcp/source/rtp_format_video_generic.h b/modules/rtp_rtcp/source/rtp_format_video_generic.h
index 5acd691..fd44bd1 100644
--- a/modules/rtp_rtcp/source/rtp_format_video_generic.h
+++ b/modules/rtp_rtcp/source/rtp_format_video_generic.h
@@ -16,7 +16,6 @@
 
 #include "api/array_view.h"
 #include "modules/rtp_rtcp/source/rtp_format.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -48,6 +47,9 @@
 
   ~RtpPacketizerGeneric() override;
 
+  RtpPacketizerGeneric(const RtpPacketizerGeneric&) = delete;
+  RtpPacketizerGeneric& operator=(const RtpPacketizerGeneric&) = delete;
+
   size_t NumPackets() const override;
 
   // Get the next payload.
@@ -64,8 +66,6 @@
   rtc::ArrayView<const uint8_t> remaining_payload_;
   std::vector<int> payload_sizes_;
   std::vector<int>::const_iterator current_packet_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(RtpPacketizerGeneric);
 };
 }  // namespace webrtc
 #endif  // MODULES_RTP_RTCP_SOURCE_RTP_FORMAT_VIDEO_GENERIC_H_
diff --git a/modules/rtp_rtcp/source/rtp_format_vp8.h b/modules/rtp_rtcp/source/rtp_format_vp8.h
index 2100928..d1f569a 100644
--- a/modules/rtp_rtcp/source/rtp_format_vp8.h
+++ b/modules/rtp_rtcp/source/rtp_format_vp8.h
@@ -35,7 +35,6 @@
 #include "modules/rtp_rtcp/source/rtp_format.h"
 #include "modules/rtp_rtcp/source/rtp_packet_to_send.h"
 #include "modules/video_coding/codecs/vp8/include/vp8_globals.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -50,6 +49,9 @@
 
   ~RtpPacketizerVp8() override;
 
+  RtpPacketizerVp8(const RtpPacketizerVp8&) = delete;
+  RtpPacketizerVp8& operator=(const RtpPacketizerVp8&) = delete;
+
   size_t NumPackets() const override;
 
   // Get the next payload with VP8 payload header.
@@ -66,8 +68,6 @@
   rtc::ArrayView<const uint8_t> remaining_payload_;
   std::vector<int> payload_sizes_;
   std::vector<int>::const_iterator current_packet_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(RtpPacketizerVp8);
 };
 
 }  // namespace webrtc
diff --git a/modules/rtp_rtcp/source/rtp_format_vp8_test_helper.h b/modules/rtp_rtcp/source/rtp_format_vp8_test_helper.h
index 916d657..3ecaa47 100644
--- a/modules/rtp_rtcp/source/rtp_format_vp8_test_helper.h
+++ b/modules/rtp_rtcp/source/rtp_format_vp8_test_helper.h
@@ -21,7 +21,6 @@
 #include "modules/rtp_rtcp/source/rtp_format_vp8.h"
 #include "modules/video_coding/codecs/vp8/include/vp8_globals.h"
 #include "rtc_base/buffer.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -29,6 +28,10 @@
  public:
   RtpFormatVp8TestHelper(const RTPVideoHeaderVP8* hdr, size_t payload_len);
   ~RtpFormatVp8TestHelper();
+
+  RtpFormatVp8TestHelper(const RtpFormatVp8TestHelper&) = delete;
+  RtpFormatVp8TestHelper& operator=(const RtpFormatVp8TestHelper&) = delete;
+
   void GetAllPacketsAndCheck(RtpPacketizerVp8* packetizer,
                              rtc::ArrayView<const size_t> expected_sizes);
 
@@ -46,8 +49,6 @@
 
   const RTPVideoHeaderVP8* const hdr_info_;
   rtc::Buffer payload_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(RtpFormatVp8TestHelper);
 };
 
 }  // namespace webrtc
diff --git a/modules/rtp_rtcp/source/rtp_format_vp9.h b/modules/rtp_rtcp/source/rtp_format_vp9.h
index 02458ae..3cf4dd5 100644
--- a/modules/rtp_rtcp/source/rtp_format_vp9.h
+++ b/modules/rtp_rtcp/source/rtp_format_vp9.h
@@ -30,7 +30,6 @@
 #include "modules/rtp_rtcp/source/rtp_format.h"
 #include "modules/rtp_rtcp/source/rtp_packet_to_send.h"
 #include "modules/video_coding/codecs/vp9/include/vp9_globals.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -43,6 +42,9 @@
 
   ~RtpPacketizerVp9() override;
 
+  RtpPacketizerVp9(const RtpPacketizerVp9&) = delete;
+  RtpPacketizerVp9& operator=(const RtpPacketizerVp9&) = delete;
+
   size_t NumPackets() const override;
 
   // Gets the next payload with VP9 payload header.
@@ -64,8 +66,6 @@
   rtc::ArrayView<const uint8_t> remaining_payload_;
   std::vector<int> payload_sizes_;
   std::vector<int>::const_iterator current_packet_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(RtpPacketizerVp9);
 };
 
 }  // namespace webrtc
diff --git a/modules/rtp_rtcp/source/rtp_rtcp_interface.h b/modules/rtp_rtcp/source/rtp_rtcp_interface.h
index f3cb8d2..a411b23 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_interface.h
+++ b/modules/rtp_rtcp/source/rtp_rtcp_interface.h
@@ -27,7 +27,6 @@
 #include "modules/rtp_rtcp/source/rtp_packet_to_send.h"
 #include "modules/rtp_rtcp/source/rtp_sequence_number_map.h"
 #include "modules/rtp_rtcp/source/video_fec_generator.h"
-#include "rtc_base/constructor_magic.h"
 #include "system_wrappers/include/ntp_time.h"
 
 namespace webrtc {
@@ -47,6 +46,9 @@
     Configuration() = default;
     Configuration(Configuration&& rhs) = default;
 
+    Configuration(const Configuration&) = delete;
+    Configuration& operator=(const Configuration&) = delete;
+
     // True for a audio version of the RTP/RTCP module object false will create
     // a video version.
     bool audio = false;
@@ -145,9 +147,6 @@
     // Estimate RTT as non-sender as described in
     // https://tools.ietf.org/html/rfc3611#section-4.4 and #section-4.5
     bool non_sender_rtt_measurement = false;
-
-   private:
-    RTC_DISALLOW_COPY_AND_ASSIGN(Configuration);
   };
 
   // Stats for RTCP sender reports (SR) for a specific SSRC.
diff --git a/modules/video_coding/codecs/test/videoprocessor.h b/modules/video_coding/codecs/test/videoprocessor.h
index eafe492..595a4f1 100644
--- a/modules/video_coding/codecs/test/videoprocessor.h
+++ b/modules/video_coding/codecs/test/videoprocessor.h
@@ -37,7 +37,6 @@
 #include "modules/video_coding/utility/ivf_file_writer.h"
 #include "rtc_base/buffer.h"
 #include "rtc_base/checks.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/system/no_unique_address.h"
 #include "rtc_base/thread_annotations.h"
 #include "test/testsupport/frame_reader.h"
@@ -70,6 +69,9 @@
                  FrameWriterList* decoded_frame_writers);
   ~VideoProcessor();
 
+  VideoProcessor(const VideoProcessor&) = delete;
+  VideoProcessor& operator=(const VideoProcessor&) = delete;
+
   // Reads a frame and sends it to the encoder. When the encode callback
   // is received, the encoded frame is buffered. After encoding is finished
   // buffered frame is sent to decoder. Quality evaluation is done in
@@ -270,8 +272,6 @@
 
   // This class must be operated on a TaskQueue.
   RTC_NO_UNIQUE_ADDRESS SequenceChecker sequence_checker_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(VideoProcessor);
 };
 
 }  // namespace test
diff --git a/modules/video_coding/fec_controller_default.h b/modules/video_coding/fec_controller_default.h
index 6b9e8eb..cca1658 100644
--- a/modules/video_coding/fec_controller_default.h
+++ b/modules/video_coding/fec_controller_default.h
@@ -19,7 +19,6 @@
 
 #include "api/fec_controller.h"
 #include "modules/video_coding/media_opt_util.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/synchronization/mutex.h"
 #include "rtc_base/thread_annotations.h"
 #include "system_wrappers/include/clock.h"
@@ -32,6 +31,10 @@
                        VCMProtectionCallback* protection_callback);
   explicit FecControllerDefault(Clock* clock);
   ~FecControllerDefault() override;
+
+  FecControllerDefault(const FecControllerDefault&) = delete;
+  FecControllerDefault& operator=(const FecControllerDefault&) = delete;
+
   void SetProtectionCallback(
       VCMProtectionCallback* protection_callback) override;
   void SetProtectionMethod(bool enable_fec, bool enable_nack) override;
@@ -58,7 +61,7 @@
   std::unique_ptr<media_optimization::VCMLossProtectionLogic> loss_prot_logic_
       RTC_GUARDED_BY(mutex_);
   size_t max_payload_size_ RTC_GUARDED_BY(mutex_);
-  RTC_DISALLOW_COPY_AND_ASSIGN(FecControllerDefault);
+
   const float overhead_threshold_;
 };
 
diff --git a/modules/video_coding/h264_sprop_parameter_sets.h b/modules/video_coding/h264_sprop_parameter_sets.h
index dbf27ef..8a32f31 100644
--- a/modules/video_coding/h264_sprop_parameter_sets.h
+++ b/modules/video_coding/h264_sprop_parameter_sets.h
@@ -15,13 +15,15 @@
 #include <string>
 #include <vector>
 
-#include "rtc_base/constructor_magic.h"
-
 namespace webrtc {
 
 class H264SpropParameterSets {
  public:
   H264SpropParameterSets() {}
+
+  H264SpropParameterSets(const H264SpropParameterSets&) = delete;
+  H264SpropParameterSets& operator=(const H264SpropParameterSets&) = delete;
+
   bool DecodeSprop(const std::string& sprop);
   const std::vector<uint8_t>& sps_nalu() { return sps_; }
   const std::vector<uint8_t>& pps_nalu() { return pps_; }
@@ -29,7 +31,6 @@
  private:
   std::vector<uint8_t> sps_;
   std::vector<uint8_t> pps_;
-  RTC_DISALLOW_COPY_AND_ASSIGN(H264SpropParameterSets);
 };
 
 }  // namespace webrtc
diff --git a/modules/video_coding/jitter_buffer.h b/modules/video_coding/jitter_buffer.h
index 23f19bf..df7581a 100644
--- a/modules/video_coding/jitter_buffer.h
+++ b/modules/video_coding/jitter_buffer.h
@@ -26,7 +26,6 @@
 #include "modules/video_coding/inter_frame_delay.h"
 #include "modules/video_coding/jitter_buffer_common.h"
 #include "modules/video_coding/jitter_estimator.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/synchronization/mutex.h"
 #include "rtc_base/thread_annotations.h"
 
@@ -74,6 +73,9 @@
 
   ~VCMJitterBuffer();
 
+  VCMJitterBuffer(const VCMJitterBuffer&) = delete;
+  VCMJitterBuffer& operator=(const VCMJitterBuffer&) = delete;
+
   // Initializes and starts jitter buffer.
   void Start();
 
@@ -264,8 +266,6 @@
   // average_packets_per_frame converges fast if we have fewer than this many
   // frames.
   int frame_counter_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(VCMJitterBuffer);
 };
 }  // namespace webrtc
 
diff --git a/modules/video_coding/test/stream_generator.h b/modules/video_coding/test/stream_generator.h
index f542bab..ddb23eb 100644
--- a/modules/video_coding/test/stream_generator.h
+++ b/modules/video_coding/test/stream_generator.h
@@ -15,7 +15,6 @@
 #include <list>
 
 #include "modules/video_coding/packet.h"
-#include "rtc_base/constructor_magic.h"
 
 namespace webrtc {
 
@@ -29,6 +28,10 @@
 class StreamGenerator {
  public:
   StreamGenerator(uint16_t start_seq_num, int64_t current_time);
+
+  StreamGenerator(const StreamGenerator&) = delete;
+  StreamGenerator& operator=(const StreamGenerator&) = delete;
+
   void Init(uint16_t start_seq_num, int64_t current_time);
 
   // `time_ms` denotes the timestamp you want to put on the frame, and the unit
@@ -64,8 +67,6 @@
   uint16_t sequence_number_;
   int64_t start_time_;
   uint8_t packet_buffer_[kMaxPacketSize];
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(StreamGenerator);
 };
 
 }  // namespace webrtc
diff --git a/modules/video_coding/utility/ivf_file_reader.h b/modules/video_coding/utility/ivf_file_reader.h
index cc64d4c..75f2e3a 100644
--- a/modules/video_coding/utility/ivf_file_reader.h
+++ b/modules/video_coding/utility/ivf_file_reader.h
@@ -17,7 +17,6 @@
 #include "absl/types/optional.h"
 #include "api/video/encoded_image.h"
 #include "api/video_codecs/video_codec.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/system/file_wrapper.h"
 
 namespace webrtc {
@@ -27,6 +26,10 @@
   // Creates IvfFileReader. Returns nullptr if error acquired.
   static std::unique_ptr<IvfFileReader> Create(FileWrapper file);
   ~IvfFileReader();
+
+  IvfFileReader(const IvfFileReader&) = delete;
+  IvfFileReader& operator=(const IvfFileReader&) = delete;
+
   // Reinitializes reader. Returns false if any error acquired.
   bool Reset();
 
@@ -72,8 +75,6 @@
 
   absl::optional<FrameHeader> next_frame_header_;
   bool has_error_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(IvfFileReader);
 };
 
 }  // namespace webrtc
diff --git a/modules/video_coding/utility/ivf_file_writer.h b/modules/video_coding/utility/ivf_file_writer.h
index 874f60a..b53459b 100644
--- a/modules/video_coding/utility/ivf_file_writer.h
+++ b/modules/video_coding/utility/ivf_file_writer.h
@@ -18,7 +18,6 @@
 
 #include "api/video/encoded_image.h"
 #include "api/video/video_codec_type.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/system/file_wrapper.h"
 #include "rtc_base/time_utils.h"
 
@@ -34,6 +33,9 @@
                                              size_t byte_limit);
   ~IvfFileWriter();
 
+  IvfFileWriter(const IvfFileWriter&) = delete;
+  IvfFileWriter& operator=(const IvfFileWriter&) = delete;
+
   bool WriteFrame(const EncodedImage& encoded_image, VideoCodecType codec_type);
   bool Close();
 
@@ -57,8 +59,6 @@
   bool using_capture_timestamps_;
   rtc::TimestampWrapAroundHandler wrap_handler_;
   FileWrapper file_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(IvfFileWriter);
 };
 
 }  // namespace webrtc
diff --git a/modules/video_coding/utility/simulcast_rate_allocator.h b/modules/video_coding/utility/simulcast_rate_allocator.h
index 9b2f969..6f93dbd 100644
--- a/modules/video_coding/utility/simulcast_rate_allocator.h
+++ b/modules/video_coding/utility/simulcast_rate_allocator.h
@@ -19,7 +19,6 @@
 #include "api/video/video_bitrate_allocation.h"
 #include "api/video/video_bitrate_allocator.h"
 #include "api/video_codecs/video_codec.h"
-#include "rtc_base/constructor_magic.h"
 #include "rtc_base/experiments/rate_control_settings.h"
 #include "rtc_base/experiments/stable_target_rate_experiment.h"
 
@@ -30,6 +29,9 @@
   explicit SimulcastRateAllocator(const VideoCodec& codec);
   ~SimulcastRateAllocator() override;
 
+  SimulcastRateAllocator(const SimulcastRateAllocator&) = delete;
+  SimulcastRateAllocator& operator=(const SimulcastRateAllocator&) = delete;
+
   VideoBitrateAllocation Allocate(
       VideoBitrateAllocationParameters parameters) override;
   const VideoCodec& GetCodec() const;
@@ -61,8 +63,6 @@
   const RateControlSettings rate_control_settings_;
   std::vector<bool> stream_enabled_;
   bool legacy_conference_mode_;
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(SimulcastRateAllocator);
 };
 
 }  // namespace webrtc