Adopt absl::string_view in modules/rtp_rtcp
Bug: webrtc:13579
Change-Id: Ic4e1431bedc69492358cb2e3749b50a941306f44
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262250
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Ali Tofigh <alito@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36887}
diff --git a/modules/rtp_rtcp/BUILD.gn b/modules/rtp_rtcp/BUILD.gn
index 8e25b42..86c25a4 100644
--- a/modules/rtp_rtcp/BUILD.gn
+++ b/modules/rtp_rtcp/BUILD.gn
@@ -467,7 +467,10 @@
"../../rtc_base:checks",
"../../test:test_support",
]
- absl_deps = [ "//third_party/abseil-cpp/absl/types:optional" ]
+ absl_deps = [
+ "//third_party/abseil-cpp/absl/strings",
+ "//third_party/abseil-cpp/absl/types:optional",
+ ]
}
rtc_library("rtp_packetizer_av1_test_helper") {
@@ -659,6 +662,7 @@
"//third_party/abseil-cpp/absl/algorithm:container",
"//third_party/abseil-cpp/absl/base:core_headers",
"//third_party/abseil-cpp/absl/memory",
+ "//third_party/abseil-cpp/absl/strings",
"//third_party/abseil-cpp/absl/types:optional",
]
}
diff --git a/modules/rtp_rtcp/include/flexfec_sender.h b/modules/rtp_rtcp/include/flexfec_sender.h
index 737593e..f0acfe6 100644
--- a/modules/rtp_rtcp/include/flexfec_sender.h
+++ b/modules/rtp_rtcp/include/flexfec_sender.h
@@ -15,6 +15,7 @@
#include <string>
#include <vector>
+#include "absl/strings/string_view.h"
#include "api/array_view.h"
#include "api/rtp_parameters.h"
#include "modules/rtp_rtcp/include/rtp_header_extension_map.h"
@@ -39,7 +40,7 @@
FlexfecSender(int payload_type,
uint32_t ssrc,
uint32_t protected_media_ssrc,
- const std::string& mid,
+ absl::string_view mid,
const std::vector<RtpExtension>& rtp_header_extensions,
rtc::ArrayView<const RtpExtensionSize> extension_sizes,
const RtpState* rtp_state,
diff --git a/modules/rtp_rtcp/mocks/mock_rtp_rtcp.h b/modules/rtp_rtcp/mocks/mock_rtp_rtcp.h
index 2f1c894..6a4eba6 100644
--- a/modules/rtp_rtcp/mocks/mock_rtp_rtcp.h
+++ b/modules/rtp_rtcp/mocks/mock_rtp_rtcp.h
@@ -17,6 +17,7 @@
#include <utility>
#include <vector>
+#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
#include "api/video/video_bitrate_allocation.h"
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
@@ -65,8 +66,8 @@
MOCK_METHOD(RtpState, GetRtpState, (), (const, override));
MOCK_METHOD(RtpState, GetRtxState, (), (const, override));
MOCK_METHOD(uint32_t, SSRC, (), (const, override));
- MOCK_METHOD(void, SetRid, (const std::string& rid), (override));
- MOCK_METHOD(void, SetMid, (const std::string& mid), (override));
+ MOCK_METHOD(void, SetRid, (absl::string_view rid), (override));
+ MOCK_METHOD(void, SetMid, (absl::string_view mid), (override));
MOCK_METHOD(void, SetCsrcs, (const std::vector<uint32_t>& csrcs), (override));
MOCK_METHOD(void, SetRtxSendStatus, (int modes), (override));
MOCK_METHOD(int, RtxSendStatus, (), (const, override));
@@ -113,10 +114,7 @@
MOCK_METHOD(void, OnPacketSendingThreadSwitched, (), (override));
MOCK_METHOD(RtcpMode, RTCP, (), (const, override));
MOCK_METHOD(void, SetRTCPStatus, (RtcpMode method), (override));
- MOCK_METHOD(int32_t,
- SetCNAME,
- (const char cname[RTCP_CNAME_SIZE]),
- (override));
+ MOCK_METHOD(int32_t, SetCNAME, (absl::string_view cname), (override));
MOCK_METHOD(int32_t,
RemoteNTP,
(uint32_t * received_ntp_secs,
diff --git a/modules/rtp_rtcp/source/flexfec_sender.cc b/modules/rtp_rtcp/source/flexfec_sender.cc
index f6fe06e..292fe4a 100644
--- a/modules/rtp_rtcp/source/flexfec_sender.cc
+++ b/modules/rtp_rtcp/source/flexfec_sender.cc
@@ -15,6 +15,7 @@
#include <list>
#include <utility>
+#include "absl/strings/string_view.h"
#include "modules/rtp_rtcp/include/rtp_rtcp_defines.h"
#include "modules/rtp_rtcp/source/forward_error_correction.h"
#include "modules/rtp_rtcp/source/rtp_header_extensions.h"
@@ -71,7 +72,7 @@
int payload_type,
uint32_t ssrc,
uint32_t protected_media_ssrc,
- const std::string& mid,
+ absl::string_view mid,
const std::vector<RtpExtension>& rtp_header_extensions,
rtc::ArrayView<const RtpExtensionSize> extension_sizes,
const RtpState* rtp_state,
diff --git a/modules/rtp_rtcp/source/rtcp_packet/bye.cc b/modules/rtp_rtcp/source/rtcp_packet/bye.cc
index cefa341..a647177 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/bye.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/bye.cc
@@ -15,6 +15,7 @@
#include <cstdint>
#include <utility>
+#include "absl/strings/string_view.h"
#include "modules/rtp_rtcp/source/byte_io.h"
#include "modules/rtp_rtcp/source/rtcp_packet/common_header.h"
#include "rtc_base/checks.h"
@@ -125,9 +126,9 @@
return true;
}
-void Bye::SetReason(std::string reason) {
+void Bye::SetReason(absl::string_view reason) {
RTC_DCHECK_LE(reason.size(), 0xffu);
- reason_ = std::move(reason);
+ reason_ = std::string(reason);
}
size_t Bye::BlockLength() const {
diff --git a/modules/rtp_rtcp/source/rtcp_packet/bye.h b/modules/rtp_rtcp/source/rtcp_packet/bye.h
index c96a757..d312057 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/bye.h
+++ b/modules/rtp_rtcp/source/rtcp_packet/bye.h
@@ -15,6 +15,7 @@
#include <string>
#include <vector>
+#include "absl/strings/string_view.h"
#include "modules/rtp_rtcp/source/rtcp_packet.h"
namespace webrtc {
@@ -32,7 +33,7 @@
bool Parse(const CommonHeader& packet);
bool SetCsrcs(std::vector<uint32_t> csrcs);
- void SetReason(std::string reason);
+ void SetReason(absl::string_view reason);
const std::vector<uint32_t>& csrcs() const { return csrcs_; }
const std::string& reason() const { return reason_; }
diff --git a/modules/rtp_rtcp/source/rtcp_packet/sdes.cc b/modules/rtp_rtcp/source/rtcp_packet/sdes.cc
index b2d0ff9..f244ec5 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/sdes.cc
+++ b/modules/rtp_rtcp/source/rtcp_packet/sdes.cc
@@ -14,6 +14,7 @@
#include <utility>
+#include "absl/strings/string_view.h"
#include "modules/rtp_rtcp/source/byte_io.h"
#include "modules/rtp_rtcp/source/rtcp_packet/common_header.h"
#include "rtc_base/checks.h"
@@ -145,7 +146,7 @@
return true;
}
-bool Sdes::AddCName(uint32_t ssrc, std::string cname) {
+bool Sdes::AddCName(uint32_t ssrc, absl::string_view cname) {
RTC_DCHECK_LE(cname.length(), 0xffu);
if (chunks_.size() >= kMaxNumberOfChunks) {
RTC_LOG(LS_WARNING) << "Max SDES chunks reached.";
@@ -153,7 +154,7 @@
}
Chunk chunk;
chunk.ssrc = ssrc;
- chunk.cname = std::move(cname);
+ chunk.cname = std::string(cname);
chunks_.push_back(chunk);
block_length_ += ChunkSize(chunk);
return true;
diff --git a/modules/rtp_rtcp/source/rtcp_packet/sdes.h b/modules/rtp_rtcp/source/rtcp_packet/sdes.h
index 70e9385..36b63ba 100644
--- a/modules/rtp_rtcp/source/rtcp_packet/sdes.h
+++ b/modules/rtp_rtcp/source/rtcp_packet/sdes.h
@@ -14,6 +14,7 @@
#include <string>
#include <vector>
+#include "absl/strings/string_view.h"
#include "modules/rtp_rtcp/source/rtcp_packet.h"
namespace webrtc {
@@ -35,7 +36,7 @@
// Parse assumes header is already parsed and validated.
bool Parse(const CommonHeader& packet);
- bool AddCName(uint32_t ssrc, std::string cname);
+ bool AddCName(uint32_t ssrc, absl::string_view cname);
const std::vector<Chunk>& chunks() const { return chunks_; }
diff --git a/modules/rtp_rtcp/source/rtcp_sender.cc b/modules/rtp_rtcp/source/rtcp_sender.cc
index 04f8041..c9543c1 100644
--- a/modules/rtp_rtcp/source/rtcp_sender.cc
+++ b/modules/rtp_rtcp/source/rtcp_sender.cc
@@ -16,6 +16,7 @@
#include <memory>
#include <utility>
+#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
#include "api/rtc_event_log/rtc_event_log.h"
#include "api/rtp_headers.h"
@@ -354,13 +355,10 @@
remote_ssrc_ = ssrc;
}
-int32_t RTCPSender::SetCNAME(const char* c_name) {
- if (!c_name)
- return -1;
-
- RTC_DCHECK_LT(strlen(c_name), RTCP_CNAME_SIZE);
+int32_t RTCPSender::SetCNAME(absl::string_view c_name) {
+ RTC_DCHECK_LT(c_name.size(), RTCP_CNAME_SIZE);
MutexLock lock(&mutex_rtcp_sender_);
- cname_ = c_name;
+ cname_ = std::string(c_name);
return 0;
}
diff --git a/modules/rtp_rtcp/source/rtcp_sender.h b/modules/rtp_rtcp/source/rtcp_sender.h
index 00b58b4..8f51e79 100644
--- a/modules/rtp_rtcp/source/rtcp_sender.h
+++ b/modules/rtp_rtcp/source/rtcp_sender.h
@@ -17,6 +17,7 @@
#include <string>
#include <vector>
+#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
#include "api/call/transport.h"
#include "api/units/time_delta.h"
@@ -137,7 +138,8 @@
void SetRemoteSSRC(uint32_t ssrc) RTC_LOCKS_EXCLUDED(mutex_rtcp_sender_);
- int32_t SetCNAME(const char* cName) RTC_LOCKS_EXCLUDED(mutex_rtcp_sender_);
+ int32_t SetCNAME(absl::string_view cName)
+ RTC_LOCKS_EXCLUDED(mutex_rtcp_sender_);
bool TimeToSendRTCPReport(bool sendKeyframeBeforeRTP = false) const
RTC_LOCKS_EXCLUDED(mutex_rtcp_sender_);
diff --git a/modules/rtp_rtcp/source/rtp_header_extensions.cc b/modules/rtp_rtcp/source/rtp_header_extensions.cc
index 32edd63..81961c6 100644
--- a/modules/rtp_rtcp/source/rtp_header_extensions.cc
+++ b/modules/rtp_rtcp/source/rtp_header_extensions.cc
@@ -16,6 +16,7 @@
#include <cstdint>
#include <limits>
+#include "absl/strings/string_view.h"
#include "modules/rtp_rtcp/include/rtp_cvo.h"
#include "modules/rtp_rtcp/source/byte_io.h"
// TODO(bug:9855) Move kNoSpatialIdx from vp9_globals.h to common_constants
@@ -800,7 +801,7 @@
}
bool BaseRtpStringExtension::Write(rtc::ArrayView<uint8_t> data,
- const std::string& str) {
+ absl::string_view str) {
if (str.size() > kMaxValueSizeBytes) {
return false;
}
diff --git a/modules/rtp_rtcp/source/rtp_header_extensions.h b/modules/rtp_rtcp/source/rtp_header_extensions.h
index ffbdafd..0579417 100644
--- a/modules/rtp_rtcp/source/rtp_header_extensions.h
+++ b/modules/rtp_rtcp/source/rtp_header_extensions.h
@@ -297,8 +297,8 @@
static constexpr uint8_t kMaxValueSizeBytes = 16;
static bool Parse(rtc::ArrayView<const uint8_t> data, std::string* str);
- static size_t ValueSize(const std::string& str) { return str.size(); }
- static bool Write(rtc::ArrayView<uint8_t> data, const std::string& str);
+ static size_t ValueSize(absl::string_view str) { return str.size(); }
+ static bool Write(rtc::ArrayView<uint8_t> data, absl::string_view str);
};
class RtpStreamId : public BaseRtpStringExtension {
diff --git a/modules/rtp_rtcp/source/rtp_rtcp_impl.cc b/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
index a98dab3..c34cf9b 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
+++ b/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
@@ -19,6 +19,7 @@
#include <string>
#include <utility>
+#include "absl/strings/string_view.h"
#include "api/transport/field_trial_based_config.h"
#include "modules/rtp_rtcp/source/rtcp_packet/dlrr.h"
#include "modules/rtp_rtcp/source/rtcp_sender.h"
@@ -291,13 +292,13 @@
return state;
}
-void ModuleRtpRtcpImpl::SetRid(const std::string& rid) {
+void ModuleRtpRtcpImpl::SetRid(absl::string_view rid) {
if (rtp_sender_) {
rtp_sender_->packet_generator.SetRid(rid);
}
}
-void ModuleRtpRtcpImpl::SetMid(const std::string& mid) {
+void ModuleRtpRtcpImpl::SetMid(absl::string_view mid) {
if (rtp_sender_) {
rtp_sender_->packet_generator.SetMid(mid);
}
@@ -517,7 +518,7 @@
rtcp_sender_.SetRTCPStatus(method);
}
-int32_t ModuleRtpRtcpImpl::SetCNAME(const char* c_name) {
+int32_t ModuleRtpRtcpImpl::SetCNAME(absl::string_view c_name) {
return rtcp_sender_.SetCNAME(c_name);
}
diff --git a/modules/rtp_rtcp/source/rtp_rtcp_impl.h b/modules/rtp_rtcp/source/rtp_rtcp_impl.h
index 499573c..1750e3d 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_impl.h
+++ b/modules/rtp_rtcp/source/rtp_rtcp_impl.h
@@ -19,6 +19,7 @@
#include <string>
#include <vector>
+#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
#include "api/rtp_headers.h"
#include "api/video/video_bitrate_allocation.h"
@@ -101,9 +102,9 @@
uint32_t SSRC() const override { return rtcp_sender_.SSRC(); }
- void SetRid(const std::string& rid) override;
+ void SetRid(absl::string_view rid) override;
- void SetMid(const std::string& mid) override;
+ void SetMid(absl::string_view mid) override;
void SetCsrcs(const std::vector<uint32_t>& csrcs) override;
@@ -167,7 +168,7 @@
void SetRTCPStatus(RtcpMode method) override;
// Set RTCP CName.
- int32_t SetCNAME(const char* c_name) override;
+ int32_t SetCNAME(absl::string_view c_name) override;
// Get remote NTP.
int32_t RemoteNTP(uint32_t* received_ntp_secs,
diff --git a/modules/rtp_rtcp/source/rtp_rtcp_impl2.cc b/modules/rtp_rtcp/source/rtp_rtcp_impl2.cc
index 06fbbe0..9195429 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_impl2.cc
+++ b/modules/rtp_rtcp/source/rtp_rtcp_impl2.cc
@@ -19,6 +19,7 @@
#include <string>
#include <utility>
+#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
#include "api/sequence_checker.h"
#include "api/transport/field_trial_based_config.h"
@@ -227,13 +228,13 @@
return rtcp_receiver_.local_media_ssrc();
}
-void ModuleRtpRtcpImpl2::SetRid(const std::string& rid) {
+void ModuleRtpRtcpImpl2::SetRid(absl::string_view rid) {
if (rtp_sender_) {
rtp_sender_->packet_generator.SetRid(rid);
}
}
-void ModuleRtpRtcpImpl2::SetMid(const std::string& mid) {
+void ModuleRtpRtcpImpl2::SetMid(absl::string_view mid) {
if (rtp_sender_) {
rtp_sender_->packet_generator.SetMid(mid);
}
@@ -463,7 +464,7 @@
rtcp_sender_.SetRTCPStatus(method);
}
-int32_t ModuleRtpRtcpImpl2::SetCNAME(const char* c_name) {
+int32_t ModuleRtpRtcpImpl2::SetCNAME(absl::string_view c_name) {
return rtcp_sender_.SetCNAME(c_name);
}
diff --git a/modules/rtp_rtcp/source/rtp_rtcp_impl2.h b/modules/rtp_rtcp/source/rtp_rtcp_impl2.h
index 535907f..2b1fd2e 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_impl2.h
+++ b/modules/rtp_rtcp/source/rtp_rtcp_impl2.h
@@ -19,6 +19,7 @@
#include <string>
#include <vector>
+#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
#include "api/rtp_headers.h"
#include "api/sequence_checker.h"
@@ -113,9 +114,9 @@
// RtpRtcpInterface::Configuration::local_media_ssrc.
uint32_t local_media_ssrc() const;
- void SetRid(const std::string& rid) override;
+ void SetRid(absl::string_view rid) override;
- void SetMid(const std::string& mid) override;
+ void SetMid(absl::string_view mid) override;
void SetCsrcs(const std::vector<uint32_t>& csrcs) override;
@@ -179,7 +180,7 @@
void SetRTCPStatus(RtcpMode method) override;
// Set RTCP CName.
- int32_t SetCNAME(const char* c_name) override;
+ int32_t SetCNAME(absl::string_view c_name) override;
// Get remote NTP.
int32_t RemoteNTP(uint32_t* received_ntp_secs,
diff --git a/modules/rtp_rtcp/source/rtp_rtcp_interface.h b/modules/rtp_rtcp/source/rtp_rtcp_interface.h
index 48c6071..2c30318 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_interface.h
+++ b/modules/rtp_rtcp/source/rtp_rtcp_interface.h
@@ -15,6 +15,7 @@
#include <string>
#include <vector>
+#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
#include "api/field_trials_view.h"
#include "api/frame_transformer_interface.h"
@@ -255,12 +256,12 @@
// RIDs are used to identify an RTP stream if SSRCs are not negotiated.
// If the RID and Repaired RID extensions are not registered, the RID will
// not be sent.
- virtual void SetRid(const std::string& rid) = 0;
+ virtual void SetRid(absl::string_view rid) = 0;
// Sets the value for sending in the MID RTP header extension.
// The MID RTP header extension should be registered for this to do anything.
// Once set, this value can not be changed or removed.
- virtual void SetMid(const std::string& mid) = 0;
+ virtual void SetMid(absl::string_view mid) = 0;
// Sets CSRC.
// `csrcs` - vector of CSRCs
@@ -373,7 +374,7 @@
// Sets RTCP CName (i.e unique identifier).
// Returns -1 on failure else 0.
- virtual int32_t SetCNAME(const char* cname) = 0;
+ virtual int32_t SetCNAME(absl::string_view cname) = 0;
// Returns remote NTP.
// Returns -1 on failure else 0.
diff --git a/modules/rtp_rtcp/source/rtp_sender.cc b/modules/rtp_rtcp/source/rtp_sender.cc
index 1c3cb28..d42c708 100644
--- a/modules/rtp_rtcp/source/rtp_sender.cc
+++ b/modules/rtp_rtcp/source/rtp_sender.cc
@@ -17,6 +17,7 @@
#include <utility>
#include "absl/strings/match.h"
+#include "absl/strings/string_view.h"
#include "api/array_view.h"
#include "api/rtc_event_log/rtc_event_log.h"
#include "logging/rtc_event_log/events/rtc_event_rtp_packet_outgoing.h"
@@ -583,19 +584,19 @@
return timestamp_offset_;
}
-void RTPSender::SetRid(const std::string& rid) {
+void RTPSender::SetRid(absl::string_view rid) {
// RID is used in simulcast scenario when multiple layers share the same mid.
MutexLock lock(&send_mutex_);
RTC_DCHECK_LE(rid.length(), RtpStreamId::kMaxValueSizeBytes);
- rid_ = rid;
+ rid_ = std::string(rid);
UpdateHeaderSizes();
}
-void RTPSender::SetMid(const std::string& mid) {
+void RTPSender::SetMid(absl::string_view mid) {
// This is configured via the API.
MutexLock lock(&send_mutex_);
RTC_DCHECK_LE(mid.length(), RtpMid::kMaxValueSizeBytes);
- mid_ = mid;
+ mid_ = std::string(mid);
UpdateHeaderSizes();
}
diff --git a/modules/rtp_rtcp/source/rtp_sender.h b/modules/rtp_rtcp/source/rtp_sender.h
index cb2c99e..a212fd8 100644
--- a/modules/rtp_rtcp/source/rtp_sender.h
+++ b/modules/rtp_rtcp/source/rtp_sender.h
@@ -58,9 +58,9 @@
uint32_t TimestampOffset() const RTC_LOCKS_EXCLUDED(send_mutex_);
void SetTimestampOffset(uint32_t timestamp) RTC_LOCKS_EXCLUDED(send_mutex_);
- void SetRid(const std::string& rid) RTC_LOCKS_EXCLUDED(send_mutex_);
+ void SetRid(absl::string_view rid) RTC_LOCKS_EXCLUDED(send_mutex_);
- void SetMid(const std::string& mid) RTC_LOCKS_EXCLUDED(send_mutex_);
+ void SetMid(absl::string_view mid) RTC_LOCKS_EXCLUDED(send_mutex_);
uint16_t SequenceNumber() const RTC_LOCKS_EXCLUDED(send_mutex_);
void SetSequenceNumber(uint16_t seq) RTC_LOCKS_EXCLUDED(send_mutex_);
diff --git a/modules/rtp_rtcp/source/rtp_sender_unittest.cc b/modules/rtp_rtcp/source/rtp_sender_unittest.cc
index 6eba477..a9b5dec 100644
--- a/modules/rtp_rtcp/source/rtp_sender_unittest.cc
+++ b/modules/rtp_rtcp/source/rtp_sender_unittest.cc
@@ -13,6 +13,7 @@
#include <memory>
#include <vector>
+#include "absl/strings/string_view.h"
#include "api/rtc_event_log/rtc_event.h"
#include "api/transport/field_trial_based_config.h"
#include "api/video/video_codec_constants.h"
@@ -266,14 +267,14 @@
// Enable sending of the MID header extension for both the primary SSRC and
// the RTX SSRC.
- void EnableMidSending(const std::string& mid) {
+ void EnableMidSending(absl::string_view mid) {
rtp_sender_->RegisterRtpHeaderExtension(RtpMid::Uri(), kMidExtensionId);
rtp_sender_->SetMid(mid);
}
// Enable sending of the RSID header extension for the primary SSRC and the
// RRSID header extension for the RTX SSRC.
- void EnableRidSending(const std::string& rid) {
+ void EnableRidSending(absl::string_view rid) {
rtp_sender_->RegisterRtpHeaderExtension(RtpStreamId::Uri(),
kRidExtensionId);
rtp_sender_->RegisterRtpHeaderExtension(RepairedRtpStreamId::Uri(),