Chromium Code Reviews| Index: content/browser/android/media_player_manager_android.cc |
| diff --git a/content/browser/android/media_player_manager_android.cc b/content/browser/android/media_player_manager_android.cc |
| index 6277ecdc586b36a7650b08963be00bae7dd99201..137101b137ff6c0b78826b69e017134ca66ffb57 100644 |
| --- a/content/browser/android/media_player_manager_android.cc |
| +++ b/content/browser/android/media_player_manager_android.cc |
| @@ -23,7 +23,8 @@ MediaPlayerManagerAndroid::MediaPlayerManagerAndroid( |
| RenderViewHost* render_view_host) |
| : RenderViewHostObserver(render_view_host), |
| ALLOW_THIS_IN_INITIALIZER_LIST(video_view_(this)), |
| - fullscreen_player_id_(-1) { |
| + fullscreen_player_id_(-1), |
| + external_video_surface_user_id_(-1) { |
| } |
| MediaPlayerManagerAndroid::~MediaPlayerManagerAndroid() {} |
| @@ -42,6 +43,8 @@ bool MediaPlayerManagerAndroid::OnMessageReceived(const IPC::Message& msg) { |
| IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_DestroyMediaPlayer, OnDestroyPlayer) |
| IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_DestroyAllMediaPlayers, |
| DestroyAllMediaPlayers) |
| + IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_RequestExternalSurface, |
| + OnRequestExternalSurface) |
| IPC_MESSAGE_UNHANDLED(handled = false) |
| IPC_END_MESSAGE_MAP() |
| return handled; |
| @@ -185,6 +188,8 @@ void MediaPlayerManagerAndroid::OnDestroyPlayer(int player_id) { |
| } |
| if (fullscreen_player_id_ == player_id) |
| fullscreen_player_id_ = -1; |
| + if (external_video_surface_user_id_ == player_id) |
| + external_video_surface_user_id_ = -1; |
| } |
| void MediaPlayerManagerAndroid::DestroyAllMediaPlayers() { |
| @@ -193,6 +198,12 @@ void MediaPlayerManagerAndroid::DestroyAllMediaPlayers() { |
| video_view_.DestroyContentVideoView(); |
| fullscreen_player_id_ = -1; |
| } |
| + if (external_video_surface_user_id_ != -1) |
|
no sievers
2013/03/05 19:54:16
nit: remove 'if()'
wonsik
2013/03/06 02:48:20
Done.
|
| + external_video_surface_user_id_ = -1; |
| +} |
| + |
| +void MediaPlayerManagerAndroid::OnRequestExternalSurface(int player_id) { |
| + external_video_surface_user_id_ = player_id; |
| } |
| MediaPlayerBridge* MediaPlayerManagerAndroid::GetPlayer(int player_id) { |
| @@ -208,6 +219,12 @@ MediaPlayerBridge* MediaPlayerManagerAndroid::GetFullscreenPlayer() { |
| return GetPlayer(fullscreen_player_id_); |
| } |
| +void MediaPlayerManagerAndroid::SetExternalVideoSurface(jobject surface) { |
| + MediaPlayerBridge* player = GetPlayer(external_video_surface_user_id_); |
| + if (player) |
| + player->SetVideoSurface(surface); |
| +} |
| + |
| void MediaPlayerManagerAndroid::OnPrepared(int player_id, |
| base::TimeDelta duration) { |
| Send(new MediaPlayerMsg_MediaPrepared(routing_id(), player_id, duration)); |