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

Commit fa9ced08 authored by Wonsik Kim's avatar Wonsik Kim
Browse files

MediaCodec: set release surface in more states

Bug: 157000606
Test: atest CtsMediaTestCases -- --module-arg CtsMediaTestCases:size:small
Change-Id: I4dd906fee400b6dbe2c232a7ee0aa1fab99eba3f
parent a2e3cdda
Loading
Loading
Loading
Loading
+12 −11
Original line number Diff line number Diff line
@@ -3036,11 +3036,11 @@ void MediaCodec::onMessageReceived(const sp<AMessage> &msg) {

            int32_t async = 0;
            if (msg->findInt32("async", &async) && async) {
                if ((mState ==  CONFIGURED || mState == STARTED || mState == FLUSHED)
                       && mSurface != NULL) {
                if (mSurface != NULL) {
                    if (!mReleaseSurface) {
                        mReleaseSurface.reset(new ReleaseSurface);
                    }
                    if (mSurface != mReleaseSurface->getSurface()) {
                        status_t err = connectToSurface(mReleaseSurface->getSurface());
                        ALOGW_IF(err != OK, "error connecting to release surface: err = %d", err);
                        if (err == OK && !(mFlags & kFlagUsesSoftwareRenderer)) {
@@ -3053,6 +3053,7 @@ void MediaCodec::onMessageReceived(const sp<AMessage> &msg) {
                        }
                    }
                }
            }

            mReplyID = replyID;
            setState(msg->what() == kWhatStop ? STOPPING : RELEASING);