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

Commit c5f13dcc authored by Lajos Molnar's avatar Lajos Molnar Committed by android-build-merger
Browse files

Merge "GraphicBufferSource: remove free codec buffers only when submitted to codec" into oc-dev

am: a62c3c31

Change-Id: Ic545e09b0ed3aeae2975ceb4718dcb26523359a6
parents 23b206db a62c3c31
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -766,7 +766,6 @@ bool GraphicBufferSource::calculateCodecTimestamp_l(
status_t GraphicBufferSource::submitBuffer_l(const VideoBuffer &item) {
    CHECK(!mFreeCodecBuffers.empty());
    IOMX::buffer_id codecBufferId = *mFreeCodecBuffers.begin();
    mFreeCodecBuffers.erase(mFreeCodecBuffers.begin());

    ALOGV("submitBuffer_l [slot=%d, bufferId=%d]", item.mBuffer->getSlot(), codecBufferId);

@@ -797,6 +796,8 @@ status_t GraphicBufferSource::submitBuffer_l(const VideoBuffer &item) {
        return err;
    }

    mFreeCodecBuffers.erase(mFreeCodecBuffers.begin());

    ssize_t cbix = mSubmittedCodecBuffers.add(codecBufferId, buffer);
    ALOGV("emptyGraphicBuffer succeeded, bufferId=%u@%zd bufhandle=%p",
            codecBufferId, cbix, graphicBuffer->handle);
@@ -815,7 +816,6 @@ void GraphicBufferSource::submitEndOfInputStream_l() {
        return;
    }
    IOMX::buffer_id codecBufferId = *mFreeCodecBuffers.begin();
    mFreeCodecBuffers.erase(mFreeCodecBuffers.begin());

    // We reject any additional incoming graphic buffers. There is no acquired buffer used for EOS
    status_t err = mOMXNode->emptyBuffer(
@@ -823,6 +823,7 @@ void GraphicBufferSource::submitEndOfInputStream_l() {
    if (err != OK) {
        ALOGW("emptyDirectBuffer EOS failed: 0x%x", err);
    } else {
        mFreeCodecBuffers.erase(mFreeCodecBuffers.begin());
        ssize_t cbix = mSubmittedCodecBuffers.add(codecBufferId, nullptr);
        ALOGV("submitEndOfInputStream_l: buffer submitted, bufferId=%u@%zd", codecBufferId, cbix);
        mEndOfStreamSent = true;