| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/audio_input_renderer_host.h" | 5 #include "content/browser/renderer_host/media/audio_input_renderer_host.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/metrics/histogram.h" | 8 #include "base/metrics/histogram.h" |
| 9 #include "base/process.h" | 9 #include "base/process.h" |
| 10 #include "base/shared_memory.h" | 10 #include "base/shared_memory.h" |
| 11 #include "content/browser/renderer_host/media/audio_input_device_manager.h" | 11 #include "content/browser/renderer_host/media/audio_input_device_manager.h" |
| 12 #include "content/browser/renderer_host/media/audio_input_sync_writer.h" | 12 #include "content/browser/renderer_host/media/audio_input_sync_writer.h" |
| 13 #include "content/browser/renderer_host/media/media_stream_manager.h" | 13 #include "content/browser/renderer_host/media/media_stream_manager.h" |
| 14 #include "content/browser/renderer_host/media/web_contents_capture_util.h" |
| 14 #include "content/common/media/audio_messages.h" | 15 #include "content/common/media/audio_messages.h" |
| 15 | 16 |
| 16 namespace content { | 17 namespace content { |
| 17 | 18 |
| 18 struct AudioInputRendererHost::AudioEntry { | 19 struct AudioInputRendererHost::AudioEntry { |
| 19 AudioEntry(); | 20 AudioEntry(); |
| 20 ~AudioEntry(); | 21 ~AudioEntry(); |
| 21 | 22 |
| 22 // The AudioInputController that manages the audio input stream. | 23 // The AudioInputController that manages the audio input stream. |
| 23 scoped_refptr<media::AudioInputController> controller; | 24 scoped_refptr<media::AudioInputController> controller; |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 211 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 212 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 212 DCHECK(LookupById(stream_id) == NULL); | 213 DCHECK(LookupById(stream_id) == NULL); |
| 213 | 214 |
| 214 media::AudioParameters audio_params(params); | 215 media::AudioParameters audio_params(params); |
| 215 | 216 |
| 216 if (media_stream_manager_->audio_input_device_manager()-> | 217 if (media_stream_manager_->audio_input_device_manager()-> |
| 217 ShouldUseFakeDevice()) { | 218 ShouldUseFakeDevice()) { |
| 218 audio_params.Reset(media::AudioParameters::AUDIO_FAKE, | 219 audio_params.Reset(media::AudioParameters::AUDIO_FAKE, |
| 219 params.channel_layout(), params.sample_rate(), | 220 params.channel_layout(), params.sample_rate(), |
| 220 params.bits_per_sample(), params.frames_per_buffer()); | 221 params.bits_per_sample(), params.frames_per_buffer()); |
| 222 } else if (WebContentsCaptureUtil::IsWebContentsDeviceId(device_id)) { |
| 223 audio_params.Reset(media::AudioParameters::AUDIO_MIRROR_BROWSER, |
| 224 params.channel_layout(), params.sample_rate(), |
| 225 params.bits_per_sample(), params.frames_per_buffer()); |
| 221 } | 226 } |
| 222 | 227 |
| 223 DCHECK_GT(audio_params.frames_per_buffer(), 0); | 228 DCHECK_GT(audio_params.frames_per_buffer(), 0); |
| 224 uint32 buffer_size = audio_params.GetBytesPerBuffer(); | 229 uint32 buffer_size = audio_params.GetBytesPerBuffer(); |
| 225 | 230 |
| 226 // Create a new AudioEntry structure. | 231 // Create a new AudioEntry structure. |
| 227 scoped_ptr<AudioEntry> entry(new AudioEntry()); | 232 scoped_ptr<AudioEntry> entry(new AudioEntry()); |
| 228 | 233 |
| 229 uint32 mem_size = sizeof(media::AudioInputBufferParameters) + buffer_size; | 234 uint32 mem_size = sizeof(media::AudioInputBufferParameters) + buffer_size; |
| 230 | 235 |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 431 for (SessionEntryMap::iterator it = session_entries_.begin(); | 436 for (SessionEntryMap::iterator it = session_entries_.begin(); |
| 432 it != session_entries_.end(); ++it) { | 437 it != session_entries_.end(); ++it) { |
| 433 if (stream_id == it->second) { | 438 if (stream_id == it->second) { |
| 434 return it->first; | 439 return it->first; |
| 435 } | 440 } |
| 436 } | 441 } |
| 437 return 0; | 442 return 0; |
| 438 } | 443 } |
| 439 | 444 |
| 440 } // namespace content | 445 } // namespace content |
| OLD | NEW |