Remove unnecessary copy of suspended_ssrcs.
Also removing pass-by-value in ctor.
Bug: none
Change-Id: I09e36fd955c8f306c4a347d8befc6eea38384cb9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/239183
Auto-Submit: Tommi <tommi@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35427}
diff --git a/call/rtp_transport_controller_send.cc b/call/rtp_transport_controller_send.cc
index 8825df2..11c299c 100644
--- a/call/rtp_transport_controller_send.cc
+++ b/call/rtp_transport_controller_send.cc
@@ -156,7 +156,7 @@
}
RtpVideoSenderInterface* RtpTransportControllerSend::CreateRtpVideoSender(
- std::map<uint32_t, RtpState> suspended_ssrcs,
+ const std::map<uint32_t, RtpState>& suspended_ssrcs,
const std::map<uint32_t, RtpPayloadState>& states,
const RtpConfig& rtp_config,
int rtcp_report_interval_ms,
diff --git a/call/rtp_transport_controller_send.h b/call/rtp_transport_controller_send.h
index ac4213d..62af78c 100644
--- a/call/rtp_transport_controller_send.h
+++ b/call/rtp_transport_controller_send.h
@@ -65,7 +65,7 @@
// TODO(tommi): Change to std::unique_ptr<>.
RtpVideoSenderInterface* CreateRtpVideoSender(
- std::map<uint32_t, RtpState> suspended_ssrcs,
+ const std::map<uint32_t, RtpState>& suspended_ssrcs,
const std::map<uint32_t, RtpPayloadState>&
states, // move states into RtpTransportControllerSend
const RtpConfig& rtp_config,
diff --git a/call/rtp_transport_controller_send_interface.h b/call/rtp_transport_controller_send_interface.h
index 2aa6d73..f68c4bf 100644
--- a/call/rtp_transport_controller_send_interface.h
+++ b/call/rtp_transport_controller_send_interface.h
@@ -96,7 +96,7 @@
virtual PacketRouter* packet_router() = 0;
virtual RtpVideoSenderInterface* CreateRtpVideoSender(
- std::map<uint32_t, RtpState> suspended_ssrcs,
+ const std::map<uint32_t, RtpState>& suspended_ssrcs,
// TODO(holmer): Move states into RtpTransportControllerSend.
const std::map<uint32_t, RtpPayloadState>& states,
const RtpConfig& rtp_config,
diff --git a/call/rtp_video_sender.cc b/call/rtp_video_sender.cc
index c83d697..b953705 100644
--- a/call/rtp_video_sender.cc
+++ b/call/rtp_video_sender.cc
@@ -347,7 +347,7 @@
RtpVideoSender::RtpVideoSender(
Clock* clock,
- std::map<uint32_t, RtpState> suspended_ssrcs,
+ const std::map<uint32_t, RtpState>& suspended_ssrcs,
const std::map<uint32_t, RtpPayloadState>& states,
const RtpConfig& rtp_config,
int rtcp_report_interval_ms,
@@ -371,7 +371,6 @@
field_trials_.Lookup("WebRTC-GenericCodecDependencyDescriptor"),
"Enabled")),
active_(false),
- suspended_ssrcs_(std::move(suspended_ssrcs)),
fec_controller_(std::move(fec_controller)),
fec_allowed_(true),
rtp_streams_(CreateRtpStreamSenders(clock,
@@ -381,7 +380,7 @@
send_transport,
transport->GetBandwidthObserver(),
transport,
- suspended_ssrcs_,
+ suspended_ssrcs,
event_log,
retransmission_limiter,
frame_encryptor,
@@ -421,7 +420,7 @@
}
}
- ConfigureSsrcs();
+ ConfigureSsrcs(suspended_ssrcs);
ConfigureRids();
if (!rtp_config_.mid.empty()) {
@@ -683,7 +682,8 @@
stream.rtp_rtcp->IncomingRtcpPacket(packet, length);
}
-void RtpVideoSender::ConfigureSsrcs() {
+void RtpVideoSender::ConfigureSsrcs(
+ const std::map<uint32_t, RtpState>& suspended_ssrcs) {
// Configure regular SSRCs.
RTC_CHECK(ssrc_to_rtp_module_.empty());
for (size_t i = 0; i < rtp_config_.ssrcs.size(); ++i) {
@@ -691,8 +691,8 @@
RtpRtcpInterface* const rtp_rtcp = rtp_streams_[i].rtp_rtcp.get();
// Restore RTP state if previous existed.
- auto it = suspended_ssrcs_.find(ssrc);
- if (it != suspended_ssrcs_.end())
+ auto it = suspended_ssrcs.find(ssrc);
+ if (it != suspended_ssrcs.end())
rtp_rtcp->SetRtpState(it->second);
ssrc_to_rtp_module_[ssrc] = rtp_rtcp;
@@ -706,8 +706,8 @@
for (size_t i = 0; i < rtp_config_.rtx.ssrcs.size(); ++i) {
uint32_t ssrc = rtp_config_.rtx.ssrcs[i];
RtpRtcpInterface* const rtp_rtcp = rtp_streams_[i].rtp_rtcp.get();
- auto it = suspended_ssrcs_.find(ssrc);
- if (it != suspended_ssrcs_.end())
+ auto it = suspended_ssrcs.find(ssrc);
+ if (it != suspended_ssrcs.end())
rtp_rtcp->SetRtxState(it->second);
}
diff --git a/call/rtp_video_sender.h b/call/rtp_video_sender.h
index 704ed0e..7e5de98 100644
--- a/call/rtp_video_sender.h
+++ b/call/rtp_video_sender.h
@@ -74,7 +74,7 @@
// Rtp modules are assumed to be sorted in simulcast index order.
RtpVideoSender(
Clock* clock,
- std::map<uint32_t, RtpState> suspended_ssrcs,
+ const std::map<uint32_t, RtpState>& suspended_ssrcs,
const std::map<uint32_t, RtpPayloadState>& states,
const RtpConfig& rtp_config,
int rtcp_report_interval_ms,
@@ -155,7 +155,7 @@
RTC_EXCLUSIVE_LOCKS_REQUIRED(mutex_);
void UpdateModuleSendingState() RTC_EXCLUSIVE_LOCKS_REQUIRED(mutex_);
void ConfigureProtection();
- void ConfigureSsrcs();
+ void ConfigureSsrcs(const std::map<uint32_t, RtpState>& suspended_ssrcs);
void ConfigureRids();
bool NackEnabled() const;
uint32_t GetPacketizationOverheadRate() const;
@@ -175,8 +175,6 @@
mutable Mutex mutex_;
bool active_ RTC_GUARDED_BY(mutex_);
- std::map<uint32_t, RtpState> suspended_ssrcs_;
-
const std::unique_ptr<FecController> fec_controller_;
bool fec_allowed_ RTC_GUARDED_BY(mutex_);
diff --git a/call/test/mock_rtp_transport_controller_send.h b/call/test/mock_rtp_transport_controller_send.h
index b468aa6..8d637a3 100644
--- a/call/test/mock_rtp_transport_controller_send.h
+++ b/call/test/mock_rtp_transport_controller_send.h
@@ -34,7 +34,7 @@
public:
MOCK_METHOD(RtpVideoSenderInterface*,
CreateRtpVideoSender,
- ((std::map<uint32_t, RtpState>),
+ ((const std::map<uint32_t, RtpState>&),
(const std::map<uint32_t, RtpPayloadState>&),
const RtpConfig&,
int rtcp_report_interval_ms,