summaryrefslogtreecommitdiffstats
path: root/chromecast/renderer
diff options
context:
space:
mode:
authorhalliwell <halliwell@chromium.org>2015-06-26 14:41:14 -0700
committerCommit bot <commit-bot@chromium.org>2015-06-26 21:41:55 +0000
commit80201d111bd6f4221b70dd2cf101153e71945fca (patch)
tree57496c7e67b7bbdb087ccf6946fe407590a4b063 /chromecast/renderer
parent1d1de23ef899e6cb6b4ba519532743317ff23bcd (diff)
downloadchromium_src-80201d111bd6f4221b70dd2cf101153e71945fca.zip
chromium_src-80201d111bd6f4221b70dd2cf101153e71945fca.tar.gz
chromium_src-80201d111bd6f4221b70dd2cf101153e71945fca.tar.bz2
Enables use of overlays for Cast video playback
This updates Cast media pipeline to use overlays instead of VIDEO_HOLE codepath for placing video into a separate hardware plane. A switch has been added to allow reverting to the old behaviour, we can remove this once the new path has had some testing. BUG=469374 Review URL: https://codereview.chromium.org/1210903003 Cr-Commit-Position: refs/heads/master@{#336460}
Diffstat (limited to 'chromecast/renderer')
-rw-r--r--chromecast/renderer/cast_content_renderer_client.cc3
-rw-r--r--chromecast/renderer/cast_content_renderer_client.h1
-rw-r--r--chromecast/renderer/media/chromecast_media_renderer_factory.cc6
-rw-r--r--chromecast/renderer/media/chromecast_media_renderer_factory.h3
4 files changed, 10 insertions, 3 deletions
diff --git a/chromecast/renderer/cast_content_renderer_client.cc b/chromecast/renderer/cast_content_renderer_client.cc
index 3f48cb4..4837dab 100644
--- a/chromecast/renderer/cast_content_renderer_client.cc
+++ b/chromecast/renderer/cast_content_renderer_client.cc
@@ -191,6 +191,7 @@ void CastContentRendererClient::AddKeySystems(
scoped_ptr<::media::RendererFactory>
CastContentRendererClient::CreateMediaRendererFactory(
::content::RenderFrame* render_frame,
+ const scoped_refptr<::media::GpuVideoAcceleratorFactories>& gpu_factories,
const scoped_refptr<::media::MediaLog>& media_log) {
const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
if (!cmd_line->HasSwitch(switches::kEnableCmaMediaPipeline))
@@ -198,7 +199,7 @@ CastContentRendererClient::CreateMediaRendererFactory(
return scoped_ptr<::media::RendererFactory>(
new chromecast::media::ChromecastMediaRendererFactory(
- media_log, render_frame->GetRoutingID()));
+ gpu_factories, media_log, render_frame->GetRoutingID()));
}
#endif
diff --git a/chromecast/renderer/cast_content_renderer_client.h b/chromecast/renderer/cast_content_renderer_client.h
index a29d2d1..0ee87ed 100644
--- a/chromecast/renderer/cast_content_renderer_client.h
+++ b/chromecast/renderer/cast_content_renderer_client.h
@@ -46,6 +46,7 @@ class CastContentRendererClient : public content::ContentRendererClient {
#if !defined(OS_ANDROID)
scoped_ptr<::media::RendererFactory> CreateMediaRendererFactory(
content::RenderFrame* render_frame,
+ const scoped_refptr<::media::GpuVideoAcceleratorFactories>& gpu_factories,
const scoped_refptr<::media::MediaLog>& media_log) override;
#endif
blink::WebPrescientNetworking* GetPrescientNetworking() override;
diff --git a/chromecast/renderer/media/chromecast_media_renderer_factory.cc b/chromecast/renderer/media/chromecast_media_renderer_factory.cc
index eb4d24f..f2c9bfb 100644
--- a/chromecast/renderer/media/chromecast_media_renderer_factory.cc
+++ b/chromecast/renderer/media/chromecast_media_renderer_factory.cc
@@ -18,9 +18,11 @@ namespace chromecast {
namespace media {
ChromecastMediaRendererFactory::ChromecastMediaRendererFactory(
+ const scoped_refptr<::media::GpuVideoAcceleratorFactories>& gpu_factories,
const scoped_refptr<::media::MediaLog>& media_log,
int render_frame_id)
: render_frame_id_(render_frame_id),
+ gpu_factories_(gpu_factories),
media_log_(media_log) {
}
@@ -62,8 +64,8 @@ scoped_ptr<::media::Renderer> ChromecastMediaRendererFactory::CreateRenderer(
render_frame_id_,
content::RenderThread::Get()->GetIOMessageLoopProxy(),
cma_load_type));
- scoped_ptr<CmaRenderer> cma_renderer(
- new CmaRenderer(cma_media_pipeline.Pass(), video_renderer_sink));
+ scoped_ptr<CmaRenderer> cma_renderer(new CmaRenderer(
+ cma_media_pipeline.Pass(), video_renderer_sink, gpu_factories_));
scoped_ptr<::media::Renderer> default_media_render(
default_render_factory_->CreateRenderer(media_task_runner,
audio_renderer_sink,
diff --git a/chromecast/renderer/media/chromecast_media_renderer_factory.h b/chromecast/renderer/media/chromecast_media_renderer_factory.h
index 89ac195..ab2b078 100644
--- a/chromecast/renderer/media/chromecast_media_renderer_factory.h
+++ b/chromecast/renderer/media/chromecast_media_renderer_factory.h
@@ -11,6 +11,7 @@
namespace media {
class AudioHardwareConfig;
+class GpuVideoAcceleratorFactories;
class MediaLog;
class DefaultRendererFactory;
}
@@ -21,6 +22,7 @@ namespace media {
class ChromecastMediaRendererFactory : public ::media::RendererFactory {
public:
ChromecastMediaRendererFactory(
+ const scoped_refptr<::media::GpuVideoAcceleratorFactories>& gpu_factories,
const scoped_refptr<::media::MediaLog>& media_log,
int render_frame_id);
~ChromecastMediaRendererFactory() final;
@@ -33,6 +35,7 @@ class ChromecastMediaRendererFactory : public ::media::RendererFactory {
private:
int render_frame_id_;
+ scoped_refptr<::media::GpuVideoAcceleratorFactories> gpu_factories_;
scoped_refptr<::media::MediaLog> media_log_;
scoped_ptr<::media::DefaultRendererFactory> default_render_factory_;