diff options
author | dalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-01 04:42:39 +0000 |
---|---|---|
committer | dalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-01 04:42:39 +0000 |
commit | 563d665f0a231e3a0237445b577b68bb9b3f212e (patch) | |
tree | 5f4b4dd7497f7fe94653850f3f4f3812fcecf4d8 /content/renderer/media/audio_renderer_mixer_manager.cc | |
parent | ccfa43f042db868f6584f9cceef94ca7c4ddf239 (diff) | |
download | chromium_src-563d665f0a231e3a0237445b577b68bb9b3f212e.zip chromium_src-563d665f0a231e3a0237445b577b68bb9b3f212e.tar.gz chromium_src-563d665f0a231e3a0237445b577b68bb9b3f212e.tar.bz2 |
Introduce AudioHardwareConfig for renderer side audio device info.
As discussed, this creates a media::AudioHardwareConfig class lazily created,
owned, and filled by RenderThreadImpl via a single synchronous IPC and updated
via AudioMessageFilter.
This change does not plumb part 2 where AudioRendererMixer recreates itself based
on these device change updates.
BUG=157216
TEST=New unittest. Device changes on Windows/Mac continue to work.
Review URL: https://chromiumcodereview.appspot.com/11880009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180068 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/media/audio_renderer_mixer_manager.cc')
-rw-r--r-- | content/renderer/media/audio_renderer_mixer_manager.cc | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/content/renderer/media/audio_renderer_mixer_manager.cc b/content/renderer/media/audio_renderer_mixer_manager.cc index 71fafcb..d6e88c8 100644 --- a/content/renderer/media/audio_renderer_mixer_manager.cc +++ b/content/renderer/media/audio_renderer_mixer_manager.cc @@ -8,15 +8,15 @@ #include "base/bind_helpers.h" #include "content/renderer/media/audio_device_factory.h" #include "content/renderer/media/renderer_audio_output_device.h" +#include "media/base/audio_hardware_config.h" #include "media/base/audio_renderer_mixer.h" #include "media/base/audio_renderer_mixer_input.h" namespace content { -AudioRendererMixerManager::AudioRendererMixerManager(int hardware_sample_rate, - int hardware_buffer_size) - : hardware_sample_rate_(hardware_sample_rate), - hardware_buffer_size_(hardware_buffer_size), +AudioRendererMixerManager::AudioRendererMixerManager( + media::AudioHardwareConfig* hardware_config) + : hardware_config_(hardware_config), sink_for_testing_(NULL) { } @@ -57,7 +57,7 @@ media::AudioRendererMixer* AudioRendererMixerManager::GetMixer( #if defined(OS_LINUX) int sample_rate = params.sample_rate(); #else - int sample_rate = hardware_sample_rate_; + int sample_rate = hardware_config_->GetOutputSampleRate(); #endif // Create output parameters based on the audio hardware configuration for @@ -65,7 +65,7 @@ media::AudioRendererMixer* AudioRendererMixerManager::GetMixer( // know that works well for WebAudio and WebRTC. media::AudioParameters output_params( media::AudioParameters::AUDIO_PCM_LOW_LATENCY, params.channel_layout(), - sample_rate, 16, hardware_buffer_size_); + sample_rate, 16, hardware_config_->GetOutputBufferSize()); // If we've created invalid output parameters, simply pass on the input params // and let the browser side handle automatic fallback. |