summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice
diff options
context:
space:
mode:
authorDave Sparks <davidsparks@android.com>2009-12-10 17:57:10 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2009-12-10 17:57:10 -0800
commit0a2b8e6424d1b027fb188ba0bd290fedff34b0f5 (patch)
treee856fa8b85db6937b54a49b930e079aae9764888 /media/libmediaplayerservice
parent3869dcbacecc5575cdde7b337a39cbd14c1fd7cb (diff)
parent8eb8011120a68a86199b9960cf1ae91a6ddc7e6d (diff)
downloadframeworks_av-0a2b8e6424d1b027fb188ba0bd290fedff34b0f5.zip
frameworks_av-0a2b8e6424d1b027fb188ba0bd290fedff34b0f5.tar.gz
frameworks_av-0a2b8e6424d1b027fb188ba0bd290fedff34b0f5.tar.bz2
am 14f89404: Fix media player decode function. Bug 2317821.
Merge commit '14f8940472217e8b0164d8f213679710d623d528' into eclair-mr2 * commit '14f8940472217e8b0164d8f213679710d623d528': Fix media player decode function. Bug 2317821.
Diffstat (limited to 'media/libmediaplayerservice')
-rw-r--r--media/libmediaplayerservice/MediaPlayerService.cpp24
1 files changed, 17 insertions, 7 deletions
diff --git a/media/libmediaplayerservice/MediaPlayerService.cpp b/media/libmediaplayerservice/MediaPlayerService.cpp
index a4e3601..540d4ba 100644
--- a/media/libmediaplayerservice/MediaPlayerService.cpp
+++ b/media/libmediaplayerservice/MediaPlayerService.cpp
@@ -1605,12 +1605,14 @@ status_t MediaPlayerService::AudioCache::open(
uint32_t sampleRate, int channelCount, int format, int bufferCount,
AudioCallback cb, void *cookie)
{
+ LOGV("open(%u, %d, %d, %d)", sampleRate, channelCount, format, bufferCount);
if (cb != NULL) {
return UNKNOWN_ERROR; // TODO: implement this.
}
+ if (mHeap->getHeapID() < 0) {
+ return NO_INIT;
+ }
- LOGV("open(%u, %d, %d, %d)", sampleRate, channelCount, format, bufferCount);
- if (mHeap->getHeapID() < 0) return NO_INIT;
mSampleRate = sampleRate;
mChannelCount = (uint16_t)channelCount;
mFormat = (uint16_t)format;
@@ -1659,16 +1661,24 @@ void MediaPlayerService::AudioCache::notify(void* cookie, int msg, int ext1, int
AudioCache* p = static_cast<AudioCache*>(cookie);
// ignore buffering messages
- if (msg == MEDIA_BUFFERING_UPDATE) return;
-
- // set error condition
- if (msg == MEDIA_ERROR) {
+ switch (msg)
+ {
+ case MEDIA_ERROR:
LOGE("Error %d, %d occurred", ext1, ext2);
p->mError = ext1;
+ break;
+ case MEDIA_PREPARED:
+ LOGV("prepared");
+ break;
+ case MEDIA_PLAYBACK_COMPLETE:
+ LOGV("playback complete");
+ break;
+ default:
+ LOGV("ignored");
+ return;
}
// wake up thread
- LOGV("wakeup thread");
p->mCommandComplete = true;
p->mSignal.signal();
}