Merge "MediaCodecLinearBlock: Let input slot available for onWorkDone buffer." am: c831fde1ab am: e0aa0a98ed
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1844937 Change-Id: I1c1a04f7d2c7d9cdd0e461b4d4def6888802b1b7 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -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 =
|
||||
|
||||
Reference in New Issue
Block a user