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

Commit 847b5677 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Camera: Skip session parameters in case of abandoned streams" into rvc-dev am: f872f885

Change-Id: I58dabff1ea6542dc7af0de4a813955dbb2d62120
parents 2d1527b3 f872f885
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -2344,6 +2344,21 @@ void Camera3Device::cancelStreamsConfigurationLocked() {
    }
}

bool Camera3Device::checkAbandonedStreamsLocked() {
    if ((mInputStream.get() != nullptr) && (mInputStream->isAbandoned())) {
        return true;
    }

    for (size_t i = 0; i < mOutputStreams.size(); i++) {
        auto stream = mOutputStreams[i];
        if ((stream.get() != nullptr) && (stream->isAbandoned())) {
            return true;
        }
    }

    return false;
}

bool Camera3Device::reconfigureCamera(const CameraMetadata& sessionParams) {
    ATRACE_CALL();
    bool ret = false;
@@ -2352,6 +2367,12 @@ bool Camera3Device::reconfigureCamera(const CameraMetadata& sessionParams) {
    nsecs_t maxExpectedDuration = getExpectedInFlightDuration();

    Mutex::Autolock l(mLock);
    if (checkAbandonedStreamsLocked()) {
        ALOGW("%s: Abandoned stream detected, session parameters can't be applied correctly!",
                __FUNCTION__);
        return true;
    }

    auto rc = internalPauseAndWaitLocked(maxExpectedDuration);
    if (rc == NO_ERROR) {
        mNeedConfig = true;
+6 −0
Original line number Diff line number Diff line
@@ -647,6 +647,12 @@ class Camera3Device :
     */
    bool reconfigureCamera(const CameraMetadata& sessionParams);

    /**
     * Return true in case of any output or input abandoned streams,
     * otherwise return false.
     */
    bool checkAbandonedStreamsLocked();

    /**
     * Filter stream session parameters and configure camera HAL.
     */