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

Commit e0aa0a98 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "MediaCodecLinearBlock: Let input slot available for onWorkDone buffer." am: c831fde1

parents 71b946c6 c831fde1
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -44,12 +44,19 @@ struct JMediaCodecLinearBlock {

    std::shared_ptr<C2Buffer> toC2Buffer(size_t offset, size_t size) const {
        if (mBuffer) {
            // TODO: if returned C2Buffer is different from mBuffer, we should
            // find a way to connect the life cycle between this C2Buffer and
            // mBuffer.
            if (mBuffer->data().type() != C2BufferData::LINEAR) {
                return nullptr;
            }
            C2ConstLinearBlock block = mBuffer->data().linearBlocks().front();
            if (offset == 0 && size == block.capacity()) {
                return mBuffer;
                // Let C2Buffer be new one to queue to MediaCodec. It will allow
                // the related input slot to be released by onWorkDone from C2
                // Component. Currently, the life cycle of mBuffer should be
                // protected by different flows.
                return std::make_shared<C2Buffer>(*mBuffer);
            }

            std::shared_ptr<C2Buffer> buffer =