Merge "media.c2 aidl: Use IGraphicBufferAllocator for createBlockPool()" into main am: 6e053ee395 am: 8f2ffb4d1b am: 0691e0b9fe

Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2721919

Change-Id: Ia08cba52d30313b162d78aa96db8e6573e93535a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Sungtak Lee
2023-08-29 22:29:41 +00:00
committed by Automerger Merge Worker
2 changed files with 20 additions and 15 deletions

View File

@@ -35,7 +35,7 @@ package android.hardware.media.c2;
@VintfStability @VintfStability
interface IComponent { interface IComponent {
android.hardware.common.NativeHandle configureVideoTunnel(in int avSyncHwId); android.hardware.common.NativeHandle configureVideoTunnel(in int avSyncHwId);
android.hardware.media.c2.IComponent.BlockPool createBlockPool(in int allocatorId); android.hardware.media.c2.IComponent.BlockPool createBlockPool(in android.hardware.media.c2.IComponent.BlockPoolAllocator allocator);
void destroyBlockPool(in long blockPoolId); void destroyBlockPool(in long blockPoolId);
void drain(in boolean withEos); void drain(in boolean withEos);
android.hardware.media.c2.WorkBundle flush(); android.hardware.media.c2.WorkBundle flush();
@@ -43,11 +43,14 @@ interface IComponent {
void queue(in android.hardware.media.c2.WorkBundle workBundle); void queue(in android.hardware.media.c2.WorkBundle workBundle);
void release(); void release();
void reset(); void reset();
void setDecoderOutputAllocator(in android.hardware.media.c2.IGraphicBufferAllocator allocator);
void start(); void start();
void stop(); void stop();
parcelable BlockPool { parcelable BlockPool {
long blockPoolId; long blockPoolId;
android.hardware.media.c2.IConfigurable configurable; android.hardware.media.c2.IConfigurable configurable;
} }
union BlockPoolAllocator {
int allocatorId;
android.hardware.media.c2.IGraphicBufferAllocator igba;
}
} }

View File

@@ -43,6 +43,18 @@ interface IComponent {
long blockPoolId; long blockPoolId;
IConfigurable configurable; IConfigurable configurable;
} }
/**
* Allocator for C2BlockPool.
*
* C2BlockPool will use a C2Allocator which is specified by an id.
* or C2AIDL allocator interface directly.
*/
union BlockPoolAllocator {
int allocatorId;
IGraphicBufferAllocator igba;
}
/** /**
* Configures a component for a tunneled playback mode. * Configures a component for a tunneled playback mode.
* *
@@ -86,7 +98,8 @@ interface IComponent {
* destroyBlockPool(), reset() or release(). reset() and release() must * destroyBlockPool(), reset() or release(). reset() and release() must
* destroy all `C2BlockPool` objects that have been created. * destroy all `C2BlockPool` objects that have been created.
* *
* @param allocatorId Id of a `C2Allocator`. * @param allocator AIDL allocator interface or C2Allocator specifier
* for C2BlockPool
* @param out configurable Configuration interface for the created pool. This * @param out configurable Configuration interface for the created pool. This
* must not be null. * must not be null.
* @return Created block pool information. This could be used to config/query and * @return Created block pool information. This could be used to config/query and
@@ -97,7 +110,7 @@ interface IComponent {
* - `Status::TIMED_OUT` - The operation cannot be finished in a timely manner. * - `Status::TIMED_OUT` - The operation cannot be finished in a timely manner.
* - `Status::CORRUPTED` - Some unknown error occurred. * - `Status::CORRUPTED` - Some unknown error occurred.
*/ */
BlockPool createBlockPool(in int allocatorId); BlockPool createBlockPool(in BlockPoolAllocator allocator);
/** /**
* Destroys a local block pool previously created by createBlockPool(). * Destroys a local block pool previously created by createBlockPool().
@@ -231,17 +244,6 @@ interface IComponent {
*/ */
void reset(); void reset();
/**
* Specify an allocator for decoder output buffer from HAL.
*
* The method will be used once during the life-cycle of a codec instance.
* @param allocator Decoder output buffer allocator from the client
* @throws ServiceSpecificException with one of the following values
* - `Status::CANNOT_DO` - The component does not support allocating from the client.
* - `Status::CORRUPTED` - Some unknown error occurred.
*/
void setDecoderOutputAllocator(in IGraphicBufferAllocator allocator);
/** /**
* Starts the component. * Starts the component.
* *