summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/MediaCodecSource.cpp
diff options
context:
space:
mode:
authorWei Jia <wjia@google.com>2014-09-18 17:36:20 -0700
committerWei Jia <wjia@google.com>2014-09-19 19:20:58 -0700
commit96e92b58b7e9647b4c7c2f54b62a1b357ab06b66 (patch)
tree35b83c45383cf9753b2f48eea71e66d5331165dc /media/libstagefright/MediaCodecSource.cpp
parent086c1e3f41a92aa0025a1da1db5dabbfdffaf129 (diff)
downloadframeworks_av-96e92b58b7e9647b4c7c2f54b62a1b357ab06b66.zip
frameworks_av-96e92b58b7e9647b4c7c2f54b62a1b357ab06b66.tar.gz
frameworks_av-96e92b58b7e9647b4c7c2f54b62a1b357ab06b66.tar.bz2
MediaBuffer: ABuffer will release MediaBuffer when it's destructed.
Bug: 17454455 Change-Id: Ia423bcc2e1fa39137f114eac44912ed15357bb99
Diffstat (limited to 'media/libstagefright/MediaCodecSource.cpp')
-rw-r--r--media/libstagefright/MediaCodecSource.cpp19
1 files changed, 3 insertions, 16 deletions
diff --git a/media/libstagefright/MediaCodecSource.cpp b/media/libstagefright/MediaCodecSource.cpp
index 1a80dcc..27cd231 100644
--- a/media/libstagefright/MediaCodecSource.cpp
+++ b/media/libstagefright/MediaCodecSource.cpp
@@ -37,19 +37,6 @@
namespace android {
-static void ReleaseMediaBufferReference(const sp<ABuffer> &accessUnit) {
- void *mbuf;
- if (accessUnit->meta()->findPointer("mediaBuffer", &mbuf)
- && mbuf != NULL) {
- ALOGV("releasing mbuf %p", mbuf);
-
- accessUnit->meta()->setPointer("mediaBuffer", NULL);
-
- static_cast<MediaBuffer *>(mbuf)->release();
- mbuf = NULL;
- }
-}
-
struct MediaCodecSource::Puller : public AHandler {
Puller(const sp<MediaSource> &source);
@@ -477,7 +464,7 @@ void MediaCodecSource::releaseEncoder() {
for (size_t i = 0; i < mEncoderInputBuffers.size(); ++i) {
sp<ABuffer> accessUnit = mEncoderInputBuffers.itemAt(i);
- ReleaseMediaBufferReference(accessUnit);
+ accessUnit->setMediaBufferBase(NULL);
}
mEncoderInputBuffers.clear();
@@ -608,8 +595,8 @@ status_t MediaCodecSource::feedEncoderInputBuffers() {
if (mIsVideo) {
// video encoder will release MediaBuffer when done
// with underlying data.
- mEncoderInputBuffers.itemAt(bufferIndex)->meta()
- ->setPointer("mediaBuffer", mbuf);
+ mEncoderInputBuffers.itemAt(bufferIndex)->setMediaBufferBase(
+ mbuf);
} else {
mbuf->release();
}