Deprecate legacy RtpHeaderExtensionMap::Register function

Bug: None
Change-Id: Ia27ecf4d316563c5f7693162aedff535855c403b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/152667
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29170}
diff --git a/modules/pacing/packet_router_unittest.cc b/modules/pacing/packet_router_unittest.cc
index 08d76b2..ec82a66 100644
--- a/modules/pacing/packet_router_unittest.cc
+++ b/modules/pacing/packet_router_unittest.cc
@@ -52,9 +52,7 @@
 class PacketRouterTest : public ::testing::Test {
  public:
   PacketRouterTest() {
-    const int kTransportSequenceNumberExtensionId = 1;
-    extension_manager.Register(kRtpExtensionTransportSequenceNumber,
-                               kTransportSequenceNumberExtensionId);
+    extension_manager.Register<TransportSequenceNumber>(/*id=*/1);
   }
 
  protected:
diff --git a/modules/rtp_rtcp/include/rtp_header_extension_map.h b/modules/rtp_rtcp/include/rtp_header_extension_map.h
index 5bca4a8..e945ce8 100644
--- a/modules/rtp_rtcp/include/rtp_header_extension_map.h
+++ b/modules/rtp_rtcp/include/rtp_header_extension_map.h
@@ -19,6 +19,7 @@
 #include "api/rtp_parameters.h"
 #include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
 #include "rtc_base/checks.h"
+#include "rtc_base/deprecation.h"
 
 namespace webrtc {
 
@@ -51,7 +52,7 @@
   }
 
   // TODO(danilchap): Remove use of the functions below.
-  int32_t Register(RTPExtensionType type, int id) {
+  RTC_DEPRECATED int32_t Register(RTPExtensionType type, int id) {
     return RegisterByType(id, type) ? 0 : -1;
   }
   int32_t Deregister(RTPExtensionType type);
diff --git a/modules/rtp_rtcp/source/rtp_packet_unittest.cc b/modules/rtp_rtcp/source/rtp_packet_unittest.cc
index 150dba7..3f9fcd1 100644
--- a/modules/rtp_rtcp/source/rtp_packet_unittest.cc
+++ b/modules/rtp_rtcp/source/rtp_packet_unittest.cc
@@ -214,8 +214,7 @@
 
 TEST(RtpPacketTest, CreateWithExtension) {
   RtpPacketToSend::ExtensionManager extensions;
-  extensions.Register(kRtpExtensionTransmissionTimeOffset,
-                      kTransmissionOffsetExtensionId);
+  extensions.Register<TransmissionOffset>(kTransmissionOffsetExtensionId);
   RtpPacketToSend packet(&extensions);
   packet.SetPayloadType(kPayloadType);
   packet.SetSequenceNumber(kSeqNum);
@@ -227,9 +226,8 @@
 
 TEST(RtpPacketTest, CreateWith2Extensions) {
   RtpPacketToSend::ExtensionManager extensions;
-  extensions.Register(kRtpExtensionTransmissionTimeOffset,
-                      kTransmissionOffsetExtensionId);
-  extensions.Register(kRtpExtensionAudioLevel, kAudioLevelExtensionId);
+  extensions.Register<TransmissionOffset>(kTransmissionOffsetExtensionId);
+  extensions.Register<AudioLevel>(kAudioLevelExtensionId);
   RtpPacketToSend packet(&extensions);
   packet.SetPayloadType(kPayloadType);
   packet.SetSequenceNumber(kSeqNum);
@@ -243,10 +241,9 @@
 
 TEST(RtpPacketTest, CreateWithTwoByteHeaderExtensionFirst) {
   RtpPacketToSend::ExtensionManager extensions(true);
-  extensions.Register(kRtpExtensionTransmissionTimeOffset,
-                      kTransmissionOffsetExtensionId);
-  extensions.Register(kRtpExtensionAudioLevel, kAudioLevelExtensionId);
-  extensions.Register(kRtpExtensionPlayoutDelay, kTwoByteExtensionId);
+  extensions.Register<TransmissionOffset>(kTransmissionOffsetExtensionId);
+  extensions.Register<AudioLevel>(kAudioLevelExtensionId);
+  extensions.Register<PlayoutDelayLimits>(kTwoByteExtensionId);
   RtpPacketToSend packet(&extensions);
   packet.SetPayloadType(kPayloadType);
   packet.SetSequenceNumber(kSeqNum);
@@ -264,10 +261,9 @@
 TEST(RtpPacketTest, CreateWithTwoByteHeaderExtensionLast) {
   // This test will trigger RtpPacket::PromoteToTwoByteHeaderExtension().
   RtpPacketToSend::ExtensionManager extensions(true);
-  extensions.Register(kRtpExtensionTransmissionTimeOffset,
-                      kTransmissionOffsetExtensionId);
-  extensions.Register(kRtpExtensionAudioLevel, kAudioLevelExtensionId);
-  extensions.Register(kRtpExtensionPlayoutDelay, kTwoByteExtensionId);
+  extensions.Register<TransmissionOffset>(kTransmissionOffsetExtensionId);
+  extensions.Register<AudioLevel>(kAudioLevelExtensionId);
+  extensions.Register<PlayoutDelayLimits>(kTwoByteExtensionId);
   RtpPacketToSend packet(&extensions);
   packet.SetPayloadType(kPayloadType);
   packet.SetSequenceNumber(kSeqNum);
@@ -330,7 +326,7 @@
 
 TEST(RtpPacketTest, TryToCreateTwoByteHeaderNotSupported) {
   RtpPacketToSend::ExtensionManager extensions;
-  extensions.Register(kRtpExtensionAudioLevel, kTwoByteExtensionId);
+  extensions.Register<AudioLevel>(kTwoByteExtensionId);
   RtpPacketToSend packet(&extensions);
   // Set extension that requires two-byte header.
   EXPECT_FALSE(packet.SetExtension<AudioLevel>(kVoiceActive, kAudioLevel));
@@ -362,9 +358,8 @@
 TEST(RtpPacketTest, SetReservedExtensionsAfterPayload) {
   const size_t kPayloadSize = 4;
   RtpPacketToSend::ExtensionManager extensions;
-  extensions.Register(kRtpExtensionTransmissionTimeOffset,
-                      kTransmissionOffsetExtensionId);
-  extensions.Register(kRtpExtensionAudioLevel, kAudioLevelExtensionId);
+  extensions.Register<TransmissionOffset>(kTransmissionOffsetExtensionId);
+  extensions.Register<AudioLevel>(kAudioLevelExtensionId);
   RtpPacketToSend packet(&extensions);
 
   EXPECT_TRUE(packet.ReserveExtension<TransmissionOffset>());
@@ -466,8 +461,7 @@
 
 TEST(RtpPacketTest, ParseWithExtension) {
   RtpPacketToSend::ExtensionManager extensions;
-  extensions.Register(kRtpExtensionTransmissionTimeOffset,
-                      kTransmissionOffsetExtensionId);
+  extensions.Register<TransmissionOffset>(kTransmissionOffsetExtensionId);
 
   RtpPacketReceived packet(&extensions);
   EXPECT_TRUE(packet.Parse(kPacketWithTO, sizeof(kPacketWithTO)));
@@ -533,8 +527,7 @@
 
 TEST(RtpPacketTest, ParseWithInvalidSizedExtension) {
   RtpPacketToSend::ExtensionManager extensions;
-  extensions.Register(kRtpExtensionTransmissionTimeOffset,
-                      kTransmissionOffsetExtensionId);
+  extensions.Register<TransmissionOffset>(kTransmissionOffsetExtensionId);
 
   RtpPacketReceived packet(&extensions);
   EXPECT_TRUE(packet.Parse(kPacketWithInvalidExtension,
@@ -561,7 +554,7 @@
   };
   // clang-format on
   RtpPacketToSend::ExtensionManager extensions;
-  extensions.Register(TransmissionOffset::kId, 1);
+  extensions.Register<TransmissionOffset>(1);
   RtpPacketReceived packet(&extensions);
 
   // Parse should ignore bad extension and proceed.
@@ -573,9 +566,8 @@
 
 TEST(RtpPacketTest, ParseWith2Extensions) {
   RtpPacketToSend::ExtensionManager extensions;
-  extensions.Register(kRtpExtensionTransmissionTimeOffset,
-                      kTransmissionOffsetExtensionId);
-  extensions.Register(kRtpExtensionAudioLevel, kAudioLevelExtensionId);
+  extensions.Register<TransmissionOffset>(kTransmissionOffsetExtensionId);
+  extensions.Register<AudioLevel>(kAudioLevelExtensionId);
   RtpPacketReceived packet(&extensions);
   EXPECT_TRUE(packet.Parse(kPacketWithTOAndAL, sizeof(kPacketWithTOAndAL)));
   int32_t time_offset;
@@ -590,9 +582,8 @@
 
 TEST(RtpPacketTest, ParseSecondPacketWithFewerExtensions) {
   RtpPacketToSend::ExtensionManager extensions;
-  extensions.Register(kRtpExtensionTransmissionTimeOffset,
-                      kTransmissionOffsetExtensionId);
-  extensions.Register(kRtpExtensionAudioLevel, kAudioLevelExtensionId);
+  extensions.Register<TransmissionOffset>(kTransmissionOffsetExtensionId);
+  extensions.Register<AudioLevel>(kAudioLevelExtensionId);
   RtpPacketReceived packet(&extensions);
   EXPECT_TRUE(packet.Parse(kPacketWithTOAndAL, sizeof(kPacketWithTOAndAL)));
   EXPECT_TRUE(packet.HasExtension<TransmissionOffset>());
@@ -606,9 +597,8 @@
 
 TEST(RtpPacketTest, ParseWith2ExtensionsInvalidPadding) {
   RtpPacketToSend::ExtensionManager extensions;
-  extensions.Register(kRtpExtensionTransmissionTimeOffset,
-                      kTransmissionOffsetExtensionId);
-  extensions.Register(kRtpExtensionAudioLevel, kAudioLevelExtensionId);
+  extensions.Register<TransmissionOffset>(kTransmissionOffsetExtensionId);
+  extensions.Register<AudioLevel>(kAudioLevelExtensionId);
   RtpPacketReceived packet(&extensions);
   EXPECT_TRUE(packet.Parse(kPacketWithTOAndALInvalidPadding,
                            sizeof(kPacketWithTOAndALInvalidPadding)));
@@ -622,9 +612,8 @@
 
 TEST(RtpPacketTest, ParseWith2ExtensionsReservedExtensionId) {
   RtpPacketToSend::ExtensionManager extensions;
-  extensions.Register(kRtpExtensionTransmissionTimeOffset,
-                      kTransmissionOffsetExtensionId);
-  extensions.Register(kRtpExtensionAudioLevel, kAudioLevelExtensionId);
+  extensions.Register<TransmissionOffset>(kTransmissionOffsetExtensionId);
+  extensions.Register<AudioLevel>(kAudioLevelExtensionId);
   RtpPacketReceived packet(&extensions);
   EXPECT_TRUE(packet.Parse(kPacketWithTOAndALReservedExtensionId,
                            sizeof(kPacketWithTOAndALReservedExtensionId)));
@@ -638,8 +627,7 @@
 
 TEST(RtpPacketTest, ParseWithAllFeatures) {
   RtpPacketToSend::ExtensionManager extensions;
-  extensions.Register(kRtpExtensionTransmissionTimeOffset,
-                      kTransmissionOffsetExtensionId);
+  extensions.Register<TransmissionOffset>(kTransmissionOffsetExtensionId);
   RtpPacketReceived packet(&extensions);
   EXPECT_TRUE(packet.Parse(kPacket, sizeof(kPacket)));
   EXPECT_EQ(kPayloadType, packet.PayloadType());
@@ -655,7 +643,7 @@
 
 TEST(RtpPacketTest, ParseTwoByteHeaderExtension) {
   RtpPacketToSend::ExtensionManager extensions;
-  extensions.Register(kRtpExtensionTransmissionTimeOffset, kTwoByteExtensionId);
+  extensions.Register<TransmissionOffset>(kTwoByteExtensionId);
   RtpPacketReceived packet(&extensions);
   EXPECT_TRUE(packet.Parse(kPacketWithTwoByteHeaderExtension,
                            sizeof(kPacketWithTwoByteHeaderExtension)));
@@ -666,7 +654,7 @@
 
 TEST(RtpPacketTest, ParseLongTwoByteHeaderExtension) {
   RtpPacketToSend::ExtensionManager extensions;
-  extensions.Register(kRtpExtensionMid, kTwoByteExtensionId);
+  extensions.Register<RtpMid>(kTwoByteExtensionId);
   RtpPacketReceived packet(&extensions);
   EXPECT_TRUE(packet.Parse(kPacketWithLongTwoByteHeaderExtension,
                            sizeof(kPacketWithLongTwoByteHeaderExtension)));
@@ -677,8 +665,8 @@
 
 TEST(RtpPacketTest, ParseTwoByteHeaderExtensionWithPadding) {
   RtpPacketToSend::ExtensionManager extensions;
-  extensions.Register(kRtpExtensionTransmissionTimeOffset, kTwoByteExtensionId);
-  extensions.Register(kRtpExtensionAudioLevel, kAudioLevelExtensionId);
+  extensions.Register<TransmissionOffset>(kTwoByteExtensionId);
+  extensions.Register<AudioLevel>(kAudioLevelExtensionId);
   RtpPacketReceived packet(&extensions);
   EXPECT_TRUE(
       packet.Parse(kPacketWithTwoByteHeaderExtensionWithPadding,
@@ -702,8 +690,7 @@
   EXPECT_EQ(kSsrc, packet.Ssrc());
 
   RtpPacketToSend::ExtensionManager extensions;
-  extensions.Register(kRtpExtensionTransmissionTimeOffset,
-                      kTransmissionOffsetExtensionId);
+  extensions.Register<TransmissionOffset>(kTransmissionOffsetExtensionId);
 
   int32_t time_offset;
   EXPECT_FALSE(packet.GetExtension<TransmissionOffset>(&time_offset));
@@ -767,7 +754,7 @@
 TEST(RtpPacketTest, CreateAndParseTimingFrameExtension) {
   // Create a packet with video frame timing extension populated.
   RtpPacketToSend::ExtensionManager send_extensions;
-  send_extensions.Register(kRtpExtensionVideoTiming, kVideoTimingExtensionId);
+  send_extensions.Register<VideoTimingExtension>(kVideoTimingExtensionId);
   RtpPacketToSend send_packet(&send_extensions);
   send_packet.SetPayloadType(kPayloadType);
   send_packet.SetSequenceNumber(kSeqNum);
@@ -1012,9 +999,8 @@
 TEST(RtpPacketTest, IsExtensionReserved) {
   // Register two extensions.
   RtpPacketToSend::ExtensionManager extensions;
-  extensions.Register(kRtpExtensionTransmissionTimeOffset,
-                      kTransmissionOffsetExtensionId);
-  extensions.Register(kRtpExtensionAudioLevel, kAudioLevelExtensionId);
+  extensions.Register<TransmissionOffset>(kTransmissionOffsetExtensionId);
+  extensions.Register<AudioLevel>(kAudioLevelExtensionId);
 
   RtpPacketReceived packet(&extensions);
 
@@ -1033,9 +1019,8 @@
 // Tests that RtpPacket::RemoveExtension can successfully remove extensions.
 TEST(RtpPacketTest, RemoveMultipleExtensions) {
   RtpPacketToSend::ExtensionManager extensions;
-  extensions.Register(kRtpExtensionTransmissionTimeOffset,
-                      kTransmissionOffsetExtensionId);
-  extensions.Register(kRtpExtensionAudioLevel, kAudioLevelExtensionId);
+  extensions.Register<TransmissionOffset>(kTransmissionOffsetExtensionId);
+  extensions.Register<AudioLevel>(kAudioLevelExtensionId);
   RtpPacketToSend packet(&extensions);
   packet.SetPayloadType(kPayloadType);
   packet.SetSequenceNumber(kSeqNum);
@@ -1062,9 +1047,8 @@
 // other extensions are present but not registered.
 TEST(RtpPacketTest, RemoveExtensionPreservesOtherUnregisteredExtensions) {
   RtpPacketToSend::ExtensionManager extensions;
-  extensions.Register(kRtpExtensionTransmissionTimeOffset,
-                      kTransmissionOffsetExtensionId);
-  extensions.Register(kRtpExtensionAudioLevel, kAudioLevelExtensionId);
+  extensions.Register<TransmissionOffset>(kTransmissionOffsetExtensionId);
+  extensions.Register<AudioLevel>(kAudioLevelExtensionId);
   RtpPacketToSend packet(&extensions);
   packet.SetPayloadType(kPayloadType);
   packet.SetSequenceNumber(kSeqNum);
@@ -1078,7 +1062,7 @@
 
   // "Unregister" kRtpExtensionTransmissionTimeOffset.
   RtpPacketToSend::ExtensionManager extensions1;
-  extensions1.Register(kRtpExtensionAudioLevel, kAudioLevelExtensionId);
+  extensions1.Register<AudioLevel>(kAudioLevelExtensionId);
   packet.IdentifyExtensions(extensions1);
 
   // Make sure we can not delete extension which is set but not registered.
@@ -1094,9 +1078,8 @@
 // not registered and does not modify packet.
 TEST(RtpPacketTest, RemoveExtensionFailure) {
   RtpPacketToSend::ExtensionManager extensions;
-  extensions.Register(kRtpExtensionTransmissionTimeOffset,
-                      kTransmissionOffsetExtensionId);
-  extensions.Register(kRtpExtensionAudioLevel, kAudioLevelExtensionId);
+  extensions.Register<TransmissionOffset>(kTransmissionOffsetExtensionId);
+  extensions.Register<AudioLevel>(kAudioLevelExtensionId);
   RtpPacketToSend packet(&extensions);
   packet.SetPayloadType(kPayloadType);
   packet.SetSequenceNumber(kSeqNum);
diff --git a/modules/rtp_rtcp/source/rtp_sender_audio_unittest.cc b/modules/rtp_rtcp/source/rtp_sender_audio_unittest.cc
index 1e5b38b..32938fb 100644
--- a/modules/rtp_rtcp/source/rtp_sender_audio_unittest.cc
+++ b/modules/rtp_rtcp/source/rtp_sender_audio_unittest.cc
@@ -38,8 +38,7 @@
 class LoopbackTransportTest : public webrtc::Transport {
  public:
   LoopbackTransportTest() {
-    receivers_extensions_.Register(kRtpExtensionAudioLevel,
-                                   kAudioLevelExtensionId);
+    receivers_extensions_.Register<AudioLevel>(kAudioLevelExtensionId);
   }
 
   bool SendRtp(const uint8_t* data,
diff --git a/modules/rtp_rtcp/source/rtp_sender_unittest.cc b/modules/rtp_rtcp/source/rtp_sender_unittest.cc
index 0664fa1..eb594c1e 100644
--- a/modules/rtp_rtcp/source/rtp_sender_unittest.cc
+++ b/modules/rtp_rtcp/source/rtp_sender_unittest.cc
@@ -89,26 +89,24 @@
 class LoopbackTransportTest : public webrtc::Transport {
  public:
   LoopbackTransportTest() : total_bytes_sent_(0) {
-    receivers_extensions_.Register(kRtpExtensionTransmissionTimeOffset,
-                                   kTransmissionTimeOffsetExtensionId);
-    receivers_extensions_.Register(kRtpExtensionAbsoluteSendTime,
-                                   kAbsoluteSendTimeExtensionId);
-    receivers_extensions_.Register(kRtpExtensionTransportSequenceNumber,
-                                   kTransportSequenceNumberExtensionId);
-    receivers_extensions_.Register(kRtpExtensionVideoRotation,
-                                   kVideoRotationExtensionId);
-    receivers_extensions_.Register(kRtpExtensionAudioLevel,
-                                   kAudioLevelExtensionId);
-    receivers_extensions_.Register(kRtpExtensionVideoTiming,
-                                   kVideoTimingExtensionId);
-    receivers_extensions_.Register(kRtpExtensionMid, kMidExtensionId);
-    receivers_extensions_.Register(kRtpExtensionGenericFrameDescriptor00,
-                                   kGenericDescriptorId00);
-    receivers_extensions_.Register(kRtpExtensionGenericFrameDescriptor01,
-                                   kGenericDescriptorId01);
-    receivers_extensions_.Register(kRtpExtensionRtpStreamId, kRidExtensionId);
-    receivers_extensions_.Register(kRtpExtensionRepairedRtpStreamId,
-                                   kRepairedRidExtensionId);
+    receivers_extensions_.Register<TransmissionOffset>(
+        kTransmissionTimeOffsetExtensionId);
+    receivers_extensions_.Register<AbsoluteSendTime>(
+        kAbsoluteSendTimeExtensionId);
+    receivers_extensions_.Register<TransportSequenceNumber>(
+        kTransportSequenceNumberExtensionId);
+    receivers_extensions_.Register<VideoOrientation>(kVideoRotationExtensionId);
+    receivers_extensions_.Register<AudioLevel>(kAudioLevelExtensionId);
+    receivers_extensions_.Register<VideoTimingExtension>(
+        kVideoTimingExtensionId);
+    receivers_extensions_.Register<RtpMid>(kMidExtensionId);
+    receivers_extensions_.Register<RtpGenericFrameDescriptorExtension00>(
+        kGenericDescriptorId00);
+    receivers_extensions_.Register<RtpGenericFrameDescriptorExtension01>(
+        kGenericDescriptorId01);
+    receivers_extensions_.Register<RtpStreamId>(kRidExtensionId);
+    receivers_extensions_.Register<RepairedRtpStreamId>(
+        kRepairedRidExtensionId);
   }
 
   bool SendRtp(const uint8_t* data,
diff --git a/modules/rtp_rtcp/source/rtp_sender_video_unittest.cc b/modules/rtp_rtcp/source/rtp_sender_video_unittest.cc
index d11a7ac..9e2313c 100644
--- a/modules/rtp_rtcp/source/rtp_sender_video_unittest.cc
+++ b/modules/rtp_rtcp/source/rtp_sender_video_unittest.cc
@@ -57,22 +57,21 @@
 class LoopbackTransportTest : public webrtc::Transport {
  public:
   LoopbackTransportTest() {
-    receivers_extensions_.Register(kRtpExtensionTransmissionTimeOffset,
-                                   kTransmissionTimeOffsetExtensionId);
-    receivers_extensions_.Register(kRtpExtensionAbsoluteSendTime,
-                                   kAbsoluteSendTimeExtensionId);
-    receivers_extensions_.Register(kRtpExtensionTransportSequenceNumber,
-                                   kTransportSequenceNumberExtensionId);
-    receivers_extensions_.Register(kRtpExtensionVideoRotation,
-                                   kVideoRotationExtensionId);
-    receivers_extensions_.Register(kRtpExtensionVideoTiming,
-                                   kVideoTimingExtensionId);
-    receivers_extensions_.Register(kRtpExtensionGenericFrameDescriptor00,
-                                   kGenericDescriptorId00);
-    receivers_extensions_.Register(kRtpExtensionGenericFrameDescriptor01,
-                                   kGenericDescriptorId01);
-    receivers_extensions_.Register(kRtpExtensionFrameMarking,
-                                   kFrameMarkingExtensionId);
+    receivers_extensions_.Register<TransmissionOffset>(
+        kTransmissionTimeOffsetExtensionId);
+    receivers_extensions_.Register<AbsoluteSendTime>(
+        kAbsoluteSendTimeExtensionId);
+    receivers_extensions_.Register<TransportSequenceNumber>(
+        kTransportSequenceNumberExtensionId);
+    receivers_extensions_.Register<VideoOrientation>(kVideoRotationExtensionId);
+    receivers_extensions_.Register<VideoTimingExtension>(
+        kVideoTimingExtensionId);
+    receivers_extensions_.Register<RtpGenericFrameDescriptorExtension00>(
+        kGenericDescriptorId00);
+    receivers_extensions_.Register<RtpGenericFrameDescriptorExtension01>(
+        kGenericDescriptorId01);
+    receivers_extensions_.Register<FrameMarkingExtension>(
+        kFrameMarkingExtensionId);
   }
 
   bool SendRtp(const uint8_t* data,