summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Nicolas Catania <niko@google.com> 2010-03-10 10:41:04 -0800
committer Nicolas Catania <niko@google.com> 2010-03-11 10:07:14 -0800
commit7bd3d7d19670932f9edcb637d30d6b141ab8b51a (patch)
treecae92cfe96125ec5af20d0cbb484616a1ddcd035
parent84eb8d2a7de0a2cec02516b9fb2a61fde536b59c (diff)
Allow invoke in all the player states except idle and error.
Previously invoke would work only after prepare but not when the player is in play or pause state (for instance). This new change just check that the player has been initialized and is not in the error state. Bug:2488931 Change-Id: I9b9f3679593a3b7697c1a84d993fdcd7e1693a90
-rw-r--r--media/libmedia/mediaplayer.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/media/libmedia/mediaplayer.cpp b/media/libmedia/mediaplayer.cpp
index f623295be76e..c6bbbcc9cf2d 100644
--- a/media/libmedia/mediaplayer.cpp
+++ b/media/libmedia/mediaplayer.cpp
@@ -159,8 +159,10 @@ status_t MediaPlayer::setDataSource(int fd, int64_t offset, int64_t length)
status_t MediaPlayer::invoke(const Parcel& request, Parcel *reply)
{
Mutex::Autolock _l(mLock);
- if ((mPlayer != NULL) && ( mCurrentState & MEDIA_PLAYER_INITIALIZED ))
- {
+ const bool hasBeenInitialized =
+ (mCurrentState != MEDIA_PLAYER_STATE_ERROR) &&
+ ((mCurrentState & MEDIA_PLAYER_IDLE) != MEDIA_PLAYER_IDLE);
+ if ((mPlayer != NULL) && hasBeenInitialized) {
LOGV("invoke %d", request.dataSize());
return mPlayer->invoke(request, reply);
}