diff options
author | Andreas Huber <andih@google.com> | 2012-02-21 14:38:23 -0800 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2012-02-22 16:20:59 -0800 |
commit | 2d8bedd05437b6fccdbc6bf70f673ffd86744d59 (patch) | |
tree | 1a11658a7379249eb4f6bd73b356baa4a661f41e /media/libstagefright/MediaCodec.cpp | |
parent | 79af02c6a813b5d31fba3e7b72686a02f0ae7e0f (diff) | |
download | frameworks_av-2d8bedd05437b6fccdbc6bf70f673ffd86744d59.zip frameworks_av-2d8bedd05437b6fccdbc6bf70f673ffd86744d59.tar.gz frameworks_av-2d8bedd05437b6fccdbc6bf70f673ffd86744d59.tar.bz2 |
Add new APIs AMessage::(set|find)Buffer to make it safer to pass
ABuffer objects through messages.
Change-Id: I9f8b4e4c4767d0d70a0105e0c0813b754379b49d
Diffstat (limited to 'media/libstagefright/MediaCodec.cpp')
-rw-r--r-- | media/libstagefright/MediaCodec.cpp | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/media/libstagefright/MediaCodec.cpp b/media/libstagefright/MediaCodec.cpp index 6702a1c..4acbdbe 100644 --- a/media/libstagefright/MediaCodec.cpp +++ b/media/libstagefright/MediaCodec.cpp @@ -515,13 +515,10 @@ void MediaCodec::onMessageReceived(const sp<AMessage> &msg) { name = StringPrintf("data_%d", i); - sp<RefBase> obj; - CHECK(msg->findObject(name.c_str(), &obj)); - BufferInfo info; info.mBufferID = bufferID; - info.mData = static_cast<ABuffer *>(obj.get()); info.mOwnedByClient = false; + CHECK(msg->findBuffer(name.c_str(), &info.mData)); buffers->push_back(info); } @@ -604,10 +601,8 @@ void MediaCodec::onMessageReceived(const sp<AMessage> &msg) { break; } - sp<RefBase> obj; - CHECK(msg->findObject("buffer", &obj)); - - sp<ABuffer> buffer = static_cast<ABuffer *>(obj.get()); + sp<ABuffer> buffer; + CHECK(msg->findBuffer("buffer", &buffer)); int32_t omxFlags; CHECK(msg->findInt32("flags", &omxFlags)); @@ -1118,7 +1113,7 @@ status_t MediaCodec::onQueueInputBuffer(const sp<AMessage> &msg) { info->mData->meta()->setInt32("csd", true); } - reply->setObject("buffer", info->mData); + reply->setBuffer("buffer", info->mData); reply->post(); return OK; |