Index: pc/peerconnection.cc |
diff --git a/pc/peerconnection.cc b/pc/peerconnection.cc |
index 91d0c90a12b2e729de5138c7a95f04e62b8a852e..d5110acc45d33ce97bf43bdb98e901c6b17c2a29 100644 |
--- a/pc/peerconnection.cc |
+++ b/pc/peerconnection.cc |
@@ -621,8 +621,9 @@ rtc::scoped_refptr<RtpSenderInterface> PeerConnection::AddTrack( |
if (track->kind() == MediaStreamTrackInterface::kAudioKind) { |
new_sender = RtpSenderProxyWithInternal<RtpSenderInternal>::Create( |
signaling_thread(), |
- new AudioRtpSender(static_cast<AudioTrackInterface*>(track), |
- session_->voice_channel(), stats_.get())); |
+ new rtc::RefCountedObject<AudioRtpSender>( |
+ static_cast<AudioTrackInterface*>(track), |
+ session_->voice_channel(), stats_.get())); |
if (!streams.empty()) { |
new_sender->internal()->set_stream_id(streams[0]->label()); |
} |
@@ -634,8 +635,9 @@ rtc::scoped_refptr<RtpSenderInterface> PeerConnection::AddTrack( |
} else if (track->kind() == MediaStreamTrackInterface::kVideoKind) { |
new_sender = RtpSenderProxyWithInternal<RtpSenderInternal>::Create( |
signaling_thread(), |
- new VideoRtpSender(static_cast<VideoTrackInterface*>(track), |
- session_->video_channel())); |
+ new rtc::RefCountedObject<VideoRtpSender>( |
+ static_cast<VideoTrackInterface*>(track), |
+ session_->video_channel())); |
if (!streams.empty()) { |
new_sender->internal()->set_stream_id(streams[0]->label()); |
} |
@@ -702,10 +704,12 @@ rtc::scoped_refptr<RtpSenderInterface> PeerConnection::CreateSender( |
if (kind == MediaStreamTrackInterface::kAudioKind) { |
new_sender = RtpSenderProxyWithInternal<RtpSenderInternal>::Create( |
signaling_thread(), |
- new AudioRtpSender(session_->voice_channel(), stats_.get())); |
+ new rtc::RefCountedObject<AudioRtpSender>( |
+ session_->voice_channel(), stats_.get())); |
} else if (kind == MediaStreamTrackInterface::kVideoKind) { |
new_sender = RtpSenderProxyWithInternal<RtpSenderInternal>::Create( |
- signaling_thread(), new VideoRtpSender(session_->video_channel())); |
+ signaling_thread(), new rtc::RefCountedObject<VideoRtpSender>( |
+ session_->video_channel())); |
} else { |
LOG(LS_ERROR) << "CreateSender called with invalid kind: " << kind; |
return new_sender; |
@@ -1422,7 +1426,8 @@ void PeerConnection::CreateAudioReceiver(MediaStreamInterface* stream, |
rtc::scoped_refptr<RtpReceiverProxyWithInternal<RtpReceiverInternal>> |
receiver = RtpReceiverProxyWithInternal<RtpReceiverInternal>::Create( |
signaling_thread(), |
- new AudioRtpReceiver(track_id, ssrc, session_->voice_channel())); |
+ new rtc::RefCountedObject<AudioRtpReceiver>( |
+ track_id, ssrc, session_->voice_channel())); |
stream->AddTrack( |
static_cast<AudioTrackInterface*>(receiver->internal()->track().get())); |
receivers_.push_back(receiver); |
@@ -1437,8 +1442,9 @@ void PeerConnection::CreateVideoReceiver(MediaStreamInterface* stream, |
rtc::scoped_refptr<RtpReceiverProxyWithInternal<RtpReceiverInternal>> |
receiver = RtpReceiverProxyWithInternal<RtpReceiverInternal>::Create( |
signaling_thread(), |
- new VideoRtpReceiver(track_id, factory_->worker_thread(), ssrc, |
- session_->video_channel())); |
+ new rtc::RefCountedObject<VideoRtpReceiver>( |
+ track_id, factory_->worker_thread(), ssrc, |
+ session_->video_channel())); |
stream->AddTrack( |
static_cast<VideoTrackInterface*>(receiver->internal()->track().get())); |
receivers_.push_back(receiver); |
@@ -1475,8 +1481,9 @@ void PeerConnection::AddAudioTrack(AudioTrackInterface* track, |
rtc::scoped_refptr<RtpSenderProxyWithInternal<RtpSenderInternal>> new_sender = |
RtpSenderProxyWithInternal<RtpSenderInternal>::Create( |
signaling_thread(), |
- new AudioRtpSender(track, {stream->label()}, |
- session_->voice_channel(), stats_.get())); |
+ new rtc::RefCountedObject<AudioRtpSender>( |
+ track, std::vector<std::string>({stream->label()}), |
+ session_->voice_channel(), stats_.get())); |
senders_.push_back(new_sender); |
// If the sender has already been configured in SDP, we call SetSsrc, |
// which will connect the sender to the underlying transport. This can |
@@ -1520,8 +1527,10 @@ void PeerConnection::AddVideoTrack(VideoTrackInterface* track, |
// Normal case; we've never seen this track before. |
rtc::scoped_refptr<RtpSenderProxyWithInternal<RtpSenderInternal>> new_sender = |
RtpSenderProxyWithInternal<RtpSenderInternal>::Create( |
- signaling_thread(), new VideoRtpSender(track, {stream->label()}, |
- session_->video_channel())); |
+ signaling_thread(), new rtc::RefCountedObject<VideoRtpSender>( |
+ track, |
+ std::vector<std::string>({stream->label()}), |
+ session_->video_channel())); |
senders_.push_back(new_sender); |
const TrackInfo* track_info = |
FindTrackInfo(local_video_tracks_, stream->label(), track->id()); |