summaryrefslogtreecommitdiffstats
path: root/content
diff options
context:
space:
mode:
authorhenrika@chromium.org <henrika@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-10 07:51:19 +0000
committerhenrika@chromium.org <henrika@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-10 07:51:19 +0000
commit376bc263943f45fa6de1b200f01bacca184cf900 (patch)
treedf14d69f86a2bde708ade16b3a24fa96402e41b9 /content
parente59bbdbe822e9a3b106fbb9ec0f5b0b7df184b71 (diff)
downloadchromium_src-376bc263943f45fa6de1b200f01bacca184cf900.zip
chromium_src-376bc263943f45fa6de1b200f01bacca184cf900.tar.gz
chromium_src-376bc263943f45fa6de1b200f01bacca184cf900.tar.bz2
Adds proper IPC usage for AudioDevice::GetAudioHardwareBufferSize().
This method did previously call directly into media/audio. BUG=none TEST=WebAudio demo in multi-process mode Review URL: http://codereview.chromium.org/8497014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109388 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content')
-rw-r--r--content/browser/renderer_host/render_message_filter.cc6
-rw-r--r--content/browser/renderer_host/render_message_filter.h1
-rw-r--r--content/common/view_messages.h4
-rw-r--r--content/renderer/media/audio_device.cc11
4 files changed, 17 insertions, 5 deletions
diff --git a/content/browser/renderer_host/render_message_filter.cc b/content/browser/renderer_host/render_message_filter.cc
index 624af29..8f58ec8 100644
--- a/content/browser/renderer_host/render_message_filter.cc
+++ b/content/browser/renderer_host/render_message_filter.cc
@@ -356,6 +356,8 @@ bool RenderMessageFilter::OnMessageReceived(const IPC::Message& message,
OnCacheableMetadataAvailable)
IPC_MESSAGE_HANDLER_DELAY_REPLY(ViewHostMsg_Keygen, OnKeygen)
IPC_MESSAGE_HANDLER(ViewHostMsg_AsyncOpenFile, OnAsyncOpenFile)
+ IPC_MESSAGE_HANDLER(ViewHostMsg_GetHardwareBufferSize,
+ OnGetHardwareBufferSize)
IPC_MESSAGE_HANDLER(ViewHostMsg_GetHardwareInputSampleRate,
OnGetHardwareInputSampleRate)
IPC_MESSAGE_HANDLER(ViewHostMsg_GetHardwareSampleRate,
@@ -606,6 +608,10 @@ void RenderMessageFilter::OnGenerateRoutingID(int* route_id) {
*route_id = render_widget_helper_->GetNextRoutingID();
}
+void RenderMessageFilter::OnGetHardwareBufferSize(uint32* buffer_size) {
+ *buffer_size = static_cast<uint32>(media::GetAudioHardwareBufferSize());
+}
+
void RenderMessageFilter::OnGetHardwareInputSampleRate(double* sample_rate) {
*sample_rate = media::GetAudioInputHardwareSampleRate();
}
diff --git a/content/browser/renderer_host/render_message_filter.h b/content/browser/renderer_host/render_message_filter.h
index a38aa9e..1215554 100644
--- a/content/browser/renderer_host/render_message_filter.h
+++ b/content/browser/renderer_host/render_message_filter.h
@@ -178,6 +178,7 @@ class RenderMessageFilter : public BrowserMessageFilter {
void OnCheckNotificationPermission(const GURL& source_origin,
int* permission_level);
+ void OnGetHardwareBufferSize(uint32* buffer_size);
void OnGetHardwareInputSampleRate(double* sample_rate);
void OnGetHardwareSampleRate(double* sample_rate);
diff --git a/content/common/view_messages.h b/content/common/view_messages.h
index ce9ea3e..a5315e6 100644
--- a/content/common/view_messages.h
+++ b/content/common/view_messages.h
@@ -682,6 +682,10 @@ IPC_MESSAGE_ROUTED1(ViewMsg_SetCSSColors,
IPC_SYNC_MESSAGE_CONTROL0_1(ViewHostMsg_GenerateRoutingID,
int /* routing_id */)
+// Asks the browser for the default audio hardware buffer-size.
+IPC_SYNC_MESSAGE_CONTROL0_1(ViewHostMsg_GetHardwareBufferSize,
+ uint32 /* buffer_size */)
+
// Asks the browser for the default audio input hardware sample-rate.
IPC_SYNC_MESSAGE_CONTROL0_1(ViewHostMsg_GetHardwareInputSampleRate,
double /* sample_rate */)
diff --git a/content/renderer/media/audio_device.cc b/content/renderer/media/audio_device.cc
index 7f007da..22edb16 100644
--- a/content/renderer/media/audio_device.cc
+++ b/content/renderer/media/audio_device.cc
@@ -213,7 +213,6 @@ void AudioDevice::Run() {
while ((sizeof(pending_data) == socket_->Receive(&pending_data,
sizeof(pending_data))) &&
(pending_data >= 0)) {
-
// Convert the number of pending bytes in the render buffer
// into milliseconds.
audio_delay_milliseconds_ = pending_data / bytes_per_ms;
@@ -247,10 +246,12 @@ double AudioDevice::GetAudioHardwareSampleRate() {
size_t AudioDevice::GetAudioHardwareBufferSize() {
// Uses cached value if possible.
- static size_t buffer_size = 0;
+ static uint32 buffer_size = 0;
- if (!buffer_size)
- buffer_size = media::GetAudioHardwareBufferSize();
+ if (!buffer_size) {
+ RenderThreadImpl::current()->Send(
+ new ViewHostMsg_GetHardwareBufferSize(&buffer_size));
+ }
- return buffer_size;
+ return static_cast<size_t>(buffer_size);
}