diff --git a/api/test/loopback_media_transport_unittest.cc b/api/test/loopback_media_transport_unittest.cc
index 1337355..b827405 100644
--- a/api/test/loopback_media_transport_unittest.cc
+++ b/api/test/loopback_media_transport_unittest.cc
@@ -103,9 +103,10 @@
   thread->Start();
   MediaTransportPair transport_pair(thread.get());
   testing::StrictMock<MockMediaTransportVideoSinkInterface> sink;
-  uint8_t encoded_data[] = {1, 2, 3};
+  constexpr uint8_t encoded_data[] = {1, 2, 3};
   EncodedImage encoded_image;
-  encoded_image.set_buffer(encoded_data, sizeof(encoded_data));
+  encoded_image.Allocate(sizeof(encoded_data));
+  memcpy(encoded_image.data(), encoded_data, sizeof(encoded_data));
   encoded_image.set_size(sizeof(encoded_data));
 
   EXPECT_CALL(sink, OnData(1, testing::Property(
diff --git a/call/rtp_video_sender_unittest.cc b/call/rtp_video_sender_unittest.cc
index ede5b1d..4d1964e 100644
--- a/call/rtp_video_sender_unittest.cc
+++ b/call/rtp_video_sender_unittest.cc
@@ -133,12 +133,13 @@
 }  // namespace
 
 TEST(RtpVideoSenderTest, SendOnOneModule) {
-  uint8_t payload = 'a';
+  constexpr uint8_t kPayload = 'a';
   EncodedImage encoded_image;
   encoded_image.SetTimestamp(1);
   encoded_image.capture_time_ms_ = 2;
   encoded_image._frameType = kVideoFrameKey;
-  encoded_image.set_buffer(&payload, 1);
+  encoded_image.Allocate(1);
+  encoded_image.data()[0] = kPayload;
   encoded_image.set_size(1);
 
   RtpVideoSenderTestFixture test({kSsrc1}, kPayloadType, {});
@@ -163,12 +164,13 @@
 }
 
 TEST(RtpVideoSenderTest, SendSimulcastSetActive) {
-  uint8_t payload = 'a';
+  constexpr uint8_t kPayload = 'a';
   EncodedImage encoded_image_1;
   encoded_image_1.SetTimestamp(1);
   encoded_image_1.capture_time_ms_ = 2;
   encoded_image_1._frameType = kVideoFrameKey;
-  encoded_image_1.set_buffer(&payload, 1);
+  encoded_image_1.Allocate(1);
+  encoded_image_1.data()[0] = kPayload;
   encoded_image_1.set_size(1);
 
   RtpVideoSenderTestFixture test({kSsrc1, kSsrc2}, kPayloadType, {});
@@ -207,12 +209,13 @@
 // that outgoing data can be sent on this module, and checks that no data can
 // be sent if both modules are inactive.
 TEST(RtpVideoSenderTest, SendSimulcastSetActiveModules) {
-  uint8_t payload = 'a';
+  constexpr uint8_t kPayload = 'a';
   EncodedImage encoded_image_1;
   encoded_image_1.SetTimestamp(1);
   encoded_image_1.capture_time_ms_ = 2;
   encoded_image_1._frameType = kVideoFrameKey;
-  encoded_image_1.set_buffer(&payload, 1);
+  encoded_image_1.Allocate(1);
+  encoded_image_1.data()[0] = kPayload;
   encoded_image_1.set_size(1);
 
   EncodedImage encoded_image_2(encoded_image_1);
@@ -296,12 +299,13 @@
 
   RtpVideoSenderTestFixture test({kSsrc1}, kPayloadType, {}, &callback);
 
-  uint8_t payload = 'a';
+  constexpr uint8_t kPayload = 'a';
   EncodedImage encoded_image;
   encoded_image.SetTimestamp(1);
   encoded_image.capture_time_ms_ = 2;
   encoded_image._frameType = kVideoFrameKey;
-  encoded_image.set_buffer(&payload, 1);
+  encoded_image.Allocate(1);
+  encoded_image.data()[0] = kPayload;
   encoded_image.set_size(1);
 
   encoded_image._frameType = kVideoFrameKey;
diff --git a/modules/video_coding/codecs/test/videoprocessor.cc b/modules/video_coding/codecs/test/videoprocessor.cc
index c64d290..fafb676 100644
--- a/modules/video_coding/codecs/test/videoprocessor.cc
+++ b/modules/video_coding/codecs/test/videoprocessor.cc
@@ -246,14 +246,6 @@
 
   // Sanity check.
   RTC_CHECK_LE(input_frames_.size(), kMaxBufferedInputFrames);
-
-  // Deal with manual memory management of EncodedImage's.
-  for (size_t i = 0; i < num_simulcast_or_spatial_layers_; ++i) {
-    uint8_t* data = merged_encoded_frames_.at(i).data();
-    if (data) {
-      delete[] data;
-    }
-  }
 }
 
 void VideoProcessor::ProcessFrame() {
@@ -571,27 +563,19 @@
   const size_t buffer_size_bytes =
       payload_size_bytes + EncodedImage::GetBufferPaddingBytes(codec);
 
-  uint8_t* copied_buffer = new uint8_t[buffer_size_bytes];
-  RTC_CHECK(copied_buffer);
-
+  EncodedImage copied_image = encoded_image;
+  copied_image.Allocate(buffer_size_bytes);
   if (base_image.size()) {
     RTC_CHECK(base_image.data());
-    memcpy(copied_buffer, base_image.data(), base_image.size());
+    memcpy(copied_image.data(), base_image.data(), base_image.size());
   }
-  memcpy(copied_buffer + base_image.size(), encoded_image.data(),
+  memcpy(copied_image.data() + base_image.size(), encoded_image.data(),
          encoded_image.size());
 
-  EncodedImage copied_image = encoded_image;
-  copied_image = encoded_image;
-  copied_image.set_buffer(copied_buffer, buffer_size_bytes);
   copied_image.set_size(payload_size_bytes);
 
   // Replace previous EncodedImage for this spatial layer.
-  uint8_t* old_buffer = merged_encoded_frames_.at(spatial_idx).buffer();
-  if (old_buffer) {
-    delete[] old_buffer;
-  }
-  merged_encoded_frames_.at(spatial_idx) = copied_image;
+  merged_encoded_frames_.at(spatial_idx) = std::move(copied_image);
 
   return &merged_encoded_frames_.at(spatial_idx);
 }
diff --git a/modules/video_coding/codecs/test/videoprocessor.h b/modules/video_coding/codecs/test/videoprocessor.h
index 303e1d4..e691478 100644
--- a/modules/video_coding/codecs/test/videoprocessor.h
+++ b/modules/video_coding/codecs/test/videoprocessor.h
@@ -109,10 +109,9 @@
                          const webrtc::EncodedImage& encoded_image,
                          const webrtc::CodecSpecificInfo* codec_specific_info)
           : video_processor_(video_processor),
-            buffer_(encoded_image.data(), encoded_image.size()),
             encoded_image_(encoded_image),
             codec_specific_info_(*codec_specific_info) {
-        encoded_image_.set_buffer(buffer_.data(), buffer_.size());
+        encoded_image_.Retain();
       }
 
       bool Run() override {
@@ -122,7 +121,6 @@
 
      private:
       VideoProcessor* const video_processor_;
-      rtc::Buffer buffer_;
       webrtc::EncodedImage encoded_image_;
       const webrtc::CodecSpecificInfo codec_specific_info_;
     };
diff --git a/modules/video_coding/generic_encoder_unittest.cc b/modules/video_coding/generic_encoder_unittest.cc
index 4ea2506..0be0c75 100644
--- a/modules/video_coding/generic_encoder_unittest.cc
+++ b/modules/video_coding/generic_encoder_unittest.cc
@@ -82,7 +82,6 @@
       {delay_ms, kDefaultOutlierFrameSizePercent});
   callback.OnFrameRateChanged(kFramerate);
   int s, i;
-  std::vector<uint8_t> frame_data(max_frame_size);
   std::vector<std::vector<FrameType>> result(num_streams);
   for (s = 0; s < num_streams; ++s)
     callback.OnTargetBitrateChanged(average_frame_sizes[s] * kFramerate, s);
@@ -95,7 +94,7 @@
 
       EncodedImage image;
       CodecSpecificInfo codec_specific;
-      image.set_buffer(frame_data.data(), frame_data.size());
+      image.Allocate(max_frame_size);
       image.set_size(FrameSize(min_frame_size, max_frame_size, s, i));
       image.capture_time_ms_ = current_timestamp;
       image.SetTimestamp(static_cast<uint32_t>(current_timestamp * 90));
@@ -189,9 +188,9 @@
   EncodedImage image;
   CodecSpecificInfo codec_specific;
   int64_t timestamp = 1;
-  uint8_t frame_data[500];
-  image.set_buffer(frame_data, sizeof(frame_data));
-  image.set_size(sizeof(frame_data));
+  constexpr size_t kFrameSize = 500;
+  image.Allocate(kFrameSize);
+  image.set_size(kFrameSize);
   image.capture_time_ms_ = timestamp;
   image.SetTimestamp(static_cast<uint32_t>(timestamp * 90));
   codec_specific.codecType = kVideoCodecGeneric;
@@ -222,9 +221,9 @@
   const int64_t kEncodeStartDelayMs = 2;
   const int64_t kEncodeFinishDelayMs = 10;
   int64_t timestamp = 1;
-  uint8_t frame_data[500];
-  image.set_buffer(frame_data, sizeof(frame_data));
-  image.set_size(sizeof(frame_data));
+  constexpr size_t kFrameSize = 500;
+  image.Allocate(kFrameSize);
+  image.set_size(kFrameSize);
   image.capture_time_ms_ = timestamp;
   image.SetTimestamp(static_cast<uint32_t>(timestamp * 90));
   codec_specific.codecType = kVideoCodecGeneric;
diff --git a/modules/video_coding/utility/ivf_file_writer_unittest.cc b/modules/video_coding/utility/ivf_file_writer_unittest.cc
index 80a83d5..365fc4a 100644
--- a/modules/video_coding/utility/ivf_file_writer_unittest.cc
+++ b/modules/video_coding/utility/ivf_file_writer_unittest.cc
@@ -41,7 +41,8 @@
                             int num_frames,
                             bool use_capture_tims_ms) {
     EncodedImage frame;
-    frame.set_buffer(dummy_payload, sizeof(dummy_payload));
+    frame.Allocate(sizeof(dummy_payload));
+    memcpy(frame.data(), dummy_payload, sizeof(dummy_payload));
     frame._encodedWidth = width;
     frame._encodedHeight = height;
     for (int i = 1; i <= num_frames; ++i) {
