diff options
Diffstat (limited to 'media/libmediaplayerservice/MediaPlayerService.cpp')
-rw-r--r-- | media/libmediaplayerservice/MediaPlayerService.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/media/libmediaplayerservice/MediaPlayerService.cpp b/media/libmediaplayerservice/MediaPlayerService.cpp index 7bb154e..071b894 100644 --- a/media/libmediaplayerservice/MediaPlayerService.cpp +++ b/media/libmediaplayerservice/MediaPlayerService.cpp @@ -2124,6 +2124,7 @@ ssize_t MediaPlayerService::AudioCache::write(const void* buffer, size_t size) // immutable with respect to future writes. // // It is thus safe for another thread to read the AudioCache. + Mutex::Autolock lock(mLock); mCommandComplete = true; mSignal.signal(); } @@ -2158,7 +2159,6 @@ void MediaPlayerService::AudioCache::notify( { case MEDIA_ERROR: ALOGE("Error %d, %d occurred", ext1, ext2); - p->mError = ext1; break; case MEDIA_PREPARED: ALOGV("prepared"); @@ -2173,6 +2173,9 @@ void MediaPlayerService::AudioCache::notify( // wake up thread Mutex::Autolock lock(p->mLock); + if (msg == MEDIA_ERROR) { + p->mError = ext1; + } p->mCommandComplete = true; p->mSignal.signal(); } |