Update pc/ to not use implicit T* --> scoped_refptr<T> conversion
Bug: webrtc:13464
Change-Id: I729ec2306ec0d6df2e546b5dbb530f57065d60da
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/244090
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35623}
diff --git a/pc/connection_context.cc b/pc/connection_context.cc
index d058c9d..6c6da4e 100644
--- a/pc/connection_context.cc
+++ b/pc/connection_context.cc
@@ -75,7 +75,8 @@
// Static
rtc::scoped_refptr<ConnectionContext> ConnectionContext::Create(
PeerConnectionFactoryDependencies* dependencies) {
- return new ConnectionContext(dependencies);
+ return rtc::scoped_refptr<ConnectionContext>(
+ new ConnectionContext(dependencies));
}
ConnectionContext::ConnectionContext(
diff --git a/pc/media_stream.cc b/pc/media_stream.cc
index 08a2a72..f353af7 100644
--- a/pc/media_stream.cc
+++ b/pc/media_stream.cc
@@ -12,6 +12,7 @@
#include <stddef.h>
+#include <utility>
#include <vector>
#include "rtc_base/checks.h"
@@ -41,11 +42,13 @@
}
bool MediaStream::AddTrack(VideoTrackInterface* track) {
- return AddTrack<VideoTrackVector, VideoTrackInterface>(&video_tracks_, track);
+ return AddTrack<VideoTrackVector, VideoTrackInterface>(
+ &video_tracks_, rtc::scoped_refptr<VideoTrackInterface>(track));
}
bool MediaStream::RemoveTrack(AudioTrackInterface* track) {
- return RemoveTrack<AudioTrackVector>(&audio_tracks_, track);
+ return RemoveTrack<AudioTrackVector>(
+ &audio_tracks_, rtc::scoped_refptr<AudioTrackInterface>(track));
}
bool MediaStream::RemoveTrack(VideoTrackInterface* track) {
@@ -69,11 +72,12 @@
}
template <typename TrackVector, typename Track>
-bool MediaStream::AddTrack(TrackVector* tracks, Track* track) {
+bool MediaStream::AddTrack(TrackVector* tracks,
+ rtc::scoped_refptr<Track> track) {
typename TrackVector::iterator it = FindTrack(tracks, track->id());
if (it != tracks->end())
return false;
- tracks->push_back(track);
+ tracks->emplace_back(std::move((track)));
FireOnChanged();
return true;
}
diff --git a/pc/media_stream.h b/pc/media_stream.h
index 6f16bea..70e58f9 100644
--- a/pc/media_stream.h
+++ b/pc/media_stream.h
@@ -44,7 +44,7 @@
private:
template <typename TrackVector, typename Track>
- bool AddTrack(TrackVector* Tracks, Track* track);
+ bool AddTrack(TrackVector* Tracks, rtc::scoped_refptr<Track> track);
template <typename TrackVector>
bool RemoveTrack(TrackVector* Tracks, MediaStreamTrackInterface* track);
diff --git a/pc/peer_connection.cc b/pc/peer_connection.cc
index 350233d..a00e400 100644
--- a/pc/peer_connection.cc
+++ b/pc/peer_connection.cc
@@ -849,7 +849,7 @@
bool PeerConnection::RemoveTrack(RtpSenderInterface* sender) {
TRACE_EVENT0("webrtc", "PeerConnection::RemoveTrack");
- return RemoveTrackNew(sender).ok();
+ return RemoveTrackNew(rtc::scoped_refptr<RtpSenderInterface>(sender)).ok();
}
RTCError PeerConnection::RemoveTrackNew(
@@ -1181,7 +1181,8 @@
RTC_DCHECK(stats_collector_);
RTC_DCHECK(callback);
RTC_LOG_THREAD_BLOCK_COUNT();
- stats_collector_->GetStatsReport(callback);
+ stats_collector_->GetStatsReport(
+ rtc::scoped_refptr<RTCStatsCollectorCallback>(callback));
}
void PeerConnection::GetStats(
diff --git a/pc/peer_connection_end_to_end_unittest.cc b/pc/peer_connection_end_to_end_unittest.cc
index a4704c0..3a64027 100644
--- a/pc/peer_connection_end_to_end_unittest.cc
+++ b/pc/peer_connection_end_to_end_unittest.cc
@@ -60,9 +60,9 @@
worker_thread_(rtc::Thread::Create()) {
RTC_CHECK(network_thread_->Start());
RTC_CHECK(worker_thread_->Start());
- caller_ = new rtc::RefCountedObject<PeerConnectionTestWrapper>(
+ caller_ = rtc::make_ref_counted<PeerConnectionTestWrapper>(
"caller", network_thread_.get(), worker_thread_.get());
- callee_ = new rtc::RefCountedObject<PeerConnectionTestWrapper>(
+ callee_ = rtc::make_ref_counted<PeerConnectionTestWrapper>(
"callee", network_thread_.get(), worker_thread_.get());
webrtc::PeerConnectionInterface::IceServer ice_server;
ice_server.uri = "stun:stun.l.google.com:19302";
@@ -126,11 +126,13 @@
}
void OnCallerAddedDataChanel(DataChannelInterface* dc) {
- caller_signaled_data_channels_.push_back(dc);
+ caller_signaled_data_channels_.push_back(
+ rtc::scoped_refptr<DataChannelInterface>(dc));
}
void OnCalleeAddedDataChannel(DataChannelInterface* dc) {
- callee_signaled_data_channels_.push_back(dc);
+ callee_signaled_data_channels_.push_back(
+ rtc::scoped_refptr<DataChannelInterface>(dc));
}
// Tests that `dc1` and `dc2` can send to and receive from each other.
@@ -258,7 +260,7 @@
CreateForwardingMockDecoderFactory(
webrtc::AudioDecoderFactory* real_decoder_factory) {
rtc::scoped_refptr<webrtc::MockAudioDecoderFactory> mock_decoder_factory =
- new rtc::RefCountedObject<StrictMock<webrtc::MockAudioDecoderFactory>>;
+ rtc::make_ref_counted<StrictMock<webrtc::MockAudioDecoderFactory>>();
EXPECT_CALL(*mock_decoder_factory, GetSupportedDecoders())
.Times(AtLeast(1))
.WillRepeatedly(Invoke([real_decoder_factory] {
@@ -432,26 +434,22 @@
std::vector<webrtc::AudioCodecPairId> encoder_id1, encoder_id2, decoder_id1,
decoder_id2;
- CreatePcs(rtc::scoped_refptr<webrtc::AudioEncoderFactory>(
- new rtc::RefCountedObject<IdLoggingAudioEncoderFactory>(
- webrtc::CreateAudioEncoderFactory<
- AudioEncoderUnicornSparklesRainbow>(),
- &encoder_id1)),
- rtc::scoped_refptr<webrtc::AudioDecoderFactory>(
- new rtc::RefCountedObject<IdLoggingAudioDecoderFactory>(
- webrtc::CreateAudioDecoderFactory<
- AudioDecoderUnicornSparklesRainbow>(),
- &decoder_id1)),
- rtc::scoped_refptr<webrtc::AudioEncoderFactory>(
- new rtc::RefCountedObject<IdLoggingAudioEncoderFactory>(
- webrtc::CreateAudioEncoderFactory<
- AudioEncoderUnicornSparklesRainbow>(),
- &encoder_id2)),
- rtc::scoped_refptr<webrtc::AudioDecoderFactory>(
- new rtc::RefCountedObject<IdLoggingAudioDecoderFactory>(
- webrtc::CreateAudioDecoderFactory<
- AudioDecoderUnicornSparklesRainbow>(),
- &decoder_id2)));
+ CreatePcs(rtc::make_ref_counted<IdLoggingAudioEncoderFactory>(
+ webrtc::CreateAudioEncoderFactory<
+ AudioEncoderUnicornSparklesRainbow>(),
+ &encoder_id1),
+ rtc::make_ref_counted<IdLoggingAudioDecoderFactory>(
+ webrtc::CreateAudioDecoderFactory<
+ AudioDecoderUnicornSparklesRainbow>(),
+ &decoder_id1),
+ rtc::make_ref_counted<IdLoggingAudioEncoderFactory>(
+ webrtc::CreateAudioEncoderFactory<
+ AudioEncoderUnicornSparklesRainbow>(),
+ &encoder_id2),
+ rtc::make_ref_counted<IdLoggingAudioDecoderFactory>(
+ webrtc::CreateAudioDecoderFactory<
+ AudioDecoderUnicornSparklesRainbow>(),
+ &decoder_id2));
GetAndAddUserMedia();
Negotiate();
WaitForCallEstablished();
diff --git a/pc/peer_connection_factory.cc b/pc/peer_connection_factory.cc
index 3ab969d..193754e 100644
--- a/pc/peer_connection_factory.cc
+++ b/pc/peer_connection_factory.cc
@@ -284,7 +284,8 @@
const std::string& id,
AudioSourceInterface* source) {
RTC_DCHECK(signaling_thread()->IsCurrent());
- rtc::scoped_refptr<AudioTrackInterface> track(AudioTrack::Create(id, source));
+ rtc::scoped_refptr<AudioTrackInterface> track(
+ AudioTrack::Create(id, rtc::scoped_refptr<AudioSourceInterface>(source)));
return AudioTrackProxy::Create(signaling_thread(), track);
}
diff --git a/pc/peer_connection_interface_unittest.cc b/pc/peer_connection_interface_unittest.cc
index 5452238..3aaae64 100644
--- a/pc/peer_connection_interface_unittest.cc
+++ b/pc/peer_connection_interface_unittest.cc
@@ -2456,8 +2456,8 @@
CreateAnswerAsLocalDescription();
ASSERT_EQ(1u, pc_->local_streams()->count());
- rtc::scoped_refptr<MediaStreamInterface> local_stream =
- pc_->local_streams()->at(0);
+ rtc::scoped_refptr<MediaStreamInterface> local_stream(
+ pc_->local_streams()->at(0));
pc_->Close();
diff --git a/pc/peer_connection_rtp_unittest.cc b/pc/peer_connection_rtp_unittest.cc
index 715546b..e46df318 100644
--- a/pc/peer_connection_rtp_unittest.cc
+++ b/pc/peer_connection_rtp_unittest.cc
@@ -738,10 +738,12 @@
// when the first callback is invoked.
callee->pc()->SetRemoteDescription(
std::move(srd1_sdp),
- new OnSuccessObserver<decltype(srd1_callback)>(srd1_callback));
+ rtc::make_ref_counted<OnSuccessObserver<decltype(srd1_callback)>>(
+ srd1_callback));
callee->pc()->SetRemoteDescription(
std::move(srd2_sdp),
- new OnSuccessObserver<decltype(srd2_callback)>(srd2_callback));
+ rtc::make_ref_counted<OnSuccessObserver<decltype(srd2_callback)>>(
+ srd2_callback));
EXPECT_TRUE_WAIT(srd1_callback_called, kDefaultTimeout);
EXPECT_TRUE_WAIT(srd2_callback_called, kDefaultTimeout);
}
diff --git a/pc/peer_connection_signaling_unittest.cc b/pc/peer_connection_signaling_unittest.cc
index eb09a11..71ef51f 100644
--- a/pc/peer_connection_signaling_unittest.cc
+++ b/pc/peer_connection_signaling_unittest.cc
@@ -674,8 +674,9 @@
// By not waiting for the observer's callback we can verify that the operation
// executed immediately.
- callee->pc()->SetRemoteDescription(std::move(offer),
- new FakeSetRemoteDescriptionObserver());
+ callee->pc()->SetRemoteDescription(
+ std::move(offer),
+ rtc::make_ref_counted<FakeSetRemoteDescriptionObserver>());
EXPECT_EQ(2u, callee->pc()->GetReceivers().size());
}
@@ -693,8 +694,9 @@
// SetRemoteDescription() operation should be chained to be executed
// asynchronously, when CreateOffer() completes.
callee->pc()->CreateOffer(offer_observer, RTCOfferAnswerOptions());
- callee->pc()->SetRemoteDescription(std::move(offer),
- new FakeSetRemoteDescriptionObserver());
+ callee->pc()->SetRemoteDescription(
+ std::move(offer),
+ rtc::make_ref_counted<FakeSetRemoteDescriptionObserver>());
// CreateOffer() is asynchronous; without message processing this operation
// should not have completed.
EXPECT_FALSE(offer_observer->called());
@@ -1113,8 +1115,9 @@
// the new observer should also be invoked synchronously - as is ensured by
// other tests.)
RTC_DCHECK(!caller->pc()->GetTransceivers()[0]->mid().has_value());
- caller->pc()->SetLocalDescription(std::move(offer),
- new FakeSetLocalDescriptionObserver());
+ caller->pc()->SetLocalDescription(
+ std::move(offer),
+ rtc::make_ref_counted<FakeSetLocalDescriptionObserver>());
EXPECT_TRUE(caller->pc()->GetTransceivers()[0]->mid().has_value());
}
diff --git a/pc/peer_connection_wrapper.cc b/pc/peer_connection_wrapper.cc
index 3b4d28f..641d8bf 100644
--- a/pc/peer_connection_wrapper.cc
+++ b/pc/peer_connection_wrapper.cc
@@ -168,8 +168,7 @@
bool PeerConnectionWrapper::SetRemoteDescription(
std::unique_ptr<SessionDescriptionInterface> desc,
RTCError* error_out) {
- rtc::scoped_refptr<FakeSetRemoteDescriptionObserver> observer =
- new FakeSetRemoteDescriptionObserver();
+ auto observer = rtc::make_ref_counted<FakeSetRemoteDescriptionObserver>();
pc()->SetRemoteDescription(std::move(desc), observer);
EXPECT_EQ_WAIT(true, observer->called(), kDefaultTimeout);
bool ok = observer->error().ok();
diff --git a/pc/rtc_stats_collector.cc b/pc/rtc_stats_collector.cc
index 0539559..4735805 100644
--- a/pc/rtc_stats_collector.cc
+++ b/pc/rtc_stats_collector.cc
@@ -1224,7 +1224,8 @@
std::vector<RequestInfo> requests_;
};
signaling_thread_->PostTask(std::make_unique<DeliveryTask>(
- this, cached_report_, std::move(requests)));
+ rtc::scoped_refptr<RTCStatsCollector>(this), cached_report_,
+ std::move(requests)));
} else if (!num_pending_partial_reports_) {
// Only start gathering stats if we're not already gathering stats. In the
// case of already gathering stats, `callback_` will be invoked when there
@@ -1660,14 +1661,16 @@
for (const RtpTransceiverStatsInfo& stats : transceiver_stats_infos_) {
std::vector<rtc::scoped_refptr<RtpSenderInternal>> senders;
for (const auto& sender : stats.transceiver->senders()) {
- senders.push_back(sender->internal());
+ senders.push_back(
+ rtc::scoped_refptr<RtpSenderInternal>(sender->internal()));
}
ProduceSenderMediaTrackStats(timestamp_us, *stats.track_media_info_map,
senders, report);
std::vector<rtc::scoped_refptr<RtpReceiverInternal>> receivers;
for (const auto& receiver : stats.transceiver->receivers()) {
- receivers.push_back(receiver->internal());
+ receivers.push_back(
+ rtc::scoped_refptr<RtpReceiverInternal>(receiver->internal()));
}
ProduceReceiverMediaTrackStats(timestamp_us, *stats.track_media_info_map,
receivers, report);
@@ -2210,11 +2213,13 @@
}
std::vector<rtc::scoped_refptr<RtpSenderInternal>> senders;
for (const auto& sender : transceiver->senders()) {
- senders.push_back(sender->internal());
+ senders.push_back(
+ rtc::scoped_refptr<RtpSenderInternal>(sender->internal()));
}
std::vector<rtc::scoped_refptr<RtpReceiverInternal>> receivers;
for (const auto& receiver : transceiver->receivers()) {
- receivers.push_back(receiver->internal());
+ receivers.push_back(
+ rtc::scoped_refptr<RtpReceiverInternal>(receiver->internal()));
}
stats.track_media_info_map = std::make_unique<TrackMediaInfoMap>(
std::move(voice_media_info), std::move(video_media_info), senders,
diff --git a/pc/rtc_stats_collector_unittest.cc b/pc/rtc_stats_collector_unittest.cc
index 0fc3792..fb9ba96 100644
--- a/pc/rtc_stats_collector_unittest.cc
+++ b/pc/rtc_stats_collector_unittest.cc
@@ -1152,10 +1152,10 @@
}
TEST_F(RTCStatsCollectorTest, CollectTwoRTCDataChannelStatsWithPendingId) {
- pc_->AddSctpDataChannel(
- new MockSctpDataChannel(/*id=*/-1, DataChannelInterface::kConnecting));
- pc_->AddSctpDataChannel(
- new MockSctpDataChannel(/*id=*/-1, DataChannelInterface::kConnecting));
+ pc_->AddSctpDataChannel(rtc::make_ref_counted<MockSctpDataChannel>(
+ /*id=*/-1, DataChannelInterface::kConnecting));
+ pc_->AddSctpDataChannel(rtc::make_ref_counted<MockSctpDataChannel>(
+ /*id=*/-1, DataChannelInterface::kConnecting));
rtc::scoped_refptr<const RTCStatsReport> report = stats_->GetStatsReport();
}
@@ -1165,7 +1165,7 @@
// This is not a safe assumption, but in order to make it work for
// the test, we reset the ID allocator at test start.
SctpDataChannel::ResetInternalIdAllocatorForTesting(-1);
- pc_->AddSctpDataChannel(new MockSctpDataChannel(
+ pc_->AddSctpDataChannel(rtc::make_ref_counted<MockSctpDataChannel>(
0, "MockSctpDataChannel0", DataChannelInterface::kConnecting, "udp", 1, 2,
3, 4));
RTCDataChannelStats expected_data_channel0("RTCDataChannel_0", 0);
@@ -1178,9 +1178,9 @@
expected_data_channel0.messages_received = 3;
expected_data_channel0.bytes_received = 4;
- pc_->AddSctpDataChannel(new MockSctpDataChannel(1, "MockSctpDataChannel1",
- DataChannelInterface::kOpen,
- "tcp", 5, 6, 7, 8));
+ pc_->AddSctpDataChannel(rtc::make_ref_counted<MockSctpDataChannel>(
+ 1, "MockSctpDataChannel1", DataChannelInterface::kOpen, "tcp", 5, 6, 7,
+ 8));
RTCDataChannelStats expected_data_channel1("RTCDataChannel_1", 0);
expected_data_channel1.label = "MockSctpDataChannel1";
expected_data_channel1.protocol = "tcp";
@@ -1191,7 +1191,7 @@
expected_data_channel1.messages_received = 7;
expected_data_channel1.bytes_received = 8;
- pc_->AddSctpDataChannel(new MockSctpDataChannel(
+ pc_->AddSctpDataChannel(rtc::make_ref_counted<MockSctpDataChannel>(
2, "MockSctpDataChannel2", DataChannelInterface::kClosing, "udp", 9, 10,
11, 12));
RTCDataChannelStats expected_data_channel2("RTCDataChannel_2", 0);
@@ -1204,9 +1204,9 @@
expected_data_channel2.messages_received = 11;
expected_data_channel2.bytes_received = 12;
- pc_->AddSctpDataChannel(new MockSctpDataChannel(3, "MockSctpDataChannel3",
- DataChannelInterface::kClosed,
- "tcp", 13, 14, 15, 16));
+ pc_->AddSctpDataChannel(rtc::make_ref_counted<MockSctpDataChannel>(
+ 3, "MockSctpDataChannel3", DataChannelInterface::kClosed, "tcp", 13, 14,
+ 15, 16));
RTCDataChannelStats expected_data_channel3("RTCDataChannel_3", 0);
expected_data_channel3.label = "MockSctpDataChannel3";
expected_data_channel3.protocol = "tcp";
@@ -3358,8 +3358,9 @@
static rtc::scoped_refptr<FakeRTCStatsCollector> Create(
PeerConnectionInternal* pc,
int64_t cache_lifetime_us) {
- return new rtc::RefCountedObject<FakeRTCStatsCollector>(pc,
- cache_lifetime_us);
+ return rtc::scoped_refptr<FakeRTCStatsCollector>(
+ new rtc::RefCountedObject<FakeRTCStatsCollector>(pc,
+ cache_lifetime_us));
}
// Since FakeRTCStatsCollector inherits twice from RefCountInterface, once via
diff --git a/pc/rtp_sender_receiver_unittest.cc b/pc/rtp_sender_receiver_unittest.cc
index f361833..35a0050 100644
--- a/pc/rtp_sender_receiver_unittest.cc
+++ b/pc/rtp_sender_receiver_unittest.cc
@@ -577,7 +577,7 @@
cricket::AudioOptions options;
options.echo_cancellation = true;
auto source = LocalAudioSource::Create(&options);
- CreateAudioRtpSender(source.get());
+ CreateAudioRtpSender(source);
EXPECT_EQ(true, voice_media_channel_->options().echo_cancellation);
diff --git a/pc/rtp_transceiver.cc b/pc/rtp_transceiver.cc
index a78b9d6..25ae804 100644
--- a/pc/rtp_transceiver.cc
+++ b/pc/rtp_transceiver.cc
@@ -273,14 +273,14 @@
rtc::scoped_refptr<RtpSenderInternal> RtpTransceiver::sender_internal() const {
RTC_DCHECK(unified_plan_);
RTC_CHECK_EQ(1u, senders_.size());
- return senders_[0]->internal();
+ return rtc::scoped_refptr<RtpSenderInternal>(senders_[0]->internal());
}
rtc::scoped_refptr<RtpReceiverInternal> RtpTransceiver::receiver_internal()
const {
RTC_DCHECK(unified_plan_);
RTC_CHECK_EQ(1u, receivers_.size());
- return receivers_[0]->internal();
+ return rtc::scoped_refptr<RtpReceiverInternal>(receivers_[0]->internal());
}
cricket::MediaType RtpTransceiver::media_type() const {
diff --git a/pc/rtp_transmission_manager.cc b/pc/rtp_transmission_manager.cc
index e917154..8e3eec6 100644
--- a/pc/rtp_transmission_manager.cc
+++ b/pc/rtp_transmission_manager.cc
@@ -378,7 +378,8 @@
}
// Normal case; we've never seen this track before.
- auto new_sender = CreateSender(cricket::MEDIA_TYPE_AUDIO, track->id(), track,
+ auto new_sender = CreateSender(cricket::MEDIA_TYPE_AUDIO, track->id(),
+ rtc::scoped_refptr<AudioTrackInterface>(track),
{stream->id()}, {});
new_sender->internal()->SetMediaChannel(voice_media_channel());
GetAudioTransceiver()->internal()->AddSender(new_sender);
@@ -424,7 +425,8 @@
}
// Normal case; we've never seen this track before.
- auto new_sender = CreateSender(cricket::MEDIA_TYPE_VIDEO, track->id(), track,
+ auto new_sender = CreateSender(cricket::MEDIA_TYPE_VIDEO, track->id(),
+ rtc::scoped_refptr<VideoTrackInterface>(track),
{stream->id()}, {});
new_sender->internal()->SetMediaChannel(video_media_channel());
GetVideoTransceiver()->internal()->AddSender(new_sender);
diff --git a/pc/sdp_offer_answer.cc b/pc/sdp_offer_answer.cc
index 235d508..56eb975 100644
--- a/pc/sdp_offer_answer.cc
+++ b/pc/sdp_offer_answer.cc
@@ -1192,7 +1192,8 @@
RTC_DCHECK_RUN_ON(signaling_thread());
SetLocalDescription(
rtc::make_ref_counted<SetSessionDescriptionObserverAdapter>(
- weak_ptr_factory_.GetWeakPtr(), observer));
+ weak_ptr_factory_.GetWeakPtr(),
+ rtc::scoped_refptr<SetSessionDescriptionObserver>(observer)));
}
void SdpOfferAnswerHandler::SetLocalDescription(
@@ -2238,8 +2239,8 @@
RTC_DCHECK_RUN_ON(signaling_thread());
std::vector<rtc::scoped_refptr<MediaStreamInterface>> media_streams;
for (const std::string& stream_id : stream_ids) {
- rtc::scoped_refptr<MediaStreamInterface> stream =
- remote_streams_->find(stream_id);
+ rtc::scoped_refptr<MediaStreamInterface> stream(
+ remote_streams_->find(stream_id));
if (!stream) {
stream = MediaStreamProxy::Create(rtc::Thread::Current(),
MediaStream::Create(stream_id));
@@ -2577,7 +2578,8 @@
return false;
}
- local_streams_->AddStream(local_stream);
+ local_streams_->AddStream(
+ rtc::scoped_refptr<MediaStreamInterface>(local_stream));
auto observer = std::make_unique<MediaStreamObserver>(
local_stream,
[this](AudioTrackInterface* audio_track,
@@ -4157,8 +4159,8 @@
const std::string& sender_id = params.id;
uint32_t ssrc = params.first_ssrc();
- rtc::scoped_refptr<MediaStreamInterface> stream =
- remote_streams_->find(stream_id);
+ rtc::scoped_refptr<MediaStreamInterface> stream(
+ remote_streams_->find(stream_id));
if (!stream) {
// This is a new MediaStream. Create a new remote MediaStream.
stream = MediaStreamProxy::Create(rtc::Thread::Current(),
@@ -4178,8 +4180,8 @@
// Add default sender if necessary.
if (default_sender_needed) {
- rtc::scoped_refptr<MediaStreamInterface> default_stream =
- remote_streams_->find(kDefaultStreamId);
+ rtc::scoped_refptr<MediaStreamInterface> default_stream(
+ remote_streams_->find(kDefaultStreamId));
if (!default_stream) {
// Create the new default MediaStream.
default_stream = MediaStreamProxy::Create(
@@ -4426,7 +4428,8 @@
for (size_t i = 0; i < remote_streams_->count(); ++i) {
MediaStreamInterface* stream = remote_streams_->at(i);
if (stream->GetAudioTracks().empty() && stream->GetVideoTracks().empty()) {
- streams_to_remove.push_back(stream);
+ streams_to_remove.push_back(
+ rtc::scoped_refptr<MediaStreamInterface>(stream));
}
}
diff --git a/pc/stream_collection.h b/pc/stream_collection.h
index 9bbf957..ed85947 100644
--- a/pc/stream_collection.h
+++ b/pc/stream_collection.h
@@ -12,6 +12,7 @@
#define PC_STREAM_COLLECTION_H_
#include <string>
+#include <utility>
#include <vector>
#include "api/peer_connection_interface.h"
@@ -66,13 +67,13 @@
return NULL;
}
- void AddStream(MediaStreamInterface* stream) {
+ void AddStream(rtc::scoped_refptr<MediaStreamInterface> stream) {
for (StreamVector::iterator it = media_streams_.begin();
it != media_streams_.end(); ++it) {
if ((*it)->id().compare(stream->id()) == 0)
return;
}
- media_streams_.push_back(stream);
+ media_streams_.push_back(std::move(stream));
}
void RemoveStream(MediaStreamInterface* remove_stream) {
diff --git a/pc/track_media_info_map_unittest.cc b/pc/track_media_info_map_unittest.cc
index 42962da..a58331f 100644
--- a/pc/track_media_info_map_unittest.cc
+++ b/pc/track_media_info_map_unittest.cc
@@ -125,7 +125,7 @@
local_track->kind() == MediaStreamTrackInterface::kAudioKind
? cricket::MEDIA_TYPE_AUDIO
: cricket::MEDIA_TYPE_VIDEO,
- ssrcs, local_track);
+ ssrcs, rtc::scoped_refptr<MediaStreamTrackInterface>(local_track));
rtp_senders_.push_back(rtp_sender);
if (local_track->kind() == MediaStreamTrackInterface::kAudioKind) {
@@ -154,7 +154,7 @@
remote_track->kind() == MediaStreamTrackInterface::kAudioKind
? cricket::MEDIA_TYPE_AUDIO
: cricket::MEDIA_TYPE_VIDEO,
- ssrcs, remote_track);
+ ssrcs, rtc::scoped_refptr<MediaStreamTrackInterface>(remote_track));
rtp_receivers_.push_back(rtp_receiver);
if (remote_track->kind() == MediaStreamTrackInterface::kAudioKind) {