Chromium Code Reviews| 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 b8016b471f4cf4742db1d5cdf4c633a2752d0bb9..e451b2c5378402e2616eb5979ced03baf9b96e30 100644 |
| --- a/content/browser/media/android/browser_media_player_manager.cc |
| +++ b/content/browser/media/android/browser_media_player_manager.cc |
| @@ -349,8 +349,15 @@ void BrowserMediaPlayerManager::AttachExternalVideoSurface(int player_id, |
| void BrowserMediaPlayerManager::DetachExternalVideoSurface(int player_id) { |
| MediaPlayerAndroid* player = GetPlayer(player_id); |
| - if (player) |
| + if (player) { |
| + // If a player looses its external surface because |
| + // it enters fullscreen, the video should not be paused. |
| + if (player_id != fullscreen_player_id_) { |
| + player->Pause(true); |
| + Send(new MediaPlayerMsg_DidMediaPlayerPause(RoutingID(), player_id)); |
| + } |
| player->SetVideoSurface(gfx::ScopedJavaSurface()); |
| + } |
| } |
| void BrowserMediaPlayerManager::OnFrameInfoUpdated() { |
| @@ -395,8 +402,13 @@ void BrowserMediaPlayerManager::OnRequestExternalSurface( |
| void BrowserMediaPlayerManager::OnEnterFullscreen(int player_id) { |
| DCHECK_EQ(fullscreen_player_id_, -1); |
| #if defined(VIDEO_HOLE) |
| + fullscreen_player_id_ = player_id; |
|
qinmin
2014/11/10 18:37:24
this logic is bad, we setting fullscreen_player_id
Hugo Holgersson
2014/11/10 22:22:18
You are right!
I used this logic: the external su
|
| + // Avoid Z-fight: when any player goes |
| + // fullscreen release any external surface. |
| if (external_video_surface_container_) |
| - external_video_surface_container_->ReleaseExternalVideoSurface(player_id); |
| + external_video_surface_container_->ReleaseExternalVideoSurface( |
| + ExternalVideoSurfaceContainer::kAnyPlayer); |
| + fullscreen_player_id_ = -1; |
| #endif // defined(VIDEO_HOLE) |
| if (video_view_.get()) { |
| fullscreen_player_id_ = player_id; |