OSDN Git Service

Don't render buffers that have size 0
authorMarco Nelissen <marcone@google.com>
Thu, 9 May 2013 16:15:34 +0000 (09:15 -0700)
committerMarco Nelissen <marcone@google.com>
Fri, 10 May 2013 15:17:09 +0000 (08:17 -0700)
b/8857451

Change-Id: I12a31a2f85af76602db9e6f0ec80632954b3f7ed

media/libstagefright/ACodec.cpp
media/libstagefright/MediaCodec.cpp

index 058852e..994d3f4 100644 (file)
@@ -3131,7 +3131,8 @@ void ACodec::BaseState::onOutputBufferDrained(const sp<AMessage> &msg) {
 
     int32_t render;
     if (mCodec->mNativeWindow != NULL
-            && msg->findInt32("render", &render) && render != 0) {
+            && msg->findInt32("render", &render) && render != 0
+            && (info->mData == NULL || info->mData->size() != 0)) {
         // The client wants this buffer to be rendered.
 
         status_t err;
index 714da55..f412dc8 100644 (file)
@@ -1656,7 +1656,7 @@ status_t MediaCodec::onReleaseOutputBuffer(const sp<AMessage> &msg) {
         return -EACCES;
     }
 
-    if (render) {
+    if (render && (info->mData == NULL || info->mData->size() != 0)) {
         info->mNotify->setInt32("render", true);
 
         if (mSoftRenderer != NULL) {