summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorLajos Molnar <lajos@google.com>2014-09-11 00:13:19 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-09-11 00:13:19 +0000
commitebea445f9344dbbe2ad560e340fb0ee3b9151650 (patch)
tree54c621357c61197861df5cb02713f9828bfc40e0 /media
parent42db212edc507588768479ec91acfb97b49b2837 (diff)
parentb9b87fe9d9f3d91c05300a22920d7227a3f8eb83 (diff)
downloadframeworks_av-ebea445f9344dbbe2ad560e340fb0ee3b9151650.zip
frameworks_av-ebea445f9344dbbe2ad560e340fb0ee3b9151650.tar.gz
frameworks_av-ebea445f9344dbbe2ad560e340fb0ee3b9151650.tar.bz2
am b9b87fe9: mediaplayer: release MediaBuffer in stale input buffers
* commit 'b9b87fe9d9f3d91c05300a22920d7227a3f8eb83': mediaplayer: release MediaBuffer in stale input buffers
Diffstat (limited to 'media')
-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;
}