| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2004 The WebRTC project authors. All Rights Reserved. | 2 * Copyright 2004 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 13 matching lines...) Expand all Loading... |
| 24 #include "webrtc/rtc_base/dscp.h" | 24 #include "webrtc/rtc_base/dscp.h" |
| 25 #include "webrtc/rtc_base/logging.h" | 25 #include "webrtc/rtc_base/logging.h" |
| 26 #include "webrtc/rtc_base/networkroute.h" | 26 #include "webrtc/rtc_base/networkroute.h" |
| 27 #include "webrtc/rtc_base/ptr_util.h" | 27 #include "webrtc/rtc_base/ptr_util.h" |
| 28 #include "webrtc/rtc_base/trace_event.h" | 28 #include "webrtc/rtc_base/trace_event.h" |
| 29 // Adding 'nogncheck' to disable the gn include headers check to support modular | 29 // Adding 'nogncheck' to disable the gn include headers check to support modular |
| 30 // WebRTC build targets. | 30 // WebRTC build targets. |
| 31 #include "webrtc/media/engine/webrtcvoiceengine.h" // nogncheck | 31 #include "webrtc/media/engine/webrtcvoiceengine.h" // nogncheck |
| 32 #include "webrtc/p2p/base/packettransportinternal.h" | 32 #include "webrtc/p2p/base/packettransportinternal.h" |
| 33 #include "webrtc/pc/channelmanager.h" | 33 #include "webrtc/pc/channelmanager.h" |
| 34 #include "webrtc/pc/rtptransport.h" |
| 35 #include "webrtc/pc/srtptransport.h" |
| 34 | 36 |
| 35 namespace cricket { | 37 namespace cricket { |
| 36 using rtc::Bind; | 38 using rtc::Bind; |
| 37 | 39 |
| 38 namespace { | 40 namespace { |
| 39 // See comment below for why we need to use a pointer to a unique_ptr. | 41 // See comment below for why we need to use a pointer to a unique_ptr. |
| 40 bool SetRawAudioSink_w(VoiceMediaChannel* channel, | 42 bool SetRawAudioSink_w(VoiceMediaChannel* channel, |
| 41 uint32_t ssrc, | 43 uint32_t ssrc, |
| 42 std::unique_ptr<webrtc::AudioSinkInterface>* sink) { | 44 std::unique_ptr<webrtc::AudioSinkInterface>* sink) { |
| 43 channel->SetRawAudioSink(ssrc, std::move(*sink)); | 45 channel->SetRawAudioSink(ssrc, std::move(*sink)); |
| (...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 149 rtc::Thread* signaling_thread, | 151 rtc::Thread* signaling_thread, |
| 150 MediaChannel* media_channel, | 152 MediaChannel* media_channel, |
| 151 const std::string& content_name, | 153 const std::string& content_name, |
| 152 bool rtcp_mux_required, | 154 bool rtcp_mux_required, |
| 153 bool srtp_required) | 155 bool srtp_required) |
| 154 : worker_thread_(worker_thread), | 156 : worker_thread_(worker_thread), |
| 155 network_thread_(network_thread), | 157 network_thread_(network_thread), |
| 156 signaling_thread_(signaling_thread), | 158 signaling_thread_(signaling_thread), |
| 157 content_name_(content_name), | 159 content_name_(content_name), |
| 158 rtcp_mux_required_(rtcp_mux_required), | 160 rtcp_mux_required_(rtcp_mux_required), |
| 159 rtp_transport_(rtc::MakeUnique<webrtc::RtpTransport>(rtcp_mux_required)), | 161 rtp_transport_( |
| 162 srtp_required |
| 163 ? rtc::WrapUnique<webrtc::RtpTransportInternal>( |
| 164 new webrtc::SrtpTransport(rtcp_mux_required, content_name)) |
| 165 : rtc::MakeUnique<webrtc::RtpTransport>(rtcp_mux_required)), |
| 160 srtp_required_(srtp_required), | 166 srtp_required_(srtp_required), |
| 161 media_channel_(media_channel), | 167 media_channel_(media_channel), |
| 162 selected_candidate_pair_(nullptr) { | 168 selected_candidate_pair_(nullptr) { |
| 163 RTC_DCHECK(worker_thread_ == rtc::Thread::Current()); | 169 RTC_DCHECK(worker_thread_ == rtc::Thread::Current()); |
| 164 #if defined(ENABLE_EXTERNAL_AUTH) | 170 #if defined(ENABLE_EXTERNAL_AUTH) |
| 165 srtp_filter_.EnableExternalAuth(); | 171 srtp_filter_.EnableExternalAuth(); |
| 166 #endif | 172 #endif |
| 167 rtp_transport_->SignalReadyToSend.connect( | 173 rtp_transport_->SignalReadyToSend.connect( |
| 168 this, &BaseChannel::OnTransportReadyToSend); | 174 this, &BaseChannel::OnTransportReadyToSend); |
| 169 // TODO(zstein): RtpTransport::SignalPacketReceived will probably be replaced | 175 // TODO(zstein): RtpTransport::SignalPacketReceived will probably be replaced |
| 170 // with a callback interface later so that the demuxer can select which | 176 // with a callback interface later so that the demuxer can select which |
| 171 // channel to signal. | 177 // channel to signal. |
| 172 rtp_transport_->SignalPacketReceived.connect(this, | 178 rtp_transport_->SignalPacketReceived.connect(this, |
| 173 &BaseChannel::OnPacketReceived); | 179 &BaseChannel::OnPacketReceived); |
| 174 LOG(LS_INFO) << "Created channel for " << content_name; | 180 LOG(LS_INFO) << "Created channel for " << content_name; |
| 175 } | 181 } |
| 176 | 182 |
| 177 BaseChannel::~BaseChannel() { | 183 BaseChannel::~BaseChannel() { |
| 178 TRACE_EVENT0("webrtc", "BaseChannel::~BaseChannel"); | 184 TRACE_EVENT0("webrtc", "BaseChannel::~BaseChannel"); |
| 179 RTC_DCHECK(worker_thread_ == rtc::Thread::Current()); | 185 RTC_DCHECK(worker_thread_ == rtc::Thread::Current()); |
| 180 Deinit(); | 186 Deinit(); |
| 181 StopConnectionMonitor(); | 187 StopConnectionMonitor(); |
| 182 // Eats any outstanding messages or packets. | 188 // Eats any outstanding messages or packets. |
| 183 worker_thread_->Clear(&invoker_); | 189 worker_thread_->Clear(&invoker_); |
| (...skipping 2264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2448 | 2454 |
| 2449 void RtpDataChannel::OnDataChannelReadyToSend(bool writable) { | 2455 void RtpDataChannel::OnDataChannelReadyToSend(bool writable) { |
| 2450 // This is usded for congestion control to indicate that the stream is ready | 2456 // This is usded for congestion control to indicate that the stream is ready |
| 2451 // to send by the MediaChannel, as opposed to OnReadyToSend, which indicates | 2457 // to send by the MediaChannel, as opposed to OnReadyToSend, which indicates |
| 2452 // that the transport channel is ready. | 2458 // that the transport channel is ready. |
| 2453 signaling_thread()->Post(RTC_FROM_HERE, this, MSG_READYTOSENDDATA, | 2459 signaling_thread()->Post(RTC_FROM_HERE, this, MSG_READYTOSENDDATA, |
| 2454 new DataChannelReadyToSendMessageData(writable)); | 2460 new DataChannelReadyToSendMessageData(writable)); |
| 2455 } | 2461 } |
| 2456 | 2462 |
| 2457 } // namespace cricket | 2463 } // namespace cricket |
| OLD | NEW |