Code cleanup: Make JsepSessionDescription::Initialize take std::unique_ptr
Bug: none
Change-Id: I5e03ff6a6f16bd2e67fa4830e218b510b702d1d4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132321
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27577}
diff --git a/api/jsep_session_description.h b/api/jsep_session_description.h
index 75ae0cd..2797c88 100644
--- a/api/jsep_session_description.h
+++ b/api/jsep_session_description.h
@@ -44,8 +44,10 @@
virtual ~JsepSessionDescription();
// Takes ownership of |description|.
- // TODO(deadbeef): Make this use an std::unique_ptr<>, so ownership logic is
- // more clear.
+ bool Initialize(std::unique_ptr<cricket::SessionDescription> description,
+ const std::string& session_id,
+ const std::string& session_version);
+ // Backwards compatible version. To be deprecated.
bool Initialize(cricket::SessionDescription* description,
const std::string& session_id,
const std::string& session_version);
diff --git a/pc/jsep_session_description.cc b/pc/jsep_session_description.cc
index 88db174..90b12a4 100644
--- a/pc/jsep_session_description.cc
+++ b/pc/jsep_session_description.cc
@@ -150,7 +150,7 @@
std::unique_ptr<cricket::SessionDescription> description) {
auto jsep_description = absl::make_unique<JsepSessionDescription>(type);
bool initialize_success = jsep_description->Initialize(
- description.release(), session_id, session_version);
+ std::move(description), session_id, session_version);
RTC_DCHECK(initialize_success);
return std::move(jsep_description);
}
@@ -185,7 +185,7 @@
JsepSessionDescription::~JsepSessionDescription() {}
bool JsepSessionDescription::Initialize(
- cricket::SessionDescription* description,
+ std::unique_ptr<cricket::SessionDescription> description,
const std::string& session_id,
const std::string& session_version) {
if (!description)
@@ -193,11 +193,18 @@
session_id_ = session_id;
session_version_ = session_version;
- description_.reset(description);
+ description_ = std::move(description);
candidate_collection_.resize(number_of_mediasections());
return true;
}
+bool JsepSessionDescription::Initialize(
+ cricket::SessionDescription* description,
+ const std::string& session_id,
+ const std::string& session_version) {
+ return Initialize(absl::WrapUnique(description), session_id, session_version);
+}
+
bool JsepSessionDescription::AddCandidate(
const IceCandidateInterface* candidate) {
if (!candidate || candidate->sdp_mline_index() < 0)
diff --git a/pc/jsep_session_description_unittest.cc b/pc/jsep_session_description_unittest.cc
index 674b6e7..aca9dd8 100644
--- a/pc/jsep_session_description_unittest.cc
+++ b/pc/jsep_session_description_unittest.cc
@@ -53,15 +53,14 @@
// This creates a session description with both audio and video media contents.
// In SDP this is described by two m lines, one audio and one video.
-static cricket::SessionDescription* CreateCricketSessionDescription() {
- cricket::SessionDescription* desc(new cricket::SessionDescription());
- // AudioContentDescription
- std::unique_ptr<cricket::AudioContentDescription> audio(
- new cricket::AudioContentDescription());
+static std::unique_ptr<cricket::SessionDescription>
+CreateCricketSessionDescription() {
+ auto desc = absl::make_unique<cricket::SessionDescription>();
+ // AudioContentDescription
+ auto audio = absl::make_unique<cricket::AudioContentDescription>();
// VideoContentDescription
- std::unique_ptr<cricket::VideoContentDescription> video(
- new cricket::VideoContentDescription());
+ auto video = absl::make_unique<cricket::VideoContentDescription>();
audio->AddCodec(cricket::AudioCodec(103, "ISAC", 16000, 0, 0));
desc->AddContent(cricket::CN_AUDIO, MediaProtocolType::kRtp, audio.release());
diff --git a/pc/jsep_transport_controller_unittest.cc b/pc/jsep_transport_controller_unittest.cc
index b18f85a..e81b667 100644
--- a/pc/jsep_transport_controller_unittest.cc
+++ b/pc/jsep_transport_controller_unittest.cc
@@ -2089,13 +2089,13 @@
.ok());
std::unique_ptr<cricket::SessionDescription> remote_answer(
- local_offer->Copy());
+ local_offer->Clone());
EXPECT_TRUE(transport_controller_
->SetRemoteDescription(SdpType::kAnswer, remote_answer.get())
.ok());
std::unique_ptr<cricket::SessionDescription> local_reoffer(
- local_offer->Copy());
+ local_offer->Clone());
local_reoffer->contents()[0].rejected = true;
AddVideoSection(local_reoffer.get(), kVideoMid1, kIceUfrag1, kIcePwd1,
cricket::ICEMODE_FULL, cricket::CONNECTIONROLE_ACTPASS,
@@ -2110,7 +2110,7 @@
.ok());
std::unique_ptr<cricket::SessionDescription> remote_reanswer(
- local_reoffer->Copy());
+ local_reoffer->Clone());
EXPECT_TRUE(
transport_controller_
->SetRemoteDescription(SdpType::kAnswer, remote_reanswer.get())
diff --git a/pc/media_session_unittest.cc b/pc/media_session_unittest.cc
index efd2318..1136607 100644
--- a/pc/media_session_unittest.cc
+++ b/pc/media_session_unittest.cc
@@ -3191,7 +3191,7 @@
vcd->AddLegacyStream(2);
source.AddContent(cricket::CN_VIDEO, MediaProtocolType::kRtp, vcd);
- std::unique_ptr<SessionDescription> copy(source.Copy());
+ std::unique_ptr<SessionDescription> copy = source.Clone();
ASSERT_TRUE(copy.get() != NULL);
EXPECT_TRUE(copy->HasGroup(cricket::CN_AUDIO));
const ContentInfo* ac = copy->GetContentByName("audio");
diff --git a/pc/peer_connection_interface_unittest.cc b/pc/peer_connection_interface_unittest.cc
index 21f6a05..e69fc96 100644
--- a/pc/peer_connection_interface_unittest.cc
+++ b/pc/peer_connection_interface_unittest.cc
@@ -3175,8 +3175,7 @@
std::unique_ptr<SessionDescriptionInterface> modified_offer =
webrtc::CreateSessionDescription(
webrtc::SdpType::kOffer, offer->session_id(),
- offer->session_version(),
- absl::WrapUnique(offer->description()->Copy()));
+ offer->session_version(), offer->description()->Clone());
EXPECT_TRUE(DoSetLocalDescription(std::move(offer)));
auto senders = pc_->GetSenders();
diff --git a/pc/sdp_utils.cc b/pc/sdp_utils.cc
index 6a899af..e6cd07f 100644
--- a/pc/sdp_utils.cc
+++ b/pc/sdp_utils.cc
@@ -29,7 +29,7 @@
SdpType type) {
RTC_DCHECK(sdesc);
auto clone = absl::make_unique<JsepSessionDescription>(type);
- clone->Initialize(sdesc->description()->Copy(), sdesc->session_id(),
+ clone->Initialize(sdesc->description()->Clone(), sdesc->session_id(),
sdesc->session_version());
// As of writing, our version of GCC does not allow returning a unique_ptr of
// a subclass as a unique_ptr of a base class. To get around this, we need to
diff --git a/pc/session_description.cc b/pc/session_description.cc
index a081f8a..d4ccb50 100644
--- a/pc/session_description.cc
+++ b/pc/session_description.cc
@@ -10,9 +10,11 @@
#include "pc/session_description.h"
+#include <algorithm>
#include <utility>
#include "absl/algorithm/container.h"
+#include "absl/memory/memory.h"
#include "rtc_base/checks.h"
namespace cricket {
@@ -94,8 +96,9 @@
}
}
-SessionDescription* SessionDescription::Copy() const {
- SessionDescription* copy = new SessionDescription(*this);
+std::unique_ptr<SessionDescription> SessionDescription::Clone() const {
+ // Copy the non-special portions using the private copy constructor.
+ auto copy = absl::WrapUnique(new SessionDescription(*this));
// Copy all ContentDescriptions.
for (ContentInfos::iterator content = copy->contents_.begin();
content != copy->contents().end(); ++content) {
@@ -104,6 +107,10 @@
return copy;
}
+SessionDescription* SessionDescription::Copy() const {
+ return Clone().release();
+}
+
const ContentInfo* SessionDescription::GetContentByName(
const std::string& name) const {
return FindContentInfoByName(contents_, name);
diff --git a/pc/session_description.h b/pc/session_description.h
index 4156683..7b70ddf 100644
--- a/pc/session_description.h
+++ b/pc/session_description.h
@@ -14,6 +14,7 @@
#include <stddef.h>
#include <stdint.h>
#include <iosfwd>
+#include <memory>
#include <string>
#include <vector>
@@ -421,6 +422,8 @@
SessionDescription();
~SessionDescription();
+ std::unique_ptr<SessionDescription> Clone() const;
+ // Older API - to be deprecated. Still expects caller to take ownership.
SessionDescription* Copy() const;
struct MediaTransportSetting;
diff --git a/pc/webrtc_sdp.cc b/pc/webrtc_sdp.cc
index a119503..b524a75 100644
--- a/pc/webrtc_sdp.cc
+++ b/pc/webrtc_sdp.cc
@@ -998,7 +998,7 @@
return false;
}
- jdesc->Initialize(desc.release(), session_id, session_version);
+ jdesc->Initialize(std::move(desc), session_id, session_version);
for (const auto& candidate : candidates) {
jdesc->AddCandidate(candidate.get());
diff --git a/pc/webrtc_sdp_unittest.cc b/pc/webrtc_sdp_unittest.cc
index 1fa7ba4..3de2b60 100644
--- a/pc/webrtc_sdp_unittest.cc
+++ b/pc/webrtc_sdp_unittest.cc
@@ -10,6 +10,7 @@
#include <stdio.h>
#include <string.h>
+#include <algorithm>
#include <cstdint>
#include <map>
#include <memory>
@@ -1130,7 +1131,7 @@
new JsepIceCandidate(std::string("audio_content_name"), 0, candidate1));
// Set up JsepSessionDescription.
- jdesc_.Initialize(desc_.Copy(), kSessionId, kSessionVersion);
+ jdesc_.Initialize(desc_.Clone(), kSessionId, kSessionVersion);
std::string mline_id;
int mline_index = 0;
for (size_t i = 0; i < candidates_.size(); ++i) {
@@ -1178,7 +1179,7 @@
group.AddContentName(kVideoContentName);
desc_.AddGroup(group);
- ASSERT_TRUE(jdesc_.Initialize(desc_.Copy(), jdesc_.session_id(),
+ ASSERT_TRUE(jdesc_.Initialize(desc_.Clone(), jdesc_.session_id(),
jdesc_.session_version()));
}
@@ -1214,7 +1215,7 @@
desc_.AddContent(kAudioContentName, MediaProtocolType::kRtp, audio_desc_);
desc_.AddContent(kVideoContentName, MediaProtocolType::kRtp, video_desc_);
- ASSERT_TRUE(jdesc_.Initialize(desc_.Copy(), jdesc_.session_id(),
+ ASSERT_TRUE(jdesc_.Initialize(desc_.Clone(), jdesc_.session_id(),
jdesc_.session_version()));
}
@@ -1263,7 +1264,7 @@
kVideoContentName3, TransportDescription(kUfragVideo3, kPwdVideo3)));
desc_.set_msid_signaling(cricket::kMsidSignalingMediaSection);
- ASSERT_TRUE(jdesc_.Initialize(desc_.Copy(), jdesc_.session_id(),
+ ASSERT_TRUE(jdesc_.Initialize(desc_.Clone(), jdesc_.session_id(),
jdesc_.session_version()));
}
@@ -1318,7 +1319,7 @@
desc_.AddTransportInfo(TransportInfo(
kAudioContentName3, TransportDescription(kUfragVoice3, kPwdVoice3)));
desc_.set_msid_signaling(msid_signaling);
- ASSERT_TRUE(jdesc_.Initialize(desc_.Copy(), jdesc_.session_id(),
+ ASSERT_TRUE(jdesc_.Initialize(desc_.Clone(), jdesc_.session_id(),
jdesc_.session_version()));
}
@@ -1340,7 +1341,7 @@
// Enable signaling a=msid lines.
desc_.set_msid_signaling(cricket::kMsidSignalingMediaSection);
- ASSERT_TRUE(jdesc_.Initialize(desc_.Copy(), jdesc_.session_id(),
+ ASSERT_TRUE(jdesc_.Initialize(desc_.Clone(), jdesc_.session_id(),
jdesc_.session_version()));
}
@@ -1724,7 +1725,7 @@
std::string new_sdp = kSdpFullString;
ReplaceDirection(direction, &new_sdp);
- if (!jdesc_.Initialize(desc_.Copy(), jdesc_.session_id(),
+ if (!jdesc_.Initialize(desc_.Clone(), jdesc_.session_id(),
jdesc_.session_version())) {
return false;
}
@@ -1802,7 +1803,7 @@
audio_desc_->set_direction(direction);
video_desc_->set_direction(direction);
- if (!jdesc_.Initialize(desc_.Copy(), jdesc_.session_id(),
+ if (!jdesc_.Initialize(desc_.Clone(), jdesc_.session_id(),
jdesc_.session_version())) {
return false;
}
@@ -1829,7 +1830,7 @@
SetIceUfragPwd(kVideoContentName, video_rejected ? "" : kUfragVideo,
video_rejected ? "" : kPwdVideo);
JsepSessionDescription jdesc_no_candidates(kDummyType);
- if (!jdesc_no_candidates.Initialize(desc_.Copy(), jdesc_.session_id(),
+ if (!jdesc_no_candidates.Initialize(desc_.Clone(), jdesc_.session_id(),
jdesc_.session_version())) {
return false;
}
@@ -1842,7 +1843,7 @@
bool encrypted) {
AddExtmap(encrypted);
JsepSessionDescription new_jdesc(SdpType::kOffer);
- ASSERT_TRUE(new_jdesc.Initialize(desc_.Copy(), jdesc_.session_id(),
+ ASSERT_TRUE(new_jdesc.Initialize(desc_.Clone(), jdesc_.session_id(),
jdesc_.session_version()));
JsepSessionDescription jdesc_with_extmap(SdpType::kOffer);
std::string sdp_with_extmap = kSdpString;
@@ -2035,7 +2036,7 @@
rtc::SocketAddress video_addr("0.0.0.0", 9);
audio_desc_->set_connection_address(audio_addr);
video_desc_->set_connection_address(video_addr);
- ASSERT_TRUE(jdesc->Initialize(desc_.Copy(), kSessionId, kSessionVersion));
+ ASSERT_TRUE(jdesc->Initialize(desc_.Clone(), kSessionId, kSessionVersion));
}
protected:
@@ -2119,7 +2120,7 @@
group.AddContentName(kAudioContentName);
group.AddContentName(kVideoContentName);
desc_.AddGroup(group);
- ASSERT_TRUE(jdesc_.Initialize(desc_.Copy(), jdesc_.session_id(),
+ ASSERT_TRUE(jdesc_.Initialize(desc_.Clone(), jdesc_.session_id(),
jdesc_.session_version()));
std::string message = webrtc::SdpSerialize(jdesc_);
std::string sdp_with_bundle = kSdpFullString;
@@ -2134,7 +2135,7 @@
vcd->set_bandwidth(100 * 1000);
AudioContentDescription* acd = GetFirstAudioContentDescription(&desc_);
acd->set_bandwidth(50 * 1000);
- ASSERT_TRUE(jdesc_.Initialize(desc_.Copy(), jdesc_.session_id(),
+ ASSERT_TRUE(jdesc_.Initialize(desc_.Clone(), jdesc_.session_id(),
jdesc_.session_version()));
std::string message = webrtc::SdpSerialize(jdesc_);
std::string sdp_with_bandwidth = kSdpFullString;
@@ -2154,7 +2155,7 @@
transport_options.push_back(kIceOption2);
transport_options.push_back(kIceOption3);
AddIceOptions(kVideoContentName, transport_options);
- ASSERT_TRUE(jdesc_.Initialize(desc_.Copy(), jdesc_.session_id(),
+ ASSERT_TRUE(jdesc_.Initialize(desc_.Clone(), jdesc_.session_id(),
jdesc_.session_version()));
std::string message = webrtc::SdpSerialize(jdesc_);
std::string sdp_with_ice_options = kSdpFullString;
@@ -2295,7 +2296,7 @@
AddExtmap(encrypted);
JsepSessionDescription desc_with_extmap(kDummyType);
ASSERT_TRUE(
- desc_with_extmap.Initialize(desc_.Copy(), kSessionId, kSessionVersion));
+ desc_with_extmap.Initialize(desc_.Clone(), kSessionId, kSessionVersion));
TestSerialize(desc_with_extmap);
}
@@ -2356,7 +2357,7 @@
h264_codec.SetParam("packetization-mode", "1");
video_desc_->AddCodec(h264_codec);
- jdesc_.Initialize(desc_.Copy(), kSessionId, kSessionVersion);
+ jdesc_.Initialize(desc_.Clone(), kSessionId, kSessionVersion);
std::string message = webrtc::SdpSerialize(jdesc_);
size_t after_pt = message.find(" H264/90000");
@@ -2414,7 +2415,7 @@
TEST_F(WebRtcSdpTest, DeserializeSessionDescriptionWithoutCandidates) {
// SessionDescription with desc but without candidates.
JsepSessionDescription jdesc_no_candidates(kDummyType);
- ASSERT_TRUE(jdesc_no_candidates.Initialize(desc_.Copy(), kSessionId,
+ ASSERT_TRUE(jdesc_no_candidates.Initialize(desc_.Clone(), kSessionId,
kSessionVersion));
JsepSessionDescription new_jdesc(kDummyType);
EXPECT_TRUE(SdpDeserialize(kSdpString, &new_jdesc));
@@ -2481,7 +2482,7 @@
// Add a DTLS a=fingerprint attribute to our session description.
AddFingerprint();
JsepSessionDescription new_jdesc(kDummyType);
- ASSERT_TRUE(new_jdesc.Initialize(desc_.Copy(), jdesc_.session_id(),
+ ASSERT_TRUE(new_jdesc.Initialize(desc_.Clone(), jdesc_.session_id(),
jdesc_.session_version()));
JsepSessionDescription jdesc_with_fingerprint(kDummyType);
@@ -2503,7 +2504,7 @@
group.AddContentName(kAudioContentName);
group.AddContentName(kVideoContentName);
desc_.AddGroup(group);
- ASSERT_TRUE(jdesc_.Initialize(desc_.Copy(), jdesc_.session_id(),
+ ASSERT_TRUE(jdesc_.Initialize(desc_.Clone(), jdesc_.session_id(),
jdesc_.session_version()));
EXPECT_TRUE(CompareSessionDescription(jdesc_, jdesc_with_bundle));
}
@@ -2520,7 +2521,7 @@
vcd->set_bandwidth(100 * 1000);
AudioContentDescription* acd = GetFirstAudioContentDescription(&desc_);
acd->set_bandwidth(50 * 1000);
- ASSERT_TRUE(jdesc_.Initialize(desc_.Copy(), jdesc_.session_id(),
+ ASSERT_TRUE(jdesc_.Initialize(desc_.Clone(), jdesc_.session_id(),
jdesc_.session_version()));
EXPECT_TRUE(CompareSessionDescription(jdesc_, jdesc_with_bandwidth));
}
@@ -2543,7 +2544,7 @@
transport_options.push_back(kIceOption3);
transport_options.push_back(kIceOption2);
AddIceOptions(kVideoContentName, transport_options);
- ASSERT_TRUE(jdesc_.Initialize(desc_.Copy(), jdesc_.session_id(),
+ ASSERT_TRUE(jdesc_.Initialize(desc_.Clone(), jdesc_.session_id(),
jdesc_.session_version()));
EXPECT_TRUE(CompareSessionDescription(jdesc_, jdesc_with_ice_options));
}
@@ -2771,7 +2772,7 @@
TEST_F(WebRtcSdpTest, DeserializeSdpWithRtpDataChannels) {
AddRtpDataChannel();
JsepSessionDescription jdesc(kDummyType);
- ASSERT_TRUE(jdesc.Initialize(desc_.Copy(), kSessionId, kSessionVersion));
+ ASSERT_TRUE(jdesc.Initialize(desc_.Clone(), kSessionId, kSessionVersion));
std::string sdp_with_data = kSdpString;
sdp_with_data.append(kSdpRtpDataChannelString);
@@ -2787,7 +2788,7 @@
bool use_sctpmap = true;
AddSctpDataChannel(use_sctpmap);
JsepSessionDescription jdesc(kDummyType);
- ASSERT_TRUE(jdesc.Initialize(desc_.Copy(), kSessionId, kSessionVersion));
+ ASSERT_TRUE(jdesc.Initialize(desc_.Clone(), kSessionId, kSessionVersion));
std::string sdp_with_data = kSdpString;
sdp_with_data.append(kSdpSctpDataChannelString);
@@ -2814,7 +2815,7 @@
bool use_sctpmap = false;
AddSctpDataChannel(use_sctpmap);
JsepSessionDescription jdesc(kDummyType);
- ASSERT_TRUE(jdesc.Initialize(desc_.Copy(), kSessionId, kSessionVersion));
+ ASSERT_TRUE(jdesc.Initialize(desc_.Clone(), kSessionId, kSessionVersion));
std::string sdp_with_data = kSdpString;
sdp_with_data.append(kSdpSctpDataChannelStringWithSctpPort);
@@ -2841,7 +2842,7 @@
bool use_sctpmap = false;
AddSctpDataChannel(use_sctpmap);
JsepSessionDescription jdesc(kDummyType);
- ASSERT_TRUE(jdesc.Initialize(desc_.Copy(), kSessionId, kSessionVersion));
+ ASSERT_TRUE(jdesc.Initialize(desc_.Clone(), kSessionId, kSessionVersion));
std::string sdp_with_data = kSdpString;
sdp_with_data.append(kSdpSctpDataChannelStringWithSctpColonPort);
@@ -2912,7 +2913,7 @@
bool use_sctpmap = true;
AddSctpDataChannel(use_sctpmap);
JsepSessionDescription jdesc(kDummyType);
- ASSERT_TRUE(jdesc.Initialize(desc_.Copy(), kSessionId, kSessionVersion));
+ ASSERT_TRUE(jdesc.Initialize(desc_.Clone(), kSessionId, kSessionVersion));
std::string sdp_with_data = kSdpString;
// Append m= attributes
@@ -2939,7 +2940,7 @@
void MutateJsepSctpPort(JsepSessionDescription* jdesc,
const SessionDescription& desc) {
// take our pre-built session description and change the SCTP port.
- cricket::SessionDescription* mutant = desc.Copy();
+ std::unique_ptr<cricket::SessionDescription> mutant = desc.Clone();
DataContentDescription* dcdesc =
mutant->GetContentDescriptionByName(kDataContentName)->as_data();
std::vector<cricket::DataCodec> codecs(dcdesc->codecs());
@@ -2948,9 +2949,8 @@
codecs[0].SetParam(cricket::kCodecParamPort, kUnusualSctpPort);
dcdesc->set_codecs(codecs);
- // note: mutant's owned by jdesc now.
- ASSERT_TRUE(jdesc->Initialize(mutant, kSessionId, kSessionVersion));
- mutant = NULL;
+ ASSERT_TRUE(
+ jdesc->Initialize(std::move(mutant), kSessionId, kSessionVersion));
}
TEST_F(WebRtcSdpTest, DeserializeSdpWithSctpDataChannelAndUnusualPort) {
@@ -3017,7 +3017,7 @@
JsepSessionDescription jdesc(kDummyType);
DataContentDescription* dcd = GetFirstDataContentDescription(&desc_);
dcd->set_bandwidth(100 * 1000);
- ASSERT_TRUE(jdesc.Initialize(desc_.Copy(), kSessionId, kSessionVersion));
+ ASSERT_TRUE(jdesc.Initialize(desc_.Clone(), kSessionId, kSessionVersion));
std::string sdp_with_bandwidth = kSdpString;
sdp_with_bandwidth.append(kSdpSctpDataChannelString);
@@ -3374,7 +3374,7 @@
codecs[0].params["unknown-future-parameter"] = "SomeFutureValue";
acd->set_codecs(codecs);
- ASSERT_TRUE(jdesc_.Initialize(desc_.Copy(), jdesc_.session_id(),
+ ASSERT_TRUE(jdesc_.Initialize(desc_.Clone(), jdesc_.session_id(),
jdesc_.session_version()));
std::string message = webrtc::SdpSerialize(jdesc_);
std::string sdp_with_fmtp = kSdpFullString;
@@ -3391,7 +3391,7 @@
codecs[0].params["stereo"] = "1";
acd->set_codecs(codecs);
- ASSERT_TRUE(jdesc_.Initialize(desc_.Copy(), jdesc_.session_id(),
+ ASSERT_TRUE(jdesc_.Initialize(desc_.Clone(), jdesc_.session_id(),
jdesc_.session_version()));
std::string message = webrtc::SdpSerialize(jdesc_);
std::string sdp_with_fmtp = kSdpFullString;
@@ -3408,7 +3408,7 @@
codecs[0].params["maxptime"] = "120";
acd->set_codecs(codecs);
- ASSERT_TRUE(jdesc_.Initialize(desc_.Copy(), jdesc_.session_id(),
+ ASSERT_TRUE(jdesc_.Initialize(desc_.Clone(), jdesc_.session_id(),
jdesc_.session_version()));
std::string message = webrtc::SdpSerialize(jdesc_);
std::string sdp_with_fmtp = kSdpFullString;
@@ -3426,7 +3426,7 @@
codecs[0].params["x-google-min-bitrate"] = "10";
vcd->set_codecs(codecs);
- ASSERT_TRUE(jdesc_.Initialize(desc_.Copy(), jdesc_.session_id(),
+ ASSERT_TRUE(jdesc_.Initialize(desc_.Clone(), jdesc_.session_id(),
jdesc_.session_version()));
std::string message = webrtc::SdpSerialize(jdesc_);
std::string sdp_with_fmtp = kSdpFullString;
@@ -3497,7 +3497,7 @@
desc_.AddTransportInfo(audio_transport_info);
desc_.AddTransportInfo(video_transport_info);
- ASSERT_TRUE(jdesc_.Initialize(desc_.Copy(), jdesc_.session_id(),
+ ASSERT_TRUE(jdesc_.Initialize(desc_.Clone(), jdesc_.session_id(),
jdesc_.session_version()));
std::string message = webrtc::SdpSerialize(jdesc_);
std::string sdp_with_dtlssetup = kSdpFullString;
@@ -4098,7 +4098,7 @@
audio_desc_->set_connection_address(hostname_addr);
video_desc_->set_connection_address(hostname_addr);
ASSERT_TRUE(
- expected_jsep.Initialize(desc_.Copy(), kSessionId, kSessionVersion));
+ expected_jsep.Initialize(desc_.Clone(), kSessionId, kSessionVersion));
// Serialization.
std::string message = webrtc::SdpSerialize(expected_jsep);
// Deserialization.
@@ -4464,11 +4464,11 @@
}
TEST_F(WebRtcSdpTest, SerializeMediaTransportSettings) {
- cricket::SessionDescription* description = new cricket::SessionDescription();
+ auto description = absl::make_unique<cricket::SessionDescription>();
JsepSessionDescription output(SdpType::kOffer);
// JsepSessionDescription takes ownership of the description.
- output.Initialize(description, "session_id", "session_version");
+ output.Initialize(std::move(description), "session_id", "session_version");
output.description()->AddMediaTransportSetting("foo", "bar");
std::string serialized_out;
output.ToString(&serialized_out);
@@ -4478,8 +4478,7 @@
TEST_F(WebRtcSdpTest, SerializeMediaTransportSettingsTestCopy) {
cricket::SessionDescription description;
description.AddMediaTransportSetting("name", "setting");
- std::unique_ptr<cricket::SessionDescription> copy =
- absl::WrapUnique(description.Copy());
+ std::unique_ptr<cricket::SessionDescription> copy = description.Clone();
ASSERT_EQ(1u, copy->MediaTransportSettings().size());
EXPECT_EQ("name", copy->MediaTransportSettings()[0].transport_name);
EXPECT_EQ("setting", copy->MediaTransportSettings()[0].transport_setting);