diff --git a/webrtc/modules/video_coding/include/video_coding.h b/webrtc/modules/video_coding/include/video_coding.h
index 7b52a6d..5e02eab 100644
--- a/webrtc/modules/video_coding/include/video_coding.h
+++ b/webrtc/modules/video_coding/include/video_coding.h
@@ -394,12 +394,6 @@
   //                     < 0,               on error.
   virtual int32_t Delay() const = 0;
 
-  // Returns the number of packets discarded by the jitter buffer due to being
-  // too late. This can include duplicated packets which arrived after the
-  // frame was sent to the decoder. Therefore packets which were prematurely
-  // NACKed will be counted.
-  virtual uint32_t DiscardedPackets() const = 0;
-
   // Robustness APIs
 
   // Set the receiver robustness mode. The mode decides how the receiver
diff --git a/webrtc/modules/video_coding/receiver.cc b/webrtc/modules/video_coding/receiver.cc
index beb24ca..826647c 100644
--- a/webrtc/modules/video_coding/receiver.cc
+++ b/webrtc/modules/video_coding/receiver.cc
@@ -239,10 +239,6 @@
   jitter_buffer_.IncomingRateStatistics(framerate, bitrate);
 }
 
-uint32_t VCMReceiver::DiscardedPackets() const {
-  return jitter_buffer_.num_discarded_packets();
-}
-
 void VCMReceiver::SetNackMode(VCMNackMode nackMode,
                               int64_t low_rtt_nack_threshold_ms,
                               int64_t high_rtt_nack_threshold_ms) {
diff --git a/webrtc/modules/video_coding/receiver.h b/webrtc/modules/video_coding/receiver.h
index 3d9e445..a8d3ef3 100644
--- a/webrtc/modules/video_coding/receiver.h
+++ b/webrtc/modules/video_coding/receiver.h
@@ -68,7 +68,6 @@
                                     bool prefer_late_decoding);
   void ReleaseFrame(VCMEncodedFrame* frame);
   void ReceiveStatistics(uint32_t* bitrate, uint32_t* framerate);
-  uint32_t DiscardedPackets() const;
 
   // NACK.
   void SetNackMode(VCMNackMode nackMode,
diff --git a/webrtc/modules/video_coding/video_coding_impl.cc b/webrtc/modules/video_coding/video_coding_impl.cc
index 1f24662..57eaf50 100644
--- a/webrtc/modules/video_coding/video_coding_impl.cc
+++ b/webrtc/modules/video_coding/video_coding_impl.cc
@@ -231,10 +231,6 @@
 
   int32_t Delay() const override { return receiver_.Delay(); }
 
-  uint32_t DiscardedPackets() const override {
-    return receiver_.DiscardedPackets();
-  }
-
   int SetReceiverRobustnessMode(ReceiverRobustness robustnessMode,
                                 VCMDecodeErrorMode errorMode) override {
     return receiver_.SetReceiverRobustnessMode(robustnessMode, errorMode);
diff --git a/webrtc/modules/video_coding/video_coding_impl.h b/webrtc/modules/video_coding/video_coding_impl.h
index 214dc7e..f1dbd13 100644
--- a/webrtc/modules/video_coding/video_coding_impl.h
+++ b/webrtc/modules/video_coding/video_coding_impl.h
@@ -179,7 +179,6 @@
   int32_t SetMinimumPlayoutDelay(uint32_t minPlayoutDelayMs);
   int32_t SetRenderDelay(uint32_t timeMS);
   int32_t Delay() const;
-  uint32_t DiscardedPackets() const;
 
   int SetReceiverRobustnessMode(ReceiverRobustness robustnessMode,
                                 VCMDecodeErrorMode errorMode);
diff --git a/webrtc/modules/video_coding/video_receiver.cc b/webrtc/modules/video_coding/video_receiver.cc
index 3807519..d1992fb 100644
--- a/webrtc/modules/video_coding/video_receiver.cc
+++ b/webrtc/modules/video_coding/video_receiver.cc
@@ -411,10 +411,6 @@
   return _timing->TargetVideoDelay();
 }
 
-uint32_t VideoReceiver::DiscardedPackets() const {
-  return _receiver.DiscardedPackets();
-}
-
 int VideoReceiver::SetReceiverRobustnessMode(
     ReceiverRobustness robustnessMode,
     VCMDecodeErrorMode decode_error_mode) {
