| Index: content/renderer/render_frame_impl.cc
|
| diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
|
| index 632cc673edef71d3222dfd971b9bb4b93aa8af40..31d945b2f94f2c229bef92a6164306a436822135 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_MOJO_MEDIA_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_MOJO_MEDIA_RENDERER)
|
| +// Helper class to connect to a mojo::MediaRenderer service for
|
| +// media::MojoRendererFactory.
|
| +class MediaRendererServiceProvider
|
| + : 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_MOJO_MEDIA_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_MOJO_MEDIA_RENDERER)
|
|
|
| return new media::WebMediaPlayerImpl(
|
| frame, client, weak_factory_.GetWeakPtr(), media_renderer_factory.Pass(),
|
|
|