120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/* 220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Copyright (c) 2008 The Khronos Group Inc. 320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Permission is hereby granted, free of charge, to any person obtaining 520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * a copy of this software and associated documentation files (the 620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * "Software"), to deal in the Software without restriction, including 720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * without limitation the rights to use, copy, modify, merge, publish, 820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * distribute, sublicense, and/or sell copies of the Software, and to 920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * permit persons to whom the Software is furnished to do so, subject 1020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * to the following conditions: 1120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * The above copyright notice and this permission notice shall be included 1220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * in all copies or substantial portions of the Software. 1320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 1420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 1520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 1620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 1720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 1820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 1920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 2020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 2120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 2220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 2320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 2420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** OMX_Component.h - OpenMax IL version 1.1.2 2520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * The OMX_Component header file contains the definitions used to define 2620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * the public interface of a component. This header file is intended to 2720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * be used by both the application and the component. 2820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 2920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 3020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#ifndef OMX_Component_h 3120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define OMX_Component_h 3220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 3320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#ifdef __cplusplus 3420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changextern "C" { 3520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#endif /* __cplusplus */ 3620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 3720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 3820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 3920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/* Each OMX header must include all required header files to allow the 4020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * header to compile without errors. The includes below are required 4120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * for this header file to compile successfully 4220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 4320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 4420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#include <OMX_Audio.h> 4520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#include <OMX_Video.h> 4620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#include <OMX_Image.h> 4720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#include <OMX_Other.h> 4820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 4920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @ingroup comp */ 5020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_PORTDOMAINTYPE { 5120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_PortDomainAudio, 5220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_PortDomainVideo, 5320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_PortDomainImage, 5420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_PortDomainOther, 5520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_PortDomainKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 5620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_PortDomainVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 5720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_PortDomainMax = 0x7ffffff 5820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_PORTDOMAINTYPE; 5920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 6020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @ingroup comp */ 6120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_PARAM_PORTDEFINITIONTYPE { 6220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< Size of the structure in bytes */ 6320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 6420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< Port number the structure applies to */ 6520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_DIRTYPE eDir; /**< Direction (input or output) of this port */ 6620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nBufferCountActual; /**< The actual number of buffers allocated on this port */ 6720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nBufferCountMin; /**< The minimum number of buffers this port requires */ 6820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nBufferSize; /**< Size, in bytes, for buffers to be used for this channel */ 6920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bEnabled; /**< Ports default to enabled and are enabled/disabled by 7020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_CommandPortEnable/OMX_CommandPortDisable. 7120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang When disabled a port is unpopulated. A disabled port 7220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang is not populated with buffers on a transition to IDLE. */ 7320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bPopulated; /**< Port is populated with all of its buffers as indicated by 7420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang nBufferCountActual. A disabled port is always unpopulated. 7520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang An enabled port is populated on a transition to OMX_StateIdle 7620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang and unpopulated on a transition to loaded. */ 7720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_PORTDOMAINTYPE eDomain; /**< Domain of the port. Determines the contents of metadata below. */ 7820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang union { 7920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_AUDIO_PORTDEFINITIONTYPE audio; 8020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VIDEO_PORTDEFINITIONTYPE video; 8120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_PORTDEFINITIONTYPE image; 8220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_OTHER_PORTDEFINITIONTYPE other; 8320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang } format; 8420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bBuffersContiguous; 8520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nBufferAlignment; 8620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_PARAM_PORTDEFINITIONTYPE; 8720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 8820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @ingroup comp */ 8920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_PARAM_U32TYPE { 9020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< Size of this structure, in Bytes */ 9120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 9220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; /**< port that this structure applies to */ 9320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nU32; /**< U32 value */ 9420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_PARAM_U32TYPE; 9520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 9620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @ingroup rpm */ 9720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_SUSPENSIONPOLICYTYPE { 9820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_SuspensionDisabled, /**< No suspension; v1.0 behavior */ 9920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_SuspensionEnabled, /**< Suspension allowed */ 10020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_SuspensionPolicyKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 10120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_SuspensionPolicyStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 10220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_SuspensionPolicyMax = 0x7fffffff 10320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_SUSPENSIONPOLICYTYPE; 10420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 10520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @ingroup rpm */ 10620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_PARAM_SUSPENSIONPOLICYTYPE { 10720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; 10820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; 10920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_SUSPENSIONPOLICYTYPE ePolicy; 11020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_PARAM_SUSPENSIONPOLICYTYPE; 11120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 11220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @ingroup rpm */ 11320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_SUSPENSIONTYPE { 11420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_NotSuspended, /**< component is not suspended */ 11520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_Suspended, /**< component is suspended */ 11620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_SuspensionKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 11720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_SuspensionVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 11820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_SuspendMax = 0x7FFFFFFF 11920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_SUSPENSIONTYPE; 12020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 12120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @ingroup rpm */ 12220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_PARAM_SUSPENSIONTYPE { 12320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; 12420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; 12520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_SUSPENSIONTYPE eType; 12620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_PARAM_SUSPENSIONTYPE ; 12720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 12820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_CONFIG_BOOLEANTYPE { 12920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; 13020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; 13120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bEnabled; 13220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_CONFIG_BOOLEANTYPE; 13320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 13420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/* Parameter specifying the content uri to use. */ 13520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @ingroup cp */ 13620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_PARAM_CONTENTURITYPE 13720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang{ 13820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes, including 13920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang actual URI name */ 14020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 14120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U8 contentURI[1]; /**< The URI name */ 14220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_PARAM_CONTENTURITYPE; 14320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 14420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/* Parameter specifying the pipe to use. */ 14520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @ingroup cp */ 14620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_PARAM_CONTENTPIPETYPE 14720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang{ 14820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 14920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 15020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_HANDLETYPE hPipe; /**< The pipe handle*/ 15120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_PARAM_CONTENTPIPETYPE; 15220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 15320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @ingroup rpm */ 15420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_RESOURCECONCEALMENTTYPE { 15520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; /**< size of the structure in bytes */ 15620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 15720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bResourceConcealmentForbidden; /**< disallow the use of resource concealment 15820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang methods (like degrading algorithm quality to 15920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang lower resource consumption or functional bypass) 16020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang on a component as a resolution to resource conflicts. */ 16120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_RESOURCECONCEALMENTTYPE; 16220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 16320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 16420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @ingroup metadata */ 16520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_METADATACHARSETTYPE { 16620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetUnknown = 0, 16720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetASCII, 16820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetBinary, 16920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetCodePage1252, 17020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetUTF8, 17120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetJavaConformantUTF8, 17220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetUTF7, 17320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetImapUTF7, 17420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetUTF16LE, 17520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetUTF16BE, 17620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetGB12345, 17720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetHZGB2312, 17820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetGB2312, 17920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetGB18030, 18020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetGBK, 18120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetBig5, 18220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetISO88591, 18320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetISO88592, 18420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetISO88593, 18520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetISO88594, 18620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetISO88595, 18720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetISO88596, 18820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetISO88597, 18920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetISO88598, 19020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetISO88599, 19120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetISO885910, 19220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetISO885913, 19320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetISO885914, 19420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetISO885915, 19520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetShiftJIS, 19620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetISO2022JP, 19720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetISO2022JP1, 19820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetISOEUCJP, 19920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetSMS7Bit, 20020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 20120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 20220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataCharsetTypeMax= 0x7FFFFFFF 20320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_METADATACHARSETTYPE; 20420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 20520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @ingroup metadata */ 20620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_METADATASCOPETYPE 20720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang{ 20820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataScopeAllLevels, 20920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataScopeTopLevel, 21020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataScopePortLevel, 21120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataScopeNodeLevel, 21220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataScopeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 21320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataScopeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 21420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataScopeTypeMax = 0x7fffffff 21520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_METADATASCOPETYPE; 21620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 21720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @ingroup metadata */ 21820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_METADATASEARCHMODETYPE 21920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang{ 22020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataSearchValueSizeByIndex, 22120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataSearchItemByIndex, 22220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataSearchNextItemByKey, 22320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataSearchKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 22420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataSearchVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 22520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_MetadataSearchTypeMax = 0x7fffffff 22620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_METADATASEARCHMODETYPE; 22720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @ingroup metadata */ 22820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_CONFIG_METADATAITEMCOUNTTYPE 22920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang{ 23020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; 23120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; 23220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_METADATASCOPETYPE eScopeMode; 23320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nScopeSpecifier; 23420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nMetadataItemCount; 23520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_CONFIG_METADATAITEMCOUNTTYPE; 23620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 23720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @ingroup metadata */ 23820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_CONFIG_METADATAITEMTYPE 23920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang{ 24020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; 24120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; 24220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_METADATASCOPETYPE eScopeMode; 24320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nScopeSpecifier; 24420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nMetadataItemIndex; 24520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_METADATASEARCHMODETYPE eSearchMode; 24620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_METADATACHARSETTYPE eKeyCharset; 24720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U8 nKeySizeUsed; 24820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U8 nKey[128]; 24920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_METADATACHARSETTYPE eValueCharset; 25020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_STRING sLanguageCountry; 25120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nValueMaxSize; 25220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nValueSizeUsed; 25320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U8 nValue[1]; 25420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_CONFIG_METADATAITEMTYPE; 25520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 25620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/* @ingroup metadata */ 25720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_CONFIG_CONTAINERNODECOUNTTYPE 25820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang{ 25920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; 26020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; 26120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bAllKeys; 26220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nParentNodeID; 26320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nNumNodes; 26420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_CONFIG_CONTAINERNODECOUNTTYPE; 26520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 26620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @ingroup metadata */ 26720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_CONFIG_CONTAINERNODEIDTYPE 26820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang{ 26920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; 27020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; 27120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bAllKeys; 27220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nParentNodeID; 27320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nNodeIndex; 27420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nNodeID; 27520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_STRING cNodeName; 27620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bIsLeafType; 27720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_CONFIG_CONTAINERNODEIDTYPE; 27820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 27920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @ingroup metadata */ 28020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_PARAM_METADATAFILTERTYPE 28120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang{ 28220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; 28320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; 28420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bAllKeys; /* if true then this structure refers to all keys and 28520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * the three key fields below are ignored */ 28620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_METADATACHARSETTYPE eKeyCharset; 28720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nKeySizeUsed; 28820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U8 nKey [128]; 28920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nLanguageCountrySizeUsed; 29020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U8 nLanguageCountry[128]; 29120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bEnabled; /* if true then key is part of filter (e.g. 29220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * retained for query later). If false then 29320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * key is not part of filter */ 29420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_PARAM_METADATAFILTERTYPE; 29520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 29620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** The OMX_HANDLETYPE structure defines the component handle. The component 29720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * handle is used to access all of the component's public methods and also 29820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * contains pointers to the component's private data area. The component 29920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * handle is initialized by the OMX core (with help from the component) 30020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * during the process of loading the component. After the component is 30120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * successfully loaded, the application can safely access any of the 30220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * component's public functions (although some may return an error because 30320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * the state is inappropriate for the access). 30420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 30520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup comp 30620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 30720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_COMPONENTTYPE 30820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang{ 30920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang /** The size of this structure, in bytes. It is the responsibility 31020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang of the allocator of this structure to fill in this value. Since 31120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang this structure is allocated by the GetHandle function, this 31220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang function will fill in this value. */ 31320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; 31420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 31520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang /** nVersion is the version of the OMX specification that the structure 31620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang is built against. It is the responsibility of the creator of this 31720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang structure to initialize this value and every user of this structure 31820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang should verify that it knows how to use the exact version of 31920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang this structure found herein. */ 32020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; 32120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 32220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang /** pComponentPrivate is a pointer to the component private data area. 32320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang This member is allocated and initialized by the component when the 32420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang component is first loaded. The application should not access this 32520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang data area. */ 32620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_PTR pComponentPrivate; 32720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 32820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang /** pApplicationPrivate is a pointer that is a parameter to the 32920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_GetHandle method, and contains an application private value 33020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang provided by the IL client. This application private data is 33120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang returned to the IL Client by OMX in all callbacks */ 33220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_PTR pApplicationPrivate; 33320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 33420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang /** refer to OMX_GetComponentVersion in OMX_core.h or the OMX IL 33520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang specification for details on the GetComponentVersion method. 33620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 33720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_ERRORTYPE (*GetComponentVersion)( 33820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_HANDLETYPE hComponent, 33920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_OUT OMX_STRING pComponentName, 34020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_OUT OMX_VERSIONTYPE* pComponentVersion, 34120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_OUT OMX_VERSIONTYPE* pSpecVersion, 34220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_OUT OMX_UUIDTYPE* pComponentUUID); 34320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 34420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang /** refer to OMX_SendCommand in OMX_core.h or the OMX IL 34520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang specification for details on the SendCommand method. 34620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 34720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_ERRORTYPE (*SendCommand)( 34820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_HANDLETYPE hComponent, 34920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_COMMANDTYPE Cmd, 35020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_U32 nParam1, 35120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_PTR pCmdData); 35220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 35320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang /** refer to OMX_GetParameter in OMX_core.h or the OMX IL 35420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang specification for details on the GetParameter method. 35520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 35620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_ERRORTYPE (*GetParameter)( 35720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_HANDLETYPE hComponent, 35820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_INDEXTYPE nParamIndex, 35920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_INOUT OMX_PTR pComponentParameterStructure); 36020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 36120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 36220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang /** refer to OMX_SetParameter in OMX_core.h or the OMX IL 36320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang specification for details on the SetParameter method. 36420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 36520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_ERRORTYPE (*SetParameter)( 36620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_HANDLETYPE hComponent, 36720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_INDEXTYPE nIndex, 36820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_PTR pComponentParameterStructure); 36920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 37020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 37120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang /** refer to OMX_GetConfig in OMX_core.h or the OMX IL 37220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang specification for details on the GetConfig method. 37320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 37420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_ERRORTYPE (*GetConfig)( 37520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_HANDLETYPE hComponent, 37620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_INDEXTYPE nIndex, 37720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_INOUT OMX_PTR pComponentConfigStructure); 37820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 37920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 38020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang /** refer to OMX_SetConfig in OMX_core.h or the OMX IL 38120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang specification for details on the SetConfig method. 38220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 38320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_ERRORTYPE (*SetConfig)( 38420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_HANDLETYPE hComponent, 38520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_INDEXTYPE nIndex, 38620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_PTR pComponentConfigStructure); 38720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 38820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 38920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang /** refer to OMX_GetExtensionIndex in OMX_core.h or the OMX IL 39020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang specification for details on the GetExtensionIndex method. 39120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 39220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_ERRORTYPE (*GetExtensionIndex)( 39320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_HANDLETYPE hComponent, 39420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_STRING cParameterName, 39520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_OUT OMX_INDEXTYPE* pIndexType); 39620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 39720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 39820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang /** refer to OMX_GetState in OMX_core.h or the OMX IL 39920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang specification for details on the GetState method. 40020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 40120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_ERRORTYPE (*GetState)( 40220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_HANDLETYPE hComponent, 40320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_OUT OMX_STATETYPE* pState); 40420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 40520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 40620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang /** The ComponentTunnelRequest method will interact with another OMX 40720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang component to determine if tunneling is possible and to setup the 40820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang tunneling. The return codes for this method can be used to 40920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang determine if tunneling is not possible, or if tunneling is not 41020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang supported. 41120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 41220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang Base profile components (i.e. non-interop) do not support this 41320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang method and should return OMX_ErrorNotImplemented 41420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 41520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang The interop profile component MUST support tunneling to another 41620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang interop profile component with a compatible port parameters. 41720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang A component may also support proprietary communication. 41820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 41920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang If proprietary communication is supported the negotiation of 42020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang proprietary communication is done outside of OMX in a vendor 42120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang specific way. It is only required that the proper result be 42220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang returned and the details of how the setup is done is left 42320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang to the component implementation. 42420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 42520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang When this method is invoked when nPort in an output port, the 42620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang component will: 42720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 1. Populate the pTunnelSetup structure with the output port's 42820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang requirements and constraints for the tunnel. 42920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 43020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang When this method is invoked when nPort in an input port, the 43120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang component will: 43220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 1. Query the necessary parameters from the output port to 43320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang determine if the ports are compatible for tunneling 43420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 2. If the ports are compatible, the component should store 43520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang the tunnel step provided by the output port 43620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 3. Determine which port (either input or output) is the buffer 43720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang supplier, and call OMX_SetParameter on the output port to 43820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang indicate this selection. 43920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 44020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang The component will return from this call within 5 msec. 44120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 44220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang @param [in] hComp 44320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang Handle of the component to be accessed. This is the component 44420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang handle returned by the call to the OMX_GetHandle method. 44520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang @param [in] nPort 44620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang nPort is used to select the port on the component to be used 44720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang for tunneling. 44820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang @param [in] hTunneledComp 44920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang Handle of the component to tunnel with. This is the component 45020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang handle returned by the call to the OMX_GetHandle method. When 45120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang this parameter is 0x0 the component should setup the port for 45220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang communication with the application / IL Client. 45320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang @param [in] nPortOutput 45420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang nPortOutput is used indicate the port the component should 45520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang tunnel with. 45620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang @param [in] pTunnelSetup 45720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang Pointer to the tunnel setup structure. When nPort is an output port 45820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang the component should populate the fields of this structure. When 45920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang When nPort is an input port the component should review the setup 46020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang provided by the component with the output port. 46120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang @return OMX_ERRORTYPE 46220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang If the command successfully executes, the return code will be 46320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_ErrorNone. Otherwise the appropriate OMX error will be returned. 46420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang @ingroup tun 46520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 46620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 46720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_ERRORTYPE (*ComponentTunnelRequest)( 46820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_HANDLETYPE hComp, 46920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_U32 nPort, 47020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_HANDLETYPE hTunneledComp, 47120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_U32 nTunneledPort, 47220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_INOUT OMX_TUNNELSETUPTYPE* pTunnelSetup); 47320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 47420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang /** refer to OMX_UseBuffer in OMX_core.h or the OMX IL 47520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang specification for details on the UseBuffer method. 47620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang @ingroup buf 47720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 47820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_ERRORTYPE (*UseBuffer)( 47920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_HANDLETYPE hComponent, 48020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr, 48120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_U32 nPortIndex, 48220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_PTR pAppPrivate, 48320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_U32 nSizeBytes, 48420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_U8* pBuffer); 48520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 48620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang /** refer to OMX_AllocateBuffer in OMX_core.h or the OMX IL 48720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang specification for details on the AllocateBuffer method. 48820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang @ingroup buf 48920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 49020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_ERRORTYPE (*AllocateBuffer)( 49120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_HANDLETYPE hComponent, 49220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_INOUT OMX_BUFFERHEADERTYPE** ppBuffer, 49320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_U32 nPortIndex, 49420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_PTR pAppPrivate, 49520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_U32 nSizeBytes); 49620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 49720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang /** refer to OMX_FreeBuffer in OMX_core.h or the OMX IL 49820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang specification for details on the FreeBuffer method. 49920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang @ingroup buf 50020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 50120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_ERRORTYPE (*FreeBuffer)( 50220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_HANDLETYPE hComponent, 50320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_U32 nPortIndex, 50420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_BUFFERHEADERTYPE* pBuffer); 50520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 50620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang /** refer to OMX_EmptyThisBuffer in OMX_core.h or the OMX IL 50720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang specification for details on the EmptyThisBuffer method. 50820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang @ingroup buf 50920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 51020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_ERRORTYPE (*EmptyThisBuffer)( 51120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_HANDLETYPE hComponent, 51220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_BUFFERHEADERTYPE* pBuffer); 51320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 51420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang /** refer to OMX_FillThisBuffer in OMX_core.h or the OMX IL 51520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang specification for details on the FillThisBuffer method. 51620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang @ingroup buf 51720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 51820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_ERRORTYPE (*FillThisBuffer)( 51920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_HANDLETYPE hComponent, 52020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_BUFFERHEADERTYPE* pBuffer); 52120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 52220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang /** The SetCallbacks method is used by the core to specify the callback 52320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang structure from the application to the component. This is a blocking 52420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang call. The component will return from this call within 5 msec. 52520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang @param [in] hComponent 52620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang Handle of the component to be accessed. This is the component 52720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang handle returned by the call to the GetHandle function. 52820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang @param [in] pCallbacks 52920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang pointer to an OMX_CALLBACKTYPE structure used to provide the 53020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang callback information to the component 53120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang @param [in] pAppData 53220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang pointer to an application defined value. It is anticipated that 53320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang the application will pass a pointer to a data structure or a "this 53420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang pointer" in this area to allow the callback (in the application) 53520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang to determine the context of the call 53620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang @return OMX_ERRORTYPE 53720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang If the command successfully executes, the return code will be 53820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_ErrorNone. Otherwise the appropriate OMX error will be returned. 53920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 54020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_ERRORTYPE (*SetCallbacks)( 54120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_HANDLETYPE hComponent, 54220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_CALLBACKTYPE* pCallbacks, 54320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_PTR pAppData); 54420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 54520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang /** ComponentDeInit method is used to deinitialize the component 54620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang providing a means to free any resources allocated at component 54720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang initialization. NOTE: After this call the component handle is 54820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang not valid for further use. 54920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang @param [in] hComponent 55020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang Handle of the component to be accessed. This is the component 55120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang handle returned by the call to the GetHandle function. 55220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang @return OMX_ERRORTYPE 55320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang If the command successfully executes, the return code will be 55420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_ErrorNone. Otherwise the appropriate OMX error will be returned. 55520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 55620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_ERRORTYPE (*ComponentDeInit)( 55720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_HANDLETYPE hComponent); 55820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 55920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang /** @ingroup buf */ 56020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_ERRORTYPE (*UseEGLImage)( 56120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_HANDLETYPE hComponent, 56220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr, 56320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_U32 nPortIndex, 56420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_PTR pAppPrivate, 56520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN void* eglImage); 56620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 56720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_ERRORTYPE (*ComponentRoleEnum)( 56820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_HANDLETYPE hComponent, 56920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_OUT OMX_U8 *cRole, 57020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_U32 nIndex); 57120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 57220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_COMPONENTTYPE; 57320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 57420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#ifdef __cplusplus 57520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} 57620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#endif /* __cplusplus */ 57720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 57820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#endif 57920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/* File EOF */ 580