OSDN Git Service

mediaplayer: release MediaBuffer in stale input buffers
authorLajos Molnar <lajos@google.com>
Wed, 10 Sep 2014 20:53:21 +0000 (13:53 -0700)
committerThe Android Automerger <android-build@google.com>
Wed, 10 Sep 2014 23:57:44 +0000 (16:57 -0700)
Bug: 17454455
Change-Id: If63a6e42f96851d6c10fdec11360f0dabae9bf50

media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp

index 8ce7baf..163a0b5 100644 (file)
@@ -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;
         }