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(), |