diff options
author | Wei Jia <wjia@google.com> | 2014-09-18 17:36:20 -0700 |
---|---|---|
committer | Wei Jia <wjia@google.com> | 2014-09-19 19:20:58 -0700 |
commit | 96e92b58b7e9647b4c7c2f54b62a1b357ab06b66 (patch) | |
tree | 35b83c45383cf9753b2f48eea71e66d5331165dc /media/libstagefright/MediaCodecSource.cpp | |
parent | 086c1e3f41a92aa0025a1da1db5dabbfdffaf129 (diff) | |
download | frameworks_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.cpp | 19 |
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(); } |