Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index 2f419abd1c281a6440243692b8bf1172c357a28d..073f231fd7c1dd59522e18358cbf3c8877238ebc 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -148,6 +148,7 @@ |
#include "media/blink/url_index.h" |
#include "media/blink/webencryptedmediaclient_impl.h" |
#include "media/blink/webmediaplayer_impl.h" |
+#include "media/media_features.h" |
#include "media/renderers/gpu_video_accelerator_factories.h" |
#include "mojo/edk/js/core.h" |
#include "mojo/edk/js/support.h" |
@@ -227,6 +228,10 @@ |
#include "third_party/WebKit/public/platform/WebFloatPoint.h" |
#endif |
+#if BUILDFLAG(FORCE_MOJO_MEDIA_PLAYER_RENDERER) |
+#include "media/base/android/media_player_renderer_factory.h" |
+#endif |
+ |
#if defined(ENABLE_PEPPER_CDMS) |
#include "content/renderer/media/cdm/pepper_cdm_wrapper_impl.h" |
#include "content/renderer/media/cdm/render_cdm_factory.h" |
@@ -2644,13 +2649,23 @@ blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( |
base::Unretained(blink::mainThreadIsolate())), |
initial_cdm, media_surface_manager_, media_session); |
-#if defined(OS_ANDROID) |
+#if defined(OS_ANDROID) && !BUILDFLAG(FORCE_MOJO_MEDIA_PLAYER_RENDERER) |
if (!UseWebMediaPlayerImpl(url)) { |
return CreateAndroidWebMediaPlayer(client, encrypted_client, params); |
} |
#endif // defined(OS_ANDROID) |
-#if defined(ENABLE_MOJO_RENDERER) |
+#if BUILDFLAG(FORCE_MOJO_MEDIA_PLAYER_RENDERER) |
+ scoped_refptr<StreamTextureFactory> stream_texture_factory = |
+ RenderThreadImpl::current()->GetStreamTexureFactory(); |
+ std::unique_ptr<media::RendererFactory> media_renderer_factory( |
+ new media::MediaPlayerRendererFactory( |
+ stream_texture_factory, base::ThreadTaskRunnerHandle::Get(), |
+ base::Bind(&RenderThreadImpl::GetGpuFactories, |
+ base::Unretained(render_thread)), |
+ base::Bind(&RenderFrameImpl::GetInterface<media::mojom::Renderer>, |
+ base::Unretained(this)))); |
+#elif defined(ENABLE_MOJO_RENDERER) |
std::unique_ptr<media::RendererFactory> media_renderer_factory( |
new media::MojoRendererFactory( |
base::Bind(&RenderThreadImpl::GetGpuFactories, |
@@ -2681,6 +2696,9 @@ blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( |
media_player->SetMediaPlayerManager(GetMediaPlayerManager()); |
media_player->SetDeviceScaleFactor(render_view_->GetDeviceScaleFactor()); |
#endif |
+#if BUILDFLAG(FORCE_MOJO_MEDIA_PLAYER_RENDERER) |
+ media_player->EnableFallbackMediaPlayer(GURL(url)); |
+#endif |
return media_player; |
} |