Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Side by Side Diff: webrtc/api/webrtcsession.cc

Issue 2626023005: Revert of Refactoring of RTCP options in BaseChannel. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/api/webrtcsession.h ('k') | webrtc/pc/channel.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 1769 matching lines...) Expand 10 before | Expand all | Expand 10 after
1780 } 1780 }
1781 } 1781 }
1782 1782
1783 return true; 1783 return true;
1784 } 1784 }
1785 1785
1786 bool WebRtcSession::CreateVoiceChannel(const cricket::ContentInfo* content, 1786 bool WebRtcSession::CreateVoiceChannel(const cricket::ContentInfo* content,
1787 const std::string* bundle_transport) { 1787 const std::string* bundle_transport) {
1788 bool require_rtcp_mux = 1788 bool require_rtcp_mux =
1789 rtcp_mux_policy_ == PeerConnectionInterface::kRtcpMuxPolicyRequire; 1789 rtcp_mux_policy_ == PeerConnectionInterface::kRtcpMuxPolicyRequire;
1790 bool create_rtcp_transport_channel = !require_rtcp_mux;
1790 1791
1791 std::string transport_name = 1792 std::string transport_name =
1792 bundle_transport ? *bundle_transport : content->name; 1793 bundle_transport ? *bundle_transport : content->name;
1793 1794
1794 cricket::TransportChannel* rtp_transport = 1795 cricket::TransportChannel* rtp_transport =
1795 transport_controller_->CreateTransportChannel( 1796 transport_controller_->CreateTransportChannel(
1796 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP); 1797 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP);
1797 cricket::TransportChannel* rtcp_transport = nullptr; 1798 cricket::TransportChannel* rtcp_transport = nullptr;
1798 if (!require_rtcp_mux) { 1799 if (create_rtcp_transport_channel) {
1799 rtcp_transport = transport_controller_->CreateTransportChannel( 1800 rtcp_transport = transport_controller_->CreateTransportChannel(
1800 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP); 1801 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP);
1801 } 1802 }
1802 1803
1803 voice_channel_.reset(channel_manager_->CreateVoiceChannel( 1804 voice_channel_.reset(channel_manager_->CreateVoiceChannel(
1804 media_controller_, rtp_transport, rtcp_transport, 1805 media_controller_, rtp_transport, rtcp_transport,
1805 transport_controller_->signaling_thread(), content->name, 1806 transport_controller_->signaling_thread(), content->name,
1806 bundle_transport, require_rtcp_mux, SrtpRequired(), audio_options_)); 1807 bundle_transport, create_rtcp_transport_channel, SrtpRequired(),
1808 audio_options_));
1807 if (!voice_channel_) { 1809 if (!voice_channel_) {
1808 return false; 1810 return false;
1809 } 1811 }
1810 1812
1811 voice_channel_->SignalRtcpMuxFullyActive.connect( 1813 voice_channel_->SignalDestroyRtcpTransport.connect(
1812 this, &WebRtcSession::DestroyRtcpTransport_n); 1814 this, &WebRtcSession::OnDestroyRtcpTransport_n);
1815 if (require_rtcp_mux) {
1816 voice_channel_->ActivateRtcpMux();
1817 }
1818
1813 voice_channel_->SignalDtlsSrtpSetupFailure.connect( 1819 voice_channel_->SignalDtlsSrtpSetupFailure.connect(
1814 this, &WebRtcSession::OnDtlsSrtpSetupFailure); 1820 this, &WebRtcSession::OnDtlsSrtpSetupFailure);
1815 1821
1816 SignalVoiceChannelCreated(); 1822 SignalVoiceChannelCreated();
1817 voice_channel_->SignalSentPacket.connect(this, 1823 voice_channel_->SignalSentPacket.connect(this,
1818 &WebRtcSession::OnSentPacket_w); 1824 &WebRtcSession::OnSentPacket_w);
1819 return true; 1825 return true;
1820 } 1826 }
1821 1827
1822 bool WebRtcSession::CreateVideoChannel(const cricket::ContentInfo* content, 1828 bool WebRtcSession::CreateVideoChannel(const cricket::ContentInfo* content,
1823 const std::string* bundle_transport) { 1829 const std::string* bundle_transport) {
1824 bool require_rtcp_mux = 1830 bool require_rtcp_mux =
1825 rtcp_mux_policy_ == PeerConnectionInterface::kRtcpMuxPolicyRequire; 1831 rtcp_mux_policy_ == PeerConnectionInterface::kRtcpMuxPolicyRequire;
1832 bool create_rtcp_transport_channel = !require_rtcp_mux;
1826 1833
1827 std::string transport_name = 1834 std::string transport_name =
1828 bundle_transport ? *bundle_transport : content->name; 1835 bundle_transport ? *bundle_transport : content->name;
1829 1836
1830 cricket::TransportChannel* rtp_transport = 1837 cricket::TransportChannel* rtp_transport =
1831 transport_controller_->CreateTransportChannel( 1838 transport_controller_->CreateTransportChannel(
1832 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP); 1839 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP);
1833 cricket::TransportChannel* rtcp_transport = nullptr; 1840 cricket::TransportChannel* rtcp_transport = nullptr;
1834 if (!require_rtcp_mux) { 1841 if (create_rtcp_transport_channel) {
1835 rtcp_transport = transport_controller_->CreateTransportChannel( 1842 rtcp_transport = transport_controller_->CreateTransportChannel(
1836 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP); 1843 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP);
1837 } 1844 }
1838 1845
1839 video_channel_.reset(channel_manager_->CreateVideoChannel( 1846 video_channel_.reset(channel_manager_->CreateVideoChannel(
1840 media_controller_, rtp_transport, rtcp_transport, 1847 media_controller_, rtp_transport, rtcp_transport,
1841 transport_controller_->signaling_thread(), content->name, 1848 transport_controller_->signaling_thread(), content->name,
1842 bundle_transport, require_rtcp_mux, SrtpRequired(), video_options_)); 1849 bundle_transport, create_rtcp_transport_channel, SrtpRequired(),
1850 video_options_));
1843 1851
1844 if (!video_channel_) { 1852 if (!video_channel_) {
1845 return false; 1853 return false;
1846 } 1854 }
1847 1855
1848 video_channel_->SignalRtcpMuxFullyActive.connect( 1856 video_channel_->SignalDestroyRtcpTransport.connect(
1849 this, &WebRtcSession::DestroyRtcpTransport_n); 1857 this, &WebRtcSession::OnDestroyRtcpTransport_n);
1858 if (require_rtcp_mux) {
1859 video_channel_->ActivateRtcpMux();
1860 }
1850 video_channel_->SignalDtlsSrtpSetupFailure.connect( 1861 video_channel_->SignalDtlsSrtpSetupFailure.connect(
1851 this, &WebRtcSession::OnDtlsSrtpSetupFailure); 1862 this, &WebRtcSession::OnDtlsSrtpSetupFailure);
1852 1863
1853 SignalVideoChannelCreated(); 1864 SignalVideoChannelCreated();
1854 video_channel_->SignalSentPacket.connect(this, 1865 video_channel_->SignalSentPacket.connect(this,
1855 &WebRtcSession::OnSentPacket_w); 1866 &WebRtcSession::OnSentPacket_w);
1856 return true; 1867 return true;
1857 } 1868 }
1858 1869
1859 bool WebRtcSession::CreateDataChannel(const cricket::ContentInfo* content, 1870 bool WebRtcSession::CreateDataChannel(const cricket::ContentInfo* content,
(...skipping 16 matching lines...) Expand all
1876 return false; 1887 return false;
1877 } 1888 }
1878 if (!network_thread_->Invoke<bool>( 1889 if (!network_thread_->Invoke<bool>(
1879 RTC_FROM_HERE, rtc::Bind(&WebRtcSession::CreateSctpTransport_n, 1890 RTC_FROM_HERE, rtc::Bind(&WebRtcSession::CreateSctpTransport_n,
1880 this, content->name, transport_name))) { 1891 this, content->name, transport_name))) {
1881 return false; 1892 return false;
1882 }; 1893 };
1883 } else { 1894 } else {
1884 bool require_rtcp_mux = 1895 bool require_rtcp_mux =
1885 rtcp_mux_policy_ == PeerConnectionInterface::kRtcpMuxPolicyRequire; 1896 rtcp_mux_policy_ == PeerConnectionInterface::kRtcpMuxPolicyRequire;
1897 bool create_rtcp_transport_channel = !sctp && !require_rtcp_mux;
1886 1898
1887 std::string transport_name = 1899 std::string transport_name =
1888 bundle_transport ? *bundle_transport : content->name; 1900 bundle_transport ? *bundle_transport : content->name;
1889 cricket::TransportChannel* rtp_transport = 1901 cricket::TransportChannel* rtp_transport =
1890 transport_controller_->CreateTransportChannel( 1902 transport_controller_->CreateTransportChannel(
1891 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP); 1903 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP);
1892 cricket::TransportChannel* rtcp_transport = nullptr; 1904 cricket::TransportChannel* rtcp_transport = nullptr;
1893 if (!require_rtcp_mux) { 1905 if (create_rtcp_transport_channel) {
1894 rtcp_transport = transport_controller_->CreateTransportChannel( 1906 rtcp_transport = transport_controller_->CreateTransportChannel(
1895 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP); 1907 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP);
1896 } 1908 }
1897 1909
1898 rtp_data_channel_.reset(channel_manager_->CreateRtpDataChannel( 1910 rtp_data_channel_.reset(channel_manager_->CreateRtpDataChannel(
1899 media_controller_, rtp_transport, rtcp_transport, 1911 media_controller_, rtp_transport, rtcp_transport,
1900 transport_controller_->signaling_thread(), content->name, 1912 transport_controller_->signaling_thread(), content->name,
1901 bundle_transport, require_rtcp_mux, SrtpRequired())); 1913 bundle_transport, create_rtcp_transport_channel, SrtpRequired()));
1902 1914
1903 if (!rtp_data_channel_) { 1915 if (!rtp_data_channel_) {
1904 return false; 1916 return false;
1905 } 1917 }
1906 1918
1907 rtp_data_channel_->SignalRtcpMuxFullyActive.connect( 1919 rtp_data_channel_->SignalDestroyRtcpTransport.connect(
1908 this, &WebRtcSession::DestroyRtcpTransport_n); 1920 this, &WebRtcSession::OnDestroyRtcpTransport_n);
1921
1922 if (require_rtcp_mux) {
1923 rtp_data_channel_->ActivateRtcpMux();
1924 }
1909 rtp_data_channel_->SignalDtlsSrtpSetupFailure.connect( 1925 rtp_data_channel_->SignalDtlsSrtpSetupFailure.connect(
1910 this, &WebRtcSession::OnDtlsSrtpSetupFailure); 1926 this, &WebRtcSession::OnDtlsSrtpSetupFailure);
1911 rtp_data_channel_->SignalSentPacket.connect(this, 1927 rtp_data_channel_->SignalSentPacket.connect(this,
1912 &WebRtcSession::OnSentPacket_w); 1928 &WebRtcSession::OnSentPacket_w);
1913 } 1929 }
1914 1930
1915 SignalDataChannelCreated(); 1931 SignalDataChannelCreated();
1916 1932
1917 return true; 1933 return true;
1918 } 1934 }
(...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after
2366 } 2382 }
2367 2383
2368 void WebRtcSession::DestroyTransport(const std::string& transport_name, 2384 void WebRtcSession::DestroyTransport(const std::string& transport_name,
2369 int component) { 2385 int component) {
2370 network_thread_->Invoke<void>( 2386 network_thread_->Invoke<void>(
2371 RTC_FROM_HERE, 2387 RTC_FROM_HERE,
2372 rtc::Bind(&cricket::TransportController::DestroyTransportChannel_n, 2388 rtc::Bind(&cricket::TransportController::DestroyTransportChannel_n,
2373 transport_controller_.get(), transport_name, component)); 2389 transport_controller_.get(), transport_name, component));
2374 } 2390 }
2375 2391
2376 void WebRtcSession::DestroyRtcpTransport_n(const std::string& transport_name) { 2392 void WebRtcSession::OnDestroyRtcpTransport_n(
2393 const std::string& transport_name) {
2377 ASSERT(network_thread()->IsCurrent()); 2394 ASSERT(network_thread()->IsCurrent());
2378 transport_controller_->DestroyTransportChannel_n( 2395 transport_controller_->DestroyTransportChannel_n(
2379 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP); 2396 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP);
2380 } 2397 }
2381 2398
2382 void WebRtcSession::DestroyVideoChannel() { 2399 void WebRtcSession::DestroyVideoChannel() {
2383 SignalVideoChannelDestroyed(); 2400 SignalVideoChannelDestroyed();
2384 RTC_DCHECK(video_channel_->rtp_transport()); 2401 RTC_DCHECK(video_channel_->rtp_transport());
2385 std::string transport_name; 2402 std::string transport_name;
2386 transport_name = video_channel_->rtp_transport()->transport_name(); 2403 transport_name = video_channel_->rtp_transport()->transport_name();
(...skipping 24 matching lines...) Expand all
2411 std::string transport_name; 2428 std::string transport_name;
2412 transport_name = rtp_data_channel_->rtp_transport()->transport_name(); 2429 transport_name = rtp_data_channel_->rtp_transport()->transport_name();
2413 bool need_to_delete_rtcp = (rtp_data_channel_->rtcp_transport() != nullptr); 2430 bool need_to_delete_rtcp = (rtp_data_channel_->rtcp_transport() != nullptr);
2414 channel_manager_->DestroyRtpDataChannel(rtp_data_channel_.release()); 2431 channel_manager_->DestroyRtpDataChannel(rtp_data_channel_.release());
2415 DestroyTransport(transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP); 2432 DestroyTransport(transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP);
2416 if (need_to_delete_rtcp) { 2433 if (need_to_delete_rtcp) {
2417 DestroyTransport(transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP); 2434 DestroyTransport(transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP);
2418 } 2435 }
2419 } 2436 }
2420 } // namespace webrtc 2437 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/api/webrtcsession.h ('k') | webrtc/pc/channel.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698