summaryrefslogtreecommitdiffstats
path: root/content/content_renderer.gypi
diff options
context:
space:
mode:
authorwatk <watk@chromium.org>2016-02-17 18:22:19 -0800
committerCommit bot <commit-bot@chromium.org>2016-02-18 02:23:19 +0000
commitdee516f91d460baf825f25503063a898ec3aaf3a (patch)
tree6ddd13c49f5b3548c28771377dff49a325f5b302 /content/content_renderer.gypi
parent8fb3a4aee13f5299f4fb27d879b1fd1f07a5ae15 (diff)
downloadchromium_src-dee516f91d460baf825f25503063a898ec3aaf3a.zip
chromium_src-dee516f91d460baf825f25503063a898ec3aaf3a.tar.gz
chromium_src-dee516f91d460baf825f25503063a898ec3aaf3a.tar.bz2
Enable Android SurfaceView fullscreen video with WMPI
This CL enables SurfaceView fullscreen video with the unified media pipeline in cases where we use the AVDA deferred rendering strategy today. * There's a new media interface called SurfaceManager with two methods: CreateFullscreenSurface() and NaturalSizeChanged(). * SurfaceManager is implemented by RendererSurfaceViewManager, which is a RenderFrameObserver, and BrowserSurfaceViewManager, which is created for each RenderFrame by MediaWebContentsObserverAndroid. * BrowserSurfaceViewManager creates a ContentVideoView in response to a CreateFullscreenSurface message, and registers it in a surface map that the decoder can look up in the GPU process. * WMPI interacts with SurfaceManager on behalf of the decoder. It passes GpuVideoDecoder a callback for requesting surfaces which it calls before initializing VDAs. * In response to the callback, if the player is in fullscreen WMPI will pass the request to the SurfaceManager which will return the surface id to GVD. If the player is not in fullscreen WMPI will return a null surface id. * When GVD gets a surface id back it completes its initialization by calling VDA::Initialize with the surface id and the VDA will render to the given surface. * WMPI records that it got a surface request callback so that it knows that future fullscreen transitions will require a restart of the decoder in order to switch surfaces. * A future CL will allow us to switch the surface dynamically without requiring a restart. BUG=533630 Review URL: https://codereview.chromium.org/1655083002 Cr-Commit-Position: refs/heads/master@{#376068}
Diffstat (limited to 'content/content_renderer.gypi')
-rw-r--r--content/content_renderer.gypi2
1 files changed, 2 insertions, 0 deletions
diff --git a/content/content_renderer.gypi b/content/content_renderer.gypi
index 7c9a5cf..0592cf2 100644
--- a/content/content_renderer.gypi
+++ b/content/content_renderer.gypi
@@ -281,6 +281,8 @@
'renderer/media/android/renderer_media_player_manager.h',
'renderer/media/android/renderer_media_session_manager.cc',
'renderer/media/android/renderer_media_session_manager.h',
+ 'renderer/media/android/renderer_surface_view_manager.cc',
+ 'renderer/media/android/renderer_surface_view_manager.h',
'renderer/media/android/stream_texture_factory.h',
'renderer/media/android/stream_texture_factory_impl.cc',
'renderer/media/android/stream_texture_factory_impl.h',