diff options
author | Ray Lee <ray-cy.lee@mediatek.com> | 2020-12-04 09:08:07 +0000 |
---|---|---|
committer | Wonsik Kim <wonsik@google.com> | 2020-12-04 23:28:56 +0000 |
commit | 73b682f61e8e9d25b4df9d9ebae476d593ec9cb8 (patch) | |
tree | 86942caf12793cf508324198047667b16eca18e5 | |
parent | e59313abccefba25bef005d89882d9528dd48765 (diff) |
MediaCodec: Pass missing C2Info for MediaCodecLinearBlock.
Bug: 174722272
Test: local test ok.
Change-Id: Id2283f84febe48939496ecc9fb78af13452cf111
-rw-r--r-- | media/jni/android_media_MediaCodecLinearBlock.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/media/jni/android_media_MediaCodecLinearBlock.h b/media/jni/android_media_MediaCodecLinearBlock.h index 8f1d2fa35d70..ae2d3a264abc 100644 --- a/media/jni/android_media_MediaCodecLinearBlock.h +++ b/media/jni/android_media_MediaCodecLinearBlock.h @@ -49,7 +49,14 @@ struct JMediaCodecLinearBlock { if (offset == 0 && size == block.capacity()) { return mBuffer; } - return C2Buffer::CreateLinearBuffer(block.subBlock(offset, size)); + + std::shared_ptr<C2Buffer> buffer = + C2Buffer::CreateLinearBuffer(block.subBlock(offset, size)); + for (const std::shared_ptr<const C2Info> &info : mBuffer->info()) { + std::shared_ptr<C2Param> param = std::move(C2Param::Copy(*info)); + buffer->setInfo(std::static_pointer_cast<C2Info>(param)); + } + return buffer; } if (mBlock) { return C2Buffer::CreateLinearBuffer(mBlock->share(offset, size, C2Fence{})); |