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 |