Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2103)

Unified Diff: content/renderer/render_frame_impl.cc

Issue 2387293007: Register MediaPlayerRenderer service (Closed)
Patch Set: Typo. Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/browser/media/android/media_player_renderer.cc ('k') | media/base/media_switches.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/render_frame_impl.cc
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index b13d2ca3640dfca90cc8cb9b5a984e3e022fee36..0c4de5d2f89292335c3180442a0562eeee3c5c4b 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -221,11 +221,14 @@
#include "content/renderer/android/app_web_message_port_client.h"
#include "content/renderer/java/gin_java_bridge_dispatcher.h"
+#include "content/renderer/media/android/media_player_renderer_client_factory.h"
#include "content/renderer/media/android/renderer_media_player_manager.h"
#include "content/renderer/media/android/renderer_surface_view_manager.h"
#include "content/renderer/media/android/stream_texture_factory.h"
+#include "content/renderer/media/android/stream_texture_wrapper_impl.h"
#include "content/renderer/media/android/webmediaplayer_android.h"
#include "media/base/android/media_codec_util.h"
+#include "media/mojo/clients/mojo_renderer_factory.h" // nogncheck
#include "third_party/WebKit/public/platform/WebFloatPoint.h"
#endif
@@ -2737,25 +2740,43 @@ blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer(
base::Unretained(blink::mainThreadIsolate())),
initial_cdm, media_surface_manager_, media_observer);
+ bool use_fallback_path = false;
#if defined(OS_ANDROID)
- if (!UseWebMediaPlayerImpl(url)) {
+ use_fallback_path = !UseWebMediaPlayerImpl(url);
+
+ if (use_fallback_path &&
+ !base::FeatureList::IsEnabled(media::kAndroidMediaPlayerRenderer)) {
return CreateAndroidWebMediaPlayer(client, encrypted_client, params);
}
#endif // defined(OS_ANDROID)
+ std::unique_ptr<media::RendererFactory> media_renderer_factory;
+ if (use_fallback_path) {
+#if defined(OS_ANDROID)
+ auto mojo_renderer_factory = base::MakeUnique<media::MojoRendererFactory>(
+ media::MojoRendererFactory::GetGpuFactoriesCB(),
+ GetRemoteInterfaces()->get());
+
+ media_renderer_factory = base::MakeUnique<MediaPlayerRendererClientFactory>(
+ render_thread->compositor_task_runner(),
+ std::move(mojo_renderer_factory),
+ base::Bind(&StreamTextureWrapperImpl::Create,
+ render_thread->GetStreamTexureFactory(),
+ base::ThreadTaskRunnerHandle::Get()));
+#endif // defined(OS_ANDROID)
+ } else {
#if defined(ENABLE_MOJO_RENDERER)
- std::unique_ptr<media::RendererFactory> media_renderer_factory(
- new media::MojoRendererFactory(
- base::Bind(&RenderThreadImpl::GetGpuFactories,
- base::Unretained(render_thread)),
- GetMediaInterfaceProvider()));
+ media_renderer_factory = base::MakeUnique<media::MojoRendererFactory>(
+ base::Bind(&RenderThreadImpl::GetGpuFactories,
+ base::Unretained(render_thread)),
+ GetMediaInterfaceProvider());
#else
- std::unique_ptr<media::RendererFactory> media_renderer_factory(
- new media::DefaultRendererFactory(
- media_log, GetDecoderFactory(),
- base::Bind(&RenderThreadImpl::GetGpuFactories,
- base::Unretained(render_thread))));
+ media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>(
+ media_log, GetDecoderFactory(),
+ base::Bind(&RenderThreadImpl::GetGpuFactories,
+ base::Unretained(render_thread)));
#endif
+ }
#if BUILDFLAG(ENABLE_MEDIA_REMOTING)
media::RemotingController* remoting_controller_ptr =
@@ -2775,13 +2796,13 @@ blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer(
#if defined(OS_ANDROID) // WMPI_CAST
media_player->SetMediaPlayerManager(GetMediaPlayerManager());
media_player->SetDeviceScaleFactor(render_view_->GetDeviceScaleFactor());
+ media_player->SetUseFallbackPath(use_fallback_path);
#endif // defined(OS_ANDROID)
#if BUILDFLAG(ENABLE_MEDIA_REMOTING)
remoting_controller_ptr->SetSwitchRendererCallback(base::Bind(
&media::WebMediaPlayerImpl::ScheduleRestart, media_player->AsWeakPtr()));
#endif
-
return media_player;
}
@@ -6303,7 +6324,6 @@ RendererMediaPlayerManager* RenderFrameImpl::GetMediaPlayerManager() {
media_player_manager_ = new RendererMediaPlayerManager(this);
return media_player_manager_;
}
-
#endif // defined(OS_ANDROID)
media::MediaPermission* RenderFrameImpl::GetMediaPermission() {
« no previous file with comments | « content/browser/media/android/media_player_renderer.cc ('k') | media/base/media_switches.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698