| OLD | NEW |
| 1 /* | 1 /* |
| 2 * libjingle | 2 * libjingle |
| 3 * Copyright 2012 Google Inc. | 3 * Copyright 2012 Google Inc. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
| 9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
| (...skipping 552 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 563 WebRtcSession::~WebRtcSession() { | 563 WebRtcSession::~WebRtcSession() { |
| 564 ASSERT(signaling_thread()->IsCurrent()); | 564 ASSERT(signaling_thread()->IsCurrent()); |
| 565 // Destroy video_channel_ first since it may have a pointer to the | 565 // Destroy video_channel_ first since it may have a pointer to the |
| 566 // voice_channel_. | 566 // voice_channel_. |
| 567 if (video_channel_) { | 567 if (video_channel_) { |
| 568 SignalVideoChannelDestroyed(); | 568 SignalVideoChannelDestroyed(); |
| 569 channel_manager_->DestroyVideoChannel(video_channel_.release()); | 569 channel_manager_->DestroyVideoChannel(video_channel_.release()); |
| 570 } | 570 } |
| 571 if (voice_channel_) { | 571 if (voice_channel_) { |
| 572 SignalVoiceChannelDestroyed(); | 572 SignalVoiceChannelDestroyed(); |
| 573 channel_manager_->DestroyVoiceChannel(voice_channel_.release(), nullptr); | 573 channel_manager_->DestroyVoiceChannel(voice_channel_.release()); |
| 574 } | 574 } |
| 575 if (data_channel_) { | 575 if (data_channel_) { |
| 576 SignalDataChannelDestroyed(); | 576 SignalDataChannelDestroyed(); |
| 577 channel_manager_->DestroyDataChannel(data_channel_.release()); | 577 channel_manager_->DestroyDataChannel(data_channel_.release()); |
| 578 } | 578 } |
| 579 for (size_t i = 0; i < saved_candidates_.size(); ++i) { | 579 for (size_t i = 0; i < saved_candidates_.size(); ++i) { |
| 580 delete saved_candidates_[i]; | 580 delete saved_candidates_[i]; |
| 581 } | 581 } |
| 582 } | 582 } |
| 583 | 583 |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 776 } | 776 } |
| 777 port_allocator()->set_candidate_filter( | 777 port_allocator()->set_candidate_filter( |
| 778 ConvertIceTransportTypeToCandidateFilter(rtc_configuration.type)); | 778 ConvertIceTransportTypeToCandidateFilter(rtc_configuration.type)); |
| 779 | 779 |
| 780 if (rtc_configuration.enable_localhost_ice_candidate) { | 780 if (rtc_configuration.enable_localhost_ice_candidate) { |
| 781 port_allocator()->set_flags( | 781 port_allocator()->set_flags( |
| 782 port_allocator()->flags() | | 782 port_allocator()->flags() | |
| 783 cricket::PORTALLOCATOR_ENABLE_LOCALHOST_CANDIDATE); | 783 cricket::PORTALLOCATOR_ENABLE_LOCALHOST_CANDIDATE); |
| 784 } | 784 } |
| 785 | 785 |
| 786 media_controller_.reset(MediaControllerInterface::Create( |
| 787 worker_thread(), channel_manager_->media_engine()->GetVoE())); |
| 788 |
| 786 return true; | 789 return true; |
| 787 } | 790 } |
| 788 | 791 |
| 789 void WebRtcSession::Terminate() { | 792 void WebRtcSession::Terminate() { |
| 790 SetState(STATE_RECEIVEDTERMINATE); | 793 SetState(STATE_RECEIVEDTERMINATE); |
| 791 RemoveUnusedChannelsAndTransports(NULL); | 794 RemoveUnusedChannelsAndTransports(NULL); |
| 792 ASSERT(!voice_channel_); | 795 ASSERT(!voice_channel_); |
| 793 ASSERT(!video_channel_); | 796 ASSERT(!video_channel_); |
| 794 ASSERT(!data_channel_); | 797 ASSERT(!data_channel_); |
| 795 } | 798 } |
| (...skipping 887 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1683 channel_manager_->DestroyVideoChannel(video_channel_.release()); | 1686 channel_manager_->DestroyVideoChannel(video_channel_.release()); |
| 1684 DestroyTransportProxy(content_name); | 1687 DestroyTransportProxy(content_name); |
| 1685 } | 1688 } |
| 1686 | 1689 |
| 1687 const cricket::ContentInfo* voice_info = | 1690 const cricket::ContentInfo* voice_info = |
| 1688 cricket::GetFirstAudioContent(desc); | 1691 cricket::GetFirstAudioContent(desc); |
| 1689 if ((!voice_info || voice_info->rejected) && voice_channel_) { | 1692 if ((!voice_info || voice_info->rejected) && voice_channel_) { |
| 1690 mediastream_signaling_->OnAudioChannelClose(); | 1693 mediastream_signaling_->OnAudioChannelClose(); |
| 1691 SignalVoiceChannelDestroyed(); | 1694 SignalVoiceChannelDestroyed(); |
| 1692 const std::string content_name = voice_channel_->content_name(); | 1695 const std::string content_name = voice_channel_->content_name(); |
| 1693 channel_manager_->DestroyVoiceChannel(voice_channel_.release(), | 1696 channel_manager_->DestroyVoiceChannel(voice_channel_.release()); |
| 1694 video_channel_.get()); | |
| 1695 DestroyTransportProxy(content_name); | 1697 DestroyTransportProxy(content_name); |
| 1696 } | 1698 } |
| 1697 | 1699 |
| 1698 const cricket::ContentInfo* data_info = | 1700 const cricket::ContentInfo* data_info = |
| 1699 cricket::GetFirstDataContent(desc); | 1701 cricket::GetFirstDataContent(desc); |
| 1700 if ((!data_info || data_info->rejected) && data_channel_) { | 1702 if ((!data_info || data_info->rejected) && data_channel_) { |
| 1701 mediastream_signaling_->OnDataChannelClose(); | 1703 mediastream_signaling_->OnDataChannelClose(); |
| 1702 SignalDataChannelDestroyed(); | 1704 SignalDataChannelDestroyed(); |
| 1703 const std::string content_name = data_channel_->content_name(); | 1705 const std::string content_name = data_channel_->content_name(); |
| 1704 channel_manager_->DestroyDataChannel(data_channel_.release()); | 1706 channel_manager_->DestroyDataChannel(data_channel_.release()); |
| 1705 DestroyTransportProxy(content_name); | 1707 DestroyTransportProxy(content_name); |
| 1706 } | 1708 } |
| 1707 } | 1709 } |
| 1708 | 1710 |
| 1709 // TODO(mallinath) - Add a correct error code if the channels are not creatued | 1711 // TODO(mallinath) - Add a correct error code if the channels are not created |
| 1710 // due to BUNDLE is enabled but rtcp-mux is disabled. | 1712 // due to BUNDLE is enabled but rtcp-mux is disabled. |
| 1711 bool WebRtcSession::CreateChannels(const SessionDescription* desc) { | 1713 bool WebRtcSession::CreateChannels(const SessionDescription* desc) { |
| 1712 // Creating the media channels and transport proxies. | 1714 // Creating the media channels and transport proxies. |
| 1713 const cricket::ContentInfo* voice = cricket::GetFirstAudioContent(desc); | 1715 const cricket::ContentInfo* voice = cricket::GetFirstAudioContent(desc); |
| 1714 if (voice && !voice->rejected && !voice_channel_) { | 1716 if (voice && !voice->rejected && !voice_channel_) { |
| 1715 if (!CreateVoiceChannel(voice)) { | 1717 if (!CreateVoiceChannel(voice)) { |
| 1716 LOG(LS_ERROR) << "Failed to create voice channel."; | 1718 LOG(LS_ERROR) << "Failed to create voice channel."; |
| 1717 return false; | 1719 return false; |
| 1718 } | 1720 } |
| 1719 } | 1721 } |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1759 LOG(LS_WARNING) << "max-bundle failed to enable bundling."; | 1761 LOG(LS_WARNING) << "max-bundle failed to enable bundling."; |
| 1760 return false; | 1762 return false; |
| 1761 } | 1763 } |
| 1762 } | 1764 } |
| 1763 | 1765 |
| 1764 return true; | 1766 return true; |
| 1765 } | 1767 } |
| 1766 | 1768 |
| 1767 bool WebRtcSession::CreateVoiceChannel(const cricket::ContentInfo* content) { | 1769 bool WebRtcSession::CreateVoiceChannel(const cricket::ContentInfo* content) { |
| 1768 voice_channel_.reset(channel_manager_->CreateVoiceChannel( | 1770 voice_channel_.reset(channel_manager_->CreateVoiceChannel( |
| 1769 this, content->name, true, audio_options_)); | 1771 media_controller_.get(), this, content->name, true, audio_options_)); |
| 1770 if (!voice_channel_) { | 1772 if (!voice_channel_) { |
| 1771 return false; | 1773 return false; |
| 1772 } | 1774 } |
| 1773 | 1775 |
| 1774 voice_channel_->SignalDtlsSetupFailure.connect( | 1776 voice_channel_->SignalDtlsSetupFailure.connect( |
| 1775 this, &WebRtcSession::OnDtlsSetupFailure); | 1777 this, &WebRtcSession::OnDtlsSetupFailure); |
| 1776 return true; | 1778 return true; |
| 1777 } | 1779 } |
| 1778 | 1780 |
| 1779 bool WebRtcSession::CreateVideoChannel(const cricket::ContentInfo* content) { | 1781 bool WebRtcSession::CreateVideoChannel(const cricket::ContentInfo* content) { |
| 1780 video_channel_.reset(channel_manager_->CreateVideoChannel( | 1782 video_channel_.reset(channel_manager_->CreateVideoChannel( |
| 1781 this, content->name, true, video_options_, voice_channel_.get())); | 1783 media_controller_.get(), this, content->name, true, video_options_)); |
| 1782 if (!video_channel_) { | 1784 if (!video_channel_) { |
| 1783 return false; | 1785 return false; |
| 1784 } | 1786 } |
| 1785 | 1787 |
| 1786 video_channel_->SignalDtlsSetupFailure.connect( | 1788 video_channel_->SignalDtlsSetupFailure.connect( |
| 1787 this, &WebRtcSession::OnDtlsSetupFailure); | 1789 this, &WebRtcSession::OnDtlsSetupFailure); |
| 1788 return true; | 1790 return true; |
| 1789 } | 1791 } |
| 1790 | 1792 |
| 1791 bool WebRtcSession::CreateDataChannel(const cricket::ContentInfo* content) { | 1793 bool WebRtcSession::CreateDataChannel(const cricket::ContentInfo* content) { |
| (...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2083 | 2085 |
| 2084 if (!srtp_cipher.empty()) { | 2086 if (!srtp_cipher.empty()) { |
| 2085 metrics_observer_->AddHistogramSample(srtp_name, srtp_cipher); | 2087 metrics_observer_->AddHistogramSample(srtp_name, srtp_cipher); |
| 2086 } | 2088 } |
| 2087 if (!ssl_cipher.empty()) { | 2089 if (!ssl_cipher.empty()) { |
| 2088 metrics_observer_->AddHistogramSample(ssl_name, ssl_cipher); | 2090 metrics_observer_->AddHistogramSample(ssl_name, ssl_cipher); |
| 2089 } | 2091 } |
| 2090 } | 2092 } |
| 2091 | 2093 |
| 2092 } // namespace webrtc | 2094 } // namespace webrtc |
| OLD | NEW |