From 58b496b4d82f022b2871ab5f79fcdedf1c548824 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= Date: Mon, 12 Aug 2019 12:16:31 +0200 Subject: [PATCH] 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 Reviewed-by: Danil Chapovalov Commit-Queue: Niels Moller Cr-Commit-Position: refs/heads/master@{#28830} --- audio/channel_receive.cc | 4 ++-- modules/rtp_rtcp/include/receive_statistics.h | 3 +-- modules/rtp_rtcp/source/receive_statistics_impl.cc | 6 +++--- modules/rtp_rtcp/source/receive_statistics_impl.h | 3 +-- modules/rtp_rtcp/source/receive_statistics_unittest.cc | 5 ++--- 5 files changed, 9 insertions(+), 12 deletions(-) diff --git a/audio/channel_receive.cc b/audio/channel_receive.cc index ed3356a4a8..d114391469 100644 --- a/audio/channel_receive.cc +++ b/audio/channel_receive.cc @@ -747,8 +747,8 @@ CallReceiveStatistics ChannelReceive::GetRTCPStatistics() const { // --- 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 801d4c7d46..2046b8228e 100644 --- a/modules/rtp_rtcp/include/receive_statistics.h +++ b/modules/rtp_rtcp/include/receive_statistics.h @@ -49,8 +49,7 @@ class StreamStatistician { virtual absl::optional 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 1302dac969..e78cac489f 100644 --- a/modules/rtp_rtcp/source/receive_statistics_impl.cc +++ b/modules/rtp_rtcp/source/receive_statistics_impl.cc @@ -306,10 +306,10 @@ absl::optional StreamStatisticianImpl::GetFractionLostInPercent() const { return 100 * static_cast(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 3935d876de..a4eab7b6a2 100644 --- a/modules/rtp_rtcp/source/receive_statistics_impl.h +++ b/modules/rtp_rtcp/source/receive_statistics_impl.h @@ -39,8 +39,7 @@ class StreamStatisticianImpl : public StreamStatistician, void GetDataCounters(size_t* bytes_received, uint32_t* packets_received) const override; absl::optional 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 28c14036f0..25424565bf 100644 --- a/modules/rtp_rtcp/source/receive_statistics_unittest.cc +++ b/modules/rtp_rtcp/source/receive_statistics_unittest.cc @@ -217,13 +217,12 @@ TEST_F(ReceiveStatisticsTest, GetReceiveStreamDataCounters) { 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); }