media.c2 aidl: provide a waitable fd for blockpool creation

Provide a waitable fd as a param for IComponent::createBlockPool()
along with IGraphicBufferAllocator interface. This will remove one IPC
call from HAL to client to get a waitable fd during blockpool creation.

Test: m
Bug: 254050314
Change-Id: I38d9bde987793e352299385fb141e484c758f89d
This commit is contained in:
Sungtak Lee 2023-10-26 10:26:07 +00:00
parent e4067812af
commit eec87d9081
2 changed files with 20 additions and 2 deletions

View file

@ -49,8 +49,12 @@ interface IComponent {
long blockPoolId;
android.hardware.media.c2.IConfigurable configurable;
}
parcelable C2AidlGbAllocator {
android.hardware.media.c2.IGraphicBufferAllocator igba;
ParcelFileDescriptor waitableFd;
}
union BlockPoolAllocator {
int allocatorId;
android.hardware.media.c2.IGraphicBufferAllocator igba;
android.hardware.media.c2.IComponent.C2AidlGbAllocator allocator;
}
}

View file

@ -21,6 +21,8 @@ import android.hardware.media.c2.IComponentInterface;
import android.hardware.media.c2.IConfigurable;
import android.hardware.media.c2.IGraphicBufferAllocator;
import android.hardware.media.c2.WorkBundle;
import android.os.ParcelFileDescriptor;
/**
* Interface for an AIDL Codec2 component.
@ -44,6 +46,18 @@ interface IComponent {
IConfigurable configurable;
}
/**
* C2AIDL allocator interface along with a waitable fd.
*
* The interface is used from a specific type of C2BlockPool to allocate
* graphic blocks. the waitable fd is used to create a specific type of
* C2Fence which can be used for waiting until to allocate is not blocked.
*/
parcelable C2AidlGbAllocator {
IGraphicBufferAllocator igba;
ParcelFileDescriptor waitableFd;
}
/**
* Allocator for C2BlockPool.
*
@ -52,7 +66,7 @@ interface IComponent {
*/
union BlockPoolAllocator {
int allocatorId;
IGraphicBufferAllocator igba;
C2AidlGbAllocator allocator;
}
/**