blob: e9df396b4f1c83b87a261c1ad55b777cc3159b2a [file] [log] [blame]
/*
* 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);
};