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

Commit 6b974147 authored by Shuzhen Wang's avatar Shuzhen Wang
Browse files

Camera: Remove app segment stream's locked buffer tracking

The app segment CpuConsumer's max locked buffer count is already
enforced by the buffer queue. No need to monitor the locked buffer count
separately.

In case we are exceeding the max locked buffer count, the lockBuffer()
call returns failure, so further app segment processing will be deferred.

Test: vendor testing
Bug: 173583542
Change-Id: I02522bcc695ee00ac4ee48df4cfd76ce35522cb9
Merged-In: I02522bcc695ee00ac4ee48df4cfd76ce35522cb9
parent e0a38742
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -65,7 +65,6 @@ HeicCompositeStream::HeicCompositeStream(sp<CameraDeviceBase> device,
        mYuvBufferAcquired(false),
        mProducerListener(new ProducerListener()),
        mDequeuedOutputBufferCnt(0),
        mLockedAppSegmentBufferCnt(0),
        mCodecOutputCounter(0),
        mQuality(-1),
        mGridTimestampUs(0),
@@ -634,7 +633,6 @@ void HeicCompositeStream::compilePendingInputLocked() {
            mAppSegmentConsumer->unlockBuffer(imgBuffer);
        } else {
            mPendingInputFrames[frameNumber].appSegmentBuffer = imgBuffer;
            mLockedAppSegmentBufferCnt++;
        }
        mInputAppSegmentBuffers.erase(it);
        mAppSegmentFrameNumbers.pop();
@@ -897,10 +895,6 @@ status_t HeicCompositeStream::processInputFrame(int64_t frameNumber,
                        strerror(-res), res);
                return res;
            }
        } else if (mLockedAppSegmentBufferCnt == kMaxAcquiredAppSegment) {
            ALOGE("%s: Out-of-order app segment buffers reaches limit %u", __FUNCTION__,
                    kMaxAcquiredAppSegment);
            return INVALID_OPERATION;
        }
    }

@@ -1038,7 +1032,6 @@ status_t HeicCompositeStream::processAppSegment(int64_t frameNumber, InputFrame
    mAppSegmentConsumer->unlockBuffer(inputFrame.appSegmentBuffer);
    inputFrame.appSegmentBuffer.data = nullptr;
    inputFrame.exifError = false;
    mLockedAppSegmentBufferCnt--;

    return OK;
}
+0 −1
Original line number Diff line number Diff line
@@ -253,7 +253,6 @@ private:

    // Keep all incoming APP segment Blob buffer pending further processing.
    std::vector<int64_t> mInputAppSegmentBuffers;
    int32_t           mLockedAppSegmentBufferCnt;

    // Keep all incoming HEIC blob buffer pending further processing.
    std::vector<CodecOutputBufferInfo> mCodecOutputBuffers;