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_)); |
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 |