blob: c083a218793347292c355b01decebe0065b628cf [file] [log] [blame]
Pawin Vongmasac80bf212018-09-06 05:22:36 -07001/*
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 android.hardware.media.c2@1.0;
18
Pawin Vongmasa7570e3c2018-11-11 19:30:19 -080019import android.hardware.graphics.bufferqueue@1.0::IGraphicBufferProducer;
Pawin Vongmasac80bf212018-09-06 05:22:36 -070020
21import IConfigurable;
Pawin Vongmasa9d1cf2a2018-11-14 13:40:40 -080022import IComponent;
23import IInputSurfaceConnection;
Pawin Vongmasac80bf212018-09-06 05:22:36 -070024
25/**
Pawin Vongmasa9d1cf2a2018-11-14 13:40:40 -080026 * Input surface that can be configured for the IComponent.
Pawin Vongmasac80bf212018-09-06 05:22:36 -070027 */
Pawin Vongmasa9d1cf2a2018-11-14 13:40:40 -080028interface IInputSurface extends IGraphicBufferProducer {
Pawin Vongmasac80bf212018-09-06 05:22:36 -070029
30 /**
Pawin Vongmasa9d1cf2a2018-11-14 13:40:40 -080031 * Connects this input surface to a component.
Pawin Vongmasac80bf212018-09-06 05:22:36 -070032 *
Pawin Vongmasa9d1cf2a2018-11-14 13:40:40 -080033 * 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.
Pawin Vongmasac80bf212018-09-06 05:22:36 -070057 */
58 getConfigurable() generates (IConfigurable configurable);
Pawin Vongmasa9d1cf2a2018-11-14 13:40:40 -080059
Pawin Vongmasac80bf212018-09-06 05:22:36 -070060};
61