summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice
diff options
context:
space:
mode:
authorRonghua Wu <ronghuawu@google.com>2015-10-07 16:52:19 -0700
committerHaynes Mathew George <hgeorge@codeaurora.org>2015-11-03 10:55:17 -0800
commit6ab73dcdc410e873a585af3a0e0ffd1551c06f2e (patch)
tree4d8d4fb0585c2e907b6e0b9a09035a1bad6b4cd5 /media/libmediaplayerservice
parentf140e521f51b2d48c1f983c2790f4ab55b6dfac9 (diff)
downloadframeworks_av-6ab73dcdc410e873a585af3a0e0ffd1551c06f2e.zip
frameworks_av-6ab73dcdc410e873a585af3a0e0ffd1551c06f2e.tar.gz
frameworks_av-6ab73dcdc410e873a585af3a0e0ffd1551c06f2e.tar.bz2
nuplayer: don't resume if player is reseting.
cherry-pick of AOSP commit b75de9d4ba6725104342b5376a1047ff1c9b2765 Bug: 24712426 Change-Id: I58cca0bde708a5c3b073ed77e18b62fe81d6c017
Diffstat (limited to 'media/libmediaplayerservice')
-rw-r--r--media/libmediaplayerservice/nuplayer/NuPlayer.cpp7
-rw-r--r--media/libmediaplayerservice/nuplayer/NuPlayer.h1
2 files changed, 7 insertions, 1 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayer.cpp
index ec1ab79..1b31f19 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayer.cpp
+++ b/media/libmediaplayerservice/nuplayer/NuPlayer.cpp
@@ -206,6 +206,7 @@ NuPlayer::NuPlayer(pid_t pid)
mPlaybackSettings(AUDIO_PLAYBACK_RATE_DEFAULT),
mVideoFpsHint(-1.f),
mStarted(false),
+ mResetting(false),
mSourceStarted(false),
mPaused(false),
mPausedByClient(false),
@@ -1163,6 +1164,8 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) {
{
ALOGV("kWhatReset");
+ mResetting = true;
+
mDeferredActions.push_back(
new FlushDecoderAction(
FLUSH_CMD_SHUTDOWN /* audio */,
@@ -1248,7 +1251,8 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) {
}
void NuPlayer::onResume() {
- if (!mPaused) {
+ if (!mPaused || mResetting) {
+ ALOGD_IF(mResetting, "resetting, onResume discarded");
return;
}
mPaused = false;
@@ -1969,6 +1973,7 @@ void NuPlayer::performReset() {
}
mStarted = false;
+ mResetting = false;
mSourceStarted = false;
}
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayer.h b/media/libmediaplayerservice/nuplayer/NuPlayer.h
index c0aa782..32a3efe 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayer.h
+++ b/media/libmediaplayerservice/nuplayer/NuPlayer.h
@@ -202,6 +202,7 @@ protected:
AVSyncSettings mSyncSettings;
float mVideoFpsHint;
bool mStarted;
+ bool mResetting;
bool mSourceStarted;
// Actual pause state, either as requested by client or due to buffering.