From a73c954d947748a3b6f630cf2c160fe55ec596e3 Mon Sep 17 00:00:00 2001 From: Lajos Molnar Date: Wed, 2 Oct 2013 11:25:20 -0700 Subject: MediaCodec: avoid codec EOS if flushing during port reconfiguration Change-Id: Ic2e93f38feeb2e906f8d6b400ed6df2b7580ca87 Signed-off-by: Lajos Molnar Bug: 11045434 --- media/libstagefright/ACodec.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/media/libstagefright/ACodec.cpp b/media/libstagefright/ACodec.cpp index bfb730c..8158d70 100644 --- a/media/libstagefright/ACodec.cpp +++ b/media/libstagefright/ACodec.cpp @@ -3026,16 +3026,17 @@ void ACodec::BaseState::onInputBufferFilled(const sp &msg) { sp buffer; int32_t err = OK; bool eos = false; + PortMode mode = getPortMode(kPortIndexInput); if (!msg->findBuffer("buffer", &buffer)) { + /* these are unfilled buffers returned by client */ CHECK(msg->findInt32("err", &err)); ALOGV("[%s] saw error %d instead of an input buffer", mCodec->mComponentName.c_str(), err); buffer.clear(); - - eos = true; + mode = KEEP_BUFFERS; } int32_t tmp; @@ -3049,8 +3050,6 @@ void ACodec::BaseState::onInputBufferFilled(const sp &msg) { info->mStatus = BufferInfo::OWNED_BY_US; - PortMode mode = getPortMode(kPortIndexInput); - switch (mode) { case KEEP_BUFFERS: { -- cgit v1.1