| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/browser/media/android/browser_media_player_manager.h" | 5 #include "content/browser/media/android/browser_media_player_manager.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "content/browser/android/content_view_core_impl.h" | 8 #include "content/browser/android/content_view_core_impl.h" |
| 9 #include "content/browser/media/android/browser_demuxer_android.h" | 9 #include "content/browser/media/android/browser_demuxer_android.h" |
| 10 #include "content/browser/media/android/media_resource_getter_impl.h" | 10 #include "content/browser/media/android/media_resource_getter_impl.h" |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_SetVolume, OnSetVolume) | 127 IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_SetVolume, OnSetVolume) |
| 128 IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_Release, OnReleaseResources) | 128 IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_Release, OnReleaseResources) |
| 129 IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_DestroyMediaPlayer, OnDestroyPlayer) | 129 IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_DestroyMediaPlayer, OnDestroyPlayer) |
| 130 IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_DestroyAllMediaPlayers, | 130 IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_DestroyAllMediaPlayers, |
| 131 DestroyAllMediaPlayers) | 131 DestroyAllMediaPlayers) |
| 132 IPC_MESSAGE_HANDLER(MediaKeysHostMsg_InitializeCDM, | 132 IPC_MESSAGE_HANDLER(MediaKeysHostMsg_InitializeCDM, |
| 133 OnInitializeCDM) | 133 OnInitializeCDM) |
| 134 IPC_MESSAGE_HANDLER(MediaKeysHostMsg_CreateSession, OnCreateSession) | 134 IPC_MESSAGE_HANDLER(MediaKeysHostMsg_CreateSession, OnCreateSession) |
| 135 IPC_MESSAGE_HANDLER(MediaKeysHostMsg_UpdateSession, OnUpdateSession) | 135 IPC_MESSAGE_HANDLER(MediaKeysHostMsg_UpdateSession, OnUpdateSession) |
| 136 IPC_MESSAGE_HANDLER(MediaKeysHostMsg_ReleaseSession, OnReleaseSession) | 136 IPC_MESSAGE_HANDLER(MediaKeysHostMsg_ReleaseSession, OnReleaseSession) |
| 137 #if defined(GOOGLE_TV) | 137 #if defined(VIDEO_HOLE) |
| 138 IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_NotifyExternalSurface, | 138 IPC_MESSAGE_HANDLER(MediaPlayerHostMsg_NotifyExternalSurface, |
| 139 OnNotifyExternalSurface) | 139 OnNotifyExternalSurface) |
| 140 #endif | 140 #endif // defined(VIDEO_HOLE) |
| 141 IPC_MESSAGE_UNHANDLED(handled = false) | 141 IPC_MESSAGE_UNHANDLED(handled = false) |
| 142 IPC_END_MESSAGE_MAP() | 142 IPC_END_MESSAGE_MAP() |
| 143 return handled; | 143 return handled; |
| 144 } | 144 } |
| 145 | 145 |
| 146 void BrowserMediaPlayerManager::FullscreenPlayerPlay() { | 146 void BrowserMediaPlayerManager::FullscreenPlayerPlay() { |
| 147 MediaPlayerAndroid* player = GetFullscreenPlayer(); | 147 MediaPlayerAndroid* player = GetFullscreenPlayer(); |
| 148 if (player) { | 148 if (player) { |
| 149 if (fullscreen_player_is_released_) { | 149 if (fullscreen_player_is_released_) { |
| 150 video_view_->OpenVideo(); | 150 video_view_->OpenVideo(); |
| (...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 402 | 402 |
| 403 void BrowserMediaPlayerManager::OnSessionError( | 403 void BrowserMediaPlayerManager::OnSessionError( |
| 404 int media_keys_id, | 404 int media_keys_id, |
| 405 uint32 session_id, | 405 uint32 session_id, |
| 406 media::MediaKeys::KeyError error_code, | 406 media::MediaKeys::KeyError error_code, |
| 407 int system_code) { | 407 int system_code) { |
| 408 Send(new MediaKeysMsg_SessionError( | 408 Send(new MediaKeysMsg_SessionError( |
| 409 routing_id(), media_keys_id, session_id, error_code, system_code)); | 409 routing_id(), media_keys_id, session_id, error_code, system_code)); |
| 410 } | 410 } |
| 411 | 411 |
| 412 #if defined(GOOGLE_TV) | 412 #if defined(VIDEO_HOLE) |
| 413 void BrowserMediaPlayerManager::AttachExternalVideoSurface(int player_id, | 413 void BrowserMediaPlayerManager::AttachExternalVideoSurface(int player_id, |
| 414 jobject surface) { | 414 jobject surface) { |
| 415 MediaPlayerAndroid* player = GetPlayer(player_id); | 415 MediaPlayerAndroid* player = GetPlayer(player_id); |
| 416 if (player) { | 416 if (player) { |
| 417 player->SetVideoSurface( | 417 player->SetVideoSurface( |
| 418 gfx::ScopedJavaSurface::AcquireExternalSurface(surface)); | 418 gfx::ScopedJavaSurface::AcquireExternalSurface(surface)); |
| 419 } | 419 } |
| 420 } | 420 } |
| 421 | 421 |
| 422 void BrowserMediaPlayerManager::DetachExternalVideoSurface(int player_id) { | 422 void BrowserMediaPlayerManager::DetachExternalVideoSurface(int player_id) { |
| 423 MediaPlayerAndroid* player = GetPlayer(player_id); | 423 MediaPlayerAndroid* player = GetPlayer(player_id); |
| 424 if (player) | 424 if (player) |
| 425 player->SetVideoSurface(gfx::ScopedJavaSurface()); | 425 player->SetVideoSurface(gfx::ScopedJavaSurface()); |
| 426 } | 426 } |
| 427 | 427 |
| 428 void BrowserMediaPlayerManager::OnNotifyExternalSurface( | 428 void BrowserMediaPlayerManager::OnNotifyExternalSurface( |
| 429 int player_id, bool is_request, const gfx::RectF& rect) { | 429 int player_id, bool is_request, const gfx::RectF& rect) { |
| 430 if (!web_contents_) | 430 if (!web_contents_) |
| 431 return; | 431 return; |
| 432 | 432 |
| 433 WebContentsViewAndroid* view = | 433 WebContentsViewAndroid* view = |
| 434 static_cast<WebContentsViewAndroid*>(web_contents_->GetView()); | 434 static_cast<WebContentsViewAndroid*>(web_contents_->GetView()); |
| 435 if (view) | 435 if (view) |
| 436 view->NotifyExternalSurface(player_id, is_request, rect); | 436 view->NotifyExternalSurface(player_id, is_request, rect); |
| 437 } | 437 } |
| 438 #endif | 438 #endif // defined(VIDEO_HOLE) |
| 439 | 439 |
| 440 void BrowserMediaPlayerManager::DisableFullscreenEncryptedMediaPlayback() { | 440 void BrowserMediaPlayerManager::DisableFullscreenEncryptedMediaPlayback() { |
| 441 if (fullscreen_player_id_ == -1) | 441 if (fullscreen_player_id_ == -1) |
| 442 return; | 442 return; |
| 443 | 443 |
| 444 // If the fullscreen player is not playing back encrypted video, do nothing. | 444 // If the fullscreen player is not playing back encrypted video, do nothing. |
| 445 MediaDrmBridge* drm_bridge = GetDrmBridge(fullscreen_player_id_); | 445 MediaDrmBridge* drm_bridge = GetDrmBridge(fullscreen_player_id_); |
| 446 if (!drm_bridge) | 446 if (!drm_bridge) |
| 447 return; | 447 return; |
| 448 | 448 |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 529 player->SetVolume(volume); | 529 player->SetVolume(volume); |
| 530 } | 530 } |
| 531 | 531 |
| 532 void BrowserMediaPlayerManager::OnReleaseResources(int player_id) { | 532 void BrowserMediaPlayerManager::OnReleaseResources(int player_id) { |
| 533 MediaPlayerAndroid* player = GetPlayer(player_id); | 533 MediaPlayerAndroid* player = GetPlayer(player_id); |
| 534 if (player) | 534 if (player) |
| 535 player->Release(); | 535 player->Release(); |
| 536 if (player_id == fullscreen_player_id_) | 536 if (player_id == fullscreen_player_id_) |
| 537 fullscreen_player_is_released_ = true; | 537 fullscreen_player_is_released_ = true; |
| 538 | 538 |
| 539 #if defined(GOOGLE_TV) | 539 #if defined(VIDEO_HOLE) |
| 540 WebContentsViewAndroid* view = | 540 WebContentsViewAndroid* view = |
| 541 static_cast<WebContentsViewAndroid*>(web_contents_->GetView()); | 541 static_cast<WebContentsViewAndroid*>(web_contents_->GetView()); |
| 542 if (view) | 542 if (view) |
| 543 view->NotifyExternalSurface(player_id, false, gfx::RectF()); | 543 view->NotifyExternalSurface(player_id, false, gfx::RectF()); |
| 544 #endif | 544 #endif // defined(VIDEO_HOLE) |
| 545 } | 545 } |
| 546 | 546 |
| 547 void BrowserMediaPlayerManager::OnDestroyPlayer(int player_id) { | 547 void BrowserMediaPlayerManager::OnDestroyPlayer(int player_id) { |
| 548 RemovePlayer(player_id); | 548 RemovePlayer(player_id); |
| 549 if (fullscreen_player_id_ == player_id) | 549 if (fullscreen_player_id_ == player_id) |
| 550 fullscreen_player_id_ = -1; | 550 fullscreen_player_id_ = -1; |
| 551 } | 551 } |
| 552 | 552 |
| 553 void BrowserMediaPlayerManager::OnInitializeCDM( | 553 void BrowserMediaPlayerManager::OnInitializeCDM( |
| 554 int media_keys_id, | 554 int media_keys_id, |
| (...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 771 if (pending_fullscreen_player_id_ != media_keys_id) | 771 if (pending_fullscreen_player_id_ != media_keys_id) |
| 772 return; | 772 return; |
| 773 | 773 |
| 774 pending_fullscreen_player_id_ = -1; | 774 pending_fullscreen_player_id_ = -1; |
| 775 MediaPlayerAndroid* player = GetPlayer(media_keys_id); | 775 MediaPlayerAndroid* player = GetPlayer(media_keys_id); |
| 776 if (player->IsPlaying()) | 776 if (player->IsPlaying()) |
| 777 OnProtectedSurfaceRequested(media_keys_id); | 777 OnProtectedSurfaceRequested(media_keys_id); |
| 778 } | 778 } |
| 779 | 779 |
| 780 } // namespace content | 780 } // namespace content |
| OLD | NEW |