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

Commit f13f1997 authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 6748432 from e52b8fa8 to rvc-qpr1-release

Change-Id: I2542e101ca9739b28b770502483d03ef5b0857f6
parents 93743cb5 e52b8fa8
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -1833,10 +1833,12 @@ status_t Camera3Device::waitUntilStateThenRelock(bool active, nsecs_t timeout) {

    mStatusWaiters++;

    bool signalPipelineDrain = false;
    if (!active && mUseHalBufManager) {
        auto streamIds = mOutputStreams.getStreamIds();
        if (mStatus == STATUS_ACTIVE) {
            mRequestThread->signalPipelineDrain(streamIds);
            signalPipelineDrain = true;
        }
        mRequestBufferSM.onWaitUntilIdle();
    }
@@ -1866,6 +1868,10 @@ status_t Camera3Device::waitUntilStateThenRelock(bool active, nsecs_t timeout) {
        }
    } while (!stateSeen);

    if (signalPipelineDrain) {
        mRequestThread->resetPipelineDrain();
    }

    mStatusWaiters--;

    return res;
@@ -4785,6 +4791,12 @@ void Camera3Device::RequestThread::signalPipelineDrain(const std::vector<int>& s
    mStreamIdsToBeDrained = streamIds;
}

void Camera3Device::RequestThread::resetPipelineDrain() {
    Mutex::Autolock pl(mPauseLock);
    mNotifyPipelineDrain = false;
    mStreamIdsToBeDrained.clear();
}

void Camera3Device::RequestThread::clearPreviousRequest() {
    Mutex::Autolock l(mRequestLock);
    mPrevRequest.clear();
+1 −0
Original line number Diff line number Diff line
@@ -832,6 +832,7 @@ class Camera3Device :
        }

        void signalPipelineDrain(const std::vector<int>& streamIds);
        void resetPipelineDrain();

        status_t switchToOffline(
                const std::vector<int32_t>& streamsToKeep,