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