| OLD | NEW |
| 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 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 99 media_engine_.reset(me); | 99 media_engine_.reset(me); |
| 100 data_media_engine_.reset(dme); | 100 data_media_engine_.reset(dme); |
| 101 capture_manager_.reset(cm); | 101 capture_manager_.reset(cm); |
| 102 initialized_ = false; | 102 initialized_ = false; |
| 103 main_thread_ = rtc::Thread::Current(); | 103 main_thread_ = rtc::Thread::Current(); |
| 104 worker_thread_ = worker_thread; | 104 worker_thread_ = worker_thread; |
| 105 audio_output_volume_ = kNotSetOutputVolume; | 105 audio_output_volume_ = kNotSetOutputVolume; |
| 106 local_renderer_ = NULL; | 106 local_renderer_ = NULL; |
| 107 capturing_ = false; | 107 capturing_ = false; |
| 108 enable_rtx_ = false; | 108 enable_rtx_ = false; |
| 109 enable_gcm_crypto_suites_ = false; |
| 109 | 110 |
| 110 capture_manager_->SignalCapturerStateChange.connect( | 111 capture_manager_->SignalCapturerStateChange.connect( |
| 111 this, &ChannelManager::OnVideoCaptureStateChange); | 112 this, &ChannelManager::OnVideoCaptureStateChange); |
| 112 } | 113 } |
| 113 | 114 |
| 114 ChannelManager::~ChannelManager() { | 115 ChannelManager::~ChannelManager() { |
| 115 if (initialized_) { | 116 if (initialized_) { |
| 116 Terminate(); | 117 Terminate(); |
| 117 // If srtp is initialized (done by the Channel) then we must call | 118 // If srtp is initialized (done by the Channel) then we must call |
| 118 // srtp_shutdown to free all crypto kernel lists. But we need to make sure | 119 // srtp_shutdown to free all crypto kernel lists. But we need to make sure |
| (...skipping 16 matching lines...) Expand all Loading... |
| 135 // app. | 136 // app. |
| 136 if (!initialized_) { | 137 if (!initialized_) { |
| 137 enable_rtx_ = enable; | 138 enable_rtx_ = enable; |
| 138 return true; | 139 return true; |
| 139 } else { | 140 } else { |
| 140 LOG(LS_WARNING) << "Cannot toggle rtx after initialization!"; | 141 LOG(LS_WARNING) << "Cannot toggle rtx after initialization!"; |
| 141 return false; | 142 return false; |
| 142 } | 143 } |
| 143 } | 144 } |
| 144 | 145 |
| 146 bool ChannelManager::SetEnableGcmCryptoSuites(bool enable) { |
| 147 enable_gcm_crypto_suites_ = enable; |
| 148 return true; |
| 149 } |
| 150 |
| 145 void ChannelManager::GetSupportedAudioCodecs( | 151 void ChannelManager::GetSupportedAudioCodecs( |
| 146 std::vector<AudioCodec>* codecs) const { | 152 std::vector<AudioCodec>* codecs) const { |
| 147 codecs->clear(); | 153 codecs->clear(); |
| 148 | 154 |
| 149 for (std::vector<AudioCodec>::const_iterator it = | 155 for (std::vector<AudioCodec>::const_iterator it = |
| 150 media_engine_->audio_codecs().begin(); | 156 media_engine_->audio_codecs().begin(); |
| 151 it != media_engine_->audio_codecs().end(); ++it) { | 157 it != media_engine_->audio_codecs().end(); ++it) { |
| 152 codecs->push_back(*it); | 158 codecs->push_back(*it); |
| 153 } | 159 } |
| 154 } | 160 } |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 268 ASSERT(worker_thread_ == rtc::Thread::Current()); | 274 ASSERT(worker_thread_ == rtc::Thread::Current()); |
| 269 ASSERT(nullptr != media_controller); | 275 ASSERT(nullptr != media_controller); |
| 270 VoiceMediaChannel* media_channel = | 276 VoiceMediaChannel* media_channel = |
| 271 media_engine_->CreateChannel(media_controller->call_w(), options); | 277 media_engine_->CreateChannel(media_controller->call_w(), options); |
| 272 if (!media_channel) | 278 if (!media_channel) |
| 273 return nullptr; | 279 return nullptr; |
| 274 | 280 |
| 275 VoiceChannel* voice_channel = | 281 VoiceChannel* voice_channel = |
| 276 new VoiceChannel(worker_thread_, media_engine_.get(), media_channel, | 282 new VoiceChannel(worker_thread_, media_engine_.get(), media_channel, |
| 277 transport_controller, content_name, rtcp); | 283 transport_controller, content_name, rtcp); |
| 284 voice_channel->SetEnableGcmCryptoSuites(enable_gcm_crypto_suites_); |
| 278 if (!voice_channel->Init()) { | 285 if (!voice_channel->Init()) { |
| 279 delete voice_channel; | 286 delete voice_channel; |
| 280 return nullptr; | 287 return nullptr; |
| 281 } | 288 } |
| 282 voice_channels_.push_back(voice_channel); | 289 voice_channels_.push_back(voice_channel); |
| 283 return voice_channel; | 290 return voice_channel; |
| 284 } | 291 } |
| 285 | 292 |
| 286 void ChannelManager::DestroyVoiceChannel(VoiceChannel* voice_channel) { | 293 void ChannelManager::DestroyVoiceChannel(VoiceChannel* voice_channel) { |
| 287 TRACE_EVENT0("webrtc", "ChannelManager::DestroyVoiceChannel"); | 294 TRACE_EVENT0("webrtc", "ChannelManager::DestroyVoiceChannel"); |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 326 ASSERT(worker_thread_ == rtc::Thread::Current()); | 333 ASSERT(worker_thread_ == rtc::Thread::Current()); |
| 327 ASSERT(nullptr != media_controller); | 334 ASSERT(nullptr != media_controller); |
| 328 VideoMediaChannel* media_channel = | 335 VideoMediaChannel* media_channel = |
| 329 media_engine_->CreateVideoChannel(media_controller->call_w(), options); | 336 media_engine_->CreateVideoChannel(media_controller->call_w(), options); |
| 330 if (media_channel == NULL) { | 337 if (media_channel == NULL) { |
| 331 return NULL; | 338 return NULL; |
| 332 } | 339 } |
| 333 | 340 |
| 334 VideoChannel* video_channel = new VideoChannel( | 341 VideoChannel* video_channel = new VideoChannel( |
| 335 worker_thread_, media_channel, transport_controller, content_name, rtcp); | 342 worker_thread_, media_channel, transport_controller, content_name, rtcp); |
| 343 video_channel->SetEnableGcmCryptoSuites(enable_gcm_crypto_suites_); |
| 336 if (!video_channel->Init()) { | 344 if (!video_channel->Init()) { |
| 337 delete video_channel; | 345 delete video_channel; |
| 338 return NULL; | 346 return NULL; |
| 339 } | 347 } |
| 340 video_channels_.push_back(video_channel); | 348 video_channels_.push_back(video_channel); |
| 341 return video_channel; | 349 return video_channel; |
| 342 } | 350 } |
| 343 | 351 |
| 344 void ChannelManager::DestroyVideoChannel(VideoChannel* video_channel) { | 352 void ChannelManager::DestroyVideoChannel(VideoChannel* video_channel) { |
| 345 TRACE_EVENT0("webrtc", "ChannelManager::DestroyVideoChannel"); | 353 TRACE_EVENT0("webrtc", "ChannelManager::DestroyVideoChannel"); |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 384 DataMediaChannel* media_channel = data_media_engine_->CreateChannel( | 392 DataMediaChannel* media_channel = data_media_engine_->CreateChannel( |
| 385 data_channel_type); | 393 data_channel_type); |
| 386 if (!media_channel) { | 394 if (!media_channel) { |
| 387 LOG(LS_WARNING) << "Failed to create data channel of type " | 395 LOG(LS_WARNING) << "Failed to create data channel of type " |
| 388 << data_channel_type; | 396 << data_channel_type; |
| 389 return NULL; | 397 return NULL; |
| 390 } | 398 } |
| 391 | 399 |
| 392 DataChannel* data_channel = new DataChannel( | 400 DataChannel* data_channel = new DataChannel( |
| 393 worker_thread_, media_channel, transport_controller, content_name, rtcp); | 401 worker_thread_, media_channel, transport_controller, content_name, rtcp); |
| 402 data_channel->SetEnableGcmCryptoSuites(enable_gcm_crypto_suites_); |
| 394 if (!data_channel->Init()) { | 403 if (!data_channel->Init()) { |
| 395 LOG(LS_WARNING) << "Failed to init data channel."; | 404 LOG(LS_WARNING) << "Failed to init data channel."; |
| 396 delete data_channel; | 405 delete data_channel; |
| 397 return NULL; | 406 return NULL; |
| 398 } | 407 } |
| 399 data_channels_.push_back(data_channel); | 408 data_channels_.push_back(data_channel); |
| 400 return data_channel; | 409 return data_channel; |
| 401 } | 410 } |
| 402 | 411 |
| 403 void ChannelManager::DestroyDataChannel(DataChannel* data_channel) { | 412 void ChannelManager::DestroyDataChannel(DataChannel* data_channel) { |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 564 return worker_thread_->Invoke<bool>( | 573 return worker_thread_->Invoke<bool>( |
| 565 Bind(&MediaEngineInterface::StartRtcEventLog, media_engine_.get(), file)); | 574 Bind(&MediaEngineInterface::StartRtcEventLog, media_engine_.get(), file)); |
| 566 } | 575 } |
| 567 | 576 |
| 568 void ChannelManager::StopRtcEventLog() { | 577 void ChannelManager::StopRtcEventLog() { |
| 569 worker_thread_->Invoke<void>( | 578 worker_thread_->Invoke<void>( |
| 570 Bind(&MediaEngineInterface::StopRtcEventLog, media_engine_.get())); | 579 Bind(&MediaEngineInterface::StopRtcEventLog, media_engine_.get())); |
| 571 } | 580 } |
| 572 | 581 |
| 573 } // namespace cricket | 582 } // namespace cricket |
| OLD | NEW |