OSDN Git Service

stagefright-plugins: flac does not playback
authorKeith Mok <kmok@cyngn.com>
Fri, 3 Jun 2016 16:20:54 +0000 (09:20 -0700)
committerKeith Mok <kmok@cyngn.com>
Fri, 3 Jun 2016 16:20:54 +0000 (09:20 -0700)
The previous patch reverse the logic for null
pointer checking. Fixes it.

NIGHTLIES-3061

Change-Id: I337eef9ed29546d00e5b232f7074251566cd3366

omx/SoftFFmpegAudio.cpp

index 1688398..898cbec 100644 (file)
@@ -1124,24 +1124,26 @@ int32_t SoftFFmpegAudio::decodeAudio() {
         }
     }
 
-    if (!is_flush && !inHeader) {
+    if (!is_flush) {
         if (len < 0) {
             //if error, we skip the frame 
             inputBufferUsedLength = mInputBufferSize;
         } else {
             inputBufferUsedLength = len;
         }
-
-        CHECK_GE(inHeader->nFilledLen, inputBufferUsedLength);
-        inHeader->nOffset += inputBufferUsedLength;
-        inHeader->nFilledLen -= inputBufferUsedLength;
         mInputBufferSize -= inputBufferUsedLength;
 
-        if (inHeader->nFilledLen == 0) {
-            CHECK_EQ(mInputBufferSize, 0);
-            inQueue.erase(inQueue.begin());
-            inInfo->mOwnedByUs = false;
-            notifyEmptyBufferDone(inHeader);
+        if (inHeader != NULL) {
+            CHECK_GE(inHeader->nFilledLen, inputBufferUsedLength);
+            inHeader->nOffset += inputBufferUsedLength;
+            inHeader->nFilledLen -= inputBufferUsedLength;
+
+            if (inHeader->nFilledLen == 0) {
+                CHECK_EQ(mInputBufferSize, 0);
+                inQueue.erase(inQueue.begin());
+                inInfo->mOwnedByUs = false;
+                notifyEmptyBufferDone(inHeader);
+            }
         }
     }