/* * 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 hardware.google.media.c2@1.0; import android.hardware.graphics.bufferqueue@1.0::IGraphicBufferProducer; import IConfigurable; import IComponent; import IInputSurfaceConnection; /** * Input surface that can be configured for the IComponent. */ interface IInputSurface extends IGraphicBufferProducer { /** * Connects this input surface to a component. * * This call must return within 100 ms. * * @param component The component to connect to. This must have type * IComponent. * @return status Status of the call, which may be * - OK - The operation succeeded. * - BAD_STATE - The component is in running state. * - DUPLICATE - The surface is already connected to a component. * - NO_MEMORY - Could not allocate memory to connect to the component. * - CORRUPTED - Some unknown error prevented the connection. (unexpected) * @return connection Connection object that is used to disconnect * from the component. */ connectToComponent( IComponent component ) generates ( Status status, IInputSurfaceConnection connection ); /** * Returns the Codec 2.0 configuration object for this surface. * * @return configurable The configuration object for this surface. */ getConfigurable() generates (IConfigurable configurable); };