Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(200)

Side by Side Diff: content/browser/renderer_host/media/audio_input_renderer_host.cc

Issue 11298006: Browser-wide audio mirroring for TabCapture API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Adress comments Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698