Commit 7d930ce0 authored by ycheo@chromium.org's avatar ycheo@chromium.org

Skip to enter the fullscreen automatically when hole-punching is enabled.

BUG=391724

Review URL: https://codereview.chromium.org/378543002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@282588 0039d316-1c4b-4281-b951-d872f2087c98
parent 33afb891
......@@ -322,6 +322,12 @@ void BrowserMediaPlayerManager::RequestFullScreen(int player_id) {
}
#if defined(VIDEO_HOLE)
bool
BrowserMediaPlayerManager::ShouldUseVideoOverlayForEmbeddedEncryptedVideo() {
RendererPreferences* prefs = web_contents_->GetMutableRendererPrefs();
return prefs->use_video_overlay_for_embedded_encrypted_video;
}
void BrowserMediaPlayerManager::AttachExternalVideoSurface(int player_id,
jobject surface) {
MediaPlayerAndroid* player = GetPlayer(player_id);
......
......@@ -87,8 +87,9 @@ class CONTENT_EXPORT BrowserMediaPlayerManager
virtual media::MediaPlayerAndroid* GetFullscreenPlayer() OVERRIDE;
virtual media::MediaPlayerAndroid* GetPlayer(int player_id) OVERRIDE;
virtual void RequestFullScreen(int player_id) OVERRIDE;
#if defined(VIDEO_HOLE)
virtual bool ShouldUseVideoOverlayForEmbeddedEncryptedVideo() OVERRIDE;
void AttachExternalVideoSurface(int player_id, jobject surface);
void DetachExternalVideoSurface(int player_id);
void OnFrameInfoUpdated();
......
......@@ -65,6 +65,12 @@ class MEDIA_EXPORT MediaPlayerManager {
// Called by the player to get a hardware protected surface.
virtual void RequestFullScreen(int player_id) = 0;
#if defined(VIDEO_HOLE)
// Returns true if a media player should use video-overlay for the embedded
// encrypted video.
virtual bool ShouldUseVideoOverlayForEmbeddedEncryptedVideo() = 0;
#endif // defined(VIDEO_HOLE)
};
} // namespace media
......
......@@ -123,7 +123,13 @@ void MediaSourcePlayer::Start() {
playing_ = true;
if (IsProtectedSurfaceRequired())
bool request_fullscreen = IsProtectedSurfaceRequired();
#if defined(VIDEO_HOLE)
// Skip to request fullscreen when hole-punching is used.
request_fullscreen = request_fullscreen &&
!manager()->ShouldUseVideoOverlayForEmbeddedEncryptedVideo();
#endif // defined(VIDEO_HOLE)
if (request_fullscreen)
manager()->RequestFullScreen(player_id());
StartInternal();
......
......@@ -74,6 +74,11 @@ class MockMediaPlayerManager : public MediaPlayerManager {
virtual MediaPlayerAndroid* GetFullscreenPlayer() OVERRIDE { return NULL; }
virtual MediaPlayerAndroid* GetPlayer(int player_id) OVERRIDE { return NULL; }
virtual void RequestFullScreen(int player_id) OVERRIDE {}
#if defined(VIDEO_HOLE)
virtual bool ShouldUseVideoOverlayForEmbeddedEncryptedVideo() OVERRIDE {
return false;
}
#endif // defined(VIDEO_HOLE)
bool playback_completed() const {
return playback_completed_;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment