in RtpExtension constructors pass strings by string_view rather than by value

To allow construct that object from an existent string_view without explicit conversion

Bug: webrtc:11428
Change-Id: I38d93573be72e307bdf7068a6300d10cf46d2d62
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/171689
Reviewed-by: Markus Handell <handellm@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30904}
diff --git a/api/rtp_parameters.cc b/api/rtp_parameters.cc
index 4b300a7..16b053e 100644
--- a/api/rtp_parameters.cc
+++ b/api/rtp_parameters.cc
@@ -32,23 +32,24 @@
 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(
-    std::string uri,
+    absl::string_view uri)
+    : uri(uri) {}
+RtpHeaderExtensionCapability::RtpHeaderExtensionCapability(
+    absl::string_view uri,
+    int preferred_id)
+    : uri(uri), preferred_id(preferred_id) {}
+RtpHeaderExtensionCapability::RtpHeaderExtensionCapability(
+    absl::string_view uri,
     int preferred_id,
     RtpTransceiverDirection direction)
-    : uri(std::move(uri)), preferred_id(preferred_id), direction(direction) {}
+    : uri(uri), preferred_id(preferred_id), direction(direction) {}
 RtpHeaderExtensionCapability::~RtpHeaderExtensionCapability() = default;
 
 RtpExtension::RtpExtension() = default;
-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(absl::string_view uri, int id) : uri(uri), id(id) {}
+RtpExtension::RtpExtension(absl::string_view uri, int id, bool encrypt)
+    : uri(uri), id(id), encrypt(encrypt) {}
 RtpExtension::~RtpExtension() = default;
 
 RtpFecParameters::RtpFecParameters() = default;
diff --git a/api/rtp_parameters.h b/api/rtp_parameters.h
index 4462447..5435922 100644
--- a/api/rtp_parameters.h
+++ b/api/rtp_parameters.h
@@ -232,9 +232,9 @@
 
   // Constructors for convenience.
   RtpHeaderExtensionCapability();
-  explicit RtpHeaderExtensionCapability(std::string uri);
-  RtpHeaderExtensionCapability(std::string uri, int preferred_id);
-  RtpHeaderExtensionCapability(std::string uri,
+  explicit RtpHeaderExtensionCapability(absl::string_view uri);
+  RtpHeaderExtensionCapability(absl::string_view uri, int preferred_id);
+  RtpHeaderExtensionCapability(absl::string_view uri,
                                int preferred_id,
                                RtpTransceiverDirection direction);
   ~RtpHeaderExtensionCapability();
@@ -251,8 +251,8 @@
 // RTP header extension, see RFC8285.
 struct RTC_EXPORT RtpExtension {
   RtpExtension();
-  RtpExtension(std::string uri, int id);
-  RtpExtension(std::string uri, int id, bool encrypt);
+  RtpExtension(absl::string_view uri, int id);
+  RtpExtension(absl::string_view uri, int id, bool encrypt);
   ~RtpExtension();
 
   std::string ToString() const;