diff --git a/webrtc/modules/rtp_rtcp/source/rtp_packet.h b/webrtc/modules/rtp_rtcp/source/rtp_packet.h
index fb19815..5a02f6c 100644
--- a/webrtc/modules/rtp_rtcp/source/rtp_packet.h
+++ b/webrtc/modules/rtp_rtcp/source/rtp_packet.h
@@ -30,6 +30,18 @@
   static constexpr int kMinExtensionId = 1;
   static constexpr int kMaxExtensionId = 14;
 
+  // |extensions| required for SetExtension/ReserveExtension functions during
+  // packet creating and used if available in Parse function.
+  // Adding and getting extensions will fail until |extensions| is
+  // provided via constructor or IdentifyExtensions function.
+  Packet();
+  explicit Packet(const ExtensionManager* extensions);
+  Packet(const Packet&);
+  Packet(const ExtensionManager* extensions, size_t capacity);
+  ~Packet();
+
+  Packet& operator=(const Packet&) = default;
+
   // Parse and copy given buffer into Packet.
   bool Parse(const uint8_t* buffer, size_t size);
   bool Parse(rtc::ArrayView<const uint8_t> packet);
@@ -113,19 +125,6 @@
   uint8_t* AllocatePayload(size_t size_bytes);
   bool SetPadding(uint8_t size_bytes, Random* random);
 
- protected:
-  // |extensions| required for SetExtension/ReserveExtension functions during
-  // packet creating and used if available in Parse function.
-  // Adding and getting extensions will fail until |extensions| is
-  // provided via constructor or IdentifyExtensions function.
-  Packet();
-  explicit Packet(const ExtensionManager* extensions);
-  Packet(const Packet&);
-  Packet(const ExtensionManager* extensions, size_t capacity);
-  ~Packet();
-
-  Packet& operator=(const Packet&) = default;
-
  private:
   struct ExtensionInfo {
     ExtensionType type;
