diff --git a/api/video/encoded_image.cc b/api/video/encoded_image.cc
index 72f88d2..13d57ef 100644
--- a/api/video/encoded_image.cc
+++ b/api/video/encoded_image.cc
@@ -81,15 +81,6 @@
   }
 }
 
-void EncodedImage::Allocate(size_t capacity) {
-  if (encoded_data_ && encoded_data_->HasOneRef()) {
-    encoded_data_->Realloc(capacity);
-  } else {
-    encoded_data_ = EncodedImageBuffer::Create(capacity);
-  }
-  buffer_ = nullptr;
-}
-
 void EncodedImage::SetEncodeTime(int64_t encode_start_ms,
                                  int64_t encode_finish_ms) {
   timing_.encode_start_ms = encode_start_ms;
diff --git a/api/video/encoded_image.h b/api/video/encoded_image.h
index 32308c9..ffb1adf 100644
--- a/api/video/encoded_image.h
+++ b/api/video/encoded_image.h
@@ -44,13 +44,6 @@
   // this non-const data method.
   virtual uint8_t* data() = 0;
   virtual size_t size() const = 0;
-  // TODO(bugs.webrtc.org/9378): Delete from this interface, together with
-  // EncodedImage::Allocate. Implemented properly only by the below concrete
-  // class
-  virtual void Realloc(size_t size) { RTC_NOTREACHED(); }
-  // Will be implemented by RefCountedObject, which also implements
-  // |rtc::RefCountInterface|.
-  virtual bool HasOneRef() const = 0;
 };
 
 // Basic implementation of EncodedImageBufferInterface.
@@ -64,7 +57,7 @@
   const uint8_t* data() const override;
   uint8_t* data() override;
   size_t size() const override;
-  void Realloc(size_t t) override;
+  void Realloc(size_t t);
 
  protected:
   explicit EncodedImageBuffer(size_t size);
@@ -146,11 +139,6 @@
     capacity_ = capacity;
   }
 
-  // TODO(bugs.webrtc.org/9378): Delete; this method implies realloc, which
-  // should not be generally supported by the EncodedImageBufferInterface.
-  RTC_DEPRECATED
-  void Allocate(size_t capacity);
-
   void SetEncodedData(
       rtc::scoped_refptr<EncodedImageBufferInterface> encoded_data) {
     encoded_data_ = encoded_data;
diff --git a/video/frame_encode_metadata_writer.cc b/video/frame_encode_metadata_writer.cc
index a0a16c2..8b2c2e6 100644
--- a/video/frame_encode_metadata_writer.cc
+++ b/video/frame_encode_metadata_writer.cc
@@ -35,8 +35,6 @@
   uint8_t* data() override { return buffer_.data(); }
   size_t size() const override { return buffer_.size(); }
 
-  void Realloc(size_t t) override { RTC_NOTREACHED(); }
-
  private:
   rtc::Buffer buffer_;
 };
