From 72b2b38c7f3cc62d92ed4a4427e715e29b1011d1 Mon Sep 17 00:00:00 2001 From: Sungtak Lee Date: Fri, 18 Nov 2022 07:19:00 +0000 Subject: [PATCH] bufferpool2: add sync() method and etc Add sync() method to IConnection interface. Add existing connection flag to return parcelable of IClientManager::registerSender(). Use plain integer for returning fetch result status. Bug: 254050250 Merged-In: Ifebd4b16e9b8c37e074e7126f39264a18fed5de8 Change-Id: Ifebd4b16e9b8c37e074e7126f39264a18fed5de8 --- .../hardware/media/bufferpool2/IClientManager.aidl | 7 ++++++- .../hardware/media/bufferpool2/IConnection.aidl | 3 ++- .../hardware/media/bufferpool2/ResultStatus.aidl | 1 - .../hardware/media/bufferpool2/IClientManager.aidl | 13 +++++++++++-- .../hardware/media/bufferpool2/IConnection.aidl | 10 +++++++++- .../hardware/media/bufferpool2/ResultStatus.aidl | 2 -- 6 files changed, 28 insertions(+), 8 deletions(-) diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/IClientManager.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/IClientManager.aidl index 54896d4fbf..5899a403a6 100644 --- a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/IClientManager.aidl +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/IClientManager.aidl @@ -34,5 +34,10 @@ package android.hardware.media.bufferpool2; @VintfStability interface IClientManager { - long registerSender(in android.hardware.media.bufferpool2.IAccessor bufferPool); + android.hardware.media.bufferpool2.IClientManager.Registration registerSender(in android.hardware.media.bufferpool2.IAccessor bufferPool); + @VintfStability + parcelable Registration { + long connectionId; + boolean isNew = true; + } } diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/IConnection.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/IConnection.aidl index 300fcbae9b..844e920df0 100644 --- a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/IConnection.aidl +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/IConnection.aidl @@ -35,12 +35,13 @@ package android.hardware.media.bufferpool2; @VintfStability interface IConnection { android.hardware.media.bufferpool2.IConnection.FetchResult[] fetch(in android.hardware.media.bufferpool2.IConnection.FetchInfo[] fetchInfos); + void sync(); parcelable FetchInfo { long transactionId; int bufferId; } union FetchResult { android.hardware.media.bufferpool2.Buffer buffer; - android.hardware.media.bufferpool2.ResultStatus failure; + int failure; } } diff --git a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/ResultStatus.aidl b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/ResultStatus.aidl index 73709985c4..4bc3889e3f 100644 --- a/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/ResultStatus.aidl +++ b/media/bufferpool/aidl/aidl_api/android.hardware.media.bufferpool2/current/android/hardware/media/bufferpool2/ResultStatus.aidl @@ -34,7 +34,6 @@ package android.hardware.media.bufferpool2; @VintfStability parcelable ResultStatus { - int resultStatus; const int OK = 0; const int NO_MEMORY = 1; const int ALREADY_EXISTS = 2; diff --git a/media/bufferpool/aidl/android/hardware/media/bufferpool2/IClientManager.aidl b/media/bufferpool/aidl/android/hardware/media/bufferpool2/IClientManager.aidl index bf36e25a55..a3054cb131 100644 --- a/media/bufferpool/aidl/android/hardware/media/bufferpool2/IClientManager.aidl +++ b/media/bufferpool/aidl/android/hardware/media/bufferpool2/IClientManager.aidl @@ -27,6 +27,16 @@ import android.hardware.media.bufferpool2.IAccessor; */ @VintfStability interface IClientManager { + /** + * Result of registerSender. + */ + @VintfStability + parcelable Registration { + /** registered connection id */ + long connectionId; + /** true when the connection is new */ + boolean isNew = true; + } /** * Sets up a buffer receiving communication node for the specified * buffer pool. A manager must create a IConnection to the buffer @@ -39,8 +49,7 @@ interface IClientManager { * sent to that connection during transfers. * @throws ServiceSpecificException with one of the following values: * ResultStatus::NO_MEMORY - Memory allocation failure occurred. - * ResultStatus::ALREADY_EXISTS - A sender was registered already. * ResultStatus::CRITICAL_ERROR - Other errors. */ - long registerSender(in IAccessor bufferPool); + Registration registerSender(in IAccessor bufferPool); } diff --git a/media/bufferpool/aidl/android/hardware/media/bufferpool2/IConnection.aidl b/media/bufferpool/aidl/android/hardware/media/bufferpool2/IConnection.aidl index d869f47a64..68367c758e 100644 --- a/media/bufferpool/aidl/android/hardware/media/bufferpool2/IConnection.aidl +++ b/media/bufferpool/aidl/android/hardware/media/bufferpool2/IConnection.aidl @@ -49,7 +49,7 @@ interface IConnection { * ResultStatus::NOT_FOUND - A buffer was not found due to invalidation. * ResultStatus::CRITICAL_ERROR - Other errors. */ - ResultStatus failure; + int failure; } /** @@ -70,4 +70,12 @@ interface IConnection { * ResultStatus::CRITICAL_ERROR - Other errors. */ FetchResult[] fetch(in FetchInfo[] fetchInfos); + + /** + * Enforce processing of unprocessed bufferpool messages. + * + * BufferPool implementation optimizes message processing by piggy-backing approach. + * This method can ensure pending bufferpool messages being processed timely. + */ + void sync(); } diff --git a/media/bufferpool/aidl/android/hardware/media/bufferpool2/ResultStatus.aidl b/media/bufferpool/aidl/android/hardware/media/bufferpool2/ResultStatus.aidl index 162f9a719a..003d1478c6 100644 --- a/media/bufferpool/aidl/android/hardware/media/bufferpool2/ResultStatus.aidl +++ b/media/bufferpool/aidl/android/hardware/media/bufferpool2/ResultStatus.aidl @@ -23,6 +23,4 @@ parcelable ResultStatus { const int ALREADY_EXISTS = 2; const int NOT_FOUND = 3; const int CRITICAL_ERROR = 4; - - int resultStatus; }