| Index: content/renderer/media/audio_device.cc
|
| ===================================================================
|
| --- content/renderer/media/audio_device.cc (revision 110480)
|
| +++ content/renderer/media/audio_device.cc (working copy)
|
| @@ -14,6 +14,11 @@
|
| #include "content/renderer/render_thread_impl.h"
|
| #include "media/audio/audio_util.h"
|
|
|
| +double AudioHardware::output_sample_rate_ = 0.0;
|
| +double AudioHardware::input_sample_rate_ = 0.0;
|
| +size_t AudioHardware::output_buffer_size_ = 0;
|
| +
|
| +
|
| AudioDevice::AudioDevice(size_t buffer_size,
|
| int channels,
|
| double sample_rate,
|
| @@ -234,24 +239,35 @@
|
| }
|
| }
|
|
|
| -double AudioDevice::GetAudioHardwareSampleRate() {
|
| - // Uses cached value if possible.
|
| - static double hardware_sample_rate = 0;
|
| - if (!hardware_sample_rate) {
|
| +double AudioHardware::GetOutputSampleRate() {
|
| + if (!output_sample_rate_) {
|
| RenderThreadImpl::current()->Send(
|
| - new ViewHostMsg_GetHardwareSampleRate(&hardware_sample_rate));
|
| + new ViewHostMsg_GetHardwareSampleRate(&output_sample_rate_));
|
| }
|
| - return hardware_sample_rate;
|
| + return output_sample_rate_;
|
| }
|
|
|
| -size_t AudioDevice::GetAudioHardwareBufferSize() {
|
| - // Uses cached value if possible.
|
| - static uint32 buffer_size = 0;
|
| +double AudioHardware::GetInputSampleRate() {
|
| + if (!input_sample_rate_) {
|
| + RenderThreadImpl::current()->Send(
|
| + new ViewHostMsg_GetHardwareInputSampleRate(&input_sample_rate_));
|
| + }
|
| + return input_sample_rate_;
|
| +}
|
|
|
| - if (!buffer_size) {
|
| +size_t AudioHardware::GetOutputBufferSize() {
|
| + if (!output_buffer_size_) {
|
| + uint32 buffer_size = 0;
|
| RenderThreadImpl::current()->Send(
|
| new ViewHostMsg_GetHardwareBufferSize(&buffer_size));
|
| + output_buffer_size_ = buffer_size;
|
| }
|
|
|
| - return static_cast<size_t>(buffer_size);
|
| + return output_buffer_size_;
|
| }
|
| +
|
| +void AudioHardware::ResetCache() {
|
| + output_sample_rate_ = 0.0;
|
| + input_sample_rate_ = 0.0;
|
| + output_buffer_size_ = 0;
|
| +}
|
|
|