1826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/* 26eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Copyright (c) 2008 The Khronos Group Inc. 36eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 4826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Permission is hereby granted, free of charge, to any person obtaining 5826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * a copy of this software and associated documentation files (the 6826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * "Software"), to deal in the Software without restriction, including 7826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * without limitation the rights to use, copy, modify, merge, publish, 8826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * distribute, sublicense, and/or sell copies of the Software, and to 9826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * permit persons to whom the Software is furnished to do so, subject 106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * to the following conditions: 11826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * The above copyright notice and this permission notice shall be included 126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * in all copies or substantial portions of the Software. 136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 14826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 15826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 17826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 18826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 19826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 206eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 22826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 23826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 24826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** OMX_Component.h - OpenMax IL version 1.1.2 25826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * The OMX_Component header file contains the definitions used to define 26826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * the public interface of a component. This header file is intended to 27826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * be used by both the application and the component. 28826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 29826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 30826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#ifndef OMX_Component_h 31826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define OMX_Component_h 32826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 33826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#ifdef __cplusplus 34826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevextern "C" { 35826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif /* __cplusplus */ 36826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 37826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 38826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 39826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/* Each OMX header must include all required header files to allow the 40826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * header to compile without errors. The includes below are required 416eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * for this header file to compile successfully 42826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 43826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 44826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#include <OMX_Audio.h> 45826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#include <OMX_Video.h> 46826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#include <OMX_Image.h> 47826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#include <OMX_Other.h> 48826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 49826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @ingroup comp */ 506eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittaltypedef enum OMX_PORTDOMAINTYPE { 516eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_PortDomainAudio, 526eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_PortDomainVideo, 536eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_PortDomainImage, 54826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_PortDomainOther, 556eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_PortDomainKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 56826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_PortDomainVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 57826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_PortDomainMax = 0x7ffffff 58826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_PORTDOMAINTYPE; 59826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 60826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @ingroup comp */ 61826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_PARAM_PORTDEFINITIONTYPE { 62826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; /**< Size of the structure in bytes */ 63826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 64826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; /**< Port number the structure applies to */ 65826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_DIRTYPE eDir; /**< Direction (input or output) of this port */ 66826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nBufferCountActual; /**< The actual number of buffers allocated on this port */ 67826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nBufferCountMin; /**< The minimum number of buffers this port requires */ 68826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nBufferSize; /**< Size, in bytes, for buffers to be used for this channel */ 69826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bEnabled; /**< Ports default to enabled and are enabled/disabled by 70826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_CommandPortEnable/OMX_CommandPortDisable. 71826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev When disabled a port is unpopulated. A disabled port 72826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev is not populated with buffers on a transition to IDLE. */ 73826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bPopulated; /**< Port is populated with all of its buffers as indicated by 746eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal nBufferCountActual. A disabled port is always unpopulated. 75826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev An enabled port is populated on a transition to OMX_StateIdle 76826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev and unpopulated on a transition to loaded. */ 77826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_PORTDOMAINTYPE eDomain; /**< Domain of the port. Determines the contents of metadata below. */ 78826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev union { 79826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_AUDIO_PORTDEFINITIONTYPE audio; 80826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_PORTDEFINITIONTYPE video; 81826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_PORTDEFINITIONTYPE image; 82826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_OTHER_PORTDEFINITIONTYPE other; 83826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev } format; 84826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bBuffersContiguous; 85826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nBufferAlignment; 86826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_PARAM_PORTDEFINITIONTYPE; 87826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 88826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @ingroup comp */ 896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittaltypedef struct OMX_PARAM_U32TYPE { 906eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; /**< Size of this structure, in Bytes */ 916eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 926eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nPortIndex; /**< port that this structure applies to */ 93826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nU32; /**< U32 value */ 94826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_PARAM_U32TYPE; 95826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 96826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @ingroup rpm */ 97826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_SUSPENSIONPOLICYTYPE { 98826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_SuspensionDisabled, /**< No suspension; v1.0 behavior */ 996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_SuspensionEnabled, /**< Suspension allowed */ 1006eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_SuspensionPolicyKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 101826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_SuspensionPolicyStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 102826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_SuspensionPolicyMax = 0x7fffffff 103826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_SUSPENSIONPOLICYTYPE; 104826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 105826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @ingroup rpm */ 106826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_PARAM_SUSPENSIONPOLICYTYPE { 1076eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 1086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VERSIONTYPE nVersion; 109826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_SUSPENSIONPOLICYTYPE ePolicy; 110826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_PARAM_SUSPENSIONPOLICYTYPE; 111826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 112826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @ingroup rpm */ 113826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_SUSPENSIONTYPE { 114826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_NotSuspended, /**< component is not suspended */ 115826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_Suspended, /**< component is suspended */ 1166eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_SuspensionKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 117826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_SuspensionVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 118826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_SuspendMax = 0x7FFFFFFF 119826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_SUSPENSIONTYPE; 120826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 121826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @ingroup rpm */ 122826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_PARAM_SUSPENSIONTYPE { 1236eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 1246eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VERSIONTYPE nVersion; 1256eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_SUSPENSIONTYPE eType; 126826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_PARAM_SUSPENSIONTYPE ; 127826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 128826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_BOOLEANTYPE { 129826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 130826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 1316eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL bEnabled; 132826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_BOOLEANTYPE; 133826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 134826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/* Parameter specifying the content uri to use. */ 135826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @ingroup cp */ 136826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_PARAM_CONTENTURITYPE 137826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 138826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; /**< size of the structure in bytes, including 139826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev actual URI name */ 140826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 141826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U8 contentURI[1]; /**< The URI name */ 142826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_PARAM_CONTENTURITYPE; 143826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 144826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/* Parameter specifying the pipe to use. */ 145826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @ingroup cp */ 146826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_PARAM_CONTENTPIPETYPE 147826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 148826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; /**< size of the structure in bytes */ 149826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 150826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_HANDLETYPE hPipe; /**< The pipe handle*/ 151826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_PARAM_CONTENTPIPETYPE; 152826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 153826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @ingroup rpm */ 154826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_RESOURCECONCEALMENTTYPE { 155826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; /**< size of the structure in bytes */ 156826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 1576eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL bResourceConcealmentForbidden; /**< disallow the use of resource concealment 1586eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal methods (like degrading algorithm quality to 1596eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal lower resource consumption or functional bypass) 160826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev on a component as a resolution to resource conflicts. */ 161826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_RESOURCECONCEALMENTTYPE; 162826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 163826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 164826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @ingroup metadata */ 165826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_METADATACHARSETTYPE { 166826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetUnknown = 0, 167826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetASCII, 168826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetBinary, 169826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetCodePage1252, 170826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetUTF8, 171826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetJavaConformantUTF8, 172826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetUTF7, 173826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetImapUTF7, 1746eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_MetadataCharsetUTF16LE, 175826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetUTF16BE, 176826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetGB12345, 177826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetHZGB2312, 178826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetGB2312, 179826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetGB18030, 180826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetGBK, 181826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetBig5, 182826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetISO88591, 183826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetISO88592, 184826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetISO88593, 185826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetISO88594, 186826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetISO88595, 187826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetISO88596, 188826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetISO88597, 189826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetISO88598, 190826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetISO88599, 191826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetISO885910, 192826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetISO885913, 193826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetISO885914, 194826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetISO885915, 195826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetShiftJIS, 196826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetISO2022JP, 197826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetISO2022JP1, 198826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetISOEUCJP, 199826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetSMS7Bit, 2006eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_MetadataCharsetKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 201826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 202826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataCharsetTypeMax= 0x7FFFFFFF 203826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_METADATACHARSETTYPE; 204826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 205826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @ingroup metadata */ 206826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_METADATASCOPETYPE 207826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 208826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataScopeAllLevels, 209826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataScopeTopLevel, 210826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataScopePortLevel, 211826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataScopeNodeLevel, 2126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_MetadataScopeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 213826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataScopeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 214826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataScopeTypeMax = 0x7fffffff 215826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_METADATASCOPETYPE; 216826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 217826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @ingroup metadata */ 218826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_METADATASEARCHMODETYPE 219826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 220826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataSearchValueSizeByIndex, 221826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataSearchItemByIndex, 222826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataSearchNextItemByKey, 2236eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_MetadataSearchKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 224826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataSearchVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 225826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_MetadataSearchTypeMax = 0x7fffffff 226826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_METADATASEARCHMODETYPE; 227826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @ingroup metadata */ 228826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_METADATAITEMCOUNTTYPE 229826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 230826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 231826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 232826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_METADATASCOPETYPE eScopeMode; 233826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nScopeSpecifier; 234826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nMetadataItemCount; 235826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_METADATAITEMCOUNTTYPE; 236826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 237826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @ingroup metadata */ 238826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_METADATAITEMTYPE 239826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 240826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 241826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 242826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_METADATASCOPETYPE eScopeMode; 243826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nScopeSpecifier; 2446eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nMetadataItemIndex; 245826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_METADATASEARCHMODETYPE eSearchMode; 246826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_METADATACHARSETTYPE eKeyCharset; 247826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U8 nKeySizeUsed; 248826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U8 nKey[128]; 249826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_METADATACHARSETTYPE eValueCharset; 250826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_STRING sLanguageCountry; 251826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nValueMaxSize; 252826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nValueSizeUsed; 253826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U8 nValue[1]; 254826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_METADATAITEMTYPE; 255826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 256826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/* @ingroup metadata */ 257826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_CONTAINERNODECOUNTTYPE 258826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 259826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 260826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 261826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bAllKeys; 262826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nParentNodeID; 263826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nNumNodes; 264826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_CONTAINERNODECOUNTTYPE; 265826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 266826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @ingroup metadata */ 267826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_CONTAINERNODEIDTYPE 268826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 269826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 270826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 271826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bAllKeys; 272826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nParentNodeID; 2736eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nNodeIndex; 2746eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nNodeID; 275826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_STRING cNodeName; 276826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bIsLeafType; 277826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_CONTAINERNODEIDTYPE; 278826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 279826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @ingroup metadata */ 2806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittaltypedef struct OMX_PARAM_METADATAFILTERTYPE 2816eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal{ 2826eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 2836eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VERSIONTYPE nVersion; 2846eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL bAllKeys; /* if true then this structure refers to all keys and 285826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * the three key fields below are ignored */ 286826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_METADATACHARSETTYPE eKeyCharset; 2876eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nKeySizeUsed; 2886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U8 nKey [128]; 289826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nLanguageCountrySizeUsed; 290826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U8 nLanguageCountry[128]; 2916eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL bEnabled; /* if true then key is part of filter (e.g. 292826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * retained for query later). If false then 293826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * key is not part of filter */ 2946eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal} OMX_PARAM_METADATAFILTERTYPE; 295826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 2966eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** The OMX_HANDLETYPE structure defines the component handle. The component 297826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * handle is used to access all of the component's public methods and also 298826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * contains pointers to the component's private data area. The component 299826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * handle is initialized by the OMX core (with help from the component) 300826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * during the process of loading the component. After the component is 301826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * successfully loaded, the application can safely access any of the 302826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * component's public functions (although some may return an error because 303826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * the state is inappropriate for the access). 3046eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 305826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * @ingroup comp 306826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 307826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_COMPONENTTYPE 308826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{ 309826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev /** The size of this structure, in bytes. It is the responsibility 310826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev of the allocator of this structure to fill in this value. Since 311826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev this structure is allocated by the GetHandle function, this 312826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev function will fill in this value. */ 313826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 314826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 3156eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal /** nVersion is the version of the OMX specification that the structure 3166eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal is built against. It is the responsibility of the creator of this 3176eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal structure to initialize this value and every user of this structure 3186eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal should verify that it knows how to use the exact version of 319826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev this structure found herein. */ 320826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 321826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 3226eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal /** pComponentPrivate is a pointer to the component private data area. 3236eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal This member is allocated and initialized by the component when the 3246eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal component is first loaded. The application should not access this 325826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev data area. */ 326826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_PTR pComponentPrivate; 327826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 3286eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal /** pApplicationPrivate is a pointer that is a parameter to the 3296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_GetHandle method, and contains an application private value 3306eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal provided by the IL client. This application private data is 331826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev returned to the IL Client by OMX in all callbacks */ 332826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_PTR pApplicationPrivate; 333826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 3346eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal /** refer to OMX_GetComponentVersion in OMX_core.h or the OMX IL 335826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev specification for details on the GetComponentVersion method. 336826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 337826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE (*GetComponentVersion)( 338826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 339826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_OUT OMX_STRING pComponentName, 340826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_OUT OMX_VERSIONTYPE* pComponentVersion, 341826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_OUT OMX_VERSIONTYPE* pSpecVersion, 342826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_OUT OMX_UUIDTYPE* pComponentUUID); 343826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 3446eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal /** refer to OMX_SendCommand in OMX_core.h or the OMX IL 345826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev specification for details on the SendCommand method. 346826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 347826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE (*SendCommand)( 348826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 349826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_COMMANDTYPE Cmd, 350826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_U32 nParam1, 351826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_PTR pCmdData); 352826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 3536eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal /** refer to OMX_GetParameter in OMX_core.h or the OMX IL 354826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev specification for details on the GetParameter method. 355826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 356826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE (*GetParameter)( 3576eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_IN OMX_HANDLETYPE hComponent, 3586eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_IN OMX_INDEXTYPE nParamIndex, 359826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_INOUT OMX_PTR pComponentParameterStructure); 360826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 361826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 3626eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal /** refer to OMX_SetParameter in OMX_core.h or the OMX IL 363826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev specification for details on the SetParameter method. 364826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 365826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE (*SetParameter)( 3666eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_IN OMX_HANDLETYPE hComponent, 367826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_INDEXTYPE nIndex, 368826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_PTR pComponentParameterStructure); 369826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 370826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 3716eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal /** refer to OMX_GetConfig in OMX_core.h or the OMX IL 372826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev specification for details on the GetConfig method. 373826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 374826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE (*GetConfig)( 375826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 3766eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_IN OMX_INDEXTYPE nIndex, 377826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_INOUT OMX_PTR pComponentConfigStructure); 378826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 379826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 3806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal /** refer to OMX_SetConfig in OMX_core.h or the OMX IL 381826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev specification for details on the SetConfig method. 382826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 383826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE (*SetConfig)( 384826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 3856eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_IN OMX_INDEXTYPE nIndex, 386826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_PTR pComponentConfigStructure); 387826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 388826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 3896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal /** refer to OMX_GetExtensionIndex in OMX_core.h or the OMX IL 390826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev specification for details on the GetExtensionIndex method. 391826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 392826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE (*GetExtensionIndex)( 393826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 394826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_STRING cParameterName, 395826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_OUT OMX_INDEXTYPE* pIndexType); 396826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 397826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 3986eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal /** refer to OMX_GetState in OMX_core.h or the OMX IL 399826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev specification for details on the GetState method. 400826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 401826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE (*GetState)( 402826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 403826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_OUT OMX_STATETYPE* pState); 404826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 4056eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal 406826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev /** The ComponentTunnelRequest method will interact with another OMX 407826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component to determine if tunneling is possible and to setup the 4086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal tunneling. The return codes for this method can be used to 409826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev determine if tunneling is not possible, or if tunneling is not 4106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal supported. 4116eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal 412826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev Base profile components (i.e. non-interop) do not support this 4136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal method and should return OMX_ErrorNotImplemented 414826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 4156eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal The interop profile component MUST support tunneling to another 4166eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal interop profile component with a compatible port parameters. 417826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev A component may also support proprietary communication. 4186eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal 4196eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal If proprietary communication is supported the negotiation of 4206eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal proprietary communication is done outside of OMX in a vendor 4216eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal specific way. It is only required that the proper result be 4226eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal returned and the details of how the setup is done is left 4236eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal to the component implementation. 4246eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal 425826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev When this method is invoked when nPort in an output port, the 426826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component will: 4276eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal 1. Populate the pTunnelSetup structure with the output port's 428826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev requirements and constraints for the tunnel. 429826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 430826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev When this method is invoked when nPort in an input port, the 431826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev component will: 4326eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal 1. Query the necessary parameters from the output port to 433826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev determine if the ports are compatible for tunneling 434826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 2. If the ports are compatible, the component should store 435826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev the tunnel step provided by the output port 436826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 3. Determine which port (either input or output) is the buffer 437826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev supplier, and call OMX_SetParameter on the output port to 438826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev indicate this selection. 4396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal 440826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev The component will return from this call within 5 msec. 4416eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal 442826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev @param [in] hComp 443826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev Handle of the component to be accessed. This is the component 444826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev handle returned by the call to the OMX_GetHandle method. 445826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev @param [in] nPort 446826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev nPort is used to select the port on the component to be used 447826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev for tunneling. 448826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev @param [in] hTunneledComp 4496eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal Handle of the component to tunnel with. This is the component 450826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev handle returned by the call to the OMX_GetHandle method. When 451826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev this parameter is 0x0 the component should setup the port for 452826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev communication with the application / IL Client. 453826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev @param [in] nPortOutput 454826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev nPortOutput is used indicate the port the component should 455826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev tunnel with. 456826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev @param [in] pTunnelSetup 457826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev Pointer to the tunnel setup structure. When nPort is an output port 458826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev the component should populate the fields of this structure. When 459826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev When nPort is an input port the component should review the setup 460826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev provided by the component with the output port. 461826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev @return OMX_ERRORTYPE 462826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev If the command successfully executes, the return code will be 463826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ErrorNone. Otherwise the appropriate OMX error will be returned. 464826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev @ingroup tun 465826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 466826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 467826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE (*ComponentTunnelRequest)( 468826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_HANDLETYPE hComp, 469826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_U32 nPort, 470826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_HANDLETYPE hTunneledComp, 471826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_U32 nTunneledPort, 4726eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_INOUT OMX_TUNNELSETUPTYPE* pTunnelSetup); 473826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 4746eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal /** refer to OMX_UseBuffer in OMX_core.h or the OMX IL 475826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev specification for details on the UseBuffer method. 476826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev @ingroup buf 477826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 478826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE (*UseBuffer)( 479826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 480826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr, 481826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_U32 nPortIndex, 482826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_PTR pAppPrivate, 483826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_U32 nSizeBytes, 484826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_U8* pBuffer); 485826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 4866eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal /** refer to OMX_AllocateBuffer in OMX_core.h or the OMX IL 487826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev specification for details on the AllocateBuffer method. 488826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev @ingroup buf 489826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 490826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE (*AllocateBuffer)( 491826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 492826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_INOUT OMX_BUFFERHEADERTYPE** ppBuffer, 493826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_U32 nPortIndex, 494826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_PTR pAppPrivate, 495826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_U32 nSizeBytes); 496826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 4976eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal /** refer to OMX_FreeBuffer in OMX_core.h or the OMX IL 498826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev specification for details on the FreeBuffer method. 499826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev @ingroup buf 500826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 501826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE (*FreeBuffer)( 502826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 503826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_U32 nPortIndex, 504826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_BUFFERHEADERTYPE* pBuffer); 505826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 5066eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal /** refer to OMX_EmptyThisBuffer in OMX_core.h or the OMX IL 507826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev specification for details on the EmptyThisBuffer method. 508826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev @ingroup buf 509826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 510826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE (*EmptyThisBuffer)( 511826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 512826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_BUFFERHEADERTYPE* pBuffer); 513826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 5146eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal /** refer to OMX_FillThisBuffer in OMX_core.h or the OMX IL 515826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev specification for details on the FillThisBuffer method. 516826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev @ingroup buf 517826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 518826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE (*FillThisBuffer)( 519826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 520826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_BUFFERHEADERTYPE* pBuffer); 521826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 522826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev /** The SetCallbacks method is used by the core to specify the callback 523826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev structure from the application to the component. This is a blocking 524826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev call. The component will return from this call within 5 msec. 525826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev @param [in] hComponent 526826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev Handle of the component to be accessed. This is the component 527826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev handle returned by the call to the GetHandle function. 528826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev @param [in] pCallbacks 5296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal pointer to an OMX_CALLBACKTYPE structure used to provide the 530826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev callback information to the component 531826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev @param [in] pAppData 5326eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal pointer to an application defined value. It is anticipated that 533826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev the application will pass a pointer to a data structure or a "this 534826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev pointer" in this area to allow the callback (in the application) 535826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev to determine the context of the call 536826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev @return OMX_ERRORTYPE 537826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev If the command successfully executes, the return code will be 538826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ErrorNone. Otherwise the appropriate OMX error will be returned. 539826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 540826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE (*SetCallbacks)( 541826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 5426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_IN OMX_CALLBACKTYPE* pCallbacks, 543826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_PTR pAppData); 544826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 545826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev /** ComponentDeInit method is used to deinitialize the component 546826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev providing a means to free any resources allocated at component 547826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev initialization. NOTE: After this call the component handle is 548826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev not valid for further use. 549826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev @param [in] hComponent 550826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev Handle of the component to be accessed. This is the component 551826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev handle returned by the call to the GetHandle function. 552826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev @return OMX_ERRORTYPE 553826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev If the command successfully executes, the return code will be 554826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ErrorNone. Otherwise the appropriate OMX error will be returned. 555826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 556826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE (*ComponentDeInit)( 557826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent); 558826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 559826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev /** @ingroup buf */ 560826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE (*UseEGLImage)( 561826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 562826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr, 563826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_U32 nPortIndex, 564826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_PTR pAppPrivate, 565826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN void* eglImage); 566826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 567826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_ERRORTYPE (*ComponentRoleEnum)( 568826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_HANDLETYPE hComponent, 569826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_OUT OMX_U8 *cRole, 570826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IN OMX_U32 nIndex); 571826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 572826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_COMPONENTTYPE; 573826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 574826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#ifdef __cplusplus 575826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 576826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif /* __cplusplus */ 577826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 578826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif 579826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/* File EOF */ 580