diff options
author | halliwell <halliwell@chromium.org> | 2015-06-26 14:41:14 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-06-26 21:41:55 +0000 |
commit | 80201d111bd6f4221b70dd2cf101153e71945fca (patch) | |
tree | 57496c7e67b7bbdb087ccf6946fe407590a4b063 /chromecast/renderer | |
parent | 1d1de23ef899e6cb6b4ba519532743317ff23bcd (diff) | |
download | chromium_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')
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_; |