summaryrefslogtreecommitdiffstats
path: root/content/renderer/media/audio_renderer_mixer_manager.cc
diff options
context:
space:
mode:
authordalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-01 04:42:39 +0000
committerdalecurtis@chromium.org <dalecurtis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-01 04:42:39 +0000
commit563d665f0a231e3a0237445b577b68bb9b3f212e (patch)
tree5f4b4dd7497f7fe94653850f3f4f3812fcecf4d8 /content/renderer/media/audio_renderer_mixer_manager.cc
parentccfa43f042db868f6584f9cceef94ca7c4ddf239 (diff)
downloadchromium_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.cc12
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.