Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a73c954d authored by Lajos Molnar's avatar Lajos Molnar
Browse files

MediaCodec: avoid codec EOS if flushing during port reconfiguration



Change-Id: Ic2e93f38feeb2e906f8d6b400ed6df2b7580ca87
Signed-off-by: default avatarLajos Molnar <lajos@google.com>
Bug: 11045434
parent f05e50eb
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -3026,16 +3026,17 @@ void ACodec::BaseState::onInputBufferFilled(const sp<AMessage> &msg) {
    sp<ABuffer> 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<AMessage> &msg) {

    info->mStatus = BufferInfo::OWNED_BY_US;

    PortMode mode = getPortMode(kPortIndexInput);

    switch (mode) {
        case KEEP_BUFFERS:
        {