diff --git a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponent.aidl b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponent.aidl index c7d8a970cf..7d58340923 100644 --- a/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponent.aidl +++ b/media/c2/aidl/aidl_api/android.hardware.media.c2/current/android/hardware/media/c2/IComponent.aidl @@ -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; } } diff --git a/media/c2/aidl/android/hardware/media/c2/IComponent.aidl b/media/c2/aidl/android/hardware/media/c2/IComponent.aidl index a7d94b12df..fc923ab87a 100644 --- a/media/c2/aidl/android/hardware/media/c2/IComponent.aidl +++ b/media/c2/aidl/android/hardware/media/c2/IComponent.aidl @@ -22,6 +22,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. @@ -45,6 +47,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. * @@ -53,7 +67,7 @@ interface IComponent { */ union BlockPoolAllocator { int allocatorId; - IGraphicBufferAllocator igba; + C2AidlGbAllocator allocator; } /**