Chromium Code Reviews| Index: content/renderer/render_frame_impl.cc |
| diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
| index 5e5fc0e475fbc968b6107d1048d436b70e13658c..57fb4fbbeeb311d70cb7e809b4e8be438c63e977 100644 |
| --- a/content/renderer/render_frame_impl.cc |
| +++ b/content/renderer/render_frame_impl.cc |
| @@ -99,7 +99,6 @@ |
| #include "media/blink/webcontentdecryptionmodule_impl.h" |
| #include "media/blink/webmediaplayer_impl.h" |
| #include "media/blink/webmediaplayer_params.h" |
| -#include "media/filters/default_renderer_factory.h" |
| #include "media/filters/gpu_video_accelerator_factories.h" |
| #include "mojo/edk/js/core.h" |
| #include "mojo/edk/js/support.h" |
| @@ -160,6 +159,13 @@ |
| #include "content/renderer/media/crypto/renderer_cdm_manager.h" |
| #endif |
| +#if defined(ENABLE_MEDIA_MOJO_RENDERER) |
| +#include "media/mojo/interfaces/media_renderer.mojom.h" |
| +#include "media/mojo/services/mojo_renderer_factory.h" |
| +#else |
| +#include "media/filters/default_renderer_factory.h" |
| +#endif |
| + |
| using blink::WebContextMenuData; |
| using blink::WebData; |
| using blink::WebDataSource; |
| @@ -476,6 +482,28 @@ CommonNavigationParams MakeCommonNavigationParams( |
| RenderFrameImpl::CreateRenderFrameImplFunction g_create_render_frame_impl = |
| nullptr; |
| +#if defined(ENABLE_MEDIA_MOJO_RENDERER) |
| +// Helper class to connect to a mojo::MediaRenderer service for |
| +// media::MojoRendererFactory. |
| +class MediaRendererServiceProvider |
|
DaleCurtis
2014/12/18 19:25:11
Is this something we want to live in RenderFrameIm
DaleCurtis
2014/12/18 21:34:02
Don't see this one resolved or discussed.
xhwang
2014/12/18 22:48:30
Sorry, I missed this one. Moved out to content/ren
|
| + : public media::MojoRendererFactory::ServiceProvider { |
| + public: |
| + explicit MediaRendererServiceProvider(ServiceRegistry* service_registry) |
| + : service_registry_(service_registry) {} |
| + ~MediaRendererServiceProvider() final {} |
| + |
| + void ConnectToService( |
| + mojo::InterfacePtr<mojo::MediaRenderer>* media_renderer_ptr) final { |
| + service_registry_->ConnectToRemoteService(media_renderer_ptr); |
| + } |
| + |
| + private: |
| + ServiceRegistry* service_registry_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(MediaRendererServiceProvider); |
| +}; |
| +#endif |
| + |
| } // namespace |
| @@ -1758,7 +1786,7 @@ blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( |
| blink::WebLocalFrame* frame, |
| const blink::WebURL& url, |
| blink::WebMediaPlayerClient* client) { |
| - return createMediaPlayer(frame, url, client, NULL); |
| + return createMediaPlayer(frame, url, client, nullptr); |
| } |
| blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( |
| @@ -1803,6 +1831,11 @@ blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( |
| scoped_ptr<media::CdmFactory> cdm_factory(new RenderCdmFactory()); |
| #endif |
| +#if defined(ENABLE_MEDIA_MOJO_RENDERER) |
| + scoped_ptr<media::RendererFactory> media_renderer_factory( |
| + new media::MojoRendererFactory(make_scoped_ptr( |
| + new MediaRendererServiceProvider(GetServiceRegistry())))); |
| +#else |
| scoped_ptr<media::RendererFactory> media_renderer_factory = |
| GetContentClient()->renderer()->CreateMediaRendererFactory(this); |
| @@ -1811,6 +1844,7 @@ blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( |
| media_log, render_thread->GetGpuFactories(), |
| *render_thread->GetAudioHardwareConfig())); |
| } |
| +#endif // defined(ENABLE_MEDIA_MOJO_RENDERER) |
| return new media::WebMediaPlayerImpl( |
| frame, client, weak_factory_.GetWeakPtr(), media_renderer_factory.Pass(), |