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

Commit 491e3412 authored by Zhijun He's avatar Zhijun He
Browse files

Camera3: Flush device before ZSL reprocess

Call flush before sending ZSL reprocess request. This not only ensures no
in-flight requests pending in the HAL before ZSL reprocess request, but also
makes reprocess request to be processed by the HAL sooner.

Bug: 12230973
Change-Id: I4c9e5a0fb75ccdc1e8861262c08d599d04170b7f
parent c69b91ce
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -273,6 +273,15 @@ status_t ZslProcessor3::pushToReprocess(int32_t requestId) {
            return INVALID_OPERATION;
        }

        // Flush device to clear out all in-flight requests pending in HAL.
        res = client->getCameraDevice()->flush();
        if (res != OK) {
            ALOGE("%s: Camera %d: Failed to flush device: "
                "%s (%d)",
                __FUNCTION__, client->getCameraId(), strerror(-res), res);
            return res;
        }

        // Update JPEG settings
        {
            SharedParameters::Lock l(client->getParameters());
+8 −1
Original line number Diff line number Diff line
@@ -1124,7 +1124,14 @@ status_t Camera3Device::flush() {
    Mutex::Autolock l(mLock);

    mRequestThread->clear();
    return mHal3Device->ops->flush(mHal3Device);
    status_t res;
    if (mHal3Device->common.version >= CAMERA_DEVICE_API_VERSION_3_1) {
        res = mHal3Device->ops->flush(mHal3Device);
    } else {
        res = waitUntilDrained();
    }

    return res;
}

/**