media.c2 aidl: Apply bufferpool based allocator interface change
Bug: 254050314
Change-Id: I5f5c6a59826ee7822c4ccab49e82c4b0edbabbef
diff --git a/media/codec2/hal/aidl/Component.cpp b/media/codec2/hal/aidl/Component.cpp
index 4c2d5d3..bdc560f 100644
--- a/media/codec2/hal/aidl/Component.cpp
+++ b/media/codec2/hal/aidl/Component.cpp
@@ -289,30 +289,22 @@
const IComponent::BlockPoolAllocator &allocator,
IComponent::BlockPool *blockPool) {
std::shared_ptr<C2BlockPool> c2BlockPool;
- static constexpr IComponent::BlockPoolAllocator::Tag ALLOCATOR_ID =
- IComponent::BlockPoolAllocator::allocatorId;
- static constexpr IComponent::BlockPoolAllocator::Tag IGBA =
- IComponent::BlockPoolAllocator::allocator;
c2_status_t status = C2_OK;
::android::C2PlatformAllocatorDesc allocatorParam;
- switch (allocator.getTag()) {
- case ALLOCATOR_ID: {
- allocatorParam.allocatorId =
- allocator.get<IComponent::BlockPoolAllocator::allocatorId>();
- }
- break;
- case IGBA: {
- allocatorParam.allocatorId = ::android::C2PlatformAllocatorStore::IGBA;
- allocatorParam.igba =
- allocator.get<IComponent::BlockPoolAllocator::allocator>().igba;
+ allocatorParam.allocatorId = allocator.allocatorId;
+ switch (allocator.allocatorId) {
+ case ::android::C2PlatformAllocatorStore::IGBA: {
+ allocatorParam.igba = allocator.gbAllocator->igba;
allocatorParam.waitableFd.reset(
- allocator.get<IComponent::BlockPoolAllocator::allocator>()
- .waitableFd.dup().release());
+ allocator.gbAllocator->waitableFd.dup().release());
}
break;
- default:
- return ScopedAStatus::fromServiceSpecificError(C2_CORRUPTED);
+ default: {
+ // no-op
+ }
+ break;
}
+
#ifdef __ANDROID_APEX__
status = ::android::CreateCodec2BlockPool(
allocatorParam,
diff --git a/media/codec2/hal/client/client.cpp b/media/codec2/hal/client/client.cpp
index 85b5ec8..9ed9458 100644
--- a/media/codec2/hal/client/client.cpp
+++ b/media/codec2/hal/client/client.cpp
@@ -2072,6 +2072,8 @@
id = id == C2PlatformAllocatorStore::BUFFERQUEUE ?
C2PlatformAllocatorStore::IGBA : id;
+ c2_aidl::IComponent::BlockPoolAllocator allocator;
+ allocator.allocatorId = id;
if (id == C2PlatformAllocatorStore::IGBA) {
std::shared_ptr<AidlGraphicBufferAllocator> gba =
mGraphicBufferAllocators->create();
@@ -2081,12 +2083,11 @@
if (status != C2_OK) {
return status;
}
- c2_aidl::IComponent::BlockPoolAllocator allocator;
- allocator.set<c2_aidl::IComponent::BlockPoolAllocator::allocator>();
- allocator.get<c2_aidl::IComponent::BlockPoolAllocator::allocator>().igba =
+ c2_aidl::IComponent::GbAllocator gbAllocator;
+ gbAllocator.waitableFd = std::move(waitableFd);
+ gbAllocator.igba =
c2_aidl::IGraphicBufferAllocator::fromBinder(gba->asBinder());
- allocator.get<c2_aidl::IComponent::BlockPoolAllocator::allocator>().waitableFd =
- std::move(waitableFd);
+ allocator.gbAllocator = std::move(gbAllocator);
::ndk::ScopedAStatus transStatus = mAidlBase->createBlockPool(
allocator, &aidlBlockPool);
status = GetC2Status(transStatus, "createBlockPool");
@@ -2096,7 +2097,7 @@
mGraphicBufferAllocators->setCurrentId(aidlBlockPool.blockPoolId);
} else {
::ndk::ScopedAStatus transStatus = mAidlBase->createBlockPool(
- static_cast<int32_t>(id), &aidlBlockPool);
+ allocator, &aidlBlockPool);
status = GetC2Status(transStatus, "createBlockPool");
if (status != C2_OK) {
return status;