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

Unified Diff: webrtc/pc/channel.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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/pc/channel.h ('k') | webrtc/pc/channel_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/pc/channel.cc
diff --git a/webrtc/pc/channel.cc b/webrtc/pc/channel.cc
index 942e8267cbad87b6749e86c2cb526148da695db6..182d4cafcdd7b32655668d582bd52597ce0e4076 100644
--- a/webrtc/pc/channel.cc
+++ b/webrtc/pc/channel.cc
@@ -163,13 +163,13 @@
rtc::Thread* signaling_thread,
MediaChannel* media_channel,
const std::string& content_name,
- bool rtcp_mux_required,
+ bool rtcp,
bool srtp_required)
: worker_thread_(worker_thread),
network_thread_(network_thread),
signaling_thread_(signaling_thread),
content_name_(content_name),
- rtcp_mux_required_(rtcp_mux_required),
+ rtcp_enabled_(rtcp),
srtp_required_(srtp_required),
media_channel_(media_channel),
selected_candidate_pair_(nullptr) {
@@ -240,9 +240,6 @@
if (rtcp_transport_ && !SetDtlsSrtpCryptoSuites_n(rtcp_transport_, true)) {
return false;
}
- if (rtcp_mux_required_) {
- rtcp_mux_filter_.SetActive();
- }
return true;
}
@@ -294,8 +291,8 @@
srtp_filter_.ResetParams();
}
- // If this BaseChannel doesn't require RTCP mux and we haven't fully
- // negotiated RTCP mux, we need an RTCP transport.
+ // If this BaseChannel uses RTCP and we haven't fully negotiated RTCP mux,
+ // we need an RTCP channel.
if (NeedsRtcpTransport()) {
LOG(LS_INFO) << "Setting RTCP Transport for " << content_name() << " on "
<< transport_name() << " transport " << rtcp_transport;
@@ -455,9 +452,7 @@
}
bool BaseChannel::NeedsRtcpTransport() {
- // If this BaseChannel doesn't require RTCP mux and we haven't fully
- // negotiated RTCP mux, we need an RTCP transport.
- return !rtcp_mux_required_ && !rtcp_mux_filter_.IsFullyActive();
+ return rtcp_enabled_ && !rtcp_mux_filter_.IsFullyActive();
}
bool BaseChannel::IsReadyToReceiveMedia_w() const {
@@ -1162,6 +1157,26 @@
return true;
}
+void BaseChannel::ActivateRtcpMux() {
+ network_thread_->Invoke<void>(RTC_FROM_HERE,
+ Bind(&BaseChannel::ActivateRtcpMux_n, this));
+}
+
+void BaseChannel::ActivateRtcpMux_n() {
+ if (!rtcp_mux_filter_.IsActive()) {
+ rtcp_mux_filter_.SetActive();
+ bool need_to_delete_rtcp = (rtcp_transport() != nullptr);
+ SetTransportChannel_n(true, nullptr);
+ if (need_to_delete_rtcp) {
+ SignalDestroyRtcpTransport(rtp_transport()->transport_name());
+ }
+ // Update aggregate writable/ready-to-send state between RTP and RTCP upon
+ // removing channel.
+ UpdateWritableState_n();
+ SetTransportChannelReadyToSend(true, false);
+ }
+}
+
bool BaseChannel::SetRtcpMux_n(bool enable,
ContentAction action,
ContentSource src,
@@ -1183,9 +1198,10 @@
LOG(LS_INFO) << "Enabling rtcp-mux for " << content_name()
<< " by destroying RTCP transport channel for "
<< transport_name();
- if (rtcp_transport()) {
- SetTransportChannel_n(true, nullptr);
- SignalRtcpMuxFullyActive(rtp_transport()->transport_name());
+ bool need_to_delete_rtcp = (rtcp_transport() != nullptr);
+ SetTransportChannel_n(true, nullptr);
+ if (need_to_delete_rtcp) {
+ SignalDestroyRtcpTransport(rtp_transport()->transport_name());
}
UpdateWritableState_n();
SetTransportChannelReadyToSend(true, false);
@@ -1446,14 +1462,14 @@
MediaEngineInterface* media_engine,
VoiceMediaChannel* media_channel,
const std::string& content_name,
- bool rtcp_mux_required,
+ bool rtcp,
bool srtp_required)
: BaseChannel(worker_thread,
network_thread,
signaling_thread,
media_channel,
content_name,
- rtcp_mux_required,
+ rtcp,
srtp_required),
media_engine_(media_engine),
received_media_(false) {}
@@ -1859,14 +1875,14 @@
rtc::Thread* signaling_thread,
VideoMediaChannel* media_channel,
const std::string& content_name,
- bool rtcp_mux_required,
+ bool rtcp,
bool srtp_required)
: BaseChannel(worker_thread,
network_thread,
signaling_thread,
media_channel,
content_name,
- rtcp_mux_required,
+ rtcp,
srtp_required) {}
bool VideoChannel::Init_w(TransportChannel* rtp_transport,
@@ -2120,14 +2136,14 @@
rtc::Thread* signaling_thread,
DataMediaChannel* media_channel,
const std::string& content_name,
- bool rtcp_mux_required,
+ bool rtcp,
bool srtp_required)
: BaseChannel(worker_thread,
network_thread,
signaling_thread,
media_channel,
content_name,
- rtcp_mux_required,
+ rtcp,
srtp_required) {}
RtpDataChannel::~RtpDataChannel() {
« no previous file with comments | « webrtc/pc/channel.h ('k') | webrtc/pc/channel_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698