Index: chrome/browser/renderer_host/audio_renderer_host.cc |
diff --git a/chrome/browser/renderer_host/audio_renderer_host.cc b/chrome/browser/renderer_host/audio_renderer_host.cc |
index 4e9c4db447891de9537ca10ac7a73bf7759f1ea1..032978cb7db6ef422915fb9afa4f015ba798dce9 100644 |
--- a/chrome/browser/renderer_host/audio_renderer_host.cc |
+++ b/chrome/browser/renderer_host/audio_renderer_host.cc |
@@ -95,7 +95,8 @@ AudioRendererHost::IPCAudioSource::CreateIPCAudioSource( |
int sample_rate, |
char bits_per_sample, |
uint32 decoded_packet_size, |
- uint32 buffer_capacity) { |
+ uint32 buffer_capacity, |
+ bool low_latency) { |
// Perform come preliminary checks on the parameters. |
// Make sure the renderer didn't ask for too much memory. |
if (buffer_capacity > kMaxBufferCapacity || |
@@ -153,16 +154,7 @@ AudioRendererHost::IPCAudioSource::CreateIPCAudioSource( |
source->shared_memory_.Map(decoded_packet_size) && |
source->shared_memory_.ShareToProcess(process_handle, |
&foreign_memory_handle)) { |
- // TODO(cpu): better define what triggers the low latency mode. |
- if (decoded_packet_size > kLowLatencyPacketThreshold) { |
- // Regular latency mode. |
- host->Send(new ViewMsg_NotifyAudioStreamCreated( |
- route_id, stream_id, foreign_memory_handle, decoded_packet_size)); |
- |
- // Also request the first packet to kick start the pre-rolling. |
- source->StartBuffering(); |
- return source; |
- } else { |
+ if (low_latency) { |
// Low latency mode. We use SyncSocket to signal. |
base::SyncSocket* sockets[2] = {0}; |
if (base::SyncSocket::CreatePair(sockets)) { |
@@ -186,6 +178,14 @@ AudioRendererHost::IPCAudioSource::CreateIPCAudioSource( |
return source; |
} |
} |
+ } else { |
+ // Regular latency mode. |
+ host->Send(new ViewMsg_NotifyAudioStreamCreated( |
+ route_id, stream_id, foreign_memory_handle, decoded_packet_size)); |
+ |
+ // Also request the first packet to kick start the pre-rolling. |
+ source->StartBuffering(); |
+ return source; |
} |
} |
// Failure. Close and free acquired resources. |
@@ -462,7 +462,7 @@ bool AudioRendererHost::IsAudioRendererHostMessage( |
void AudioRendererHost::OnCreateStream( |
const IPC::Message& msg, int stream_id, |
- const ViewHostMsg_Audio_CreateStream_Params& params) { |
+ const ViewHostMsg_Audio_CreateStream_Params& params, bool low_latency) { |
DCHECK(ChromeThread::CurrentlyOn(ChromeThread::IO)); |
DCHECK(Lookup(msg.routing_id(), stream_id) == NULL); |
@@ -477,7 +477,8 @@ void AudioRendererHost::OnCreateStream( |
params.sample_rate, |
params.bits_per_sample, |
params.packet_size, |
- params.buffer_capacity); |
+ params.buffer_capacity, |
+ low_latency); |
// If we have created the source successfully, adds it to the map. |
if (source) { |