Index: content/browser/renderer_host/render_process_host_impl.cc |
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc |
index dde83fd48bb4059ecba4525cb58ccaa2330cf29e..5176c7c1d00ab85f697f15db9762bf40cf1117f6 100644 |
--- a/content/browser/renderer_host/render_process_host_impl.cc |
+++ b/content/browser/renderer_host/render_process_host_impl.cc |
@@ -1329,18 +1329,21 @@ void RenderProcessHostImpl::CreateMessageFilters() { |
BrowserMainLoop::GetInstance()->audio_manager(); |
MediaStreamManager* media_stream_manager = |
BrowserMainLoop::GetInstance()->media_stream_manager(); |
- // The AudioInputRendererHost and AudioRendererHost needs to be available for |
+ // The AudioInputRendererHost needs to be available for |
// lookup, so it's stashed in a member variable. |
audio_input_renderer_host_ = new AudioInputRendererHost( |
GetID(), audio_manager, media_stream_manager, |
AudioMirroringManager::GetInstance(), |
BrowserMainLoop::GetInstance()->user_input_monitor()); |
AddFilter(audio_input_renderer_host_.get()); |
- audio_renderer_host_ = new AudioRendererHost( |
- GetID(), audio_manager, BrowserMainLoop::GetInstance()->audio_system(), |
- AudioMirroringManager::GetInstance(), media_stream_manager, |
- browser_context->GetMediaDeviceIDSalt()); |
- AddFilter(audio_renderer_host_.get()); |
+ if (!RendererAudioOutputStreamFactoryContextImpl::UseMojoFactories()) { |
+ AddFilter(base::MakeRefCounted<AudioRendererHost>( |
+ GetID(), audio_manager, |
+ BrowserMainLoop::GetInstance()->audio_system(), |
+ AudioMirroringManager::GetInstance(), media_stream_manager, |
+ browser_context->GetMediaDeviceIDSalt()) |
+ .get()); |
+ } |
AddFilter( |
new MidiHost(GetID(), BrowserMainLoop::GetInstance()->midi_service())); |
AddFilter(new AppCacheDispatcherHost( |
@@ -1832,6 +1835,26 @@ int RenderProcessHostImpl::VisibleWidgetCount() const { |
return visible_widgets_; |
} |
+UniqueAudioOutputStreamFactoryPtr |
+RenderProcessHostImpl::CreateAudioOutputStreamFactory( |
+ int frame_id, |
+ mojom::RendererAudioOutputStreamFactoryRequest request) { |
+ if (!audio_output_stream_factory_context_) { |
+ media::AudioManager* audio_manager = |
+ BrowserMainLoop::GetInstance()->audio_manager(); |
+ MediaStreamManager* media_stream_manager = |
+ BrowserMainLoop::GetInstance()->media_stream_manager(); |
+ media::AudioSystem* audio_system = |
+ BrowserMainLoop::GetInstance()->audio_system(); |
+ std::string salt = GetBrowserContext()->GetMediaDeviceIDSalt(); |
+ audio_output_stream_factory_context_.reset( |
+ new RendererAudioOutputStreamFactoryContextImpl( |
+ GetID(), audio_system, audio_manager, media_stream_manager, salt)); |
+ } |
+ return audio_output_stream_factory_context_->CreateFactory( |
+ frame_id, std::move(request)); |
+} |
+ |
void RenderProcessHostImpl::OnAudioStreamAdded() { |
++audio_stream_count_; |
UpdateProcessPriority(); |
@@ -3401,11 +3424,6 @@ void RenderProcessHostImpl::OnProcessLaunchFailed(int error_code) { |
ProcessDied(true, &details); |
} |
-scoped_refptr<AudioRendererHost> RenderProcessHostImpl::audio_renderer_host() |
- const { |
- return audio_renderer_host_; |
-} |
- |
void RenderProcessHostImpl::OnUserMetricsRecordAction( |
const std::string& action) { |
base::RecordComputedAction(action); |