summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authormaybelle@chromium.org <maybelle@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-17 22:10:08 +0000
committermaybelle@chromium.org <maybelle@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-09-17 22:10:08 +0000
commit2f66c2672df12dc9880ff47bc3ee2fb1443129f3 (patch)
treec86ffb301abb921e1df7eaf1e8d9d403f497fa21 /media
parentdfffbcbcc3eb73ba6769f67ff118586a1dd4bfde (diff)
downloadchromium_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.h2
-rw-r--r--media/base/android/media_player_bridge.cc2
-rw-r--r--media/base/android/media_player_bridge.h2
-rw-r--r--media/base/android/media_source_player.cc2
-rw-r--r--media/base/android/media_source_player.h2
-rw-r--r--media/base/android/media_source_player_unittest.cc2
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.