summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLajos Molnar <lajos@google.com>2014-09-11 17:27:09 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-09-11 17:27:09 +0000
commite4ce3eb0d4785679994b38d54aa7ec01d208be72 (patch)
treec54662f0a02a396ceb49bdadefbf498c3bf9f9c1
parent2c6b6000404d939be92193209dbd147ccd70d2e1 (diff)
parentebea445f9344dbbe2ad560e340fb0ee3b9151650 (diff)
downloadframeworks_av-e4ce3eb0d4785679994b38d54aa7ec01d208be72.zip
frameworks_av-e4ce3eb0d4785679994b38d54aa7ec01d208be72.tar.gz
frameworks_av-e4ce3eb0d4785679994b38d54aa7ec01d208be72.tar.bz2
am ebea445f: am b9b87fe9: mediaplayer: release MediaBuffer in stale input buffers
* commit 'ebea445f9344dbbe2ad560e340fb0ee3b9151650': mediaplayer: release MediaBuffer in stale input buffers
-rw-r--r--media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp
index 8ce7baf..163a0b5 100644
--- a/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp
+++ b/media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp
@@ -595,7 +595,18 @@ void NuPlayer::Decoder::onMessageReceived(const sp<AMessage> &msg) {
{
if (!isStaleReply(msg)) {
onInputBufferFilled(msg);
+ } else {
+ /* release any MediaBuffer passed in the stale buffer */
+ sp<ABuffer> buffer;
+ MediaBuffer *mediaBuffer = NULL;
+ if (msg->findBuffer("buffer", &buffer) &&
+ buffer->meta()->findPointer(
+ "mediaBuffer", (void **)&mediaBuffer) &&
+ mediaBuffer != NULL) {
+ mediaBuffer->release();
+ }
}
+
break;
}