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

Commit d17567dc authored by Eino-Ville Talvala's avatar Eino-Ville Talvala Committed by Android (Google) Code Review
Browse files

Merge "Camera3Device: Wait for empty in-flight map when waiting for idle" into nyc-mr1-dev

parents d44ade92 e4df8abe
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -170,6 +170,9 @@ status_t Camera3Device::initialize(CameraModule *module)
        return res;
    }

    /** Register in-flight map to the status tracker */
    mInFlightStatusId = mStatusTracker->addComponent();

    /** Create buffer manager */
    mBufferManager = new Camera3BufferManager();

@@ -2196,6 +2199,10 @@ status_t Camera3Device::registerInFlight(uint32_t frameNumber,
            aeTriggerCancelOverride));
    if (res < 0) return res;

    if (mInFlightMap.size() == 1) {
        mStatusTracker->markComponentActive(mInFlightStatusId);
    }

    return OK;
}

@@ -2252,6 +2259,11 @@ void Camera3Device::removeInFlightRequestIfReadyLocked(int idx) {

        mInFlightMap.removeItemsAt(idx, 1);

        // Indicate idle inFlightMap to the status tracker
        if (mInFlightMap.size() == 0) {
            mStatusTracker->markComponentIdle(mInFlightStatusId, Fence::NO_FENCE);
        }

        ALOGVV("%s: removed frame %d from InFlightMap", __FUNCTION__, frameNumber);
     }

+1 −0
Original line number Diff line number Diff line
@@ -725,6 +725,7 @@ class Camera3Device :

    Mutex                  mInFlightLock; // Protects mInFlightMap
    InFlightMap            mInFlightMap;
    int                    mInFlightStatusId;

    status_t registerInFlight(uint32_t frameNumber,
            int32_t numBuffers, CaptureResultExtras resultExtras, bool hasInput,