1*4d7e907cSAndroid Build Coastguard Worker/* 2*4d7e907cSAndroid Build Coastguard Worker * Copyright (C) 2017 The Android Open Source Project 3*4d7e907cSAndroid Build Coastguard Worker * 4*4d7e907cSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*4d7e907cSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*4d7e907cSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*4d7e907cSAndroid Build Coastguard Worker * 8*4d7e907cSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*4d7e907cSAndroid Build Coastguard Worker * 10*4d7e907cSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*4d7e907cSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*4d7e907cSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*4d7e907cSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*4d7e907cSAndroid Build Coastguard Worker * limitations under the License. 15*4d7e907cSAndroid Build Coastguard Worker */ 16*4d7e907cSAndroid Build Coastguard Worker 17*4d7e907cSAndroid Build Coastguard Workerpackage [email protected]; 18*4d7e907cSAndroid Build Coastguard Worker 19*4d7e907cSAndroid Build Coastguard Workerimport [email protected]::IGraphicBufferProducer; 20*4d7e907cSAndroid Build Coastguard Workerimport [email protected]::types; 21*4d7e907cSAndroid Build Coastguard Worker 22*4d7e907cSAndroid Build Coastguard Workerimport IOmxNode; 23*4d7e907cSAndroid Build Coastguard Workerimport IOmxObserver; 24*4d7e907cSAndroid Build Coastguard Workerimport IGraphicBufferSource; 25*4d7e907cSAndroid Build Coastguard Worker 26*4d7e907cSAndroid Build Coastguard Worker/** 27*4d7e907cSAndroid Build Coastguard Worker * Ref: frameworks/av/include/media/IOMX.h: IOMX 28*4d7e907cSAndroid Build Coastguard Worker * 29*4d7e907cSAndroid Build Coastguard Worker * IOmx has the ability to create OMX nodes. 30*4d7e907cSAndroid Build Coastguard Worker */ 31*4d7e907cSAndroid Build Coastguard Workerinterface IOmx { 32*4d7e907cSAndroid Build Coastguard Worker 33*4d7e907cSAndroid Build Coastguard Worker /** 34*4d7e907cSAndroid Build Coastguard Worker * Information for an IOmxNode component. 35*4d7e907cSAndroid Build Coastguard Worker */ 36*4d7e907cSAndroid Build Coastguard Worker struct ComponentInfo { 37*4d7e907cSAndroid Build Coastguard Worker string mName; 38*4d7e907cSAndroid Build Coastguard Worker vec<string> mRoles; 39*4d7e907cSAndroid Build Coastguard Worker }; 40*4d7e907cSAndroid Build Coastguard Worker 41*4d7e907cSAndroid Build Coastguard Worker /** 42*4d7e907cSAndroid Build Coastguard Worker * List available components. 43*4d7e907cSAndroid Build Coastguard Worker * 44*4d7e907cSAndroid Build Coastguard Worker * @return status The status of the call. 45*4d7e907cSAndroid Build Coastguard Worker * @return nodeList The list of ComponentInfo. 46*4d7e907cSAndroid Build Coastguard Worker */ 47*4d7e907cSAndroid Build Coastguard Worker listNodes( 48*4d7e907cSAndroid Build Coastguard Worker ) generates ( 49*4d7e907cSAndroid Build Coastguard Worker Status status, 50*4d7e907cSAndroid Build Coastguard Worker vec<ComponentInfo> nodeList 51*4d7e907cSAndroid Build Coastguard Worker ); 52*4d7e907cSAndroid Build Coastguard Worker 53*4d7e907cSAndroid Build Coastguard Worker 54*4d7e907cSAndroid Build Coastguard Worker /** 55*4d7e907cSAndroid Build Coastguard Worker * Allocate an IOmxNode instance with the specified node name. 56*4d7e907cSAndroid Build Coastguard Worker * 57*4d7e907cSAndroid Build Coastguard Worker * @param name The name of the node to create. 58*4d7e907cSAndroid Build Coastguard Worker * @param observer An observer object that will receive messages from 59*4d7e907cSAndroid Build Coastguard Worker * the created instance. 60*4d7e907cSAndroid Build Coastguard Worker * @return status The status of the call. 61*4d7e907cSAndroid Build Coastguard Worker * @return omxNode The allocated instance of `IOmxNode`. 62*4d7e907cSAndroid Build Coastguard Worker */ 63*4d7e907cSAndroid Build Coastguard Worker allocateNode( 64*4d7e907cSAndroid Build Coastguard Worker string name, 65*4d7e907cSAndroid Build Coastguard Worker IOmxObserver observer 66*4d7e907cSAndroid Build Coastguard Worker ) generates ( 67*4d7e907cSAndroid Build Coastguard Worker Status status, 68*4d7e907cSAndroid Build Coastguard Worker IOmxNode omxNode 69*4d7e907cSAndroid Build Coastguard Worker ); 70*4d7e907cSAndroid Build Coastguard Worker 71*4d7e907cSAndroid Build Coastguard Worker /** 72*4d7e907cSAndroid Build Coastguard Worker * Create an input surface for recording. 73*4d7e907cSAndroid Build Coastguard Worker * 74*4d7e907cSAndroid Build Coastguard Worker * @return status The status of the call. 75*4d7e907cSAndroid Build Coastguard Worker * @return producer The associated producer end of the buffer queue. 76*4d7e907cSAndroid Build Coastguard Worker * @return source The associated `IGraphicBufferSource`. 77*4d7e907cSAndroid Build Coastguard Worker */ 78*4d7e907cSAndroid Build Coastguard Worker createInputSurface( 79*4d7e907cSAndroid Build Coastguard Worker ) generates ( 80*4d7e907cSAndroid Build Coastguard Worker Status status, 81*4d7e907cSAndroid Build Coastguard Worker IGraphicBufferProducer producer, 82*4d7e907cSAndroid Build Coastguard Worker IGraphicBufferSource source 83*4d7e907cSAndroid Build Coastguard Worker ); 84*4d7e907cSAndroid Build Coastguard Worker}; 85*4d7e907cSAndroid Build Coastguard Worker 86