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

Commit 31d377b7 authored by James Dong's avatar James Dong
Browse files

Update state only if calls to native window are successful

Change-Id: I7a20f3ca787e11ca9c8c904b257e3c8a4e529136
parent 9352d116
Loading
Loading
Loading
Loading
+13 −3
Original line number Diff line number Diff line
@@ -982,11 +982,13 @@ int Camera2Device::StreamAdapter::enqueue_buffer(const camera2_stream_ops_t* w,
    if (err != OK) {
        ALOGE("%s: Error queueing buffer to native window: %s (%d)",
                __FUNCTION__, strerror(-err), err);
        return err;
    }

    stream->mActiveBuffers--;
    stream->mFrameCount++;
    stream->mLastTimestamp = timestamp;
    return err;
    return OK;
}

int Camera2Device::StreamAdapter::cancel_buffer(const camera2_stream_ops_t* w,
@@ -999,10 +1001,18 @@ int Camera2Device::StreamAdapter::cancel_buffer(const camera2_stream_ops_t* w,
        ALOGE("%s: Called when in bad state: %d", __FUNCTION__, stream->mState);
        return INVALID_OPERATION;
    }
    stream->mActiveBuffers--;

    ANativeWindow *a = toANW(w);
    return a->cancelBuffer(a,
    int err = a->cancelBuffer(a,
            container_of(buffer, ANativeWindowBuffer, handle), -1);
    if (err != OK) {
        ALOGE("%s: Error canceling buffer to native window: %s (%d)",
                __FUNCTION__, strerror(-err), err);
        return err;
    }

    stream->mActiveBuffers--;
    return OK;
}

int Camera2Device::StreamAdapter::set_crop(const camera2_stream_ops_t* w,