diff --git a/media/libstagefright/AwesomePlayer.cpp b/media/libstagefright/AwesomePlayer.cpp index 2bc81399c389b..b14a03ce9e086 100644 --- a/media/libstagefright/AwesomePlayer.cpp +++ b/media/libstagefright/AwesomePlayer.cpp @@ -1239,7 +1239,19 @@ status_t AwesomePlayer::suspend() { Mutex::Autolock autoLock(mLock); if (mSuspensionState != NULL) { - return INVALID_OPERATION; + if (mLastVideoBuffer == NULL) { + //go into here if video is suspended again + //after resuming without being played between + //them + SuspensionState *state = mSuspensionState; + mSuspensionState = NULL; + reset_l(); + mSuspensionState = state; + return OK; + } + + delete mSuspensionState; + mSuspensionState = NULL; } if (mFlags & PREPARING) { @@ -1344,7 +1356,7 @@ status_t AwesomePlayer::resume() { play_l(); } - delete state; + mSuspensionState = state; state = NULL; return OK;