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

Commit b14fef4a authored by Shuzhen Wang's avatar Shuzhen Wang
Browse files

Camera: Mark stream as ABANDONED if dequeueBuffer returns DEAD_OBJECT

When consumer surface is destroyed, dequeueBuffer may return
DEAD_OBJECT.

We need to treat this condition as ABANDONED so that camera service
stops repeating request. Otherwise, we may run into infinite loop.

Test: Camera CTS
Bug: 111384143
Bug: 111381452
Change-Id: If3348119521e9805085321c7f20abd7cc7f5dd43
parent a2a60434
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -564,7 +564,7 @@ status_t Camera3OutputStream::getBufferLockedCommon(ANativeWindowBuffer** anb, i

            // Only transition to STATE_ABANDONED from STATE_CONFIGURED. (If it is STATE_PREPARING,
            // let prepareNextBuffer handle the error.)
            if (res == NO_INIT && mState == STATE_CONFIGURED) {
            if ((res == NO_INIT || res == DEAD_OBJECT) && mState == STATE_CONFIGURED) {
                mState = STATE_ABANDONED;
            }