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

Side by Side Diff: talk/session/media/channelmanager.cc

Issue 1350523003: TransportController refactoring. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Fixing Mac test. Created 5 years, 2 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 | « talk/session/media/channelmanager.h ('k') | talk/session/media/channelmanager_unittest.cc » ('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 * libjingle 2 * libjingle
3 * Copyright 2004 Google Inc. 3 * Copyright 2004 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 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 DestroyVoiceChannel_w(voice_channels_.back()); 312 DestroyVoiceChannel_w(voice_channels_.back());
313 } 313 }
314 if (!SetCaptureDevice_w(NULL)) { 314 if (!SetCaptureDevice_w(NULL)) {
315 LOG(LS_WARNING) << "failed to delete video capturer"; 315 LOG(LS_WARNING) << "failed to delete video capturer";
316 } 316 }
317 media_engine_->Terminate(); 317 media_engine_->Terminate();
318 } 318 }
319 319
320 VoiceChannel* ChannelManager::CreateVoiceChannel( 320 VoiceChannel* ChannelManager::CreateVoiceChannel(
321 webrtc::MediaControllerInterface* media_controller, 321 webrtc::MediaControllerInterface* media_controller,
322 BaseSession* session, 322 TransportController* transport_controller,
323 const std::string& content_name, 323 const std::string& content_name,
324 bool rtcp, 324 bool rtcp,
325 const AudioOptions& options) { 325 const AudioOptions& options) {
326 return worker_thread_->Invoke<VoiceChannel*>( 326 return worker_thread_->Invoke<VoiceChannel*>(
327 Bind(&ChannelManager::CreateVoiceChannel_w, 327 Bind(&ChannelManager::CreateVoiceChannel_w, this, media_controller,
328 this, 328 transport_controller, content_name, rtcp, options));
329 media_controller,
330 session,
331 content_name,
332 rtcp,
333 options));
334 } 329 }
335 330
336 VoiceChannel* ChannelManager::CreateVoiceChannel_w( 331 VoiceChannel* ChannelManager::CreateVoiceChannel_w(
337 webrtc::MediaControllerInterface* media_controller, 332 webrtc::MediaControllerInterface* media_controller,
338 BaseSession* session, 333 TransportController* transport_controller,
339 const std::string& content_name, 334 const std::string& content_name,
340 bool rtcp, 335 bool rtcp,
341 const AudioOptions& options) { 336 const AudioOptions& options) {
342 ASSERT(initialized_); 337 ASSERT(initialized_);
343 ASSERT(worker_thread_ == rtc::Thread::Current()); 338 ASSERT(worker_thread_ == rtc::Thread::Current());
344 ASSERT(nullptr != media_controller); 339 ASSERT(nullptr != media_controller);
345 VoiceMediaChannel* media_channel = 340 VoiceMediaChannel* media_channel =
346 media_engine_->CreateChannel(media_controller->call_w(), options); 341 media_engine_->CreateChannel(media_controller->call_w(), options);
347 if (!media_channel) 342 if (!media_channel)
348 return nullptr; 343 return nullptr;
349 344
350 VoiceChannel* voice_channel = new VoiceChannel( 345 VoiceChannel* voice_channel =
351 worker_thread_, media_engine_.get(), media_channel, 346 new VoiceChannel(worker_thread_, media_engine_.get(), media_channel,
352 session, content_name, rtcp); 347 transport_controller, content_name, rtcp);
353 if (!voice_channel->Init()) { 348 if (!voice_channel->Init()) {
354 delete voice_channel; 349 delete voice_channel;
355 return nullptr; 350 return nullptr;
356 } 351 }
357 voice_channels_.push_back(voice_channel); 352 voice_channels_.push_back(voice_channel);
358 return voice_channel; 353 return voice_channel;
359 } 354 }
360 355
361 void ChannelManager::DestroyVoiceChannel(VoiceChannel* voice_channel) { 356 void ChannelManager::DestroyVoiceChannel(VoiceChannel* voice_channel) {
362 if (voice_channel) { 357 if (voice_channel) {
(...skipping 10 matching lines...) Expand all
373 voice_channels_.end(), voice_channel); 368 voice_channels_.end(), voice_channel);
374 ASSERT(it != voice_channels_.end()); 369 ASSERT(it != voice_channels_.end());
375 if (it == voice_channels_.end()) 370 if (it == voice_channels_.end())
376 return; 371 return;
377 voice_channels_.erase(it); 372 voice_channels_.erase(it);
378 delete voice_channel; 373 delete voice_channel;
379 } 374 }
380 375
381 VideoChannel* ChannelManager::CreateVideoChannel( 376 VideoChannel* ChannelManager::CreateVideoChannel(
382 webrtc::MediaControllerInterface* media_controller, 377 webrtc::MediaControllerInterface* media_controller,
383 BaseSession* session, 378 TransportController* transport_controller,
384 const std::string& content_name, 379 const std::string& content_name,
385 bool rtcp, 380 bool rtcp,
386 const VideoOptions& options) { 381 const VideoOptions& options) {
387 return worker_thread_->Invoke<VideoChannel*>( 382 return worker_thread_->Invoke<VideoChannel*>(
388 Bind(&ChannelManager::CreateVideoChannel_w, 383 Bind(&ChannelManager::CreateVideoChannel_w, this, media_controller,
389 this, 384 transport_controller, content_name, rtcp, options));
390 media_controller,
391 session,
392 content_name,
393 rtcp,
394 options));
395 } 385 }
396 386
397 VideoChannel* ChannelManager::CreateVideoChannel_w( 387 VideoChannel* ChannelManager::CreateVideoChannel_w(
398 webrtc::MediaControllerInterface* media_controller, 388 webrtc::MediaControllerInterface* media_controller,
399 BaseSession* session, 389 TransportController* transport_controller,
400 const std::string& content_name, 390 const std::string& content_name,
401 bool rtcp, 391 bool rtcp,
402 const VideoOptions& options) { 392 const VideoOptions& options) {
403 ASSERT(initialized_); 393 ASSERT(initialized_);
404 ASSERT(worker_thread_ == rtc::Thread::Current()); 394 ASSERT(worker_thread_ == rtc::Thread::Current());
405 ASSERT(nullptr != media_controller); 395 ASSERT(nullptr != media_controller);
406 VideoMediaChannel* media_channel = 396 VideoMediaChannel* media_channel =
407 media_engine_->CreateVideoChannel(media_controller->call_w(), options); 397 media_engine_->CreateVideoChannel(media_controller->call_w(), options);
408 if (media_channel == NULL) 398 if (media_channel == NULL) {
409 return NULL; 399 return NULL;
400 }
410 401
411 VideoChannel* video_channel = new VideoChannel( 402 VideoChannel* video_channel = new VideoChannel(
412 worker_thread_, media_channel, 403 worker_thread_, media_channel, transport_controller, content_name, rtcp);
413 session, content_name, rtcp);
414 if (!video_channel->Init()) { 404 if (!video_channel->Init()) {
415 delete video_channel; 405 delete video_channel;
416 return NULL; 406 return NULL;
417 } 407 }
418 video_channels_.push_back(video_channel); 408 video_channels_.push_back(video_channel);
419 return video_channel; 409 return video_channel;
420 } 410 }
421 411
422 void ChannelManager::DestroyVideoChannel(VideoChannel* video_channel) { 412 void ChannelManager::DestroyVideoChannel(VideoChannel* video_channel) {
423 if (video_channel) { 413 if (video_channel) {
(...skipping 10 matching lines...) Expand all
434 video_channels_.end(), video_channel); 424 video_channels_.end(), video_channel);
435 ASSERT(it != video_channels_.end()); 425 ASSERT(it != video_channels_.end());
436 if (it == video_channels_.end()) 426 if (it == video_channels_.end())
437 return; 427 return;
438 428
439 video_channels_.erase(it); 429 video_channels_.erase(it);
440 delete video_channel; 430 delete video_channel;
441 } 431 }
442 432
443 DataChannel* ChannelManager::CreateDataChannel( 433 DataChannel* ChannelManager::CreateDataChannel(
444 BaseSession* session, const std::string& content_name, 434 TransportController* transport_controller,
445 bool rtcp, DataChannelType channel_type) { 435 const std::string& content_name,
436 bool rtcp,
437 DataChannelType channel_type) {
446 return worker_thread_->Invoke<DataChannel*>( 438 return worker_thread_->Invoke<DataChannel*>(
447 Bind(&ChannelManager::CreateDataChannel_w, this, session, content_name, 439 Bind(&ChannelManager::CreateDataChannel_w, this, transport_controller,
448 rtcp, channel_type)); 440 content_name, rtcp, channel_type));
449 } 441 }
450 442
451 DataChannel* ChannelManager::CreateDataChannel_w( 443 DataChannel* ChannelManager::CreateDataChannel_w(
452 BaseSession* session, const std::string& content_name, 444 TransportController* transport_controller,
453 bool rtcp, DataChannelType data_channel_type) { 445 const std::string& content_name,
446 bool rtcp,
447 DataChannelType data_channel_type) {
454 // This is ok to alloc from a thread other than the worker thread. 448 // This is ok to alloc from a thread other than the worker thread.
455 ASSERT(initialized_); 449 ASSERT(initialized_);
456 DataMediaChannel* media_channel = data_media_engine_->CreateChannel( 450 DataMediaChannel* media_channel = data_media_engine_->CreateChannel(
457 data_channel_type); 451 data_channel_type);
458 if (!media_channel) { 452 if (!media_channel) {
459 LOG(LS_WARNING) << "Failed to create data channel of type " 453 LOG(LS_WARNING) << "Failed to create data channel of type "
460 << data_channel_type; 454 << data_channel_type;
461 return NULL; 455 return NULL;
462 } 456 }
463 457
464 DataChannel* data_channel = new DataChannel( 458 DataChannel* data_channel = new DataChannel(
465 worker_thread_, media_channel, 459 worker_thread_, media_channel, transport_controller, content_name, rtcp);
466 session, content_name, rtcp);
467 if (!data_channel->Init()) { 460 if (!data_channel->Init()) {
468 LOG(LS_WARNING) << "Failed to init data channel."; 461 LOG(LS_WARNING) << "Failed to init data channel.";
469 delete data_channel; 462 delete data_channel;
470 return NULL; 463 return NULL;
471 } 464 }
472 data_channels_.push_back(data_channel); 465 data_channels_.push_back(data_channel);
473 return data_channel; 466 return data_channel;
474 } 467 }
475 468
476 void ChannelManager::DestroyDataChannel(DataChannel* data_channel) { 469 void ChannelManager::DestroyDataChannel(DataChannel* data_channel) {
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after
905 const VideoFormat& max_format) { 898 const VideoFormat& max_format) {
906 device_manager_->SetVideoCaptureDeviceMaxFormat(usb_id, max_format); 899 device_manager_->SetVideoCaptureDeviceMaxFormat(usb_id, max_format);
907 } 900 }
908 901
909 bool ChannelManager::StartAecDump(rtc::PlatformFile file) { 902 bool ChannelManager::StartAecDump(rtc::PlatformFile file) {
910 return worker_thread_->Invoke<bool>( 903 return worker_thread_->Invoke<bool>(
911 Bind(&MediaEngineInterface::StartAecDump, media_engine_.get(), file)); 904 Bind(&MediaEngineInterface::StartAecDump, media_engine_.get(), file));
912 } 905 }
913 906
914 } // namespace cricket 907 } // namespace cricket
OLDNEW
« no previous file with comments | « talk/session/media/channelmanager.h ('k') | talk/session/media/channelmanager_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698