Index: content/browser/media/android/browser_media_player_manager.cc |
diff --git a/content/browser/media/android/browser_media_player_manager.cc b/content/browser/media/android/browser_media_player_manager.cc |
index d79573c19c2e812146a1ea0e17b8ec70ed9f98c9..ef9cb15cca31b97b891c6551524701c20af5417f 100644 |
--- a/content/browser/media/android/browser_media_player_manager.cc |
+++ b/content/browser/media/android/browser_media_player_manager.cc |
@@ -15,6 +15,7 @@ |
#include "content/public/browser/android/content_view_core.h" |
#include "content/public/browser/android/external_video_surface_container.h" |
#include "content/public/browser/browser_context.h" |
+#include "content/public/browser/content_browser_client.h" |
#include "content/public/browser/render_process_host.h" |
#include "content/public/browser/render_view_host.h" |
#include "content/public/browser/storage_partition.h" |
@@ -437,28 +438,36 @@ void BrowserMediaPlayerManager::DetachExternalVideoSurface(int player_id) { |
player->SetVideoSurface(gfx::ScopedJavaSurface()); |
} |
+void BrowserMediaPlayerManager::OnFrameInfoUpdated() { |
boliu
2014/04/11 01:52:10
How much of the new code in this file need to be b
ycheo (away)
2014/04/11 05:05:46
The remained parts are to control to enable or dis
|
+ if (external_video_surface_container_) { |
+ external_video_surface_container_->OnFrameInfoUpdated(); |
+ } |
+} |
+ |
void BrowserMediaPlayerManager::OnNotifyExternalSurface( |
int player_id, bool is_request, const gfx::RectF& rect) { |
if (!web_contents_) |
return; |
- ExternalVideoSurfaceContainer::CreateForWebContents(web_contents_); |
- ExternalVideoSurfaceContainer* surface_container = |
- ExternalVideoSurfaceContainer::FromWebContents(web_contents_); |
- if (!surface_container) |
- return; |
- |
if (is_request) { |
+ if (!external_video_surface_container_) { |
+ external_video_surface_container_.reset( |
+ GetContentClient()->browser()->CreateExternalVideoSurfaceContainer( |
+ web_contents_)); |
+ } |
// It's safe to use base::Unretained(this), because the callbacks will not |
// be called after running ReleaseExternalVideoSurface(). |
- surface_container->RequestExternalVideoSurface( |
+ external_video_surface_container_->RequestExternalVideoSurface( |
boliu
2014/04/11 01:52:10
Need to handle the case when CreateExternalVideoS
ycheo (away)
2014/04/11 05:05:46
Done.
|
player_id, |
base::Bind(&BrowserMediaPlayerManager::AttachExternalVideoSurface, |
base::Unretained(this)), |
base::Bind(&BrowserMediaPlayerManager::DetachExternalVideoSurface, |
base::Unretained(this))); |
} |
- surface_container->OnExternalVideoSurfacePositionChanged(player_id, rect); |
+ if (external_video_surface_container_) { |
+ external_video_surface_container_->OnExternalVideoSurfacePositionChanged( |
+ player_id, rect); |
+ } |
} |
#endif // defined(VIDEO_HOLE) |
@@ -484,10 +493,8 @@ void BrowserMediaPlayerManager::OnEnterFullscreen(int player_id) { |
} |
#if defined(VIDEO_HOLE) |
- ExternalVideoSurfaceContainer* surface_container = |
- ExternalVideoSurfaceContainer::FromWebContents(web_contents_); |
- if (surface_container) |
- surface_container->ReleaseExternalVideoSurface(player_id); |
+ if (external_video_surface_container_) |
+ external_video_surface_container_->ReleaseExternalVideoSurface(player_id); |
#endif // defined(VIDEO_HOLE) |
if (video_view_.get()) { |
fullscreen_player_id_ = player_id; |
@@ -873,10 +880,8 @@ void BrowserMediaPlayerManager::OnMediaResourcesReleased(int player_id) { |
MediaPlayerAndroid* player = GetPlayer(player_id); |
if (player && player->IsSurfaceInUse()) |
return; |
- ExternalVideoSurfaceContainer* surface_container = |
- ExternalVideoSurfaceContainer::FromWebContents(web_contents_); |
- if (surface_container) |
- surface_container->ReleaseExternalVideoSurface(player_id); |
+ if (external_video_surface_container_) |
+ external_video_surface_container_->ReleaseExternalVideoSurface(player_id); |
#endif // defined(VIDEO_HOLE) |
} |