diff options
author | Xin Li <delphij@google.com> | 2020-08-28 13:05:04 -0700 |
---|---|---|
committer | Xin Li <delphij@google.com> | 2020-08-28 13:05:04 -0700 |
commit | 36dcf1a404a9cf07ca5a2a6ad92371507194fe1b (patch) | |
tree | 84891ca2c8463a49ec4b89a130a9ad348525438b /media | |
parent | 18aa69f6b22ae3d2f075946b0840224c79d9a292 (diff) | |
parent | b659a47fb20266fed2b3d11e8b220b59fa3b373f (diff) | |
download | platform_hardware_interfaces-36dcf1a404a9cf07ca5a2a6ad92371507194fe1b.tar.gz platform_hardware_interfaces-36dcf1a404a9cf07ca5a2a6ad92371507194fe1b.tar.bz2 platform_hardware_interfaces-36dcf1a404a9cf07ca5a2a6ad92371507194fe1b.zip |
Merge Android R (rvc-dev-plus-aosp-without-vendor@6692709)
Bug: 166295507
Merged-In: I6502829205ede2de914b27e6c2c5c42916af2b39
Change-Id: I7cb06511e43bd1fffd5f80a11dbdf5b1314cfe8e
Diffstat (limited to 'media')
-rw-r--r-- | media/c2/1.1/Android.bp | 24 | ||||
-rw-r--r-- | media/c2/1.1/IComponent.hal | 72 | ||||
-rw-r--r-- | media/c2/1.1/IComponentStore.hal | 64 |
3 files changed, 160 insertions, 0 deletions
diff --git a/media/c2/1.1/Android.bp b/media/c2/1.1/Android.bp new file mode 100644 index 0000000000..a3d31dfaff --- /dev/null +++ b/media/c2/1.1/Android.bp @@ -0,0 +1,24 @@ +// This file is autogenerated by hidl-gen -Landroidbp. + +hidl_interface { + name: "android.hardware.media.c2@1.1", + root: "android.hardware", + srcs: [ + "IComponent.hal", + "IComponentStore.hal", + ], + interfaces: [ + "android.hardware.graphics.bufferqueue@1.0", + "android.hardware.graphics.bufferqueue@2.0", + "android.hardware.graphics.common@1.0", + "android.hardware.graphics.common@1.1", + "android.hardware.graphics.common@1.2", + "android.hardware.media.bufferpool@2.0", + "android.hardware.media.c2@1.0", + "android.hardware.media.omx@1.0", + "android.hardware.media@1.0", + "android.hidl.base@1.0", + "android.hidl.safe_union@1.0", + ], + gen_java: false, +} diff --git a/media/c2/1.1/IComponent.hal b/media/c2/1.1/IComponent.hal new file mode 100644 index 0000000000..97382ddbac --- /dev/null +++ b/media/c2/1.1/IComponent.hal @@ -0,0 +1,72 @@ +/* + * Copyright 2019 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.c2@1.1; + +import android.hardware.media.c2@1.0::IComponent; +import android.hardware.media.c2@1.0::Status; + +/** + * Interface for a Codec2 component corresponding to API level 1.0 or below. + * Components have two states: stopped and running. The running state has three + * sub-states: executing, tripped and error. + * + * All methods in `IComponent` must not block. If a method call cannot be + * completed in a timely manner, it must return `TIMED_OUT` in the return + * status. + * + * @note This is an extension of version 1.0 of `IComponent`. The purpose of the + * extension is to add support for tunneling. + */ +interface IComponent extends @1.0::IComponent { + /** + * Configures a component for a tunneled playback mode. + * + * A successful call to this method puts the component in the *tunneled* + * mode. In this mode, the output `Worklet`s returned in + * IComponentListener::onWorkDone() may not contain any buffers. The output + * buffers are passed directly to the consumer end of a buffer queue whose + * producer side is configured with the returned @p sidebandStream passed + * to IGraphicBufferProducer::setSidebandStream(). + * + * The component is initially in the non-tunneled mode by default. The + * tunneled mode can be toggled on only before the component starts + * processing. Once the component is put into the tunneled mode, it shall + * stay in the tunneled mode until and only until reset() is called. + * + * @param avSyncHwId A resource ID for hardware sync. The generator of sync + * IDs must ensure that this number is unique among all services at any + * given time. For example, if both the audio HAL and the tuner HAL + * support this feature, sync IDs from the audio HAL must not clash + * with sync IDs from the tuner HAL. + * @return status Status of the call, which may be + * - `OK` - The operation completed successfully. In this case, + * @p sidebandHandle shall not be a null handle. + * - `OMITTED` - The component does not support video tunneling. + * - `BAD_STATE` - The component is already running. + * - `TIMED_OUT` - The operation cannot be finished in a timely manner. + * - `CORRUPTED` - Some unknown error occurred. + * @return sidebandHandle Codec-allocated sideband stream handle. This can + * be passed to IGraphicBufferProducer::setSidebandStream() to + * establish a direct channel to the consumer. + */ + configureVideoTunnel( + uint32_t avSyncHwId + ) generates ( + Status status, + handle sidebandHandle + ); +}; diff --git a/media/c2/1.1/IComponentStore.hal b/media/c2/1.1/IComponentStore.hal new file mode 100644 index 0000000000..38e0fc60be --- /dev/null +++ b/media/c2/1.1/IComponentStore.hal @@ -0,0 +1,64 @@ +/* + * Copyright 2019 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.c2@1.1; + +import android.hardware.media.bufferpool@2.0::IClientManager; +import android.hardware.media.c2@1.0::IComponentListener; +import android.hardware.media.c2@1.0::IComponentStore; +import android.hardware.media.c2@1.0::Status; + +import IComponent; + +/** + * Entry point for Codec2 HAL. + * + * All methods in `IComponentStore` must not block. If a method call cannot be + * completed in a timely manner, it must return `TIMED_OUT` in the return + * status. The only exceptions are getPoolClientManager() and getConfigurable(), + * which must always return immediately. + * + * @note This is an extension of version 1.0 of `IComponentStore`. The purpose + * of the extension is to add support for tunneling. + */ +interface IComponentStore extends @1.0::IComponentStore { + /** + * Creates a component by name. + * + * @param name Name of the component to create. This must match one of the + * names returned by listComponents(). + * @param listener Callback receiver. + * @param pool `IClientManager` object of the BufferPool in the client + * process. This may be null if the client does not own a BufferPool. + * @return status Status of the call, which may be + * - `OK` - The component was created successfully. + * - `NOT_FOUND` - There is no component with the given name. + * - `NO_MEMORY` - Not enough memory to create the component. + * - `TIMED_OUT` - The operation cannot be finished in a timely manner. + * - `CORRUPTED` - Some unknown error occurred. + * @return comp The created component if @p status is `OK`. + * + * @sa IComponentListener. + */ + createComponent_1_1( + string name, + IComponentListener listener, + IClientManager pool + ) generates ( + Status status, + IComponent comp + ); +}; |