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

Commit a16b76a3 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "ACodec: defer setSurface at OutputPortSettingsChangedState"

parents 4081644e ca05a60f
Loading
Loading
Loading
Loading
+25 −6
Original line number Diff line number Diff line
@@ -5804,17 +5804,19 @@ bool ACodec::BaseState::onMessageReceived(const sp<AMessage> &msg) {

        case ACodec::kWhatSetSurface:
        {
            sp<AReplyToken> replyID;
            CHECK(msg->senderAwaitsResponse(&replyID));

            sp<RefBase> obj;
            CHECK(msg->findObject("surface", &obj));

            status_t err = mCodec->handleSetSurface(static_cast<Surface *>(obj.get()));

            sp<AReplyToken> replyID;
            if (msg->senderAwaitsResponse(&replyID)) {
                sp<AMessage> response = new AMessage;
                response->setInt32("err", err);
                response->postReply(replyID);
            } else if (err != OK) {
                mCodec->signalError(OMX_ErrorUndefined, err);
            }
            break;
        }

@@ -8310,6 +8312,23 @@ bool ACodec::OutputPortSettingsChangedState::onMessageReceived(
            break;
        }

        case kWhatSetSurface:
        {
            ALOGV("[%s] Deferring setSurface", mCodec->mComponentName.c_str());

            sp<AReplyToken> replyID;
            CHECK(msg->senderAwaitsResponse(&replyID));

            mCodec->deferMessage(msg);

            sp<AMessage> response = new AMessage;
            response->setInt32("err", OK);
            response->postReply(replyID);

            handled = true;
            break;
        }

        case kWhatCheckIfStuck:
        {
            int32_t generation = 0;