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

Side by Side Diff: webrtc/pc/channelmanager.cc

Issue 2614263002: Remove BaseChannel's dependency on TransportController. (Closed)
Patch Set: Fix the channel_unittests 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
« webrtc/pc/channel.cc ('K') | « webrtc/pc/channel_unittest.cc ('k') | no next file » | 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 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 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 webrtc::MediaControllerInterface* media_controller, 230 webrtc::MediaControllerInterface* media_controller,
231 TransportController* transport_controller, 231 TransportController* transport_controller,
232 const std::string& content_name, 232 const std::string& content_name,
233 const std::string* bundle_transport_name, 233 const std::string* bundle_transport_name,
234 bool rtcp, 234 bool rtcp,
235 bool srtp_required, 235 bool srtp_required,
236 const AudioOptions& options) { 236 const AudioOptions& options) {
237 ASSERT(initialized_); 237 ASSERT(initialized_);
238 ASSERT(worker_thread_ == rtc::Thread::Current()); 238 ASSERT(worker_thread_ == rtc::Thread::Current());
239 ASSERT(nullptr != media_controller); 239 ASSERT(nullptr != media_controller);
240
240 VoiceMediaChannel* media_channel = media_engine_->CreateChannel( 241 VoiceMediaChannel* media_channel = media_engine_->CreateChannel(
241 media_controller->call_w(), media_controller->config(), options); 242 media_controller->call_w(), media_controller->config(), options);
242 if (!media_channel) 243 if (!media_channel)
243 return nullptr; 244 return nullptr;
244 245
246 rtc::Thread* signaling_thread =
247 transport_controller ? transport_controller->signaling_thread() : nullptr;
245 VoiceChannel* voice_channel = new VoiceChannel( 248 VoiceChannel* voice_channel = new VoiceChannel(
246 worker_thread_, network_thread_, media_engine_.get(), media_channel, 249 worker_thread_, network_thread_, signaling_thread, media_engine_.get(),
247 transport_controller, content_name, rtcp, srtp_required); 250 media_channel, content_name, rtcp, srtp_required);
248 voice_channel->SetCryptoOptions(crypto_options_); 251 voice_channel->SetCryptoOptions(crypto_options_);
249 if (!voice_channel->Init_w(bundle_transport_name)) { 252 std::string transport_name =
253 bundle_transport_name ? *bundle_transport_name : content_name;
254 TransportChannel* rtp_transport =
255 transport_controller->CreateTransportChannel(
256 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP);
257 TransportChannel* rtcp_transport =
258 rtcp
259 ? transport_controller->CreateTransportChannel(
260 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP)
261 : nullptr;
Taylor Brandstetter 2017/01/09 22:50:42 Could this code be moved to WebRtcSession? That wo
Zhi Huang 2017/01/12 03:47:46 Done.
262 if (!voice_channel->Init_w(rtp_transport, rtcp_transport)) {
250 delete voice_channel; 263 delete voice_channel;
251 return nullptr; 264 return nullptr;
252 } 265 }
253 voice_channels_.push_back(voice_channel); 266 voice_channels_.push_back(voice_channel);
254 return voice_channel; 267 return voice_channel;
255 } 268 }
256 269
257 void ChannelManager::DestroyVoiceChannel(VoiceChannel* voice_channel) { 270 void ChannelManager::DestroyVoiceChannel(VoiceChannel* voice_channel) {
258 TRACE_EVENT0("webrtc", "ChannelManager::DestroyVoiceChannel"); 271 TRACE_EVENT0("webrtc", "ChannelManager::DestroyVoiceChannel");
259 if (voice_channel) { 272 if (voice_channel) {
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 const VideoOptions& options) { 314 const VideoOptions& options) {
302 ASSERT(initialized_); 315 ASSERT(initialized_);
303 ASSERT(worker_thread_ == rtc::Thread::Current()); 316 ASSERT(worker_thread_ == rtc::Thread::Current());
304 ASSERT(nullptr != media_controller); 317 ASSERT(nullptr != media_controller);
305 VideoMediaChannel* media_channel = media_engine_->CreateVideoChannel( 318 VideoMediaChannel* media_channel = media_engine_->CreateVideoChannel(
306 media_controller->call_w(), media_controller->config(), options); 319 media_controller->call_w(), media_controller->config(), options);
307 if (media_channel == NULL) { 320 if (media_channel == NULL) {
308 return NULL; 321 return NULL;
309 } 322 }
310 323
324 rtc::Thread* signaling_thread =
325 transport_controller ? transport_controller->signaling_thread() : nullptr;
311 VideoChannel* video_channel = 326 VideoChannel* video_channel =
312 new VideoChannel(worker_thread_, network_thread_, media_channel, 327 new VideoChannel(worker_thread_, network_thread_, signaling_thread,
313 transport_controller, content_name, rtcp, srtp_required); 328 media_channel, content_name, rtcp, srtp_required);
314 video_channel->SetCryptoOptions(crypto_options_); 329 video_channel->SetCryptoOptions(crypto_options_);
315 if (!video_channel->Init_w(bundle_transport_name)) { 330 std::string transport_name =
331 bundle_transport_name ? *bundle_transport_name : content_name;
332 TransportChannel* rtp_transport =
333 transport_controller->CreateTransportChannel(
334 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP);
335 TransportChannel* rtcp_transport =
336 rtcp
337 ? transport_controller->CreateTransportChannel(
338 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP)
339 : nullptr;
340 if (!video_channel->Init_w(rtp_transport, rtcp_transport)) {
316 delete video_channel; 341 delete video_channel;
317 return NULL; 342 return NULL;
318 } 343 }
319 video_channels_.push_back(video_channel); 344 video_channels_.push_back(video_channel);
320 return video_channel; 345 return video_channel;
321 } 346 }
322 347
323 void ChannelManager::DestroyVideoChannel(VideoChannel* video_channel) { 348 void ChannelManager::DestroyVideoChannel(VideoChannel* video_channel) {
324 TRACE_EVENT0("webrtc", "ChannelManager::DestroyVideoChannel"); 349 TRACE_EVENT0("webrtc", "ChannelManager::DestroyVideoChannel");
325 if (video_channel) { 350 if (video_channel) {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 if (media_controller) { 398 if (media_controller) {
374 config = media_controller->config(); 399 config = media_controller->config();
375 } 400 }
376 DataMediaChannel* media_channel = 401 DataMediaChannel* media_channel =
377 data_media_engine_->CreateChannel(data_channel_type, config); 402 data_media_engine_->CreateChannel(data_channel_type, config);
378 if (!media_channel) { 403 if (!media_channel) {
379 LOG(LS_WARNING) << "Failed to create data channel of type " 404 LOG(LS_WARNING) << "Failed to create data channel of type "
380 << data_channel_type; 405 << data_channel_type;
381 return NULL; 406 return NULL;
382 } 407 }
383 408 rtc::Thread* signaling_thread =
409 transport_controller ? transport_controller->signaling_thread() : nullptr;
384 // Only RTP data channels need SRTP. 410 // Only RTP data channels need SRTP.
385 srtp_required = srtp_required && data_channel_type == DCT_RTP; 411 srtp_required = srtp_required && data_channel_type == DCT_RTP;
386 DataChannel* data_channel = 412 DataChannel* data_channel =
387 new DataChannel(worker_thread_, network_thread_, media_channel, 413 new DataChannel(worker_thread_, network_thread_, signaling_thread,
388 transport_controller, content_name, rtcp, srtp_required); 414 media_channel, content_name, rtcp, srtp_required);
415 std::string transport_name =
416 bundle_transport_name ? *bundle_transport_name : content_name;
417 TransportChannel* rtp_transport =
418 transport_controller->CreateTransportChannel(
419 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTP);
420 TransportChannel* rtcp_transport =
421 rtcp
422 ? transport_controller->CreateTransportChannel(
423 transport_name, cricket::ICE_CANDIDATE_COMPONENT_RTCP)
424 : nullptr;
389 data_channel->SetCryptoOptions(crypto_options_); 425 data_channel->SetCryptoOptions(crypto_options_);
390 if (!data_channel->Init_w(bundle_transport_name)) { 426 if (!data_channel->Init_w(rtp_transport, rtcp_transport)) {
391 LOG(LS_WARNING) << "Failed to init data channel."; 427 LOG(LS_WARNING) << "Failed to init data channel.";
392 delete data_channel; 428 delete data_channel;
393 return NULL; 429 return NULL;
394 } 430 }
395 data_channels_.push_back(data_channel); 431 data_channels_.push_back(data_channel);
396 return data_channel; 432 return data_channel;
397 } 433 }
398 434
399 void ChannelManager::DestroyDataChannel(DataChannel* data_channel) { 435 void ChannelManager::DestroyDataChannel(DataChannel* data_channel) {
400 TRACE_EVENT0("webrtc", "ChannelManager::DestroyDataChannel"); 436 TRACE_EVENT0("webrtc", "ChannelManager::DestroyDataChannel");
(...skipping 25 matching lines...) Expand all
426 media_engine_.get(), file, max_size_bytes)); 462 media_engine_.get(), file, max_size_bytes));
427 } 463 }
428 464
429 void ChannelManager::StopAecDump() { 465 void ChannelManager::StopAecDump() {
430 worker_thread_->Invoke<void>( 466 worker_thread_->Invoke<void>(
431 RTC_FROM_HERE, 467 RTC_FROM_HERE,
432 Bind(&MediaEngineInterface::StopAecDump, media_engine_.get())); 468 Bind(&MediaEngineInterface::StopAecDump, media_engine_.get()));
433 } 469 }
434 470
435 } // namespace cricket 471 } // namespace cricket
OLDNEW
« webrtc/pc/channel.cc ('K') | « webrtc/pc/channel_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698