Loading media/bufferpool/2.0/Android.bp +2 −0 Original line number Diff line number Diff line Loading @@ -11,12 +11,14 @@ hidl_interface { "IAccessor.hal", "IClientManager.hal", "IConnection.hal", "IObserver.hal", ], interfaces: [ "android.hidl.base@1.0", ], types: [ "Buffer", "BufferInvalidationMessage", "BufferStatus", "BufferStatusMessage", "ResultStatus", Loading media/bufferpool/2.0/IAccessor.hal +9 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.hardware.media.bufferpool@2.0; import IConnection; import IObserver; /** * IAccessor creates IConnection which is used from IClientManager in order to * use functionality of the specified buffer pool. Loading Loading @@ -49,6 +50,13 @@ interface IAccessor { * made and kept private. Also part of transaction ID is a sender ID in * order to prevent fake transactions from other clients. This must be * verified with an FMQ message from a buffer pool. * @param observer The buffer pool event observer from the client. * Observer is provided to ensure FMQ messages are processed even when * client processes are idle. Buffer invalidation caused by * reconfiguration does not call observer. Buffer invalidation caused * by termination of pipeline call observer in order to ensure * invalidation is done after pipeline completion. * * @return status The status of the call. * OK - A connection is made successfully. Loading @@ -64,7 +72,7 @@ interface IAccessor { * @return fromFmqDesc FMQ descriptor. The descriptor is used to * receive buffer invalidation messages from the buffer pool. */ connect() connect(IObserver observer) generates (ResultStatus status, IConnection connection, int64_t connectionId, fmq_sync<BufferStatusMessage> toFmqDesc, Loading media/bufferpool/2.0/IObserver.hal 0 → 100644 +34 −0 Original line number Diff line number Diff line /* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.hardware.media.bufferpool@2.0; /** * IObserver listens on notifications from the buffer pool. On receiving * notifications, FMQ messages from the specific buffer pool which are already * in the FMQ are processed. */ interface IObserver { /** * The specific buffer pool sent a message to the client. Calling this * method from the buffer pool enforces a buffer pool client process the * message. * * @param connectionId the connection Id of the specific buffer pool client */ oneway onMessage(int64_t connectionId); }; media/bufferpool/2.0/types.hal +3 −0 Original line number Diff line number Diff line Loading @@ -65,6 +65,8 @@ enum BufferStatus : int32_t { TRANSFER_OK = 7, /** Buffer transaction failure. */ TRANSFER_ERROR = 8, /** Buffer invalidation ack. */ INVALIDATION_ACK = 9, }; /** Loading Loading @@ -98,6 +100,7 @@ struct BufferStatusMessage { * buffers as soon as possible upon receiving the message. */ struct BufferInvalidationMessage { uint32_t messageId; /** * Buffers from fromBufferId to toBufferId must be invalidated. * fromBufferId is inclusive, but toBufferId is not inclusive. Loading Loading
media/bufferpool/2.0/Android.bp +2 −0 Original line number Diff line number Diff line Loading @@ -11,12 +11,14 @@ hidl_interface { "IAccessor.hal", "IClientManager.hal", "IConnection.hal", "IObserver.hal", ], interfaces: [ "android.hidl.base@1.0", ], types: [ "Buffer", "BufferInvalidationMessage", "BufferStatus", "BufferStatusMessage", "ResultStatus", Loading
media/bufferpool/2.0/IAccessor.hal +9 −1 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package android.hardware.media.bufferpool@2.0; import IConnection; import IObserver; /** * IAccessor creates IConnection which is used from IClientManager in order to * use functionality of the specified buffer pool. Loading Loading @@ -49,6 +50,13 @@ interface IAccessor { * made and kept private. Also part of transaction ID is a sender ID in * order to prevent fake transactions from other clients. This must be * verified with an FMQ message from a buffer pool. * @param observer The buffer pool event observer from the client. * Observer is provided to ensure FMQ messages are processed even when * client processes are idle. Buffer invalidation caused by * reconfiguration does not call observer. Buffer invalidation caused * by termination of pipeline call observer in order to ensure * invalidation is done after pipeline completion. * * @return status The status of the call. * OK - A connection is made successfully. Loading @@ -64,7 +72,7 @@ interface IAccessor { * @return fromFmqDesc FMQ descriptor. The descriptor is used to * receive buffer invalidation messages from the buffer pool. */ connect() connect(IObserver observer) generates (ResultStatus status, IConnection connection, int64_t connectionId, fmq_sync<BufferStatusMessage> toFmqDesc, Loading
media/bufferpool/2.0/IObserver.hal 0 → 100644 +34 −0 Original line number Diff line number Diff line /* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.hardware.media.bufferpool@2.0; /** * IObserver listens on notifications from the buffer pool. On receiving * notifications, FMQ messages from the specific buffer pool which are already * in the FMQ are processed. */ interface IObserver { /** * The specific buffer pool sent a message to the client. Calling this * method from the buffer pool enforces a buffer pool client process the * message. * * @param connectionId the connection Id of the specific buffer pool client */ oneway onMessage(int64_t connectionId); };
media/bufferpool/2.0/types.hal +3 −0 Original line number Diff line number Diff line Loading @@ -65,6 +65,8 @@ enum BufferStatus : int32_t { TRANSFER_OK = 7, /** Buffer transaction failure. */ TRANSFER_ERROR = 8, /** Buffer invalidation ack. */ INVALIDATION_ACK = 9, }; /** Loading Loading @@ -98,6 +100,7 @@ struct BufferStatusMessage { * buffers as soon as possible upon receiving the message. */ struct BufferInvalidationMessage { uint32_t messageId; /** * Buffers from fromBufferId to toBufferId must be invalidated. * fromBufferId is inclusive, but toBufferId is not inclusive. Loading