RtpParameters: respect https://abseil.io/tips/1.
This CL replaces a few usages of const std::string& with
absl::string_view, to comply closer with
https://abseil.io/tips/1.
Bug: webrtc:11428
Change-Id: Ibf6fac9b084cb21e17db63f73d667793ab9cafeb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170466
Commit-Queue: Markus Handell <handellm@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30845}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index 8489065..6e53178 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -317,6 +317,7 @@
"../rtc_base:checks",
"../rtc_base:stringutils",
"../rtc_base/system:rtc_export",
+ "//third_party/abseil-cpp/absl/strings",
"//third_party/abseil-cpp/absl/types:optional",
]
}
diff --git a/api/rtp_parameters.cc b/api/rtp_parameters.cc
index 9affafb..d0040a5 100644
--- a/api/rtp_parameters.cc
+++ b/api/rtp_parameters.cc
@@ -11,6 +11,7 @@
#include <algorithm>
#include <string>
+#include <utility>
#include "api/array_view.h"
#include "rtc_base/strings/string_builder.h"
@@ -31,24 +32,23 @@
RtpCodecCapability::~RtpCodecCapability() = default;
RtpHeaderExtensionCapability::RtpHeaderExtensionCapability() = default;
+RtpHeaderExtensionCapability::RtpHeaderExtensionCapability(std::string uri)
+ : uri(std::move(uri)) {}
+RtpHeaderExtensionCapability::RtpHeaderExtensionCapability(std::string uri,
+ int preferred_id)
+ : uri(std::move(uri)), preferred_id(preferred_id) {}
RtpHeaderExtensionCapability::RtpHeaderExtensionCapability(
- const std::string& uri)
- : uri(uri) {}
-RtpHeaderExtensionCapability::RtpHeaderExtensionCapability(
- const std::string& uri,
- int preferred_id)
- : uri(uri), preferred_id(preferred_id) {}
-RtpHeaderExtensionCapability::RtpHeaderExtensionCapability(
- const std::string& uri,
+ std::string uri,
int preferred_id,
RtpTransceiverDirection direction)
- : uri(uri), preferred_id(preferred_id), direction(direction) {}
+ : uri(std::move(uri)), preferred_id(preferred_id), direction(direction) {}
RtpHeaderExtensionCapability::~RtpHeaderExtensionCapability() = default;
RtpExtension::RtpExtension() = default;
-RtpExtension::RtpExtension(const std::string& uri, int id) : uri(uri), id(id) {}
-RtpExtension::RtpExtension(const std::string& uri, int id, bool encrypt)
- : uri(uri), id(id), encrypt(encrypt) {}
+RtpExtension::RtpExtension(std::string uri, int id)
+ : uri(std::move(uri)), id(id) {}
+RtpExtension::RtpExtension(std::string uri, int id, bool encrypt)
+ : uri(std::move(uri)), id(id), encrypt(encrypt) {}
RtpExtension::~RtpExtension() = default;
RtpFecParameters::RtpFecParameters() = default;
@@ -161,7 +161,7 @@
constexpr int RtpExtension::kOneByteHeaderExtensionMaxId;
constexpr int RtpExtension::kOneByteHeaderExtensionMaxValueSize;
-bool RtpExtension::IsSupportedForAudio(const std::string& uri) {
+bool RtpExtension::IsSupportedForAudio(absl::string_view uri) {
return uri == webrtc::RtpExtension::kAudioLevelUri ||
uri == webrtc::RtpExtension::kAbsSendTimeUri ||
uri == webrtc::RtpExtension::kAbsoluteCaptureTimeUri ||
@@ -172,7 +172,7 @@
uri == webrtc::RtpExtension::kRepairedRidUri;
}
-bool RtpExtension::IsSupportedForVideo(const std::string& uri) {
+bool RtpExtension::IsSupportedForVideo(absl::string_view uri) {
return uri == webrtc::RtpExtension::kTimestampOffsetUri ||
uri == webrtc::RtpExtension::kAbsSendTimeUri ||
uri == webrtc::RtpExtension::kAbsoluteCaptureTimeUri ||
@@ -192,7 +192,7 @@
uri == webrtc::RtpExtension::kRepairedRidUri;
}
-bool RtpExtension::IsEncryptionSupported(const std::string& uri) {
+bool RtpExtension::IsEncryptionSupported(absl::string_view uri) {
return uri == webrtc::RtpExtension::kAudioLevelUri ||
uri == webrtc::RtpExtension::kTimestampOffsetUri ||
#if !defined(ENABLE_EXTERNAL_AUTH)
@@ -216,7 +216,7 @@
const RtpExtension* RtpExtension::FindHeaderExtensionByUri(
const std::vector<RtpExtension>& extensions,
- const std::string& uri) {
+ absl::string_view uri) {
for (const auto& extension : extensions) {
if (extension.uri == uri) {
return &extension;
diff --git a/api/rtp_parameters.h b/api/rtp_parameters.h
index ee51b01..cd7f029 100644
--- a/api/rtp_parameters.h
+++ b/api/rtp_parameters.h
@@ -17,6 +17,7 @@
#include <string>
#include <vector>
+#include "absl/strings/string_view.h"
#include "absl/types/optional.h"
#include "api/media_types.h"
#include "api/rtp_transceiver_direction.h"
@@ -230,9 +231,9 @@
// Constructors for convenience.
RtpHeaderExtensionCapability();
- explicit RtpHeaderExtensionCapability(const std::string& uri);
- RtpHeaderExtensionCapability(const std::string& uri, int preferred_id);
- RtpHeaderExtensionCapability(const std::string& uri,
+ explicit RtpHeaderExtensionCapability(std::string uri);
+ RtpHeaderExtensionCapability(std::string uri, int preferred_id);
+ RtpHeaderExtensionCapability(std::string uri,
int preferred_id,
RtpTransceiverDirection direction);
~RtpHeaderExtensionCapability();
@@ -249,23 +250,23 @@
// RTP header extension, see RFC8285.
struct RTC_EXPORT RtpExtension {
RtpExtension();
- RtpExtension(const std::string& uri, int id);
- RtpExtension(const std::string& uri, int id, bool encrypt);
+ RtpExtension(std::string uri, int id);
+ RtpExtension(std::string uri, int id, bool encrypt);
~RtpExtension();
std::string ToString() const;
bool operator==(const RtpExtension& rhs) const {
return uri == rhs.uri && id == rhs.id && encrypt == rhs.encrypt;
}
- static bool IsSupportedForAudio(const std::string& uri);
- static bool IsSupportedForVideo(const std::string& uri);
+ static bool IsSupportedForAudio(absl::string_view uri);
+ static bool IsSupportedForVideo(absl::string_view uri);
// Return "true" if the given RTP header extension URI may be encrypted.
- static bool IsEncryptionSupported(const std::string& uri);
+ static bool IsEncryptionSupported(absl::string_view uri);
// Returns the named header extension if found among all extensions,
// nullptr otherwise.
static const RtpExtension* FindHeaderExtensionByUri(
const std::vector<RtpExtension>& extensions,
- const std::string& uri);
+ absl::string_view uri);
// Return a list of RTP header extensions with the non-encrypted extensions
// removed if both the encrypted and non-encrypted extension is present for
diff --git a/media/engine/webrtc_media_engine.cc b/media/engine/webrtc_media_engine.cc
index 751b729..b026b9d 100644
--- a/media/engine/webrtc_media_engine.cc
+++ b/media/engine/webrtc_media_engine.cc
@@ -86,7 +86,7 @@
std::vector<webrtc::RtpExtension> FilterRtpExtensions(
const std::vector<webrtc::RtpExtension>& extensions,
- bool (*supported)(const std::string&),
+ bool (*supported)(absl::string_view),
bool filter_redundant_extensions) {
RTC_DCHECK(ValidateRtpExtensions(extensions));
RTC_DCHECK(supported);
diff --git a/media/engine/webrtc_media_engine.h b/media/engine/webrtc_media_engine.h
index 0bd2ad5..dbb2a5f 100644
--- a/media/engine/webrtc_media_engine.h
+++ b/media/engine/webrtc_media_engine.h
@@ -65,7 +65,7 @@
// mutually exclusive extensions (see implementation for details) are removed.
std::vector<webrtc::RtpExtension> FilterRtpExtensions(
const std::vector<webrtc::RtpExtension>& extensions,
- bool (*supported)(const std::string&),
+ bool (*supported)(absl::string_view),
bool filter_redundant_extensions);
webrtc::BitrateConstraints GetBitrateConfigForCodec(const Codec& codec);
diff --git a/media/engine/webrtc_media_engine_unittest.cc b/media/engine/webrtc_media_engine_unittest.cc
index 461effc..005a2d4 100644
--- a/media/engine/webrtc_media_engine_unittest.cc
+++ b/media/engine/webrtc_media_engine_unittest.cc
@@ -45,11 +45,11 @@
return result;
}
-bool SupportedExtensions1(const std::string& name) {
+bool SupportedExtensions1(absl::string_view name) {
return name == "c" || name == "i";
}
-bool SupportedExtensions2(const std::string& name) {
+bool SupportedExtensions2(absl::string_view name) {
return name != "a" && name != "n";
}