summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/MediaCodec.cpp
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2012-05-10 16:43:19 -0700
committerAndreas Huber <andih@google.com>2012-05-11 10:12:45 -0700
commiteb61431af13741aa8b7e57a39f69bba5a6c190dc (patch)
tree160d4951d23a4ee5cb7d7880df3afb923dad4eb6 /media/libstagefright/MediaCodec.cpp
parent240d8a84dec9f9482257a8037457a1d63193b7ff (diff)
downloadframeworks_av-eb61431af13741aa8b7e57a39f69bba5a6c190dc.zip
frameworks_av-eb61431af13741aa8b7e57a39f69bba5a6c190dc.tar.gz
frameworks_av-eb61431af13741aa8b7e57a39f69bba5a6c190dc.tar.bz2
Increase AAC software decoder's buffer count. Refactor how clients
of ACodec get notified about codec buffers and buffer ids. Change-Id: I962f873262dae7aa7b43f5f68a6d60268282f91e related-to-bug: 6478823
Diffstat (limited to 'media/libstagefright/MediaCodec.cpp')
-rw-r--r--media/libstagefright/MediaCodec.cpp18
1 files changed, 9 insertions, 9 deletions
diff --git a/media/libstagefright/MediaCodec.cpp b/media/libstagefright/MediaCodec.cpp
index 5b513a8..ff71170 100644
--- a/media/libstagefright/MediaCodec.cpp
+++ b/media/libstagefright/MediaCodec.cpp
@@ -562,20 +562,20 @@ void MediaCodec::onMessageReceived(const sp<AMessage> &msg) {
mPortBuffers[portIndex].clear();
Vector<BufferInfo> *buffers = &mPortBuffers[portIndex];
- for (size_t i = 0;; ++i) {
- AString name = StringPrintf("buffer-id_%d", i);
- void *bufferID;
- if (!msg->findPointer(name.c_str(), &bufferID)) {
- break;
- }
+ sp<RefBase> obj;
+ CHECK(msg->findObject("portDesc", &obj));
+
+ sp<ACodec::PortDescription> portDesc =
+ static_cast<ACodec::PortDescription *>(obj.get());
- name = StringPrintf("data_%d", i);
+ size_t numBuffers = portDesc->countBuffers();
+ for (size_t i = 0; i < numBuffers; ++i) {
BufferInfo info;
- info.mBufferID = bufferID;
+ info.mBufferID = portDesc->bufferIDAt(i);
info.mOwnedByClient = false;
- CHECK(msg->findBuffer(name.c_str(), &info.mData));
+ info.mData = portDesc->bufferAt(i);
if (portIndex == kPortIndexInput && mCrypto != NULL) {
info.mEncryptedData =