1/* 2 * Copyright (C) 2018 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package hardware.google.media.c2@1.0; 18 19import android.hardware.graphics.bufferqueue@1.0::IGraphicBufferProducer; 20 21import IConfigurable; 22import IComponent; 23import IInputSurfaceConnection; 24 25/** 26 * Input surface that can be configured for the IComponent. 27 */ 28interface IInputSurface extends IGraphicBufferProducer { 29 30 /** 31 * Connects this input surface to a component. 32 * 33 * This call must return within 100 ms. 34 * 35 * @param component The component to connect to. This must have type 36 * IComponent. 37 * @return status Status of the call, which may be 38 * - OK - The operation succeeded. 39 * - BAD_STATE - The component is in running state. 40 * - DUPLICATE - The surface is already connected to a component. 41 * - NO_MEMORY - Could not allocate memory to connect to the component. 42 * - CORRUPTED - Some unknown error prevented the connection. (unexpected) 43 * @return connection Connection object that is used to disconnect 44 * from the component. 45 */ 46 connectToComponent( 47 IComponent component 48 ) generates ( 49 Status status, 50 IInputSurfaceConnection connection 51 ); 52 53 /** 54 * Returns the Codec 2.0 configuration object for this surface. 55 * 56 * @return configurable The configuration object for this surface. 57 */ 58 getConfigurable() generates (IConfigurable configurable); 59 60}; 61 62