diff --git a/api/rtp_packet_info.cc b/api/rtp_packet_info.cc
index 312dc33..cba274e 100644
--- a/api/rtp_packet_info.cc
+++ b/api/rtp_packet_info.cc
@@ -27,20 +27,6 @@
       rtp_timestamp_(rtp_timestamp),
       receive_time_(receive_time) {}
 
-RtpPacketInfo::RtpPacketInfo(
-    uint32_t ssrc,
-    std::vector<uint32_t> csrcs,
-    uint32_t rtp_timestamp,
-    absl::optional<uint8_t> audio_level,
-    absl::optional<AbsoluteCaptureTime> absolute_capture_time,
-    Timestamp receive_time)
-    : ssrc_(ssrc),
-      csrcs_(std::move(csrcs)),
-      rtp_timestamp_(rtp_timestamp),
-      receive_time_(receive_time),
-      audio_level_(audio_level),
-      absolute_capture_time_(absolute_capture_time) {}
-
 RtpPacketInfo::RtpPacketInfo(const RTPHeader& rtp_header,
                              Timestamp receive_time)
     : ssrc_(rtp_header.ssrc),
@@ -58,23 +44,6 @@
   absolute_capture_time_ = extension.absolute_capture_time;
 }
 
-RtpPacketInfo::RtpPacketInfo(
-    uint32_t ssrc,
-    std::vector<uint32_t> csrcs,
-    uint32_t rtp_timestamp,
-    absl::optional<uint8_t> audio_level,
-    absl::optional<AbsoluteCaptureTime> absolute_capture_time,
-    int64_t receive_time_ms)
-    : RtpPacketInfo(ssrc,
-                    csrcs,
-                    rtp_timestamp,
-                    audio_level,
-                    absolute_capture_time,
-                    Timestamp::Millis(receive_time_ms)) {}
-RtpPacketInfo::RtpPacketInfo(const RTPHeader& rtp_header,
-                             int64_t receive_time_ms)
-    : RtpPacketInfo(rtp_header, Timestamp::Millis(receive_time_ms)) {}
-
 bool operator==(const RtpPacketInfo& lhs, const RtpPacketInfo& rhs) {
   return (lhs.ssrc() == rhs.ssrc()) && (lhs.csrcs() == rhs.csrcs()) &&
          (lhs.rtp_timestamp() == rhs.rtp_timestamp()) &&
diff --git a/api/rtp_packet_info.h b/api/rtp_packet_info.h
index bc8784c..8df12a3 100644
--- a/api/rtp_packet_info.h
+++ b/api/rtp_packet_info.h
@@ -37,27 +37,8 @@
                 uint32_t rtp_timestamp,
                 Timestamp receive_time);
 
-  // TODO(bugs.webrtc.org/12722): Deprecated, remove once downstream projects
-  // are updated.
-  RtpPacketInfo(uint32_t ssrc,
-                std::vector<uint32_t> csrcs,
-                uint32_t rtp_timestamp,
-                absl::optional<uint8_t> audio_level,
-                absl::optional<AbsoluteCaptureTime> absolute_capture_time,
-                Timestamp receive_time);
-
   RtpPacketInfo(const RTPHeader& rtp_header, Timestamp receive_time);
 
-  // TODO(bugs.webrtc.org/12722): Deprecated, remove once downstream projects
-  // are updated.
-  RtpPacketInfo(uint32_t ssrc,
-                std::vector<uint32_t> csrcs,
-                uint32_t rtp_timestamp,
-                absl::optional<uint8_t> audio_level,
-                absl::optional<AbsoluteCaptureTime> absolute_capture_time,
-                int64_t receive_time_ms);
-  RtpPacketInfo(const RTPHeader& rtp_header, int64_t receive_time_ms);
-
   RtpPacketInfo(const RtpPacketInfo& other) = default;
   RtpPacketInfo(RtpPacketInfo&& other) = default;
   RtpPacketInfo& operator=(const RtpPacketInfo& other) = default;
@@ -74,9 +55,6 @@
 
   Timestamp receive_time() const { return receive_time_; }
   void set_receive_time(Timestamp value) { receive_time_ = value; }
-  // TODO(bugs.webrtc.org/12722): Deprecated, remove once downstream projects
-  // are updated.
-  int64_t receive_time_ms() const { return receive_time_.ms(); }
 
   absl::optional<uint8_t> audio_level() const { return audio_level_; }
   RtpPacketInfo& set_audio_level(absl::optional<uint8_t> value) {
