Index: content/renderer/pepper_plugin_delegate_impl.cc |
=================================================================== |
--- content/renderer/pepper_plugin_delegate_impl.cc (revision 120806) |
+++ content/renderer/pepper_plugin_delegate_impl.cc (working copy) |
@@ -34,6 +34,7 @@ |
#include "content/public/common/content_switches.h" |
#include "content/public/renderer/content_renderer_client.h" |
#include "content/renderer/gamepad_shared_memory_reader.h" |
+#include "content/renderer/media/audio_hardware.h" |
#include "content/renderer/media/audio_input_message_filter.h" |
#include "content/renderer/media/audio_message_filter.h" |
#include "content/renderer/media/pepper_platform_video_decoder_impl.h" |
@@ -228,7 +229,12 @@ |
client_ = client; |
AudioParameters params; |
- params.format = AudioParameters::AUDIO_PCM_LINEAR; |
+ // Use the low latency back end if the client request is compatible. |
+ if (sample_rate == audio_hardware::GetOutputSampleRate() && |
+ sample_count % audio_hardware::GetOutputBufferSize() == 0) |
+ params.format = AudioParameters::AUDIO_PCM_LOW_LATENCY; |
+ else |
+ params.format = AudioParameters::AUDIO_PCM_LINEAR; |
params.channels = 2; |
params.sample_rate = sample_rate; |
params.bits_per_sample = 16; |
@@ -1261,6 +1267,14 @@ |
identifier, index + 1, WebKit::WebRect()); |
} |
+uint32_t PepperPluginDelegateImpl::AudioHardwareOutputSampleRate() { |
+ return static_cast<uint32_t>(audio_hardware::GetOutputSampleRate()); |
+} |
+ |
+uint32_t PepperPluginDelegateImpl::AudioHardwareOutputBufferSize() { |
+ return static_cast<uint32_t>(audio_hardware::GetOutputBufferSize()); |
+} |
+ |
webkit::ppapi::PluginDelegate::PlatformAudio* |
PepperPluginDelegateImpl::CreateAudio( |
uint32_t sample_rate, |