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