diff --git a/modules/rtp_rtcp/source/rtp_header_extensions.cc b/modules/rtp_rtcp/source/rtp_header_extensions.cc
index 75e3e3c..4745b10 100644
--- a/modules/rtp_rtcp/source/rtp_header_extensions.cc
+++ b/modules/rtp_rtcp/source/rtp_header_extensions.cc
@@ -13,15 +13,23 @@
 #include <string.h>
 
 #include <cmath>
+#include <cstddef>
 #include <cstdint>
 #include <limits>
+#include <string>
+#include <vector>
 
 #include "absl/strings/string_view.h"
+#include "absl/types/optional.h"
+#include "api/array_view.h"
+#include "api/rtp_headers.h"
+#include "api/video/color_space.h"
+#include "api/video/hdr_metadata.h"
+#include "api/video/video_content_type.h"
+#include "api/video/video_rotation.h"
+#include "api/video/video_timing.h"
 #include "modules/rtp_rtcp/include/rtp_cvo.h"
 #include "modules/rtp_rtcp/source/byte_io.h"
-// TODO(bug:9855) Move kNoSpatialIdx from vp9_globals.h to common_constants
-#include "modules/video_coding/codecs/interface/common_constants.h"
-#include "modules/video_coding/codecs/vp9/include/vp9_globals.h"
 #include "rtc_base/checks.h"
 
 namespace webrtc {
@@ -40,9 +48,6 @@
 //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 //   |  ID   | len=2 |              absolute send time               |
 //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-constexpr RTPExtensionType AbsoluteSendTime::kId;
-constexpr uint8_t AbsoluteSendTime::kValueSizeBytes;
-
 bool AbsoluteSendTime::Parse(rtc::ArrayView<const uint8_t> data,
                              uint32_t* time_24bits) {
   if (data.size() != 3)
@@ -94,11 +99,6 @@
 //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 //   |  ... (56-63)  |
 //   +-+-+-+-+-+-+-+-+
-constexpr RTPExtensionType AbsoluteCaptureTimeExtension::kId;
-constexpr uint8_t AbsoluteCaptureTimeExtension::kValueSizeBytes;
-constexpr uint8_t AbsoluteCaptureTimeExtension::
-    kValueSizeBytesWithoutEstimatedCaptureClockOffset;
-
 bool AbsoluteCaptureTimeExtension::Parse(rtc::ArrayView<const uint8_t> data,
                                          AbsoluteCaptureTime* extension) {
   if (data.size() != kValueSizeBytes &&
@@ -160,10 +160,6 @@
 // |      ID       |     len=1     |V|    level    |
 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 // Sample Audio Level Encoding Using the Two-Byte Header Format
-
-constexpr RTPExtensionType AudioLevel::kId;
-constexpr uint8_t AudioLevel::kValueSizeBytes;
-
 bool AudioLevel::Parse(rtc::ArrayView<const uint8_t> data,
                        bool* voice_activity,
                        uint8_t* audio_level) {
@@ -206,9 +202,6 @@
 // |0|   level 3   |    0 (pad)    |               ...             |
 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 // Sample Audio Level Encoding Using the Two-Byte Header Format
-constexpr RTPExtensionType CsrcAudioLevel::kId;
-constexpr uint8_t CsrcAudioLevel::kMaxValueSizeBytes;
-
 bool CsrcAudioLevel::Parse(rtc::ArrayView<const uint8_t> data,
                            std::vector<uint8_t>* csrc_audio_levels) {
   if (data.size() > kRtpCsrcSize) {
@@ -254,9 +247,6 @@
 //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 //   |  ID   | len=2 |              transmission offset              |
 //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-constexpr RTPExtensionType TransmissionOffset::kId;
-constexpr uint8_t TransmissionOffset::kValueSizeBytes;
-
 bool TransmissionOffset::Parse(rtc::ArrayView<const uint8_t> data,
                                int32_t* rtp_time) {
   if (data.size() != 3)
@@ -279,9 +269,6 @@
 //  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 //  |  ID   | L=1   |transport-wide sequence number |
 //  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-constexpr RTPExtensionType TransportSequenceNumber::kId;
-constexpr uint8_t TransportSequenceNumber::kValueSizeBytes;
-
 bool TransportSequenceNumber::Parse(rtc::ArrayView<const uint8_t> data,
                                     uint16_t* transport_sequence_number) {
   if (data.size() != kValueSizeBytes)
@@ -314,12 +301,6 @@
 // or not and `seq_count` determines how many packets the feedback packet should
 // cover including the current packet. If `seq_count` is zero no feedback is
 // requested.
-constexpr RTPExtensionType TransportSequenceNumberV2::kId;
-constexpr uint8_t TransportSequenceNumberV2::kValueSizeBytes;
-constexpr uint8_t
-    TransportSequenceNumberV2::kValueSizeBytesWithoutFeedbackRequest;
-constexpr uint16_t TransportSequenceNumberV2::kIncludeTimestampsBit;
-
 bool TransportSequenceNumberV2::Parse(
     rtc::ArrayView<const uint8_t> data,
     uint16_t* transport_sequence_number,
@@ -377,9 +358,6 @@
 //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 //   |  ID   | len=0 |0 0 0 0 C F R R|
 //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-constexpr RTPExtensionType VideoOrientation::kId;
-constexpr uint8_t VideoOrientation::kValueSizeBytes;
-
 bool VideoOrientation::Parse(rtc::ArrayView<const uint8_t> data,
                              VideoRotation* rotation) {
   if (data.size() != 1)
@@ -414,9 +392,6 @@
 //  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 //  |  ID   | len=2 |   MIN delay           |   MAX delay           |
 //  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-constexpr RTPExtensionType PlayoutDelayLimits::kId;
-constexpr uint8_t PlayoutDelayLimits::kValueSizeBytes;
-
 bool PlayoutDelayLimits::Parse(rtc::ArrayView<const uint8_t> data,
                                VideoPlayoutDelay* playout_delay) {
   RTC_DCHECK(playout_delay);
@@ -455,9 +430,6 @@
 //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 //   |  ID   | len=0 | Content type  |
 //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-constexpr RTPExtensionType VideoContentTypeExtension::kId;
-constexpr uint8_t VideoContentTypeExtension::kValueSizeBytes;
-
 bool VideoContentTypeExtension::Parse(rtc::ArrayView<const uint8_t> data,
                                       VideoContentType* content_type) {
   if (data.size() == 1 &&
@@ -500,17 +472,6 @@
 //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 //   |  network2 timestamp ms delta  |
 //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-constexpr RTPExtensionType VideoTimingExtension::kId;
-constexpr uint8_t VideoTimingExtension::kValueSizeBytes;
-constexpr uint8_t VideoTimingExtension::kFlagsOffset;
-constexpr uint8_t VideoTimingExtension::kEncodeStartDeltaOffset;
-constexpr uint8_t VideoTimingExtension::kEncodeFinishDeltaOffset;
-constexpr uint8_t VideoTimingExtension::kPacketizationFinishDeltaOffset;
-constexpr uint8_t VideoTimingExtension::kPacerExitDeltaOffset;
-constexpr uint8_t VideoTimingExtension::kNetworkTimestampDeltaOffset;
-constexpr uint8_t VideoTimingExtension::kNetwork2TimestampDeltaOffset;
-
 bool VideoTimingExtension::Parse(rtc::ArrayView<const uint8_t> data,
                                  VideoSendTiming* timing) {
   RTC_DCHECK(timing);
@@ -609,10 +570,6 @@
 //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 //   |range+chr.sit. |
 //   +-+-+-+-+-+-+-+-+
-
-constexpr RTPExtensionType ColorSpaceExtension::kId;
-constexpr uint8_t ColorSpaceExtension::kValueSizeBytes;
-
 bool ColorSpaceExtension::Parse(rtc::ArrayView<const uint8_t> data,
                                 ColorSpace* color_space) {
   RTC_DCHECK(color_space);
@@ -815,11 +772,6 @@
   return true;
 }
 
-// Constant declarations for RTP header extension types.
-constexpr RTPExtensionType RtpStreamId::kId;
-constexpr RTPExtensionType RepairedRtpStreamId::kId;
-constexpr RTPExtensionType RtpMid::kId;
-
 // An RTP Header Extension for Inband Comfort Noise
 //
 // The form of the audio level extension block:
@@ -837,11 +789,6 @@
 // |      ID       |     len=1     |N|    level    |
 // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 // Sample Audio Level Encoding Using the Two-Byte Header Format
-
-constexpr RTPExtensionType InbandComfortNoiseExtension::kId;
-constexpr uint8_t InbandComfortNoiseExtension::kValueSizeBytes;
-constexpr const char InbandComfortNoiseExtension::kUri[];
-
 bool InbandComfortNoiseExtension::Parse(rtc::ArrayView<const uint8_t> data,
                                         absl::optional<uint8_t>* level) {
   if (data.size() != kValueSizeBytes)
@@ -872,10 +819,6 @@
 //  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 //  |  ID   | L=1   |    video-frame-tracking-id    |
 //  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
-constexpr RTPExtensionType VideoFrameTrackingIdExtension::kId;
-constexpr uint8_t VideoFrameTrackingIdExtension::kValueSizeBytes;
-
 bool VideoFrameTrackingIdExtension::Parse(rtc::ArrayView<const uint8_t> data,
                                           uint16_t* video_frame_tracking_id) {
   if (data.size() != kValueSizeBytes) {
