You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					580 lines
				
				23 KiB
			
		
		
			
		
	
	
					580 lines
				
				23 KiB
			| 
								 
											6 years ago
										 
									 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * Copyright (c) 2008 The Khronos Group Inc. 
							 | 
						||
| 
								 | 
							
								 * 
							 | 
						||
| 
								 | 
							
								 * Permission is hereby granted, free of charge, to any person obtaining
							 | 
						||
| 
								 | 
							
								 * a copy of this software and associated documentation files (the
							 | 
						||
| 
								 | 
							
								 * "Software"), to deal in the Software without restriction, including
							 | 
						||
| 
								 | 
							
								 * without limitation the rights to use, copy, modify, merge, publish,
							 | 
						||
| 
								 | 
							
								 * distribute, sublicense, and/or sell copies of the Software, and to
							 | 
						||
| 
								 | 
							
								 * permit persons to whom the Software is furnished to do so, subject
							 | 
						||
| 
								 | 
							
								 * to the following conditions: 
							 | 
						||
| 
								 | 
							
								 * The above copyright notice and this permission notice shall be included
							 | 
						||
| 
								 | 
							
								 * in all copies or substantial portions of the Software. 
							 | 
						||
| 
								 | 
							
								 * 
							 | 
						||
| 
								 | 
							
								 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
							 | 
						||
| 
								 | 
							
								 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
							 | 
						||
| 
								 | 
							
								 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
							 | 
						||
| 
								 | 
							
								 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
							 | 
						||
| 
								 | 
							
								 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
							 | 
						||
| 
								 | 
							
								 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
							 | 
						||
| 
								 | 
							
								 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** OMX_Component.h - OpenMax IL version 1.1.2
							 | 
						||
| 
								 | 
							
								 *  The OMX_Component header file contains the definitions used to define
							 | 
						||
| 
								 | 
							
								 *  the public interface of a component.  This header file is intended to
							 | 
						||
| 
								 | 
							
								 *  be used by both the application and the component.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef OMX_Component_h
							 | 
						||
| 
								 | 
							
								#define OMX_Component_h
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __cplusplus
							 | 
						||
| 
								 | 
							
								extern "C" {
							 | 
						||
| 
								 | 
							
								#endif /* __cplusplus */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Each OMX header must include all required header files to allow the
							 | 
						||
| 
								 | 
							
								 *  header to compile without errors.  The includes below are required
							 | 
						||
| 
								 | 
							
								 *  for this header file to compile successfully 
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <OMX_Audio.h>
							 | 
						||
| 
								 | 
							
								#include <OMX_Video.h>
							 | 
						||
| 
								 | 
							
								#include <OMX_Image.h>
							 | 
						||
| 
								 | 
							
								#include <OMX_Other.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** @ingroup comp */
							 | 
						||
| 
								 | 
							
								typedef enum OMX_PORTDOMAINTYPE { 
							 | 
						||
| 
								 | 
							
								    OMX_PortDomainAudio, 
							 | 
						||
| 
								 | 
							
								    OMX_PortDomainVideo, 
							 | 
						||
| 
								 | 
							
								    OMX_PortDomainImage, 
							 | 
						||
| 
								 | 
							
								    OMX_PortDomainOther,
							 | 
						||
| 
								 | 
							
								    OMX_PortDomainKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
							 | 
						||
| 
								 | 
							
								    OMX_PortDomainVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
							 | 
						||
| 
								 | 
							
								    OMX_PortDomainMax = 0x7ffffff
							 | 
						||
| 
								 | 
							
								} OMX_PORTDOMAINTYPE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** @ingroup comp */
							 | 
						||
| 
								 | 
							
								typedef struct OMX_PARAM_PORTDEFINITIONTYPE {
							 | 
						||
| 
								 | 
							
								    OMX_U32 nSize;                 /**< Size of the structure in bytes */
							 | 
						||
| 
								 | 
							
								    OMX_VERSIONTYPE nVersion;      /**< OMX specification version information */
							 | 
						||
| 
								 | 
							
								    OMX_U32 nPortIndex;            /**< Port number the structure applies to */
							 | 
						||
| 
								 | 
							
								    OMX_DIRTYPE eDir;              /**< Direction (input or output) of this port */
							 | 
						||
| 
								 | 
							
								    OMX_U32 nBufferCountActual;    /**< The actual number of buffers allocated on this port */
							 | 
						||
| 
								 | 
							
								    OMX_U32 nBufferCountMin;       /**< The minimum number of buffers this port requires */
							 | 
						||
| 
								 | 
							
								    OMX_U32 nBufferSize;           /**< Size, in bytes, for buffers to be used for this channel */
							 | 
						||
| 
								 | 
							
								    OMX_BOOL bEnabled;             /**< Ports default to enabled and are enabled/disabled by
							 | 
						||
| 
								 | 
							
								                                        OMX_CommandPortEnable/OMX_CommandPortDisable.
							 | 
						||
| 
								 | 
							
								                                        When disabled a port is unpopulated. A disabled port
							 | 
						||
| 
								 | 
							
								                                        is not populated with buffers on a transition to IDLE. */
							 | 
						||
| 
								 | 
							
								    OMX_BOOL bPopulated;           /**< Port is populated with all of its buffers as indicated by
							 | 
						||
| 
								 | 
							
								                                        nBufferCountActual. A disabled port is always unpopulated. 
							 | 
						||
| 
								 | 
							
								                                        An enabled port is populated on a transition to OMX_StateIdle
							 | 
						||
| 
								 | 
							
								                                        and unpopulated on a transition to loaded. */
							 | 
						||
| 
								 | 
							
								    OMX_PORTDOMAINTYPE eDomain;    /**< Domain of the port. Determines the contents of metadata below. */
							 | 
						||
| 
								 | 
							
								    union {
							 | 
						||
| 
								 | 
							
								        OMX_AUDIO_PORTDEFINITIONTYPE audio;
							 | 
						||
| 
								 | 
							
								        OMX_VIDEO_PORTDEFINITIONTYPE video;
							 | 
						||
| 
								 | 
							
								        OMX_IMAGE_PORTDEFINITIONTYPE image;
							 | 
						||
| 
								 | 
							
								        OMX_OTHER_PORTDEFINITIONTYPE other;
							 | 
						||
| 
								 | 
							
								    } format;
							 | 
						||
| 
								 | 
							
								    OMX_BOOL bBuffersContiguous;
							 | 
						||
| 
								 | 
							
								    OMX_U32 nBufferAlignment;
							 | 
						||
| 
								 | 
							
								} OMX_PARAM_PORTDEFINITIONTYPE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** @ingroup comp */
							 | 
						||
| 
								 | 
							
								typedef struct OMX_PARAM_U32TYPE { 
							 | 
						||
| 
								 | 
							
								    OMX_U32 nSize;                    /**< Size of this structure, in Bytes */ 
							 | 
						||
| 
								 | 
							
								    OMX_VERSIONTYPE nVersion;         /**< OMX specification version information */ 
							 | 
						||
| 
								 | 
							
								    OMX_U32 nPortIndex;               /**< port that this structure applies to */ 
							 | 
						||
| 
								 | 
							
								    OMX_U32 nU32;                     /**< U32 value */
							 | 
						||
| 
								 | 
							
								} OMX_PARAM_U32TYPE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** @ingroup rpm */
							 | 
						||
| 
								 | 
							
								typedef enum OMX_SUSPENSIONPOLICYTYPE {
							 | 
						||
| 
								 | 
							
								    OMX_SuspensionDisabled, /**< No suspension; v1.0 behavior */
							 | 
						||
| 
								 | 
							
								    OMX_SuspensionEnabled,  /**< Suspension allowed */   
							 | 
						||
| 
								 | 
							
								    OMX_SuspensionPolicyKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
							 | 
						||
| 
								 | 
							
								    OMX_SuspensionPolicyStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
							 | 
						||
| 
								 | 
							
								    OMX_SuspensionPolicyMax = 0x7fffffff
							 | 
						||
| 
								 | 
							
								} OMX_SUSPENSIONPOLICYTYPE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** @ingroup rpm */
							 | 
						||
| 
								 | 
							
								typedef struct OMX_PARAM_SUSPENSIONPOLICYTYPE {
							 | 
						||
| 
								 | 
							
								    OMX_U32 nSize;                  
							 | 
						||
| 
								 | 
							
								    OMX_VERSIONTYPE nVersion;        
							 | 
						||
| 
								 | 
							
								    OMX_SUSPENSIONPOLICYTYPE ePolicy;
							 | 
						||
| 
								 | 
							
								} OMX_PARAM_SUSPENSIONPOLICYTYPE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** @ingroup rpm */
							 | 
						||
| 
								 | 
							
								typedef enum OMX_SUSPENSIONTYPE {
							 | 
						||
| 
								 | 
							
								    OMX_NotSuspended, /**< component is not suspended */
							 | 
						||
| 
								 | 
							
								    OMX_Suspended,    /**< component is suspended */
							 | 
						||
| 
								 | 
							
								    OMX_SuspensionKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
							 | 
						||
| 
								 | 
							
								    OMX_SuspensionVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
							 | 
						||
| 
								 | 
							
								    OMX_SuspendMax = 0x7FFFFFFF
							 | 
						||
| 
								 | 
							
								} OMX_SUSPENSIONTYPE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** @ingroup rpm */
							 | 
						||
| 
								 | 
							
								typedef struct OMX_PARAM_SUSPENSIONTYPE {
							 | 
						||
| 
								 | 
							
								    OMX_U32 nSize;                  
							 | 
						||
| 
								 | 
							
								    OMX_VERSIONTYPE nVersion;       
							 | 
						||
| 
								 | 
							
								    OMX_SUSPENSIONTYPE eType;             
							 | 
						||
| 
								 | 
							
								} OMX_PARAM_SUSPENSIONTYPE ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct OMX_CONFIG_BOOLEANTYPE {
							 | 
						||
| 
								 | 
							
								    OMX_U32 nSize;
							 | 
						||
| 
								 | 
							
								    OMX_VERSIONTYPE nVersion;
							 | 
						||
| 
								 | 
							
								    OMX_BOOL bEnabled;    
							 | 
						||
| 
								 | 
							
								} OMX_CONFIG_BOOLEANTYPE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Parameter specifying the content uri to use. */
							 | 
						||
| 
								 | 
							
								/** @ingroup cp */
							 | 
						||
| 
								 | 
							
								typedef struct OMX_PARAM_CONTENTURITYPE
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    OMX_U32 nSize;                      /**< size of the structure in bytes, including
							 | 
						||
| 
								 | 
							
								                                             actual URI name */
							 | 
						||
| 
								 | 
							
								    OMX_VERSIONTYPE nVersion;           /**< OMX specification version information */
							 | 
						||
| 
								 | 
							
								    OMX_U8 contentURI[1];               /**< The URI name */
							 | 
						||
| 
								 | 
							
								} OMX_PARAM_CONTENTURITYPE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Parameter specifying the pipe to use. */
							 | 
						||
| 
								 | 
							
								/** @ingroup cp */
							 | 
						||
| 
								 | 
							
								typedef struct OMX_PARAM_CONTENTPIPETYPE
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    OMX_U32 nSize;              /**< size of the structure in bytes */
							 | 
						||
| 
								 | 
							
								    OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
							 | 
						||
| 
								 | 
							
								    OMX_HANDLETYPE hPipe;       /**< The pipe handle*/
							 | 
						||
| 
								 | 
							
								} OMX_PARAM_CONTENTPIPETYPE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** @ingroup rpm */
							 | 
						||
| 
								 | 
							
								typedef struct OMX_RESOURCECONCEALMENTTYPE {
							 | 
						||
| 
								 | 
							
								    OMX_U32 nSize;             /**< size of the structure in bytes */
							 | 
						||
| 
								 | 
							
								    OMX_VERSIONTYPE nVersion;  /**< OMX specification version information */
							 | 
						||
| 
								 | 
							
								    OMX_BOOL bResourceConcealmentForbidden; /**< disallow the use of resource concealment 
							 | 
						||
| 
								 | 
							
								                                            methods (like degrading algorithm quality to 
							 | 
						||
| 
								 | 
							
								                                            lower resource consumption or functional bypass) 
							 | 
						||
| 
								 | 
							
								                                            on a component as a resolution to resource conflicts. */
							 | 
						||
| 
								 | 
							
								} OMX_RESOURCECONCEALMENTTYPE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** @ingroup metadata */
							 | 
						||
| 
								 | 
							
								typedef enum OMX_METADATACHARSETTYPE {
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetUnknown = 0,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetASCII,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetBinary,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetCodePage1252,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetUTF8,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetJavaConformantUTF8,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetUTF7,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetImapUTF7,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetUTF16LE, 
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetUTF16BE,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetGB12345,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetHZGB2312,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetGB2312,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetGB18030,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetGBK,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetBig5,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetISO88591,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetISO88592,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetISO88593,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetISO88594,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetISO88595,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetISO88596,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetISO88597,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetISO88598,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetISO88599,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetISO885910,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetISO885913,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetISO885914,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetISO885915,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetShiftJIS,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetISO2022JP,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetISO2022JP1,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetISOEUCJP,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetSMS7Bit,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
							 | 
						||
| 
								 | 
							
								    OMX_MetadataCharsetTypeMax= 0x7FFFFFFF
							 | 
						||
| 
								 | 
							
								} OMX_METADATACHARSETTYPE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** @ingroup metadata */
							 | 
						||
| 
								 | 
							
								typedef enum OMX_METADATASCOPETYPE
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    OMX_MetadataScopeAllLevels,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataScopeTopLevel,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataScopePortLevel,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataScopeNodeLevel,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataScopeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
							 | 
						||
| 
								 | 
							
								    OMX_MetadataScopeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
							 | 
						||
| 
								 | 
							
								    OMX_MetadataScopeTypeMax = 0x7fffffff
							 | 
						||
| 
								 | 
							
								} OMX_METADATASCOPETYPE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** @ingroup metadata */
							 | 
						||
| 
								 | 
							
								typedef enum OMX_METADATASEARCHMODETYPE
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    OMX_MetadataSearchValueSizeByIndex,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataSearchItemByIndex,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataSearchNextItemByKey,
							 | 
						||
| 
								 | 
							
								    OMX_MetadataSearchKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 
							 | 
						||
| 
								 | 
							
								    OMX_MetadataSearchVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
							 | 
						||
| 
								 | 
							
								    OMX_MetadataSearchTypeMax = 0x7fffffff
							 | 
						||
| 
								 | 
							
								} OMX_METADATASEARCHMODETYPE;
							 | 
						||
| 
								 | 
							
								/** @ingroup metadata */
							 | 
						||
| 
								 | 
							
								typedef struct OMX_CONFIG_METADATAITEMCOUNTTYPE
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    OMX_U32 nSize;
							 | 
						||
| 
								 | 
							
								    OMX_VERSIONTYPE nVersion;
							 | 
						||
| 
								 | 
							
								    OMX_METADATASCOPETYPE eScopeMode;
							 | 
						||
| 
								 | 
							
								    OMX_U32 nScopeSpecifier;
							 | 
						||
| 
								 | 
							
								    OMX_U32 nMetadataItemCount;
							 | 
						||
| 
								 | 
							
								} OMX_CONFIG_METADATAITEMCOUNTTYPE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** @ingroup metadata */
							 | 
						||
| 
								 | 
							
								typedef struct OMX_CONFIG_METADATAITEMTYPE
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    OMX_U32 nSize;
							 | 
						||
| 
								 | 
							
								    OMX_VERSIONTYPE nVersion;
							 | 
						||
| 
								 | 
							
								    OMX_METADATASCOPETYPE eScopeMode;
							 | 
						||
| 
								 | 
							
								    OMX_U32 nScopeSpecifier;
							 | 
						||
| 
								 | 
							
								    OMX_U32 nMetadataItemIndex;  
							 | 
						||
| 
								 | 
							
								    OMX_METADATASEARCHMODETYPE eSearchMode;
							 | 
						||
| 
								 | 
							
								    OMX_METADATACHARSETTYPE eKeyCharset;
							 | 
						||
| 
								 | 
							
								    OMX_U8 nKeySizeUsed;
							 | 
						||
| 
								 | 
							
								    OMX_U8 nKey[128];
							 | 
						||
| 
								 | 
							
								    OMX_METADATACHARSETTYPE eValueCharset;
							 | 
						||
| 
								 | 
							
								    OMX_STRING sLanguageCountry;
							 | 
						||
| 
								 | 
							
								    OMX_U32 nValueMaxSize;
							 | 
						||
| 
								 | 
							
								    OMX_U32 nValueSizeUsed;
							 | 
						||
| 
								 | 
							
								    OMX_U8 nValue[1];
							 | 
						||
| 
								 | 
							
								} OMX_CONFIG_METADATAITEMTYPE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* @ingroup metadata */
							 | 
						||
| 
								 | 
							
								typedef struct OMX_CONFIG_CONTAINERNODECOUNTTYPE
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    OMX_U32 nSize;
							 | 
						||
| 
								 | 
							
								    OMX_VERSIONTYPE nVersion;
							 | 
						||
| 
								 | 
							
								    OMX_BOOL bAllKeys;
							 | 
						||
| 
								 | 
							
								    OMX_U32 nParentNodeID;
							 | 
						||
| 
								 | 
							
								    OMX_U32 nNumNodes;
							 | 
						||
| 
								 | 
							
								} OMX_CONFIG_CONTAINERNODECOUNTTYPE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** @ingroup metadata */
							 | 
						||
| 
								 | 
							
								typedef struct OMX_CONFIG_CONTAINERNODEIDTYPE
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    OMX_U32 nSize;
							 | 
						||
| 
								 | 
							
								    OMX_VERSIONTYPE nVersion;
							 | 
						||
| 
								 | 
							
								    OMX_BOOL bAllKeys;
							 | 
						||
| 
								 | 
							
								    OMX_U32 nParentNodeID;
							 | 
						||
| 
								 | 
							
								    OMX_U32 nNodeIndex; 
							 | 
						||
| 
								 | 
							
								    OMX_U32 nNodeID; 
							 | 
						||
| 
								 | 
							
								    OMX_STRING cNodeName;
							 | 
						||
| 
								 | 
							
								    OMX_BOOL bIsLeafType;
							 | 
						||
| 
								 | 
							
								} OMX_CONFIG_CONTAINERNODEIDTYPE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** @ingroup metadata */
							 | 
						||
| 
								 | 
							
								typedef struct OMX_PARAM_METADATAFILTERTYPE 
							 | 
						||
| 
								 | 
							
								{ 
							 | 
						||
| 
								 | 
							
								    OMX_U32 nSize; 
							 | 
						||
| 
								 | 
							
								    OMX_VERSIONTYPE nVersion; 
							 | 
						||
| 
								 | 
							
								    OMX_BOOL bAllKeys;	/* if true then this structure refers to all keys and 
							 | 
						||
| 
								 | 
							
								                         * the three key fields below are ignored */
							 | 
						||
| 
								 | 
							
								    OMX_METADATACHARSETTYPE eKeyCharset;
							 | 
						||
| 
								 | 
							
								    OMX_U32 nKeySizeUsed; 
							 | 
						||
| 
								 | 
							
								    OMX_U8   nKey [128]; 
							 | 
						||
| 
								 | 
							
								    OMX_U32 nLanguageCountrySizeUsed;
							 | 
						||
| 
								 | 
							
								    OMX_U8 nLanguageCountry[128];
							 | 
						||
| 
								 | 
							
								    OMX_BOOL bEnabled;	/* if true then key is part of filter (e.g. 
							 | 
						||
| 
								 | 
							
								                         * retained for query later). If false then
							 | 
						||
| 
								 | 
							
								                         * key is not part of filter */
							 | 
						||
| 
								 | 
							
								} OMX_PARAM_METADATAFILTERTYPE; 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/** The OMX_HANDLETYPE structure defines the component handle.  The component 
							 | 
						||
| 
								 | 
							
								 *  handle is used to access all of the component's public methods and also
							 | 
						||
| 
								 | 
							
								 *  contains pointers to the component's private data area.  The component
							 | 
						||
| 
								 | 
							
								 *  handle is initialized by the OMX core (with help from the component)
							 | 
						||
| 
								 | 
							
								 *  during the process of loading the component.  After the component is
							 | 
						||
| 
								 | 
							
								 *  successfully loaded, the application can safely access any of the
							 | 
						||
| 
								 | 
							
								 *  component's public functions (although some may return an error because
							 | 
						||
| 
								 | 
							
								 *  the state is inappropriate for the access).
							 | 
						||
| 
								 | 
							
								 * 
							 | 
						||
| 
								 | 
							
								 *  @ingroup comp
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								typedef struct OMX_COMPONENTTYPE
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    /** The size of this structure, in bytes.  It is the responsibility
							 | 
						||
| 
								 | 
							
								        of the allocator of this structure to fill in this value.  Since
							 | 
						||
| 
								 | 
							
								        this structure is allocated by the GetHandle function, this
							 | 
						||
| 
								 | 
							
								        function will fill in this value. */
							 | 
						||
| 
								 | 
							
								    OMX_U32 nSize;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /** nVersion is the version of the OMX specification that the structure 
							 | 
						||
| 
								 | 
							
								        is built against.  It is the responsibility of the creator of this 
							 | 
						||
| 
								 | 
							
								        structure to initialize this value and every user of this structure 
							 | 
						||
| 
								 | 
							
								        should verify that it knows how to use the exact version of 
							 | 
						||
| 
								 | 
							
								        this structure found herein. */
							 | 
						||
| 
								 | 
							
								    OMX_VERSIONTYPE nVersion;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /** pComponentPrivate is a pointer to the component private data area.  
							 | 
						||
| 
								 | 
							
								        This member is allocated and initialized by the component when the 
							 | 
						||
| 
								 | 
							
								        component is first loaded.  The application should not access this 
							 | 
						||
| 
								 | 
							
								        data area. */
							 | 
						||
| 
								 | 
							
								    OMX_PTR pComponentPrivate;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /** pApplicationPrivate is a pointer that is a parameter to the 
							 | 
						||
| 
								 | 
							
								        OMX_GetHandle method, and contains an application private value 
							 | 
						||
| 
								 | 
							
								        provided by the IL client.  This application private data is 
							 | 
						||
| 
								 | 
							
								        returned to the IL Client by OMX in all callbacks */
							 | 
						||
| 
								 | 
							
								    OMX_PTR pApplicationPrivate;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /** refer to OMX_GetComponentVersion in OMX_core.h or the OMX IL 
							 | 
						||
| 
								 | 
							
								        specification for details on the GetComponentVersion method.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    OMX_ERRORTYPE (*GetComponentVersion)(
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_HANDLETYPE hComponent,
							 | 
						||
| 
								 | 
							
								            OMX_OUT OMX_STRING pComponentName,
							 | 
						||
| 
								 | 
							
								            OMX_OUT OMX_VERSIONTYPE* pComponentVersion,
							 | 
						||
| 
								 | 
							
								            OMX_OUT OMX_VERSIONTYPE* pSpecVersion,
							 | 
						||
| 
								 | 
							
								            OMX_OUT OMX_UUIDTYPE* pComponentUUID);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /** refer to OMX_SendCommand in OMX_core.h or the OMX IL 
							 | 
						||
| 
								 | 
							
								        specification for details on the SendCommand method.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    OMX_ERRORTYPE (*SendCommand)(
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_HANDLETYPE hComponent,
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_COMMANDTYPE Cmd,
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_U32 nParam1,
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_PTR pCmdData);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /** refer to OMX_GetParameter in OMX_core.h or the OMX IL 
							 | 
						||
| 
								 | 
							
								        specification for details on the GetParameter method.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    OMX_ERRORTYPE (*GetParameter)(
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_HANDLETYPE hComponent, 
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_INDEXTYPE nParamIndex,  
							 | 
						||
| 
								 | 
							
								            OMX_INOUT OMX_PTR pComponentParameterStructure);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /** refer to OMX_SetParameter in OMX_core.h or the OMX IL 
							 | 
						||
| 
								 | 
							
								        specification for details on the SetParameter method.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    OMX_ERRORTYPE (*SetParameter)(
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_HANDLETYPE hComponent, 
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_INDEXTYPE nIndex,
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_PTR pComponentParameterStructure);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /** refer to OMX_GetConfig in OMX_core.h or the OMX IL 
							 | 
						||
| 
								 | 
							
								        specification for details on the GetConfig method.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    OMX_ERRORTYPE (*GetConfig)(
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_HANDLETYPE hComponent,
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_INDEXTYPE nIndex, 
							 | 
						||
| 
								 | 
							
								            OMX_INOUT OMX_PTR pComponentConfigStructure);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /** refer to OMX_SetConfig in OMX_core.h or the OMX IL 
							 | 
						||
| 
								 | 
							
								        specification for details on the SetConfig method.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    OMX_ERRORTYPE (*SetConfig)(
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_HANDLETYPE hComponent,
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_INDEXTYPE nIndex, 
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_PTR pComponentConfigStructure);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /** refer to OMX_GetExtensionIndex in OMX_core.h or the OMX IL 
							 | 
						||
| 
								 | 
							
								        specification for details on the GetExtensionIndex method.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    OMX_ERRORTYPE (*GetExtensionIndex)(
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_HANDLETYPE hComponent,
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_STRING cParameterName,
							 | 
						||
| 
								 | 
							
								            OMX_OUT OMX_INDEXTYPE* pIndexType);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /** refer to OMX_GetState in OMX_core.h or the OMX IL 
							 | 
						||
| 
								 | 
							
								        specification for details on the GetState method.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    OMX_ERRORTYPE (*GetState)(
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_HANDLETYPE hComponent,
							 | 
						||
| 
								 | 
							
								            OMX_OUT OMX_STATETYPE* pState);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    /** The ComponentTunnelRequest method will interact with another OMX
							 | 
						||
| 
								 | 
							
								        component to determine if tunneling is possible and to setup the
							 | 
						||
| 
								 | 
							
								        tunneling.  The return codes for this method can be used to 
							 | 
						||
| 
								 | 
							
								        determine if tunneling is not possible, or if tunneling is not
							 | 
						||
| 
								 | 
							
								        supported.  
							 | 
						||
| 
								 | 
							
								        
							 | 
						||
| 
								 | 
							
								        Base profile components (i.e. non-interop) do not support this
							 | 
						||
| 
								 | 
							
								        method and should return OMX_ErrorNotImplemented 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        The interop profile component MUST support tunneling to another 
							 | 
						||
| 
								 | 
							
								        interop profile component with a compatible port parameters.  
							 | 
						||
| 
								 | 
							
								        A component may also support proprietary communication.
							 | 
						||
| 
								 | 
							
								        
							 | 
						||
| 
								 | 
							
								        If proprietary communication is supported the negotiation of 
							 | 
						||
| 
								 | 
							
								        proprietary communication is done outside of OMX in a vendor 
							 | 
						||
| 
								 | 
							
								        specific way. It is only required that the proper result be 
							 | 
						||
| 
								 | 
							
								        returned and the details of how the setup is done is left 
							 | 
						||
| 
								 | 
							
								        to the component implementation.  
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								        When this method is invoked when nPort in an output port, the
							 | 
						||
| 
								 | 
							
								        component will:
							 | 
						||
| 
								 | 
							
								        1.  Populate the pTunnelSetup structure with the output port's 
							 | 
						||
| 
								 | 
							
								            requirements and constraints for the tunnel.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        When this method is invoked when nPort in an input port, the
							 | 
						||
| 
								 | 
							
								        component will:
							 | 
						||
| 
								 | 
							
								        1.  Query the necessary parameters from the output port to 
							 | 
						||
| 
								 | 
							
								            determine if the ports are compatible for tunneling
							 | 
						||
| 
								 | 
							
								        2.  If the ports are compatible, the component should store
							 | 
						||
| 
								 | 
							
								            the tunnel step provided by the output port
							 | 
						||
| 
								 | 
							
								        3.  Determine which port (either input or output) is the buffer
							 | 
						||
| 
								 | 
							
								            supplier, and call OMX_SetParameter on the output port to
							 | 
						||
| 
								 | 
							
								            indicate this selection.
							 | 
						||
| 
								 | 
							
								        
							 | 
						||
| 
								 | 
							
								        The component will return from this call within 5 msec.
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								        @param [in] hComp
							 | 
						||
| 
								 | 
							
								            Handle of the component to be accessed.  This is the component
							 | 
						||
| 
								 | 
							
								            handle returned by the call to the OMX_GetHandle method.
							 | 
						||
| 
								 | 
							
								        @param [in] nPort
							 | 
						||
| 
								 | 
							
								            nPort is used to select the port on the component to be used
							 | 
						||
| 
								 | 
							
								            for tunneling.
							 | 
						||
| 
								 | 
							
								        @param [in] hTunneledComp
							 | 
						||
| 
								 | 
							
								            Handle of the component to tunnel with.  This is the component 
							 | 
						||
| 
								 | 
							
								            handle returned by the call to the OMX_GetHandle method.  When
							 | 
						||
| 
								 | 
							
								            this parameter is 0x0 the component should setup the port for
							 | 
						||
| 
								 | 
							
								            communication with the application / IL Client.
							 | 
						||
| 
								 | 
							
								        @param [in] nPortOutput
							 | 
						||
| 
								 | 
							
								            nPortOutput is used indicate the port the component should
							 | 
						||
| 
								 | 
							
								            tunnel with.
							 | 
						||
| 
								 | 
							
								        @param [in] pTunnelSetup
							 | 
						||
| 
								 | 
							
								            Pointer to the tunnel setup structure.  When nPort is an output port
							 | 
						||
| 
								 | 
							
								            the component should populate the fields of this structure.  When
							 | 
						||
| 
								 | 
							
								            When nPort is an input port the component should review the setup
							 | 
						||
| 
								 | 
							
								            provided by the component with the output port.
							 | 
						||
| 
								 | 
							
								        @return OMX_ERRORTYPE
							 | 
						||
| 
								 | 
							
								            If the command successfully executes, the return code will be
							 | 
						||
| 
								 | 
							
								            OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
							 | 
						||
| 
								 | 
							
								        @ingroup tun
							 | 
						||
| 
								 | 
							
								    */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    OMX_ERRORTYPE (*ComponentTunnelRequest)(
							 | 
						||
| 
								 | 
							
								        OMX_IN  OMX_HANDLETYPE hComp,
							 | 
						||
| 
								 | 
							
								        OMX_IN  OMX_U32 nPort,
							 | 
						||
| 
								 | 
							
								        OMX_IN  OMX_HANDLETYPE hTunneledComp,
							 | 
						||
| 
								 | 
							
								        OMX_IN  OMX_U32 nTunneledPort,
							 | 
						||
| 
								 | 
							
								        OMX_INOUT  OMX_TUNNELSETUPTYPE* pTunnelSetup); 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /** refer to OMX_UseBuffer in OMX_core.h or the OMX IL 
							 | 
						||
| 
								 | 
							
								        specification for details on the UseBuffer method.
							 | 
						||
| 
								 | 
							
								        @ingroup buf
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    OMX_ERRORTYPE (*UseBuffer)(
							 | 
						||
| 
								 | 
							
								            OMX_IN OMX_HANDLETYPE hComponent,
							 | 
						||
| 
								 | 
							
								            OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr,
							 | 
						||
| 
								 | 
							
								            OMX_IN OMX_U32 nPortIndex,
							 | 
						||
| 
								 | 
							
								            OMX_IN OMX_PTR pAppPrivate,
							 | 
						||
| 
								 | 
							
								            OMX_IN OMX_U32 nSizeBytes,
							 | 
						||
| 
								 | 
							
								            OMX_IN OMX_U8* pBuffer);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /** refer to OMX_AllocateBuffer in OMX_core.h or the OMX IL 
							 | 
						||
| 
								 | 
							
								        specification for details on the AllocateBuffer method.
							 | 
						||
| 
								 | 
							
								        @ingroup buf
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    OMX_ERRORTYPE (*AllocateBuffer)(
							 | 
						||
| 
								 | 
							
								            OMX_IN OMX_HANDLETYPE hComponent,
							 | 
						||
| 
								 | 
							
								            OMX_INOUT OMX_BUFFERHEADERTYPE** ppBuffer,
							 | 
						||
| 
								 | 
							
								            OMX_IN OMX_U32 nPortIndex,
							 | 
						||
| 
								 | 
							
								            OMX_IN OMX_PTR pAppPrivate,
							 | 
						||
| 
								 | 
							
								            OMX_IN OMX_U32 nSizeBytes);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /** refer to OMX_FreeBuffer in OMX_core.h or the OMX IL 
							 | 
						||
| 
								 | 
							
								        specification for details on the FreeBuffer method.
							 | 
						||
| 
								 | 
							
								        @ingroup buf
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    OMX_ERRORTYPE (*FreeBuffer)(
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_HANDLETYPE hComponent,
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_U32 nPortIndex,
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_BUFFERHEADERTYPE* pBuffer);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /** refer to OMX_EmptyThisBuffer in OMX_core.h or the OMX IL 
							 | 
						||
| 
								 | 
							
								        specification for details on the EmptyThisBuffer method.
							 | 
						||
| 
								 | 
							
								        @ingroup buf
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    OMX_ERRORTYPE (*EmptyThisBuffer)(
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_HANDLETYPE hComponent,
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_BUFFERHEADERTYPE* pBuffer);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /** refer to OMX_FillThisBuffer in OMX_core.h or the OMX IL 
							 | 
						||
| 
								 | 
							
								        specification for details on the FillThisBuffer method.
							 | 
						||
| 
								 | 
							
								        @ingroup buf
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    OMX_ERRORTYPE (*FillThisBuffer)(
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_HANDLETYPE hComponent,
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_BUFFERHEADERTYPE* pBuffer);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /** The SetCallbacks method is used by the core to specify the callback
							 | 
						||
| 
								 | 
							
								        structure from the application to the component.  This is a blocking
							 | 
						||
| 
								 | 
							
								        call.  The component will return from this call within 5 msec.
							 | 
						||
| 
								 | 
							
								        @param [in] hComponent
							 | 
						||
| 
								 | 
							
								            Handle of the component to be accessed.  This is the component
							 | 
						||
| 
								 | 
							
								            handle returned by the call to the GetHandle function.
							 | 
						||
| 
								 | 
							
								        @param [in] pCallbacks
							 | 
						||
| 
								 | 
							
								            pointer to an OMX_CALLBACKTYPE structure used to provide the 
							 | 
						||
| 
								 | 
							
								            callback information to the component
							 | 
						||
| 
								 | 
							
								        @param [in] pAppData
							 | 
						||
| 
								 | 
							
								            pointer to an application defined value.  It is anticipated that 
							 | 
						||
| 
								 | 
							
								            the application will pass a pointer to a data structure or a "this
							 | 
						||
| 
								 | 
							
								            pointer" in this area to allow the callback (in the application)
							 | 
						||
| 
								 | 
							
								            to determine the context of the call
							 | 
						||
| 
								 | 
							
								        @return OMX_ERRORTYPE
							 | 
						||
| 
								 | 
							
								            If the command successfully executes, the return code will be
							 | 
						||
| 
								 | 
							
								            OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    OMX_ERRORTYPE (*SetCallbacks)(
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_HANDLETYPE hComponent,
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_CALLBACKTYPE* pCallbacks, 
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_PTR pAppData);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /** ComponentDeInit method is used to deinitialize the component
							 | 
						||
| 
								 | 
							
								        providing a means to free any resources allocated at component
							 | 
						||
| 
								 | 
							
								        initialization.  NOTE:  After this call the component handle is
							 | 
						||
| 
								 | 
							
								        not valid for further use.
							 | 
						||
| 
								 | 
							
								        @param [in] hComponent
							 | 
						||
| 
								 | 
							
								            Handle of the component to be accessed.  This is the component
							 | 
						||
| 
								 | 
							
								            handle returned by the call to the GetHandle function.
							 | 
						||
| 
								 | 
							
								        @return OMX_ERRORTYPE
							 | 
						||
| 
								 | 
							
								            If the command successfully executes, the return code will be
							 | 
						||
| 
								 | 
							
								            OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    OMX_ERRORTYPE (*ComponentDeInit)(
							 | 
						||
| 
								 | 
							
								            OMX_IN  OMX_HANDLETYPE hComponent);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /** @ingroup buf */
							 | 
						||
| 
								 | 
							
								    OMX_ERRORTYPE (*UseEGLImage)(
							 | 
						||
| 
								 | 
							
								            OMX_IN OMX_HANDLETYPE hComponent,
							 | 
						||
| 
								 | 
							
								            OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr,
							 | 
						||
| 
								 | 
							
								            OMX_IN OMX_U32 nPortIndex,
							 | 
						||
| 
								 | 
							
								            OMX_IN OMX_PTR pAppPrivate,
							 | 
						||
| 
								 | 
							
								            OMX_IN void* eglImage);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    OMX_ERRORTYPE (*ComponentRoleEnum)(
							 | 
						||
| 
								 | 
							
								        OMX_IN OMX_HANDLETYPE hComponent,
							 | 
						||
| 
								 | 
							
										OMX_OUT OMX_U8 *cRole,
							 | 
						||
| 
								 | 
							
										OMX_IN OMX_U32 nIndex);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								} OMX_COMPONENTTYPE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __cplusplus
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#endif /* __cplusplus */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								/* File EOF */
							 |