Change RtcpPacket::PacketReadyCallback to rtc::FunctionView
from interface


Bug: webrtc:5565
Change-Id: I2df5d7a0554b938888581f1c73dbdb8b85c387cc
Reviewed-on: https://webrtc-review.googlesource.com/8680
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21136}
diff --git a/modules/rtp_rtcp/source/rtcp_packet/app.cc b/modules/rtp_rtcp/source/rtcp_packet/app.cc
index 6ef97fa..10d2a77 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/app.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/app.cc
@@ -77,7 +77,7 @@
 bool App::Create(uint8_t* packet,
                  size_t* index,
                  size_t max_length,
-                 RtcpPacket::PacketReadyCallback* callback) const {
+                 PacketReadyCallback callback) const {
   while (*index + BlockLength() > max_length) {
     if (!OnBufferFull(packet, index, callback))
       return false;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/app.h b/modules/rtp_rtcp/source/rtcp_packet/app.h
index 3b6418d..19a97e0 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/app.h
+++ b/modules/rtp_rtcp/source/rtcp_packet/app.h
@@ -43,7 +43,7 @@
   bool Create(uint8_t* packet,
               size_t* index,
               size_t max_length,
-              RtcpPacket::PacketReadyCallback* callback) const override;
+              PacketReadyCallback callback) const override;
 
  private:
   static constexpr size_t kAppBaseLength = 8;  // Ssrc and Name.
diff --git a/modules/rtp_rtcp/source/rtcp_packet/bye.cc b/modules/rtp_rtcp/source/rtcp_packet/bye.cc
index 11d87ef..0e2eb9e 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/bye.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/bye.cc
@@ -80,7 +80,7 @@
 bool Bye::Create(uint8_t* packet,
                  size_t* index,
                  size_t max_length,
-                 RtcpPacket::PacketReadyCallback* callback) const {
+                 PacketReadyCallback callback) const {
   while (*index + BlockLength() > max_length) {
     if (!OnBufferFull(packet, index, callback))
       return false;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/bye.h b/modules/rtp_rtcp/source/rtcp_packet/bye.h
index 0cfc534..0a6555e 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/bye.h
+++ b/modules/rtp_rtcp/source/rtcp_packet/bye.h
@@ -44,7 +44,7 @@
   bool Create(uint8_t* packet,
               size_t* index,
               size_t max_length,
-              RtcpPacket::PacketReadyCallback* callback) const override;
+              PacketReadyCallback callback) const override;
 
  private:
   static const int kMaxNumberOfCsrcs = 0x1f - 1;  // First item is sender SSRC.
diff --git a/modules/rtp_rtcp/source/rtcp_packet/compound_packet.cc b/modules/rtp_rtcp/source/rtcp_packet/compound_packet.cc
index aec49c8..5e76233 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/compound_packet.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/compound_packet.cc
@@ -27,7 +27,7 @@
 bool CompoundPacket::Create(uint8_t* packet,
                             size_t* index,
                             size_t max_length,
-                            RtcpPacket::PacketReadyCallback* callback) const {
+                            PacketReadyCallback callback) const {
   for (RtcpPacket* appended : appended_packets_) {
     if (!appended->Create(packet, index, max_length, callback))
       return false;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/compound_packet.h b/modules/rtp_rtcp/source/rtcp_packet/compound_packet.h
index a58118e..fdf0a4f 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/compound_packet.h
+++ b/modules/rtp_rtcp/source/rtcp_packet/compound_packet.h
@@ -34,7 +34,7 @@
   bool Create(uint8_t* packet,
               size_t* index,
               size_t max_length,
-              RtcpPacket::PacketReadyCallback* callback) const override;
+              PacketReadyCallback callback) const override;
 
  protected:
   std::vector<RtcpPacket*> appended_packets_;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/compound_packet_unittest.cc b/modules/rtp_rtcp/source/rtcp_packet/compound_packet_unittest.cc
index 156f687..02a4f11 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/compound_packet_unittest.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/compound_packet_unittest.cc
@@ -15,9 +15,13 @@
 #include "modules/rtp_rtcp/source/rtcp_packet/fir.h"
 #include "modules/rtp_rtcp/source/rtcp_packet/receiver_report.h"
 #include "modules/rtp_rtcp/source/rtcp_packet/sender_report.h"
+#include "test/gmock.h"
 #include "test/gtest.h"
 #include "test/rtcp_packet_parser.h"
 
+using ::testing::_;
+using ::testing::Invoke;
+using ::testing::MockFunction;
 using webrtc::rtcp::Bye;
 using webrtc::rtcp::CompoundPacket;
 using webrtc::rtcp::Fir;
@@ -95,23 +99,18 @@
   const size_t kReportBlockLength = 24;
   const size_t kFirLength = 20;
 
-  class Verifier : public rtcp::RtcpPacket::PacketReadyCallback {
-   public:
-    void OnPacketReady(uint8_t* data, size_t length) override {
-      RtcpPacketParser parser;
-      parser.Parse(data, length);
-      EXPECT_EQ(1, parser.receiver_report()->num_packets());
-      EXPECT_EQ(1u, parser.receiver_report()->report_blocks().size());
-      EXPECT_EQ(1, parser.fir()->num_packets());
-      ++packets_created_;
-    }
-
-    int packets_created_ = 0;
-  } verifier;
   const size_t kBufferSize = kRrLength + kReportBlockLength + kFirLength;
-  uint8_t buffer[kBufferSize];
-  EXPECT_TRUE(compound.BuildExternalBuffer(buffer, kBufferSize, &verifier));
-  EXPECT_EQ(1, verifier.packets_created_);
+  MockFunction<void(rtc::ArrayView<const uint8_t>)> callback;
+  EXPECT_CALL(callback, Call(_))
+      .WillOnce(Invoke([&](rtc::ArrayView<const uint8_t> packet) {
+        RtcpPacketParser parser;
+        parser.Parse(packet.data(), packet.size());
+        EXPECT_EQ(1, parser.receiver_report()->num_packets());
+        EXPECT_EQ(1u, parser.receiver_report()->report_blocks().size());
+        EXPECT_EQ(1, parser.fir()->num_packets());
+      }));
+
+  EXPECT_TRUE(compound.Build(kBufferSize, callback.AsStdFunction()));
 }
 
 TEST(RtcpCompoundPacketTest, BuildWithTooSmallBuffer_FragmentedSend) {
@@ -128,34 +127,25 @@
   const size_t kRrLength = 8;
   const size_t kReportBlockLength = 24;
 
-  class Verifier : public rtcp::RtcpPacket::PacketReadyCallback {
-   public:
-    void OnPacketReady(uint8_t* data, size_t length) override {
-      RtcpPacketParser parser;
-      parser.Parse(data, length);
-      switch (packets_created_++) {
-        case 0:
-          EXPECT_EQ(1, parser.receiver_report()->num_packets());
-          EXPECT_EQ(1U, parser.receiver_report()->report_blocks().size());
-          EXPECT_EQ(0, parser.fir()->num_packets());
-          break;
-        case 1:
-          EXPECT_EQ(0, parser.receiver_report()->num_packets());
-          EXPECT_EQ(0U, parser.receiver_report()->report_blocks().size());
-          EXPECT_EQ(1, parser.fir()->num_packets());
-          break;
-        default:
-          ADD_FAILURE() << "OnPacketReady not expected to be called "
-                        << packets_created_ << " times.";
-      }
-    }
-
-    int packets_created_ = 0;
-  } verifier;
   const size_t kBufferSize = kRrLength + kReportBlockLength;
-  uint8_t buffer[kBufferSize];
-  EXPECT_TRUE(compound.BuildExternalBuffer(buffer, kBufferSize, &verifier));
-  EXPECT_EQ(2, verifier.packets_created_);
+  MockFunction<void(rtc::ArrayView<const uint8_t>)> callback;
+  EXPECT_CALL(callback, Call(_))
+      .WillOnce(Invoke([&](rtc::ArrayView<const uint8_t> packet) {
+        RtcpPacketParser parser;
+        parser.Parse(packet.data(), packet.size());
+        EXPECT_EQ(1, parser.receiver_report()->num_packets());
+        EXPECT_EQ(1U, parser.receiver_report()->report_blocks().size());
+        EXPECT_EQ(0, parser.fir()->num_packets());
+      }))
+      .WillOnce(Invoke([&](rtc::ArrayView<const uint8_t> packet) {
+        RtcpPacketParser parser;
+        parser.Parse(packet.data(), packet.size());
+        EXPECT_EQ(0, parser.receiver_report()->num_packets());
+        EXPECT_EQ(0U, parser.receiver_report()->report_blocks().size());
+        EXPECT_EQ(1, parser.fir()->num_packets());
+      }));
+
+  EXPECT_TRUE(compound.Build(kBufferSize, callback.AsStdFunction()));
 }
 
 }  // namespace webrtc
diff --git a/modules/rtp_rtcp/source/rtcp_packet/extended_jitter_report.cc b/modules/rtp_rtcp/source/rtcp_packet/extended_jitter_report.cc
index a511289..27ed4cc 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/extended_jitter_report.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/extended_jitter_report.cc
@@ -75,11 +75,10 @@
   return kHeaderLength + kJitterSizeBytes * inter_arrival_jitters_.size();
 }
 
-bool ExtendedJitterReport::Create(
-    uint8_t* packet,
-    size_t* index,
-    size_t max_length,
-    RtcpPacket::PacketReadyCallback* callback) const {
+bool ExtendedJitterReport::Create(uint8_t* packet,
+                                  size_t* index,
+                                  size_t max_length,
+                                  PacketReadyCallback callback) const {
   while (*index + BlockLength() > max_length) {
     if (!OnBufferFull(packet, index, callback))
       return false;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/extended_jitter_report.h b/modules/rtp_rtcp/source/rtcp_packet/extended_jitter_report.h
index a40cfee..c28b9d9 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/extended_jitter_report.h
+++ b/modules/rtp_rtcp/source/rtcp_packet/extended_jitter_report.h
@@ -41,7 +41,7 @@
   bool Create(uint8_t* packet,
               size_t* index,
               size_t max_length,
-              RtcpPacket::PacketReadyCallback* callback) const override;
+              PacketReadyCallback callback) const override;
 
  private:
   static constexpr size_t kJitterSizeBytes = 4;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/extended_reports.cc b/modules/rtp_rtcp/source/rtcp_packet/extended_reports.cc
index 066f202..d9ee599 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/extended_reports.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/extended_reports.cc
@@ -129,7 +129,7 @@
 bool ExtendedReports::Create(uint8_t* packet,
                              size_t* index,
                              size_t max_length,
-                             RtcpPacket::PacketReadyCallback* callback) const {
+                             PacketReadyCallback callback) const {
   while (*index + BlockLength() > max_length) {
     if (!OnBufferFull(packet, index, callback))
       return false;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/extended_reports.h b/modules/rtp_rtcp/source/rtcp_packet/extended_reports.h
index 2fe5618..a1da4dc 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/extended_reports.h
+++ b/modules/rtp_rtcp/source/rtcp_packet/extended_reports.h
@@ -57,7 +57,7 @@
   bool Create(uint8_t* packet,
               size_t* index,
               size_t max_length,
-              RtcpPacket::PacketReadyCallback* callback) const override;
+              PacketReadyCallback callback) const override;
 
  private:
   static constexpr size_t kXrBaseLength = 4;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/fir.cc b/modules/rtp_rtcp/source/rtcp_packet/fir.cc
index a7692fb..517e991 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/fir.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/fir.cc
@@ -84,7 +84,7 @@
 bool Fir::Create(uint8_t* packet,
                  size_t* index,
                  size_t max_length,
-                 RtcpPacket::PacketReadyCallback* callback) const {
+                 PacketReadyCallback callback) const {
   RTC_DCHECK(!items_.empty());
   while (*index + BlockLength() > max_length) {
     if (!OnBufferFull(packet, index, callback))
diff --git a/modules/rtp_rtcp/source/rtcp_packet/fir.h b/modules/rtp_rtcp/source/rtcp_packet/fir.h
index 80bf5c6..b37c4da 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/fir.h
+++ b/modules/rtp_rtcp/source/rtcp_packet/fir.h
@@ -46,7 +46,7 @@
   bool Create(uint8_t* packet,
               size_t* index,
               size_t max_length,
-              RtcpPacket::PacketReadyCallback* callback) const override;
+              PacketReadyCallback callback) const override;
 
  private:
   static constexpr size_t kFciLength = 8;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/nack.cc b/modules/rtp_rtcp/source/rtcp_packet/nack.cc
index ba5a12b..f83e5c0 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/nack.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/nack.cc
@@ -84,7 +84,7 @@
 bool Nack::Create(uint8_t* packet,
                   size_t* index,
                   size_t max_length,
-                  RtcpPacket::PacketReadyCallback* callback) const {
+                  PacketReadyCallback callback) const {
   RTC_DCHECK(!packed_.empty());
   // If nack list can't fit in packet, try to fragment.
   constexpr size_t kNackHeaderLength = kHeaderLength + kCommonFeedbackLength;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/nack.h b/modules/rtp_rtcp/source/rtcp_packet/nack.h
index 13a590f..cab77d4 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/nack.h
+++ b/modules/rtp_rtcp/source/rtcp_packet/nack.h
@@ -38,7 +38,7 @@
   bool Create(uint8_t* packet,
               size_t* index,
               size_t max_length,
-              RtcpPacket::PacketReadyCallback* callback) const override;
+              PacketReadyCallback callback) const override;
 
  private:
   static constexpr size_t kNackItemLength = 4;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/nack_unittest.cc b/modules/rtp_rtcp/source/rtcp_packet/nack_unittest.cc
index ef5b5b6..c94513f 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/nack_unittest.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/nack_unittest.cc
@@ -18,10 +18,12 @@
 namespace {
 
 using ::testing::_;
+using ::testing::ElementsAre;
 using ::testing::ElementsAreArray;
 using ::testing::Invoke;
-using ::testing::make_tuple;
+using ::testing::MockFunction;
 using ::testing::UnorderedElementsAreArray;
+using ::testing::make_tuple;
 using ::webrtc::rtcp::Nack;
 
 constexpr uint32_t kSenderSsrc = 0x12345678;
@@ -126,30 +128,26 @@
   nack.SetMediaSsrc(kRemoteSsrc);
   nack.SetPacketIds(kList, kListLength);
 
-  class MockPacketReadyCallback : public rtcp::RtcpPacket::PacketReadyCallback {
-   public:
-    MOCK_METHOD2(OnPacketReady, void(uint8_t*, size_t));
-  } verifier;
-
-  class NackVerifier {
-   public:
-    explicit NackVerifier(std::vector<uint16_t> ids) : ids_(ids) {}
-    void operator()(uint8_t* data, size_t length) {
-      Nack nack;
-      EXPECT_TRUE(test::ParseSinglePacket(data, length, &nack));
-      EXPECT_EQ(kSenderSsrc, nack.sender_ssrc());
-      EXPECT_EQ(kRemoteSsrc, nack.media_ssrc());
-      EXPECT_THAT(nack.packet_ids(), ElementsAreArray(ids_));
-    }
-    std::vector<uint16_t> ids_;
-  } packet1({1, 100, 200}), packet2({300, 400});
-
-  EXPECT_CALL(verifier, OnPacketReady(_, _))
-      .WillOnce(Invoke(packet1))
-      .WillOnce(Invoke(packet2));
   const size_t kBufferSize = 12 + (3 * 4);  // Fits common header + 3 nack items
-  uint8_t buffer[kBufferSize];
-  EXPECT_TRUE(nack.BuildExternalBuffer(buffer, kBufferSize, &verifier));
+
+  MockFunction<void(rtc::ArrayView<const uint8_t>)> callback;
+  EXPECT_CALL(callback, Call(_))
+      .WillOnce(Invoke([&](rtc::ArrayView<const uint8_t> packet) {
+        Nack nack;
+        EXPECT_TRUE(test::ParseSinglePacket(packet, &nack));
+        EXPECT_EQ(kSenderSsrc, nack.sender_ssrc());
+        EXPECT_EQ(kRemoteSsrc, nack.media_ssrc());
+        EXPECT_THAT(nack.packet_ids(), ElementsAre(1, 100, 200));
+      }))
+      .WillOnce(Invoke([&](rtc::ArrayView<const uint8_t> packet) {
+        Nack nack;
+        EXPECT_TRUE(test::ParseSinglePacket(packet, &nack));
+        EXPECT_EQ(kSenderSsrc, nack.sender_ssrc());
+        EXPECT_EQ(kRemoteSsrc, nack.media_ssrc());
+        EXPECT_THAT(nack.packet_ids(), ElementsAre(300, 400));
+      }));
+
+  EXPECT_TRUE(nack.Build(kBufferSize, callback.AsStdFunction()));
 }
 
 TEST(RtcpPacketNackTest, CreateFailsWithTooSmallBuffer) {
@@ -159,15 +157,10 @@
   nack.SetSenderSsrc(kSenderSsrc);
   nack.SetMediaSsrc(kRemoteSsrc);
   nack.SetPacketIds(kList, 1);
-  class Verifier : public rtcp::RtcpPacket::PacketReadyCallback {
-   public:
-    void OnPacketReady(uint8_t* data, size_t length) override {
-      ADD_FAILURE() << "Buffer should be too small.";
-    }
-  } verifier;
-  uint8_t buffer[kMinNackBlockSize - 1];
-  EXPECT_FALSE(
-      nack.BuildExternalBuffer(buffer, kMinNackBlockSize - 1, &verifier));
+
+  MockFunction<void(rtc::ArrayView<const uint8_t>)> callback;
+  EXPECT_CALL(callback, Call(_)).Times(0);
+  EXPECT_FALSE(nack.Build(kMinNackBlockSize - 1, callback.AsStdFunction()));
 }
 
 TEST(RtcpPacketNackTest, ParseFailsWithTooSmallBuffer) {
diff --git a/modules/rtp_rtcp/source/rtcp_packet/pli.cc b/modules/rtp_rtcp/source/rtcp_packet/pli.cc
index 07fa259..274eb6b 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/pli.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/pli.cc
@@ -56,7 +56,7 @@
 bool Pli::Create(uint8_t* packet,
                  size_t* index,
                  size_t max_length,
-                 RtcpPacket::PacketReadyCallback* callback) const {
+                 PacketReadyCallback callback) const {
   while (*index + BlockLength() > max_length) {
     if (!OnBufferFull(packet, index, callback))
       return false;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/pli.h b/modules/rtp_rtcp/source/rtcp_packet/pli.h
index f3c2fba..e64b877 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/pli.h
+++ b/modules/rtp_rtcp/source/rtcp_packet/pli.h
@@ -31,7 +31,7 @@
   bool Create(uint8_t* packet,
               size_t* index,
               size_t max_length,
-              RtcpPacket::PacketReadyCallback* callback) const override;
+              PacketReadyCallback callback) const override;
 };
 
 }  // namespace rtcp
diff --git a/modules/rtp_rtcp/source/rtcp_packet/rapid_resync_request.cc b/modules/rtp_rtcp/source/rtcp_packet/rapid_resync_request.cc
index e79edbd..8563c28 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/rapid_resync_request.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/rapid_resync_request.cc
@@ -49,11 +49,10 @@
   return kHeaderLength + kCommonFeedbackLength;
 }
 
-bool RapidResyncRequest::Create(
-    uint8_t* packet,
-    size_t* index,
-    size_t max_length,
-    RtcpPacket::PacketReadyCallback* callback) const {
+bool RapidResyncRequest::Create(uint8_t* packet,
+                                size_t* index,
+                                size_t max_length,
+                                PacketReadyCallback callback) const {
   while (*index + BlockLength() > max_length) {
     if (!OnBufferFull(packet, index, callback))
       return false;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/rapid_resync_request.h b/modules/rtp_rtcp/source/rtcp_packet/rapid_resync_request.h
index 3e37295..9f1772a 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/rapid_resync_request.h
+++ b/modules/rtp_rtcp/source/rtcp_packet/rapid_resync_request.h
@@ -34,7 +34,7 @@
   bool Create(uint8_t* packet,
               size_t* index,
               size_t max_length,
-              RtcpPacket::PacketReadyCallback* callback) const override;
+              PacketReadyCallback callback) const override;
 };
 }  // namespace rtcp
 }  // namespace webrtc
diff --git a/modules/rtp_rtcp/source/rtcp_packet/receiver_report.cc b/modules/rtp_rtcp/source/rtcp_packet/receiver_report.cc
index 1654f48..5677db2 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/receiver_report.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/receiver_report.cc
@@ -71,7 +71,7 @@
 bool ReceiverReport::Create(uint8_t* packet,
                             size_t* index,
                             size_t max_length,
-                            RtcpPacket::PacketReadyCallback* callback) const {
+                            PacketReadyCallback callback) const {
   while (*index + BlockLength() > max_length) {
     if (!OnBufferFull(packet, index, callback))
       return false;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/receiver_report.h b/modules/rtp_rtcp/source/rtcp_packet/receiver_report.h
index d8d8289..894e14e 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/receiver_report.h
+++ b/modules/rtp_rtcp/source/rtcp_packet/receiver_report.h
@@ -46,7 +46,7 @@
   bool Create(uint8_t* packet,
               size_t* index,
               size_t max_length,
-              RtcpPacket::PacketReadyCallback* callback) const override;
+              PacketReadyCallback callback) const override;
 
  private:
   static const size_t kRrBaseLength = 4;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/remb.cc b/modules/rtp_rtcp/source/rtcp_packet/remb.cc
index 981a296..2b492af 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/remb.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/remb.cc
@@ -104,7 +104,7 @@
 bool Remb::Create(uint8_t* packet,
                   size_t* index,
                   size_t max_length,
-                  RtcpPacket::PacketReadyCallback* callback) const {
+                  PacketReadyCallback callback) const {
   while (*index + BlockLength() > max_length) {
     if (!OnBufferFull(packet, index, callback))
       return false;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/remb.h b/modules/rtp_rtcp/source/rtcp_packet/remb.h
index 1b01125..b034a96 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/remb.h
+++ b/modules/rtp_rtcp/source/rtcp_packet/remb.h
@@ -43,7 +43,7 @@
   bool Create(uint8_t* packet,
               size_t* index,
               size_t max_length,
-              RtcpPacket::PacketReadyCallback* callback) const override;
+              PacketReadyCallback callback) const override;
 
  private:
   static constexpr uint32_t kUniqueIdentifier = 0x52454D42;  // 'R' 'E' 'M' 'B'.
diff --git a/modules/rtp_rtcp/source/rtcp_packet/sdes.cc b/modules/rtp_rtcp/source/rtcp_packet/sdes.cc
index 5fe9408..337c8b0 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/sdes.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/sdes.cc
@@ -164,7 +164,7 @@
 bool Sdes::Create(uint8_t* packet,
                   size_t* index,
                   size_t max_length,
-                  RtcpPacket::PacketReadyCallback* callback) const {
+                  PacketReadyCallback callback) const {
   while (*index + BlockLength() > max_length) {
     if (!OnBufferFull(packet, index, callback))
       return false;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/sdes.h b/modules/rtp_rtcp/source/rtcp_packet/sdes.h
index 2eea09b..9010686 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/sdes.h
+++ b/modules/rtp_rtcp/source/rtcp_packet/sdes.h
@@ -45,7 +45,7 @@
   bool Create(uint8_t* packet,
               size_t* index,
               size_t max_length,
-              RtcpPacket::PacketReadyCallback* callback) const override;
+              PacketReadyCallback callback) const override;
 
  private:
   std::vector<Chunk> chunks_;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/sender_report.cc b/modules/rtp_rtcp/source/rtcp_packet/sender_report.cc
index 637cbb6..444ba68 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/sender_report.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/sender_report.cc
@@ -87,7 +87,7 @@
 bool SenderReport::Create(uint8_t* packet,
                           size_t* index,
                           size_t max_length,
-                          RtcpPacket::PacketReadyCallback* callback) const {
+                          PacketReadyCallback callback) const {
   while (*index + BlockLength() > max_length) {
     if (!OnBufferFull(packet, index, callback))
       return false;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/sender_report.h b/modules/rtp_rtcp/source/rtcp_packet/sender_report.h
index 2cbfe72..844459a 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/sender_report.h
+++ b/modules/rtp_rtcp/source/rtcp_packet/sender_report.h
@@ -62,7 +62,7 @@
   bool Create(uint8_t* packet,
               size_t* index,
               size_t max_length,
-              RtcpPacket::PacketReadyCallback* callback) const override;
+              PacketReadyCallback callback) const override;
 
  private:
   const size_t kSenderBaseLength = 24;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/tmmbn.cc b/modules/rtp_rtcp/source/rtcp_packet/tmmbn.cc
index 6205dad..4d38b3b 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/tmmbn.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/tmmbn.cc
@@ -87,7 +87,7 @@
 bool Tmmbn::Create(uint8_t* packet,
                    size_t* index,
                    size_t max_length,
-                   RtcpPacket::PacketReadyCallback* callback) const {
+                   PacketReadyCallback callback) const {
   while (*index + BlockLength() > max_length) {
     if (!OnBufferFull(packet, index, callback))
       return false;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/tmmbn.h b/modules/rtp_rtcp/source/rtcp_packet/tmmbn.h
index 8c3b834..75a349b 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/tmmbn.h
+++ b/modules/rtp_rtcp/source/rtcp_packet/tmmbn.h
@@ -42,7 +42,7 @@
   bool Create(uint8_t* packet,
               size_t* index,
               size_t max_length,
-              RtcpPacket::PacketReadyCallback* callback) const override;
+              PacketReadyCallback callback) const override;
 
  private:
   // Media ssrc is unused, shadow base class setter and getter.
diff --git a/modules/rtp_rtcp/source/rtcp_packet/tmmbr.cc b/modules/rtp_rtcp/source/rtcp_packet/tmmbr.cc
index 34f3102..d8f073b 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/tmmbr.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/tmmbr.cc
@@ -88,7 +88,7 @@
 bool Tmmbr::Create(uint8_t* packet,
                    size_t* index,
                    size_t max_length,
-                   RtcpPacket::PacketReadyCallback* callback) const {
+                   PacketReadyCallback callback) const {
   RTC_DCHECK(!items_.empty());
   while (*index + BlockLength() > max_length) {
     if (!OnBufferFull(packet, index, callback))
diff --git a/modules/rtp_rtcp/source/rtcp_packet/tmmbr.h b/modules/rtp_rtcp/source/rtcp_packet/tmmbr.h
index 9b2eca1..bc3ecde 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/tmmbr.h
+++ b/modules/rtp_rtcp/source/rtcp_packet/tmmbr.h
@@ -42,7 +42,7 @@
   bool Create(uint8_t* packet,
               size_t* index,
               size_t max_length,
-              RtcpPacket::PacketReadyCallback* callback) const override;
+              PacketReadyCallback callback) const override;
 
  private:
   // Media ssrc is unused, shadow base class setter.
diff --git a/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.cc b/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.cc
index 794829c..05596de 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.cc
@@ -556,7 +556,7 @@
 bool TransportFeedback::Create(uint8_t* packet,
                                size_t* position,
                                size_t max_length,
-                               PacketReadyCallback* callback) const {
+                               PacketReadyCallback callback) const {
   if (num_seq_no_ == 0)
     return false;
 
diff --git a/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h b/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h
index a28c573..5ec83a7 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h
+++ b/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h
@@ -74,7 +74,7 @@
   bool Create(uint8_t* packet,
               size_t* position,
               size_t max_length,
-              PacketReadyCallback* callback) const override;
+              PacketReadyCallback callback) const override;
 
  private:
   // Size in bytes of a delta time in rtcp packet.