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

This commit is contained in:
Treehugger Robot
2023-04-07 02:59:54 +00:00
committed by Gerrit Code Review

View File

@@ -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 =