OSDN Git Service

DO NOT MERGE -- NuPlayerDecoder: fail gracefully when input data can't be held in...
authorWei Jia <wjia@google.com>
Fri, 8 Jan 2016 00:03:03 +0000 (16:03 -0800)
committerWei Jia <wjia@google.com>
Wed, 7 Jun 2017 17:44:16 +0000 (17:44 +0000)
Bug: 38391487
Bug: 24145279
Change-Id: I6b99ee2dc63063557f4ee2c5856f7c848e969752
(cherry picked from commit 56097a8ecc31ec308a1caa38f92b69f99324eada)

media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp

index 27f6131..3afce9c 100644 (file)
@@ -276,7 +276,10 @@ bool NuPlayer::Decoder::handleAnInputBuffer() {
         ALOGI("[%s] resubmitting CSD", mComponentName.c_str());
         reply->setBuffer("buffer", buffer);
         mCSDsToSubmit.removeAt(0);
-        CHECK(onInputBufferFilled(reply));
+        if (!onInputBufferFilled(reply)) {
+            handleError(UNKNOWN_ERROR);
+            return false;
+        }
         return true;
     }
 
@@ -389,7 +392,10 @@ bool android::NuPlayer::Decoder::onInputBufferFilled(const sp<AMessage> &msg) {
 
         // copy into codec buffer
         if (buffer != codecBuffer) {
-            CHECK_LE(buffer->size(), codecBuffer->capacity());
+            if (buffer->size() > codecBuffer->capacity()) {
+                handleError(ERROR_BUFFER_TOO_SMALL);
+                return false;
+            }
             codecBuffer->setRange(0, buffer->size());
             memcpy(codecBuffer->data(), buffer->data(), buffer->size());
         }