1e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/* ------------------------------------------------------------------ 2e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Copyright (C) 1998-2009 PacketVideo 3e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * 4e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Licensed under the Apache License, Version 2.0 (the "License"); 5e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * you may not use this file except in compliance with the License. 6e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * You may obtain a copy of the License at 7e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * 8e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * http://www.apache.org/licenses/LICENSE-2.0 9e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * 10e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Unless required by applicable law or agreed to in writing, software 11e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * distributed under the License is distributed on an "AS IS" BASIS, 12e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * express or implied. 14e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * See the License for the specific language governing permissions 15e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * and limitations under the License. 16e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * ------------------------------------------------------------------- 17e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */ 18c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* 19e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Copyright (c) 2008 The Khronos Group Inc. 20e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * 21c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Permission is hereby granted, free of charge, to any person obtaining 22c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * a copy of this software and associated documentation files (the 23c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * "Software"), to deal in the Software without restriction, including 24c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * without limitation the rights to use, copy, modify, merge, publish, 25c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * distribute, sublicense, and/or sell copies of the Software, and to 26c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * permit persons to whom the Software is furnished to do so, subject 27e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * to the following conditions: 28c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * The above copyright notice and this permission notice shall be included 29e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * in all copies or substantial portions of the Software. 30e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * 31c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 32c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 33c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 34c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 35c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 36c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 37e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 38c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * 39c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 40c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 41c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** OMX_Component.h - OpenMax IL version 1.1.2 42c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * The OMX_Component header file contains the definitions used to define 43c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * the public interface of a component. This header file is intended to 44c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * be used by both the application and the component. 45c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 46c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 47c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#ifndef OMX_Component_h 48c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define OMX_Component_h 49c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 50c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#ifdef __cplusplus 51c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevextern "C" { 52c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#endif /* __cplusplus */ 53c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 54c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 55c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 56c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* Each OMX header must include all required header files to allow the 57c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * header to compile without errors. The includes below are required 58e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * for this header file to compile successfully 59c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 60c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 61c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include <OMX_Audio.h> 62c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include <OMX_Video.h> 63c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include <OMX_Image.h> 64c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include <OMX_Other.h> 65c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 66c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** @ingroup comp */ 67e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef enum OMX_PORTDOMAINTYPE { 68e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_PortDomainAudio, 69e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_PortDomainVideo, 70e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_PortDomainImage, 71c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_PortDomainOther, 72e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_PortDomainKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 73c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_PortDomainVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 74c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_PortDomainMax = 0x7ffffff 75c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_PORTDOMAINTYPE; 76c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 77c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** @ingroup comp */ 78c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_PARAM_PORTDEFINITIONTYPE { 79c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nSize; /**< Size of the structure in bytes */ 80c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 81c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nPortIndex; /**< Port number the structure applies to */ 82c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_DIRTYPE eDir; /**< Direction (input or output) of this port */ 83c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nBufferCountActual; /**< The actual number of buffers allocated on this port */ 84c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nBufferCountMin; /**< The minimum number of buffers this port requires */ 85c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nBufferSize; /**< Size, in bytes, for buffers to be used for this channel */ 86c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_BOOL bEnabled; /**< Ports default to enabled and are enabled/disabled by 87c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_CommandPortEnable/OMX_CommandPortDisable. 88c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev When disabled a port is unpopulated. A disabled port 89c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev is not populated with buffers on a transition to IDLE. */ 90c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_BOOL bPopulated; /**< Port is populated with all of its buffers as indicated by 91e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen nBufferCountActual. A disabled port is always unpopulated. 92c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev An enabled port is populated on a transition to OMX_StateIdle 93c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev and unpopulated on a transition to loaded. */ 94c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_PORTDOMAINTYPE eDomain; /**< Domain of the port. Determines the contents of metadata below. */ 95c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev union { 96c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_AUDIO_PORTDEFINITIONTYPE audio; 97c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_VIDEO_PORTDEFINITIONTYPE video; 98c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IMAGE_PORTDEFINITIONTYPE image; 99c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_OTHER_PORTDEFINITIONTYPE other; 100c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev } format; 101c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_BOOL bBuffersContiguous; 102c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nBufferAlignment; 103c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_PARAM_PORTDEFINITIONTYPE; 104c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 105c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** @ingroup comp */ 106e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_PARAM_U32TYPE { 107e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_U32 nSize; /**< Size of this structure, in Bytes */ 108e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 109e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_U32 nPortIndex; /**< port that this structure applies to */ 110c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nU32; /**< U32 value */ 111c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_PARAM_U32TYPE; 112c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 113c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** @ingroup rpm */ 114c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_SUSPENSIONPOLICYTYPE { 115c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_SuspensionDisabled, /**< No suspension; v1.0 behavior */ 116e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_SuspensionEnabled, /**< Suspension allowed */ 117e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_SuspensionPolicyKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 118c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_SuspensionPolicyStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 119c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_SuspensionPolicyMax = 0x7fffffff 120c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_SUSPENSIONPOLICYTYPE; 121c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 122c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** @ingroup rpm */ 123c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_PARAM_SUSPENSIONPOLICYTYPE { 124e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_U32 nSize; 125e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_VERSIONTYPE nVersion; 126c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_SUSPENSIONPOLICYTYPE ePolicy; 127c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_PARAM_SUSPENSIONPOLICYTYPE; 128c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 129c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** @ingroup rpm */ 130c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_SUSPENSIONTYPE { 131c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_NotSuspended, /**< component is not suspended */ 132c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_Suspended, /**< component is suspended */ 133e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_SuspensionKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 134c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_SuspensionVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 135c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_SuspendMax = 0x7FFFFFFF 136c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_SUSPENSIONTYPE; 137c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 138c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** @ingroup rpm */ 139c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_PARAM_SUSPENSIONTYPE { 140e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_U32 nSize; 141e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_VERSIONTYPE nVersion; 142e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_SUSPENSIONTYPE eType; 143c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_PARAM_SUSPENSIONTYPE ; 144c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 145c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_BOOLEANTYPE { 146c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nSize; 147c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_VERSIONTYPE nVersion; 148e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_BOOL bEnabled; 149c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_BOOLEANTYPE; 150c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 151c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* Parameter specifying the content uri to use. */ 152c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** @ingroup cp */ 153c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_PARAM_CONTENTURITYPE 154c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 155c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nSize; /**< size of the structure in bytes, including 156c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev actual URI name */ 157c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 158c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U8 contentURI[1]; /**< The URI name */ 159c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_PARAM_CONTENTURITYPE; 160c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 161c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* Parameter specifying the pipe to use. */ 162c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** @ingroup cp */ 163c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_PARAM_CONTENTPIPETYPE 164c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 165c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nSize; /**< size of the structure in bytes */ 166c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 167c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_HANDLETYPE hPipe; /**< The pipe handle*/ 168c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_PARAM_CONTENTPIPETYPE; 169c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 170c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** @ingroup rpm */ 171c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_RESOURCECONCEALMENTTYPE { 172c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nSize; /**< size of the structure in bytes */ 173c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 174e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_BOOL bResourceConcealmentForbidden; /**< disallow the use of resource concealment 175e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen methods (like degrading algorithm quality to 176e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen lower resource consumption or functional bypass) 177c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev on a component as a resolution to resource conflicts. */ 178c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_RESOURCECONCEALMENTTYPE; 179c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 180c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 181c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** @ingroup metadata */ 182c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_METADATACHARSETTYPE { 183c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetUnknown = 0, 184c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetASCII, 185c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetBinary, 186c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetCodePage1252, 187c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetUTF8, 188c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetJavaConformantUTF8, 189c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetUTF7, 190c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetImapUTF7, 191e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_MetadataCharsetUTF16LE, 192c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetUTF16BE, 193c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetGB12345, 194c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetHZGB2312, 195c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetGB2312, 196c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetGB18030, 197c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetGBK, 198c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetBig5, 199c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetISO88591, 200c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetISO88592, 201c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetISO88593, 202c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetISO88594, 203c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetISO88595, 204c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetISO88596, 205c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetISO88597, 206c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetISO88598, 207c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetISO88599, 208c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetISO885910, 209c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetISO885913, 210c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetISO885914, 211c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetISO885915, 212c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetShiftJIS, 213c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetISO2022JP, 214c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetISO2022JP1, 215c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetISOEUCJP, 216c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetSMS7Bit, 217e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_MetadataCharsetKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 218c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 219c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataCharsetTypeMax= 0x7FFFFFFF 220c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_METADATACHARSETTYPE; 221c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 222c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** @ingroup metadata */ 223c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_METADATASCOPETYPE 224c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 225c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataScopeAllLevels, 226c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataScopeTopLevel, 227c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataScopePortLevel, 228c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataScopeNodeLevel, 229e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_MetadataScopeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 230c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataScopeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 231c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataScopeTypeMax = 0x7fffffff 232c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_METADATASCOPETYPE; 233c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 234c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** @ingroup metadata */ 235c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_METADATASEARCHMODETYPE 236c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 237c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataSearchValueSizeByIndex, 238c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataSearchItemByIndex, 239c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataSearchNextItemByKey, 240e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_MetadataSearchKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 241c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataSearchVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 242c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_MetadataSearchTypeMax = 0x7fffffff 243c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_METADATASEARCHMODETYPE; 244c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** @ingroup metadata */ 245c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_METADATAITEMCOUNTTYPE 246c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 247c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nSize; 248c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_VERSIONTYPE nVersion; 249c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_METADATASCOPETYPE eScopeMode; 250c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nScopeSpecifier; 251c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nMetadataItemCount; 252c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_METADATAITEMCOUNTTYPE; 253c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 254c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** @ingroup metadata */ 255c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_METADATAITEMTYPE 256c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 257c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nSize; 258c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_VERSIONTYPE nVersion; 259c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_METADATASCOPETYPE eScopeMode; 260c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nScopeSpecifier; 261e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_U32 nMetadataItemIndex; 262c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_METADATASEARCHMODETYPE eSearchMode; 263c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_METADATACHARSETTYPE eKeyCharset; 264c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U8 nKeySizeUsed; 265c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U8 nKey[128]; 266c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_METADATACHARSETTYPE eValueCharset; 267c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_STRING sLanguageCountry; 268c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nValueMaxSize; 269c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nValueSizeUsed; 270c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U8 nValue[1]; 271c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_METADATAITEMTYPE; 272c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 273c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* @ingroup metadata */ 274c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_CONTAINERNODECOUNTTYPE 275c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 276c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nSize; 277c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_VERSIONTYPE nVersion; 278c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_BOOL bAllKeys; 279c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nParentNodeID; 280c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nNumNodes; 281c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_CONTAINERNODECOUNTTYPE; 282c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 283c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** @ingroup metadata */ 284c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_CONFIG_CONTAINERNODEIDTYPE 285c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 286c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nSize; 287c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_VERSIONTYPE nVersion; 288c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_BOOL bAllKeys; 289c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nParentNodeID; 290e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_U32 nNodeIndex; 291e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_U32 nNodeID; 292c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_STRING cNodeName; 293c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_BOOL bIsLeafType; 294c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_CONFIG_CONTAINERNODEIDTYPE; 295c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 296c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/** @ingroup metadata */ 297e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_PARAM_METADATAFILTERTYPE 298e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen{ 299e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_U32 nSize; 300e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_VERSIONTYPE nVersion; 301e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_BOOL bAllKeys; /* if true then this structure refers to all keys and 302c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * the three key fields below are ignored */ 303c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_METADATACHARSETTYPE eKeyCharset; 304e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_U32 nKeySizeUsed; 305e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_U8 nKey [128]; 306c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nLanguageCountrySizeUsed; 307c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U8 nLanguageCountry[128]; 308e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_BOOL bEnabled; /* if true then key is part of filter (e.g. 309c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * retained for query later). If false then 310c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * key is not part of filter */ 311e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_PARAM_METADATAFILTERTYPE; 312c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 313e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/** The OMX_HANDLETYPE structure defines the component handle. The component 314c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * handle is used to access all of the component's public methods and also 315c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * contains pointers to the component's private data area. The component 316c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * handle is initialized by the OMX core (with help from the component) 317c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * during the process of loading the component. After the component is 318c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * successfully loaded, the application can safely access any of the 319c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * component's public functions (although some may return an error because 320c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * the state is inappropriate for the access). 321e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * 322c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @ingroup comp 323c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 324c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_COMPONENTTYPE 325c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{ 326c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev /** The size of this structure, in bytes. It is the responsibility 327c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev of the allocator of this structure to fill in this value. Since 328c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev this structure is allocated by the GetHandle function, this 329c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev function will fill in this value. */ 330c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_U32 nSize; 331c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 332e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen /** nVersion is the version of the OMX specification that the structure 333e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen is built against. It is the responsibility of the creator of this 334e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen structure to initialize this value and every user of this structure 335e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen should verify that it knows how to use the exact version of 336c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev this structure found herein. */ 337c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_VERSIONTYPE nVersion; 338c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 339e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen /** pComponentPrivate is a pointer to the component private data area. 340e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen This member is allocated and initialized by the component when the 341e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen component is first loaded. The application should not access this 342c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev data area. */ 343c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_PTR pComponentPrivate; 344c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 345e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen /** pApplicationPrivate is a pointer that is a parameter to the 346e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_GetHandle method, and contains an application private value 347e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen provided by the IL client. This application private data is 348c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev returned to the IL Client by OMX in all callbacks */ 349c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_PTR pApplicationPrivate; 350c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 351e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen /** refer to OMX_GetComponentVersion in OMX_core.h or the OMX IL 352c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev specification for details on the GetComponentVersion method. 353c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 354c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_ERRORTYPE (*GetComponentVersion)( 355c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 356c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_OUT OMX_STRING pComponentName, 357c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_OUT OMX_VERSIONTYPE* pComponentVersion, 358c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_OUT OMX_VERSIONTYPE* pSpecVersion, 359c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_OUT OMX_UUIDTYPE* pComponentUUID); 360c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 361e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen /** refer to OMX_SendCommand in OMX_core.h or the OMX IL 362c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev specification for details on the SendCommand method. 363c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 364c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_ERRORTYPE (*SendCommand)( 365c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 366c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_COMMANDTYPE Cmd, 367c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_U32 nParam1, 368c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_PTR pCmdData); 369c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 370e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen /** refer to OMX_GetParameter in OMX_core.h or the OMX IL 371c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev specification for details on the GetParameter method. 372c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 373c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_ERRORTYPE (*GetParameter)( 374e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_IN OMX_HANDLETYPE hComponent, 375e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_IN OMX_INDEXTYPE nParamIndex, 376c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_INOUT OMX_PTR pComponentParameterStructure); 377c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 378c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 379e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen /** refer to OMX_SetParameter in OMX_core.h or the OMX IL 380c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev specification for details on the SetParameter method. 381c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 382c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_ERRORTYPE (*SetParameter)( 383e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_IN OMX_HANDLETYPE hComponent, 384c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_INDEXTYPE nIndex, 385c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_PTR pComponentParameterStructure); 386c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 387c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 388e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen /** refer to OMX_GetConfig in OMX_core.h or the OMX IL 389c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev specification for details on the GetConfig method. 390c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 391c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_ERRORTYPE (*GetConfig)( 392c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 393e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_IN OMX_INDEXTYPE nIndex, 394c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_INOUT OMX_PTR pComponentConfigStructure); 395c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 396c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 397e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen /** refer to OMX_SetConfig in OMX_core.h or the OMX IL 398c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev specification for details on the SetConfig method. 399c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 400c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_ERRORTYPE (*SetConfig)( 401c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 402e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_IN OMX_INDEXTYPE nIndex, 403c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_PTR pComponentConfigStructure); 404c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 405c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 406e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen /** refer to OMX_GetExtensionIndex in OMX_core.h or the OMX IL 407c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev specification for details on the GetExtensionIndex method. 408c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 409c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_ERRORTYPE (*GetExtensionIndex)( 410c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 411c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_STRING cParameterName, 412c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_OUT OMX_INDEXTYPE* pIndexType); 413c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 414c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 415e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen /** refer to OMX_GetState in OMX_core.h or the OMX IL 416c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev specification for details on the GetState method. 417c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 418c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_ERRORTYPE (*GetState)( 419c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 420c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_OUT OMX_STATETYPE* pState); 421c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 422e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen 423c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev /** The ComponentTunnelRequest method will interact with another OMX 424c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev component to determine if tunneling is possible and to setup the 425e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen tunneling. The return codes for this method can be used to 426c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev determine if tunneling is not possible, or if tunneling is not 427e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen supported. 428e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen 429c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev Base profile components (i.e. non-interop) do not support this 430e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen method and should return OMX_ErrorNotImplemented 431c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 432e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen The interop profile component MUST support tunneling to another 433e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen interop profile component with a compatible port parameters. 434c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev A component may also support proprietary communication. 435e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen 436e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen If proprietary communication is supported the negotiation of 437e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen proprietary communication is done outside of OMX in a vendor 438e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen specific way. It is only required that the proper result be 439e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen returned and the details of how the setup is done is left 440e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen to the component implementation. 441e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen 442c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev When this method is invoked when nPort in an output port, the 443c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev component will: 444e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen 1. Populate the pTunnelSetup structure with the output port's 445c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev requirements and constraints for the tunnel. 446c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 447c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev When this method is invoked when nPort in an input port, the 448c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev component will: 449e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen 1. Query the necessary parameters from the output port to 450c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev determine if the ports are compatible for tunneling 451c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 2. If the ports are compatible, the component should store 452c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev the tunnel step provided by the output port 453c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 3. Determine which port (either input or output) is the buffer 454c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev supplier, and call OMX_SetParameter on the output port to 455c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev indicate this selection. 456e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen 457c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev The component will return from this call within 5 msec. 458e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen 459c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param [in] hComp 460c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev Handle of the component to be accessed. This is the component 461c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev handle returned by the call to the OMX_GetHandle method. 462c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param [in] nPort 463c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev nPort is used to select the port on the component to be used 464c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev for tunneling. 465c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param [in] hTunneledComp 466e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen Handle of the component to tunnel with. This is the component 467c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev handle returned by the call to the OMX_GetHandle method. When 468c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev this parameter is 0x0 the component should setup the port for 469c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev communication with the application / IL Client. 470c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param [in] nPortOutput 471c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev nPortOutput is used indicate the port the component should 472c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev tunnel with. 473c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param [in] pTunnelSetup 474c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev Pointer to the tunnel setup structure. When nPort is an output port 475c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev the component should populate the fields of this structure. When 476c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev When nPort is an input port the component should review the setup 477c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev provided by the component with the output port. 478c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @return OMX_ERRORTYPE 479c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev If the command successfully executes, the return code will be 480c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_ErrorNone. Otherwise the appropriate OMX error will be returned. 481c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @ingroup tun 482c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 483c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 484c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_ERRORTYPE (*ComponentTunnelRequest)( 485c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_HANDLETYPE hComp, 486c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_U32 nPort, 487c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_HANDLETYPE hTunneledComp, 488c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_U32 nTunneledPort, 489e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_INOUT OMX_TUNNELSETUPTYPE* pTunnelSetup); 490c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 491e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen /** refer to OMX_UseBuffer in OMX_core.h or the OMX IL 492c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev specification for details on the UseBuffer method. 493c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @ingroup buf 494c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 495c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_ERRORTYPE (*UseBuffer)( 496c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 497c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr, 498c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_U32 nPortIndex, 499c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_PTR pAppPrivate, 500c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_U32 nSizeBytes, 501c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_U8* pBuffer); 502c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 503e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen /** refer to OMX_AllocateBuffer in OMX_core.h or the OMX IL 504c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev specification for details on the AllocateBuffer method. 505c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @ingroup buf 506c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 507c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_ERRORTYPE (*AllocateBuffer)( 508c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 509c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_INOUT OMX_BUFFERHEADERTYPE** ppBuffer, 510c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_U32 nPortIndex, 511c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_PTR pAppPrivate, 512c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_U32 nSizeBytes); 513c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 514e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen /** refer to OMX_FreeBuffer in OMX_core.h or the OMX IL 515c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev specification for details on the FreeBuffer method. 516c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @ingroup buf 517c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 518c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_ERRORTYPE (*FreeBuffer)( 519c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 520c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_U32 nPortIndex, 521c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_BUFFERHEADERTYPE* pBuffer); 522c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 523e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen /** refer to OMX_EmptyThisBuffer in OMX_core.h or the OMX IL 524c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev specification for details on the EmptyThisBuffer method. 525c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @ingroup buf 526c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 527c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_ERRORTYPE (*EmptyThisBuffer)( 528c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 529c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_BUFFERHEADERTYPE* pBuffer); 530c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 531e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen /** refer to OMX_FillThisBuffer in OMX_core.h or the OMX IL 532c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev specification for details on the FillThisBuffer method. 533c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @ingroup buf 534c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 535c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_ERRORTYPE (*FillThisBuffer)( 536c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 537c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_BUFFERHEADERTYPE* pBuffer); 538c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 539c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev /** The SetCallbacks method is used by the core to specify the callback 540c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev structure from the application to the component. This is a blocking 541c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev call. The component will return from this call within 5 msec. 542c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param [in] hComponent 543c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev Handle of the component to be accessed. This is the component 544c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev handle returned by the call to the GetHandle function. 545c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param [in] pCallbacks 546e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen pointer to an OMX_CALLBACKTYPE structure used to provide the 547c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev callback information to the component 548c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param [in] pAppData 549e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen pointer to an application defined value. It is anticipated that 550c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev the application will pass a pointer to a data structure or a "this 551c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev pointer" in this area to allow the callback (in the application) 552c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev to determine the context of the call 553c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @return OMX_ERRORTYPE 554c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev If the command successfully executes, the return code will be 555c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_ErrorNone. Otherwise the appropriate OMX error will be returned. 556c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 557c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_ERRORTYPE (*SetCallbacks)( 558c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 559e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen OMX_IN OMX_CALLBACKTYPE* pCallbacks, 560c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_PTR pAppData); 561c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 562c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev /** ComponentDeInit method is used to deinitialize the component 563c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev providing a means to free any resources allocated at component 564c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev initialization. NOTE: After this call the component handle is 565c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev not valid for further use. 566c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param [in] hComponent 567c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev Handle of the component to be accessed. This is the component 568c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev handle returned by the call to the GetHandle function. 569c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @return OMX_ERRORTYPE 570c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev If the command successfully executes, the return code will be 571c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_ErrorNone. Otherwise the appropriate OMX error will be returned. 572c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */ 573c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_ERRORTYPE (*ComponentDeInit)( 574c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent); 575c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 576c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev /** @ingroup buf */ 577c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_ERRORTYPE (*UseEGLImage)( 578c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 579c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr, 580c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_U32 nPortIndex, 581c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_PTR pAppPrivate, 582c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN void* eglImage); 583c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 584c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_ERRORTYPE (*ComponentRoleEnum)( 585c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 586c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_OUT OMX_U8 *cRole, 587c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev OMX_IN OMX_U32 nIndex); 588c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 589c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_COMPONENTTYPE; 590c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 591c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#ifdef __cplusplus 592c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} 593c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#endif /* __cplusplus */ 594c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 595c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#endif 596c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* File EOF */ 597