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

Commit da208450 authored by Yin-Chia Yeh's avatar Yin-Chia Yeh
Browse files

Camera: hook up frame replaced callback for stream splitter

Test: partner provided test APK
Bug: 136777506
Change-Id: I75641c1d87672fe6ec3af5726d1f1c90356984f7
parent c2f08b86
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -496,7 +496,7 @@ void Camera3StreamSplitter::onFrameAvailable(const BufferItem& /*item*/) {
        mInputSlots[bufferItem.mSlot].mFrameNumber = bufferItem.mFrameNumber;
    } else {
        SP_LOGE("%s: Invalid input graphic buffer!", __FUNCTION__);
        res = BAD_VALUE;
        mOnFrameAvailableRes.store(BAD_VALUE);
        return;
    }
    bufferId = bufferItem.mGraphicBuffer->getId();
@@ -541,6 +541,11 @@ void Camera3StreamSplitter::onFrameAvailable(const BufferItem& /*item*/) {
    mOnFrameAvailableRes.store(res);
}

void Camera3StreamSplitter::onFrameReplaced(const BufferItem& item) {
    ATRACE_CALL();
    onFrameAvailable(item);
}

void Camera3StreamSplitter::decrementBufRefCountLocked(uint64_t id, size_t surfaceId) {
    ATRACE_CALL();

+7 −0
Original line number Diff line number Diff line
@@ -101,6 +101,13 @@ private:
    // input.
    void onFrameAvailable(const BufferItem& item) override;

    // From IConsumerListener
    //
    // Similar to onFrameAvailable, but buffer item is indeed replacing a buffer
    // in the buffer queue. This can happen when buffer queue is in droppable
    // mode.
    void onFrameReplaced(const BufferItem& item) override;

    // From IConsumerListener
    // We don't care about released buffers because we detach each buffer as
    // soon as we acquire it. See the comment for onBufferReleased below for