| Index: webrtc/api/webrtcsession.cc
|
| diff --git a/webrtc/api/webrtcsession.cc b/webrtc/api/webrtcsession.cc
|
| index a0c72c853ec6a54a4e92e052ec4e15e1c560b634..8487d2cee11241c5a256334f89a4b674e0308509 100644
|
| --- a/webrtc/api/webrtcsession.cc
|
| +++ b/webrtc/api/webrtcsession.cc
|
| @@ -1092,18 +1092,16 @@ bool WebRtcSession::EnableBundle(const cricket::ContentGroup& bundle) {
|
| transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP);
|
| }
|
|
|
| - if (!ch->SetTransport(rtp_transport, rtcp_transport)) {
|
| - LOG(LS_WARNING) << "Failed to enable BUNDLE for " << ch->content_name();
|
| - return false;
|
| - }
|
| + ch->SetTransports(rtp_transport, rtcp_transport);
|
| LOG(LS_INFO) << "Enabled BUNDLE for " << ch->content_name() << " on "
|
| << transport_name << ".";
|
| - DestroyTransport(old_transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP);
|
| + transport_controller_->DestroyTransportChannel(
|
| + old_transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP);
|
| // If the channel needs rtcp, it means that the channel used to have a
|
| // rtcp transport which needs to be deleted now.
|
| if (need_rtcp) {
|
| - DestroyTransport(old_transport_name,
|
| - cricket::ICE_CANDIDATE_COMPONENT_RTCP);
|
| + transport_controller_->DestroyTransportChannel(
|
| + old_transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP);
|
| }
|
| return true;
|
| };
|
| @@ -1805,6 +1803,12 @@ bool WebRtcSession::CreateVoiceChannel(const cricket::ContentInfo* content,
|
| transport_controller_->signaling_thread(), content->name,
|
| bundle_transport, require_rtcp_mux, SrtpRequired(), audio_options_));
|
| if (!voice_channel_) {
|
| + transport_controller_->DestroyTransportChannel(
|
| + transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP);
|
| + if (rtcp_transport) {
|
| + transport_controller_->DestroyTransportChannel(
|
| + transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP);
|
| + }
|
| return false;
|
| }
|
|
|
| @@ -1842,6 +1846,12 @@ bool WebRtcSession::CreateVideoChannel(const cricket::ContentInfo* content,
|
| bundle_transport, require_rtcp_mux, SrtpRequired(), video_options_));
|
|
|
| if (!video_channel_) {
|
| + transport_controller_->DestroyTransportChannel(
|
| + transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP);
|
| + if (rtcp_transport) {
|
| + transport_controller_->DestroyTransportChannel(
|
| + transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP);
|
| + }
|
| return false;
|
| }
|
|
|
| @@ -1901,6 +1911,12 @@ bool WebRtcSession::CreateDataChannel(const cricket::ContentInfo* content,
|
| bundle_transport, require_rtcp_mux, SrtpRequired()));
|
|
|
| if (!rtp_data_channel_) {
|
| + transport_controller_->DestroyTransportChannel(
|
| + transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP);
|
| + if (rtcp_transport) {
|
| + transport_controller_->DestroyTransportChannel(
|
| + transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP);
|
| + }
|
| return false;
|
| }
|
|
|
| @@ -2365,14 +2381,6 @@ const std::string WebRtcSession::GetTransportName(
|
| return channel->transport_name();
|
| }
|
|
|
| -void WebRtcSession::DestroyTransport(const std::string& transport_name,
|
| - int component) {
|
| - network_thread_->Invoke<void>(
|
| - RTC_FROM_HERE,
|
| - rtc::Bind(&cricket::TransportController::DestroyTransportChannel_n,
|
| - transport_controller_.get(), transport_name, component));
|
| -}
|
| -
|
| void WebRtcSession::DestroyRtcpTransport_n(const std::string& transport_name) {
|
| RTC_DCHECK(network_thread()->IsCurrent());
|
| transport_controller_->DestroyTransportChannel_n(
|
| @@ -2386,9 +2394,11 @@ void WebRtcSession::DestroyVideoChannel() {
|
| transport_name = video_channel_->rtp_transport()->transport_name();
|
| bool need_to_delete_rtcp = (video_channel_->rtcp_transport() != nullptr);
|
| channel_manager_->DestroyVideoChannel(video_channel_.release());
|
| - DestroyTransport(transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP);
|
| + transport_controller_->DestroyTransportChannel(
|
| + transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP);
|
| if (need_to_delete_rtcp) {
|
| - DestroyTransport(transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP);
|
| + transport_controller_->DestroyTransportChannel(
|
| + transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP);
|
| }
|
| }
|
|
|
| @@ -2399,9 +2409,11 @@ void WebRtcSession::DestroyVoiceChannel() {
|
| transport_name = voice_channel_->rtp_transport()->transport_name();
|
| bool need_to_delete_rtcp = (voice_channel_->rtcp_transport() != nullptr);
|
| channel_manager_->DestroyVoiceChannel(voice_channel_.release());
|
| - DestroyTransport(transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP);
|
| + transport_controller_->DestroyTransportChannel(
|
| + transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP);
|
| if (need_to_delete_rtcp) {
|
| - DestroyTransport(transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP);
|
| + transport_controller_->DestroyTransportChannel(
|
| + transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP);
|
| }
|
| }
|
|
|
| @@ -2412,9 +2424,11 @@ void WebRtcSession::DestroyDataChannel() {
|
| transport_name = rtp_data_channel_->rtp_transport()->transport_name();
|
| bool need_to_delete_rtcp = (rtp_data_channel_->rtcp_transport() != nullptr);
|
| channel_manager_->DestroyRtpDataChannel(rtp_data_channel_.release());
|
| - DestroyTransport(transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP);
|
| + transport_controller_->DestroyTransportChannel(
|
| + transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP);
|
| if (need_to_delete_rtcp) {
|
| - DestroyTransport(transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP);
|
| + transport_controller_->DestroyTransportChannel(
|
| + transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP);
|
| }
|
| }
|
| } // namespace webrtc
|
|
|