diff --git a/media/jni/android_media_MediaCodecLinearBlock.h b/media/jni/android_media_MediaCodecLinearBlock.h index 8f1d2fa35d705..ae2d3a264abc6 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 buffer = + C2Buffer::CreateLinearBuffer(block.subBlock(offset, size)); + for (const std::shared_ptr &info : mBuffer->info()) { + std::shared_ptr param = std::move(C2Param::Copy(*info)); + buffer->setInfo(std::static_pointer_cast(param)); + } + return buffer; } if (mBlock) { return C2Buffer::CreateLinearBuffer(mBlock->share(offset, size, C2Fence{}));