Merge RtpPacket HasExtension and IsExtensionReserved functions

RtpPacket doesn't keep difference between reserved and set extension.

Bug: None
Change-Id: I1c79f4ebd7ba20ae5da0194c3faa418050db7d8e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166340
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30316}
diff --git a/modules/pacing/packet_router.cc b/modules/pacing/packet_router.cc
index 32df525..fa64331 100644
--- a/modules/pacing/packet_router.cc
+++ b/modules/pacing/packet_router.cc
@@ -139,7 +139,7 @@
   rtc::CritScope cs(&modules_crit_);
   // With the new pacer code path, transport sequence numbers are only set here,
   // on the pacer thread. Therefore we don't need atomics/synchronization.
-  if (packet->IsExtensionReserved<TransportSequenceNumber>()) {
+  if (packet->HasExtension<TransportSequenceNumber>()) {
     packet->SetExtension<TransportSequenceNumber>((++transport_seq_) & 0xFFFF);
   }
 
diff --git a/modules/rtp_rtcp/source/rtp_packet.cc b/modules/rtp_rtcp/source/rtp_packet.cc
index 8ca232b..5643828 100644
--- a/modules/rtp_rtcp/source/rtp_packet.cc
+++ b/modules/rtp_rtcp/source/rtp_packet.cc
@@ -618,11 +618,6 @@
 }
 
 bool RtpPacket::HasExtension(ExtensionType type) const {
-  // TODO(webrtc:7990): Add support for empty extensions (length==0).
-  return !FindExtension(type).empty();
-}
-
-bool RtpPacket::IsExtensionReserved(ExtensionType type) const {
   uint8_t id = extensions_.GetId(type);
   if (id == ExtensionManager::kInvalidId) {
     // Extension not registered.
diff --git a/modules/rtp_rtcp/source/rtp_packet.h b/modules/rtp_rtcp/source/rtp_packet.h
index 862399f..809af0c 100644
--- a/modules/rtp_rtcp/source/rtp_packet.h
+++ b/modules/rtp_rtcp/source/rtp_packet.h
@@ -112,10 +112,6 @@
   bool HasExtension() const;
   bool HasExtension(ExtensionType type) const;
 
-  template <typename Extension>
-  bool IsExtensionReserved() const;
-  bool IsExtensionReserved(ExtensionType type) const;
-
   template <typename Extension, typename FirstValue, typename... Values>
   bool GetExtension(FirstValue, Values...) const;
 
@@ -207,11 +203,6 @@
   return HasExtension(Extension::kId);
 }
 
-template <typename Extension>
-bool RtpPacket::IsExtensionReserved() const {
-  return IsExtensionReserved(Extension::kId);
-}
-
 template <typename Extension, typename FirstValue, typename... Values>
 bool RtpPacket::GetExtension(FirstValue first, Values... values) const {
   auto raw = FindExtension(Extension::kId);
diff --git a/modules/rtp_rtcp/source/rtp_packet_unittest.cc b/modules/rtp_rtcp/source/rtp_packet_unittest.cc
index 3f9fcd1..1bb4358 100644
--- a/modules/rtp_rtcp/source/rtp_packet_unittest.cc
+++ b/modules/rtp_rtcp/source/rtp_packet_unittest.cc
@@ -996,7 +996,7 @@
             kFeedbackRequest->sequence_count);
 }
 
-TEST(RtpPacketTest, IsExtensionReserved) {
+TEST(RtpPacketTest, ReservedExtensionsCountedAsSetExtension) {
   // Register two extensions.
   RtpPacketToSend::ExtensionManager extensions;
   extensions.Register<TransmissionOffset>(kTransmissionOffsetExtensionId);
@@ -1011,9 +1011,9 @@
 
   // Only the extension that is both registered and reserved matches
   // IsExtensionReserved().
-  EXPECT_FALSE(packet.IsExtensionReserved<VideoContentTypeExtension>());
-  EXPECT_FALSE(packet.IsExtensionReserved<AudioLevel>());
-  EXPECT_TRUE(packet.IsExtensionReserved<TransmissionOffset>());
+  EXPECT_FALSE(packet.HasExtension<VideoContentTypeExtension>());
+  EXPECT_FALSE(packet.HasExtension<AudioLevel>());
+  EXPECT_TRUE(packet.HasExtension<TransmissionOffset>());
 }
 
 // Tests that RtpPacket::RemoveExtension can successfully remove extensions.
diff --git a/modules/rtp_rtcp/source/rtp_sender_egress.cc b/modules/rtp_rtcp/source/rtp_sender_egress.cc
index b602eb6..2244927 100644
--- a/modules/rtp_rtcp/source/rtp_sender_egress.cc
+++ b/modules/rtp_rtcp/source/rtp_sender_egress.cc
@@ -124,10 +124,10 @@
   // data after rtp header may be corrupted if these packets are protected by
   // the FEC.
   int64_t diff_ms = now_ms - packet->capture_time_ms();
-  if (packet->IsExtensionReserved<TransmissionOffset>()) {
+  if (packet->HasExtension<TransmissionOffset>()) {
     packet->SetExtension<TransmissionOffset>(kTimestampTicksPerMs * diff_ms);
   }
-  if (packet->IsExtensionReserved<AbsoluteSendTime>()) {
+  if (packet->HasExtension<AbsoluteSendTime>()) {
     packet->SetExtension<AbsoluteSendTime>(
         AbsoluteSendTime::MsTo24Bits(now_ms));
   }
diff --git a/modules/rtp_rtcp/source/rtp_sender_unittest.cc b/modules/rtp_rtcp/source/rtp_sender_unittest.cc
index 25b7c56..5ca4e70 100644
--- a/modules/rtp_rtcp/source/rtp_sender_unittest.cc
+++ b/modules/rtp_rtcp/source/rtp_sender_unittest.cc
@@ -2239,9 +2239,9 @@
   EXPECT_EQ(padding_packet->Ssrc(), kRtxSsrc);
   EXPECT_EQ(padding_packet->payload_size(),
             kPayloadPacketSize + kRtxHeaderSize);
-  EXPECT_TRUE(padding_packet->IsExtensionReserved<TransportSequenceNumber>());
-  EXPECT_TRUE(padding_packet->IsExtensionReserved<AbsoluteSendTime>());
-  EXPECT_TRUE(padding_packet->IsExtensionReserved<TransmissionOffset>());
+  EXPECT_TRUE(padding_packet->HasExtension<TransportSequenceNumber>());
+  EXPECT_TRUE(padding_packet->HasExtension<AbsoluteSendTime>());
+  EXPECT_TRUE(padding_packet->HasExtension<TransmissionOffset>());
 
   // Verify all header extensions are received.
   rtp_egress()->SendPacket(padding_packet.get(), PacedPacketInfo());
@@ -2265,9 +2265,9 @@
     EXPECT_GT(packet->padding_size(), 0u);
     padding_bytes_generated += packet->padding_size();
 
-    EXPECT_TRUE(packet->IsExtensionReserved<TransportSequenceNumber>());
-    EXPECT_TRUE(packet->IsExtensionReserved<AbsoluteSendTime>());
-    EXPECT_TRUE(packet->IsExtensionReserved<TransmissionOffset>());
+    EXPECT_TRUE(packet->HasExtension<TransportSequenceNumber>());
+    EXPECT_TRUE(packet->HasExtension<AbsoluteSendTime>());
+    EXPECT_TRUE(packet->HasExtension<TransmissionOffset>());
 
     // Verify all header extensions are received.
     rtp_egress()->SendPacket(packet.get(), PacedPacketInfo());
@@ -2323,9 +2323,9 @@
     EXPECT_EQ(packet->payload_size(), 0u);
     EXPECT_GT(packet->padding_size(), 0u);
     padding_bytes_generated += packet->padding_size();
-    EXPECT_TRUE(packet->IsExtensionReserved<TransportSequenceNumber>());
-    EXPECT_TRUE(packet->IsExtensionReserved<AbsoluteSendTime>());
-    EXPECT_TRUE(packet->IsExtensionReserved<TransmissionOffset>());
+    EXPECT_TRUE(packet->HasExtension<TransportSequenceNumber>());
+    EXPECT_TRUE(packet->HasExtension<AbsoluteSendTime>());
+    EXPECT_TRUE(packet->HasExtension<TransmissionOffset>());
 
     // Verify all header extensions are received.
     rtp_egress()->SendPacket(packet.get(), PacedPacketInfo());