| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/renderer_host/media/media_stream_manager.h" | 5 #include "content/browser/renderer_host/media/media_stream_manager.h" |
| 6 | 6 |
| 7 #include <list> | 7 #include <list> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| 11 #include "base/logging.h" | 11 #include "base/logging.h" |
| 12 #include "base/rand_util.h" | 12 #include "base/rand_util.h" |
| 13 #include "content/browser/renderer_host/media/audio_input_device_manager.h" | 13 #include "content/browser/renderer_host/media/audio_input_device_manager.h" |
| 14 #include "content/browser/renderer_host/media/media_stream_device_settings.h" | 14 #include "content/browser/renderer_host/media/media_stream_device_settings.h" |
| 15 #include "content/browser/renderer_host/media/media_stream_requester.h" | 15 #include "content/browser/renderer_host/media/media_stream_requester.h" |
| 16 #include "content/browser/renderer_host/media/video_capture_manager.h" | 16 #include "content/browser/renderer_host/media/video_capture_manager.h" |
| 17 #include "content/common/media/media_stream_options.h" | 17 #include "content/common/media/media_stream_options.h" |
| 18 #include "content/public/browser/browser_thread.h" | 18 #include "content/public/browser/browser_thread.h" |
| 19 #include "media/audio/audio_manager.h" |
| 19 | 20 |
| 20 using content::BrowserThread; | 21 using content::BrowserThread; |
| 21 | 22 |
| 22 namespace media_stream { | 23 namespace media_stream { |
| 23 | 24 |
| 24 // Creates a random label used to identify requests. | 25 // Creates a random label used to identify requests. |
| 25 static std::string RandomLabel() { | 26 static std::string RandomLabel() { |
| 26 // Alphabet according to WhatWG standard, i.e. containing 36 characters from | 27 // Alphabet according to WhatWG standard, i.e. containing 36 characters from |
| 27 // range: U+0021, U+0023 to U+0027, U+002A to U+002B, U+002D to U+002E, | 28 // range: U+0021, U+0023 to U+0027, U+002A to U+002B, U+002D to U+002E, |
| 28 // U+0030 to U+0039, U+0041 to U+005A, U+005E to U+007E. | 29 // U+0030 to U+0039, U+0041 to U+005A, U+005E to U+007E. |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 kError | 74 kError |
| 74 }; | 75 }; |
| 75 | 76 |
| 76 MediaStreamRequester* requester; | 77 MediaStreamRequester* requester; |
| 77 StreamOptions options; | 78 StreamOptions options; |
| 78 std::vector<RequestState> state; | 79 std::vector<RequestState> state; |
| 79 StreamDeviceInfoArray audio_devices; | 80 StreamDeviceInfoArray audio_devices; |
| 80 StreamDeviceInfoArray video_devices; | 81 StreamDeviceInfoArray video_devices; |
| 81 }; | 82 }; |
| 82 | 83 |
| 83 MediaStreamManager::MediaStreamManager() | 84 MediaStreamManager::MediaStreamManager(AudioManager* audio_manager) |
| 84 : ALLOW_THIS_IN_INITIALIZER_LIST( | 85 : ALLOW_THIS_IN_INITIALIZER_LIST( |
| 85 device_settings_(new MediaStreamDeviceSettings(this))), | 86 device_settings_(new MediaStreamDeviceSettings(this))), |
| 86 enumeration_in_progress_(kNumMediaStreamTypes, false) { | 87 enumeration_in_progress_(kNumMediaStreamTypes, false), |
| 88 audio_manager_(audio_manager) { |
| 87 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 89 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 88 } | 90 } |
| 89 | 91 |
| 90 MediaStreamManager::~MediaStreamManager() { | 92 MediaStreamManager::~MediaStreamManager() { |
| 91 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 93 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 92 } | 94 } |
| 93 | 95 |
| 94 VideoCaptureManager* MediaStreamManager::video_capture_manager() { | 96 VideoCaptureManager* MediaStreamManager::video_capture_manager() { |
| 95 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 97 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 96 if (!video_capture_manager_.get()) { | 98 if (!video_capture_manager_.get()) { |
| 97 video_capture_manager_.reset(new VideoCaptureManager()); | 99 video_capture_manager_.reset(new VideoCaptureManager()); |
| 98 video_capture_manager_->Register(this); | 100 video_capture_manager_->Register(this); |
| 99 } | 101 } |
| 100 return video_capture_manager_.get(); | 102 return video_capture_manager_.get(); |
| 101 } | 103 } |
| 102 | 104 |
| 103 AudioInputDeviceManager* MediaStreamManager::audio_input_device_manager() { | 105 AudioInputDeviceManager* MediaStreamManager::audio_input_device_manager() { |
| 104 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 106 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 105 if (!audio_input_device_manager_.get()) { | 107 if (!audio_input_device_manager_.get()) { |
| 106 audio_input_device_manager_.reset(new AudioInputDeviceManager()); | 108 audio_input_device_manager_.reset( |
| 109 new AudioInputDeviceManager(audio_manager_.get())); |
| 107 audio_input_device_manager_->Register(this); | 110 audio_input_device_manager_->Register(this); |
| 108 } | 111 } |
| 109 return audio_input_device_manager_.get(); | 112 return audio_input_device_manager_.get(); |
| 110 } | 113 } |
| 111 | 114 |
| 112 void MediaStreamManager::GenerateStream(MediaStreamRequester* requester, | 115 void MediaStreamManager::GenerateStream(MediaStreamRequester* requester, |
| 113 int render_process_id, | 116 int render_process_id, |
| 114 int render_view_id, | 117 int render_view_id, |
| 115 const StreamOptions& options, | 118 const StreamOptions& options, |
| 116 const std::string& security_origin, | 119 const std::string& security_origin, |
| (...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 438 if (stream_type == kVideoCapture) { | 441 if (stream_type == kVideoCapture) { |
| 439 return video_capture_manager(); | 442 return video_capture_manager(); |
| 440 } else if (stream_type == kAudioCapture) { | 443 } else if (stream_type == kAudioCapture) { |
| 441 return audio_input_device_manager(); | 444 return audio_input_device_manager(); |
| 442 } | 445 } |
| 443 NOTREACHED(); | 446 NOTREACHED(); |
| 444 return NULL; | 447 return NULL; |
| 445 } | 448 } |
| 446 | 449 |
| 447 } // namespace media_stream | 450 } // namespace media_stream |
| OLD | NEW |