diff --git a/media/codec2/vndk/C2AllocatorGralloc.cpp b/media/codec2/vndk/C2AllocatorGralloc.cpp index 3ac3d89fe4..e1e137776d 100644 --- a/media/codec2/vndk/C2AllocatorGralloc.cpp +++ b/media/codec2/vndk/C2AllocatorGralloc.cpp @@ -520,6 +520,22 @@ c2_status_t C2AllocationGralloc::map( break; } + case static_cast(PixelFormat4::BLOB): { + void *pointer = nullptr; + // TODO: fence + status_t err = GraphicBufferMapper::get().lock( + const_cast(mBuffer), grallocUsage, + { (int32_t)rect.left, (int32_t)rect.top, + (int32_t)rect.width, (int32_t)rect.height }, + &pointer); + if (err) { + ALOGE("failed transaction: lock(BLOB)"); + return C2_CORRUPTED; + } + *addr = (uint8_t *)pointer; + break; + } + case static_cast(PixelFormat4::YCBCR_420_888): // fall-through case static_cast(PixelFormat4::YV12):