platform_hardware_interfaces/media/omx/1.0/IOmx.hal

70 lines
1.9 KiB
Text
Raw Normal View History

/*
* Copyright (C) 2016 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 android.hardware.media.omx@1.0;
import android.hardware.media@1.0::types;
import IOmxNode;
import IOmxObserver;
/**
* Ref: frameworks/av/include/media/IOMX.h: IOMX
*
* IOmx is the main entry point for communicating with OMX components.
*/
interface IOmx {
/**
* Information for an IOmxNode component.
*/
struct ComponentInfo {
string mName; //< Name of the component.
vec<string> mRoles; //< Roles of the component.
};
/**
* List available components.
*
* @param[out] status will be the status of the call.
* @param[out] nodeList will be a list of ComponentInfo.
*/
listNodes(
) generates (
Status status,
vec<ComponentInfo> nodeList
);
/**
* Allocate an IOmxNode instance with the specified component name.
*
* @param[in] name is the name of the component to create.
* @param[in] observer is an observer object that will receive messages from
* the created instance.
* @param[out] status will be the status of the call.
* @param[out] omxNode will be the allocated instance of IOmxNode.
*/
allocateNode(
string name,
IOmxObserver observer
) generates (
Status status,
IOmxNode omxNode
);
};