diff options
author | maybelle@chromium.org <maybelle@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-17 22:10:08 +0000 |
---|---|---|
committer | maybelle@chromium.org <maybelle@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-17 22:10:08 +0000 |
commit | 2f66c2672df12dc9880ff47bc3ee2fb1443129f3 (patch) | |
tree | c86ffb301abb921e1df7eaf1e8d9d403f497fa21 /media | |
parent | dfffbcbcc3eb73ba6769f67ff118586a1dd4bfde (diff) | |
download | chromium_src-2f66c2672df12dc9880ff47bc3ee2fb1443129f3.zip chromium_src-2f66c2672df12dc9880ff47bc3ee2fb1443129f3.tar.gz chromium_src-2f66c2672df12dc9880ff47bc3ee2fb1443129f3.tar.bz2 |
Remote video pauses when screen is locked or when tab is switched.
The root cause is due to the media resources being released when the screen
is locked or the tab is switched, which subsequently calls pause() on all
the players. Modified WebMediaPlayerAndroid to indicate if the player is
being paused due to a user action.
For the downstream change: https://gerrit-int.chromium.org/#/c/44201/
BUG=284472
NOTRY=true
Review URL: https://chromiumcodereview.appspot.com/23757047
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@223711 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/base/android/media_player_android.h | 2 | ||||
-rw-r--r-- | media/base/android/media_player_bridge.cc | 2 | ||||
-rw-r--r-- | media/base/android/media_player_bridge.h | 2 | ||||
-rw-r--r-- | media/base/android/media_source_player.cc | 2 | ||||
-rw-r--r-- | media/base/android/media_source_player.h | 2 | ||||
-rw-r--r-- | media/base/android/media_source_player_unittest.cc | 2 |
6 files changed, 6 insertions, 6 deletions
diff --git a/media/base/android/media_player_android.h b/media/base/android/media_player_android.h index 464ad89..0968d35 100644 --- a/media/base/android/media_player_android.h +++ b/media/base/android/media_player_android.h @@ -41,7 +41,7 @@ class MEDIA_EXPORT MediaPlayerAndroid { virtual void Start() = 0; // Pause the media. - virtual void Pause() = 0; + virtual void Pause(bool is_media_related_action) = 0; // Seek to a particular position. When succeeds, OnSeekComplete() will be // called. Otherwise, nothing will happen. diff --git a/media/base/android/media_player_bridge.cc b/media/base/android/media_player_bridge.cc index 750dd4b..f570bdc 100644 --- a/media/base/android/media_player_bridge.cc +++ b/media/base/android/media_player_bridge.cc @@ -181,7 +181,7 @@ void MediaPlayerBridge::Start() { } } -void MediaPlayerBridge::Pause() { +void MediaPlayerBridge::Pause(bool is_media_related_action) { if (j_media_player_bridge_.is_null()) { pending_play_ = false; } else { diff --git a/media/base/android/media_player_bridge.h b/media/base/android/media_player_bridge.h index 85a2960..7bd4beb 100644 --- a/media/base/android/media_player_bridge.h +++ b/media/base/android/media_player_bridge.h @@ -55,7 +55,7 @@ class MEDIA_EXPORT MediaPlayerBridge : public MediaPlayerAndroid { // MediaPlayerAndroid implementation. virtual void SetVideoSurface(gfx::ScopedJavaSurface surface) OVERRIDE; virtual void Start() OVERRIDE; - virtual void Pause() OVERRIDE; + virtual void Pause(bool is_media_related_action ALLOW_UNUSED) OVERRIDE; virtual void SeekTo(base::TimeDelta time) OVERRIDE; virtual void Release() OVERRIDE; virtual void SetVolume(double volume) OVERRIDE; diff --git a/media/base/android/media_source_player.cc b/media/base/android/media_source_player.cc index 5abf157..fe79d75 100644 --- a/media/base/android/media_source_player.cc +++ b/media/base/android/media_source_player.cc @@ -146,7 +146,7 @@ void MediaSourcePlayer::Start() { StartInternal(); } -void MediaSourcePlayer::Pause() { +void MediaSourcePlayer::Pause(bool is_media_related_action) { DVLOG(1) << __FUNCTION__; // Since decoder jobs have their own thread, decoding is not fully paused diff --git a/media/base/android/media_source_player.h b/media/base/android/media_source_player.h index cb6b2cd..7cfbb94 100644 --- a/media/base/android/media_source_player.h +++ b/media/base/android/media_source_player.h @@ -54,7 +54,7 @@ class MEDIA_EXPORT MediaSourcePlayer : public MediaPlayerAndroid, // MediaPlayerAndroid implementation. virtual void SetVideoSurface(gfx::ScopedJavaSurface surface) OVERRIDE; virtual void Start() OVERRIDE; - virtual void Pause() OVERRIDE; + virtual void Pause(bool is_media_related_action ALLOW_UNUSED) OVERRIDE; virtual void SeekTo(base::TimeDelta timestamp) OVERRIDE; virtual void Release() OVERRIDE; virtual void SetVolume(double volume) OVERRIDE; diff --git a/media/base/android/media_source_player_unittest.cc b/media/base/android/media_source_player_unittest.cc index ce35807..ccce9ae 100644 --- a/media/base/android/media_source_player_unittest.cc +++ b/media/base/android/media_source_player_unittest.cc @@ -402,7 +402,7 @@ TEST_F(MediaSourcePlayerTest, StartImmediatelyAfterPause) { // Decoder job will not immediately stop after Pause() since it is // running on another thread. - player_.Pause(); + player_.Pause(true); EXPECT_TRUE(GetMediaDecoderJob(true)->is_decoding()); // Nothing happens when calling Start() again. |