Let StreamStatistician::GetReceiveStreamDataCounters return counters by value

Tbr: ossu@webrtc.org # Trivial update of audio/ call site
Bug: None
Change-Id: I3763e83f6c0e18be1b696dd7b2ba5841045c9159
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/148820
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28830}
diff --git a/audio/channel_receive.cc b/audio/channel_receive.cc
index ed3356a..d114391 100644
--- a/audio/channel_receive.cc
+++ b/audio/channel_receive.cc
@@ -747,8 +747,8 @@
 
   // --- Data counters
   if (statistician) {
-    StreamDataCounters data_counters;
-    statistician->GetReceiveStreamDataCounters(&data_counters);
+    StreamDataCounters data_counters =
+        statistician->GetReceiveStreamDataCounters();
     if (use_standard_bytes_stats_) {
       stats.bytesReceived = data_counters.transmitted.payload_bytes;
     } else {
diff --git a/modules/rtp_rtcp/include/receive_statistics.h b/modules/rtp_rtcp/include/receive_statistics.h
index 801d4c7..2046b82 100644
--- a/modules/rtp_rtcp/include/receive_statistics.h
+++ b/modules/rtp_rtcp/include/receive_statistics.h
@@ -49,8 +49,7 @@
   virtual absl::optional<int> GetFractionLostInPercent() const = 0;
 
   // Gets received stream data counters (includes reset counter values).
-  virtual void GetReceiveStreamDataCounters(
-      StreamDataCounters* data_counters) const = 0;
+  virtual StreamDataCounters GetReceiveStreamDataCounters() const = 0;
 
   virtual uint32_t BitrateReceived() const = 0;
 };
diff --git a/modules/rtp_rtcp/source/receive_statistics_impl.cc b/modules/rtp_rtcp/source/receive_statistics_impl.cc
index 1302dac..e78cac4 100644
--- a/modules/rtp_rtcp/source/receive_statistics_impl.cc
+++ b/modules/rtp_rtcp/source/receive_statistics_impl.cc
@@ -306,10 +306,10 @@
   return 100 * static_cast<int64_t>(cumulative_loss_) / expected_packets;
 }
 
-void StreamStatisticianImpl::GetReceiveStreamDataCounters(
-    StreamDataCounters* data_counters) const {
+StreamDataCounters StreamStatisticianImpl::GetReceiveStreamDataCounters()
+    const {
   rtc::CritScope cs(&stream_lock_);
-  *data_counters = receive_counters_;
+  return receive_counters_;
 }
 
 uint32_t StreamStatisticianImpl::BitrateReceived() const {
diff --git a/modules/rtp_rtcp/source/receive_statistics_impl.h b/modules/rtp_rtcp/source/receive_statistics_impl.h
index 3935d87..a4eab7b 100644
--- a/modules/rtp_rtcp/source/receive_statistics_impl.h
+++ b/modules/rtp_rtcp/source/receive_statistics_impl.h
@@ -39,8 +39,7 @@
   void GetDataCounters(size_t* bytes_received,
                        uint32_t* packets_received) const override;
   absl::optional<int> GetFractionLostInPercent() const override;
-  void GetReceiveStreamDataCounters(
-      StreamDataCounters* data_counters) const override;
+  StreamDataCounters GetReceiveStreamDataCounters() const override;
   uint32_t BitrateReceived() const override;
 
   // Implements RtpPacketSinkInterface
diff --git a/modules/rtp_rtcp/source/receive_statistics_unittest.cc b/modules/rtp_rtcp/source/receive_statistics_unittest.cc
index 28c1403..2542456 100644
--- a/modules/rtp_rtcp/source/receive_statistics_unittest.cc
+++ b/modules/rtp_rtcp/source/receive_statistics_unittest.cc
@@ -217,13 +217,12 @@
       receive_statistics_->GetStatistician(kSsrc1);
   ASSERT_TRUE(statistician != NULL);
 
-  StreamDataCounters counters;
-  statistician->GetReceiveStreamDataCounters(&counters);
+  StreamDataCounters counters = statistician->GetReceiveStreamDataCounters();
   EXPECT_GT(counters.first_packet_time_ms, -1);
   EXPECT_EQ(1u, counters.transmitted.packets);
 
   receive_statistics_->OnRtpPacket(packet1_);
-  statistician->GetReceiveStreamDataCounters(&counters);
+  counters = statistician->GetReceiveStreamDataCounters();
   EXPECT_GT(counters.first_packet_time_ms, -1);
   EXPECT_EQ(2u, counters.transmitted.packets);
 }