aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Kiryanov <rkir@google.com>2023-05-31 09:12:34 -0700
committerRoman Kiryanov <rkir@google.com>2023-05-31 09:13:53 -0700
commitb06dcedbb89a9d4b77e81f401bb8a862d5db77d7 (patch)
tree4df607ee48693fb809e385cb9b22f1a7259490cc
parent1e72ca25c3cbccc73b9f94f4c4f2411be13f3f20 (diff)
downloadgoldfish-opengl-b06dcedbb89a9d4b77e81f401bb8a862d5db77d7.tar.gz
Fix decoder buffer usage
it needs `write` access to populate images Bug: 285100511 Test: play a YouTube video Change-Id: I906af8a70a1e58827d59cabf19870752b72d5b35 Signed-off-by: Roman Kiryanov <rkir@google.com>
-rw-r--r--system/codecs/c2/decoders/avcdec/C2GoldfishAvcDec.cpp4
-rw-r--r--system/codecs/c2/decoders/hevcdec/C2GoldfishHevcDec.cpp4
-rw-r--r--system/codecs/c2/decoders/vpxdec/C2GoldfishVpxDec.cpp4
3 files changed, 6 insertions, 6 deletions
diff --git a/system/codecs/c2/decoders/avcdec/C2GoldfishAvcDec.cpp b/system/codecs/c2/decoders/avcdec/C2GoldfishAvcDec.cpp
index a4a9a1d1..8ae1d0a4 100644
--- a/system/codecs/c2/decoders/avcdec/C2GoldfishAvcDec.cpp
+++ b/system/codecs/c2/decoders/avcdec/C2GoldfishAvcDec.cpp
@@ -719,8 +719,8 @@ C2GoldfishAvcDec::ensureDecoderState(const std::shared_ptr<C2BlockPool> &pool) {
}
if (!mOutBlock) {
const uint32_t format = HAL_PIXEL_FORMAT_YCBCR_420_888;
- const C2MemoryUsage usage = {C2MemoryUsage::CPU_READ,
- (uint64_t)(BufferUsage::VIDEO_DECODER)};
+ const C2MemoryUsage usage = {(uint64_t)(BufferUsage::VIDEO_DECODER),
+ C2MemoryUsage::CPU_WRITE};
c2_status_t err = pool->fetchGraphicBlock(ALIGN2(mWidth), mHeight,
format, usage, &mOutBlock);
if (err != C2_OK) {
diff --git a/system/codecs/c2/decoders/hevcdec/C2GoldfishHevcDec.cpp b/system/codecs/c2/decoders/hevcdec/C2GoldfishHevcDec.cpp
index a0cb8d5c..e8d076d7 100644
--- a/system/codecs/c2/decoders/hevcdec/C2GoldfishHevcDec.cpp
+++ b/system/codecs/c2/decoders/hevcdec/C2GoldfishHevcDec.cpp
@@ -667,8 +667,8 @@ C2GoldfishHevcDec::ensureDecoderState(const std::shared_ptr<C2BlockPool> &pool)
}
if (!mOutBlock) {
const uint32_t format = HAL_PIXEL_FORMAT_YCBCR_420_888;
- const C2MemoryUsage usage = {C2MemoryUsage::CPU_READ,
- (uint64_t)(BufferUsage::VIDEO_DECODER)};
+ const C2MemoryUsage usage = {(uint64_t)(BufferUsage::VIDEO_DECODER),
+ C2MemoryUsage::CPU_WRITE};
c2_status_t err = pool->fetchGraphicBlock(ALIGN2(mWidth), mHeight,
format, usage, &mOutBlock);
if (err != C2_OK) {
diff --git a/system/codecs/c2/decoders/vpxdec/C2GoldfishVpxDec.cpp b/system/codecs/c2/decoders/vpxdec/C2GoldfishVpxDec.cpp
index 60a625f4..6e6c6512 100644
--- a/system/codecs/c2/decoders/vpxdec/C2GoldfishVpxDec.cpp
+++ b/system/codecs/c2/decoders/vpxdec/C2GoldfishVpxDec.cpp
@@ -724,8 +724,8 @@ C2GoldfishVpxDec::outputBuffer(const std::shared_ptr<C2BlockPool> &pool,
// now get the block
std::shared_ptr<C2GraphicBlock> block;
uint32_t format = HAL_PIXEL_FORMAT_YCBCR_420_888;
- const C2MemoryUsage usage = {C2MemoryUsage::CPU_READ,
- (uint64_t)(BufferUsage::VIDEO_DECODER)};
+ const C2MemoryUsage usage = {(uint64_t)(BufferUsage::VIDEO_DECODER),
+ C2MemoryUsage::CPU_WRITE};
c2_status_t err = pool->fetchGraphicBlock(align(mWidth, 2), mHeight, format,
usage, &block);