Index: content/browser/renderer_host/media/audio_renderer_host.cc |
=================================================================== |
--- content/browser/renderer_host/media/audio_renderer_host.cc (revision 114012) |
+++ content/browser/renderer_host/media/audio_renderer_host.cc (working copy) |
@@ -270,13 +270,15 @@ |
// entry and construct an AudioOutputController. |
entry->reader.reset(reader.release()); |
entry->controller = |
- media::AudioOutputController::CreateLowLatency(this, audio_params, |
- entry->reader.get()); |
+ media::AudioOutputController::CreateLowLatency( |
+ resource_context_->audio_manager(), this, audio_params, |
+ entry->reader.get()); |
} else { |
// The choice of buffer capacity is based on experiment. |
entry->controller = |
- media::AudioOutputController::Create(this, audio_params, |
- 3 * packet_size); |
+ media::AudioOutputController::Create( |
+ resource_context_->audio_manager(), this, audio_params, |
+ 3 * packet_size); |
} |
if (!entry->controller) { |
@@ -399,6 +401,8 @@ |
} |
void AudioRendererHost::CloseAndDeleteStream(AudioEntry* entry) { |
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
+ |
if (!entry->pending_close) { |
entry->controller->Close( |
base::Bind(&AudioRendererHost::OnStreamClosed, this, entry)); |
@@ -407,7 +411,8 @@ |
} |
void AudioRendererHost::OnStreamClosed(AudioEntry* entry) { |
- // Delete the entry after we've closed the stream. |
+ // Delete the entry on the IO thread after we've closed the stream. |
+ // (We're currently on the audio thread). |
BrowserThread::PostTask( |
BrowserThread::IO, FROM_HERE, |
base::Bind(&AudioRendererHost::DeleteEntry, this, entry)); |