diff --git a/media/libmedia/mediaplayer.cpp b/media/libmedia/mediaplayer.cpp index d2cec0c825571..f623295be76e7 100644 --- a/media/libmedia/mediaplayer.cpp +++ b/media/libmedia/mediaplayer.cpp @@ -104,7 +104,8 @@ status_t MediaPlayer::setDataSource(const sp& player) { // scope for the lock Mutex::Autolock _l(mLock); - if ( !( mCurrentState & ( MEDIA_PLAYER_IDLE | MEDIA_PLAYER_STATE_ERROR ) ) ) { + if ( !( (mCurrentState & MEDIA_PLAYER_IDLE) || + (mCurrentState == MEDIA_PLAYER_STATE_ERROR ) ) ) { LOGE("setDataSource called in state %d", mCurrentState); return INVALID_OPERATION; }