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

Commit ea3b0dca authored by Ravneet Dhanjal's avatar Ravneet Dhanjal Committed by Android (Google) Code Review
Browse files

Merge "Camera: Fix FD leak" into main

parents 7f4fb8ce 446b3bf5
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -487,7 +487,7 @@ status_t Camera3OutputStream::returnBufferCheckedLocked(
            bufferDeferred = true;
        } else {
            nsecs_t presentTime = mSyncToDisplay ?
                    syncTimestampToDisplayLocked(captureTime, releaseFence->dup()) : captureTime;
                    syncTimestampToDisplayLocked(captureTime, releaseFence) : captureTime;

            setTransform(transform, true/*mayChangeMirror*/);
            res = native_window_set_buffers_timestamp(mConsumer.get(), presentTime);
@@ -1412,7 +1412,7 @@ void Camera3OutputStream::returnPrefetchedBuffersLocked() {
    }
}

nsecs_t Camera3OutputStream::syncTimestampToDisplayLocked(nsecs_t t, int releaseFence) {
nsecs_t Camera3OutputStream::syncTimestampToDisplayLocked(nsecs_t t, sp<Fence> releaseFence) {
    nsecs_t currentTime = systemTime();
    if (!mFixedFps) {
        mLastCaptureTime = t;
@@ -1460,8 +1460,8 @@ nsecs_t Camera3OutputStream::syncTimestampToDisplayLocked(nsecs_t t, int release
                mRefVsyncData = vsyncEventData;
                mReferenceCaptureTime = t;
                mReferenceArrivalTime = currentTime;
                if (releaseFence != -1) {
                    mReferenceFrameFence = new Fence(releaseFence);
                if (releaseFence->isValid()) {
                    mReferenceFrameFence = new Fence(releaseFence->dup());
                } else {
                    mFenceSignalOffset = 0;
                }
+1 −1
Original line number Diff line number Diff line
@@ -446,7 +446,7 @@ class Camera3OutputStream :
    static constexpr nsecs_t kTimelineThresholdNs = 1000000LL; // 1 millisecond
    static constexpr float kMaxIntervalRatioDeviation = 0.05f;
    static constexpr int kMaxTimelines = 2;
    nsecs_t syncTimestampToDisplayLocked(nsecs_t t, int releaseFence);
    nsecs_t syncTimestampToDisplayLocked(nsecs_t t, sp<Fence> releaseFence);

    // In case of fence being used
    sp<Fence> mReferenceFrameFence;