1fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/*
2fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Copyright (c) 2008 The Khronos Group Inc.
3fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
4fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Permission is hereby granted, free of charge, to any person obtaining
5fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * a copy of this software and associated documentation files (the
6fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * "Software"), to deal in the Software without restriction, including
7fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * without limitation the rights to use, copy, modify, merge, publish,
8fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * distribute, sublicense, and/or sell copies of the Software, and to
9fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * permit persons to whom the Software is furnished to do so, subject
10fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * to the following conditions:
11fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * The above copyright notice and this permission notice shall be included
12fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * in all copies or substantial portions of the Software.
13fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
14fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
18fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
19fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
20fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
22fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
23fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
24fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** OMX_Component.h - OpenMax IL version 1.1.2
25fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  The OMX_Component header file contains the definitions used to define
26fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  the public interface of a component.  This header file is intended to
27fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  be used by both the application and the component.
28fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
29fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
30fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef OMX_Component_h
31fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_Component_h
32fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
33fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef __cplusplus
34fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinextern "C" {
35fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif /* __cplusplus */
36fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
37fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
38fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
39fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* Each OMX header must include all required header files to allow the
40fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  header to compile without errors.  The includes below are required
41fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  for this header file to compile successfully
42fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
43fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
44fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <OMX_Audio.h>
45fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <OMX_Video.h>
46fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <OMX_Image.h>
47fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <OMX_Other.h>
48fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
49fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** @ingroup comp */
50fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_PORTDOMAINTYPE {
51fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PortDomainAudio,
52fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PortDomainVideo,
53fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PortDomainImage,
54fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PortDomainOther,
55fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PortDomainKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
56fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PortDomainVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
57fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PortDomainMax = 0x7ffffff
58fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_PORTDOMAINTYPE;
59fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
60fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** @ingroup comp */
61fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_PARAM_PORTDEFINITIONTYPE {
62fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nSize;                 /**< Size of the structure in bytes */
63fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_VERSIONTYPE nVersion;      /**< OMX specification version information */
64fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nPortIndex;            /**< Port number the structure applies to */
65fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_DIRTYPE eDir;              /**< Direction (input or output) of this port */
66fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nBufferCountActual;    /**< The actual number of buffers allocated on this port */
67fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nBufferCountMin;       /**< The minimum number of buffers this port requires */
68fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nBufferSize;           /**< Size, in bytes, for buffers to be used for this channel */
69fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bEnabled;             /**< Ports default to enabled and are enabled/disabled by
70fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                                        OMX_CommandPortEnable/OMX_CommandPortDisable.
71fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                                        When disabled a port is unpopulated. A disabled port
72fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                                        is not populated with buffers on a transition to IDLE. */
73fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bPopulated;           /**< Port is populated with all of its buffers as indicated by
74fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                                        nBufferCountActual. A disabled port is always unpopulated.
75fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                                        An enabled port is populated on a transition to OMX_StateIdle
76fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                                        and unpopulated on a transition to loaded. */
77fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PORTDOMAINTYPE eDomain;    /**< Domain of the port. Determines the contents of metadata below. */
78fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    union {
79fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_AUDIO_PORTDEFINITIONTYPE audio;
80fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_VIDEO_PORTDEFINITIONTYPE video;
81fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_IMAGE_PORTDEFINITIONTYPE image;
82fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_OTHER_PORTDEFINITIONTYPE other;
83fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    } format;
84fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bBuffersContiguous;
85fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nBufferAlignment;
86fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_PARAM_PORTDEFINITIONTYPE;
87fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
88fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** @ingroup comp */
89fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_PARAM_U32TYPE {
90fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nSize;                    /**< Size of this structure, in Bytes */
91fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_VERSIONTYPE nVersion;         /**< OMX specification version information */
92fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nPortIndex;               /**< port that this structure applies to */
93fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nU32;                     /**< U32 value */
94fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_PARAM_U32TYPE;
95fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
96fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** @ingroup rpm */
97fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_SUSPENSIONPOLICYTYPE {
98fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_SuspensionDisabled, /**< No suspension; v1.0 behavior */
99fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_SuspensionEnabled,  /**< Suspension allowed */
100fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_SuspensionPolicyKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
101fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_SuspensionPolicyStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
102fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_SuspensionPolicyMax = 0x7fffffff
103fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_SUSPENSIONPOLICYTYPE;
104fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
105fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** @ingroup rpm */
106fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_PARAM_SUSPENSIONPOLICYTYPE {
107fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nSize;
108fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_VERSIONTYPE nVersion;
109fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_SUSPENSIONPOLICYTYPE ePolicy;
110fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_PARAM_SUSPENSIONPOLICYTYPE;
111fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
112fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** @ingroup rpm */
113fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_SUSPENSIONTYPE {
114fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_NotSuspended, /**< component is not suspended */
115fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_Suspended,    /**< component is suspended */
116fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_SuspensionKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
117fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_SuspensionVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
118fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_SuspendMax = 0x7FFFFFFF
119fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_SUSPENSIONTYPE;
120fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
121fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** @ingroup rpm */
122fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_PARAM_SUSPENSIONTYPE {
123fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nSize;
124fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_VERSIONTYPE nVersion;
125fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_SUSPENSIONTYPE eType;
126fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_PARAM_SUSPENSIONTYPE ;
127fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
128fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_CONFIG_BOOLEANTYPE {
129fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nSize;
130fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_VERSIONTYPE nVersion;
131fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bEnabled;
132fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_CONFIG_BOOLEANTYPE;
133fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
134fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* Parameter specifying the content uri to use. */
135fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** @ingroup cp */
136fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_PARAM_CONTENTURITYPE
137fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
138fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nSize;                      /**< size of the structure in bytes, including
139fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                                             actual URI name */
140fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_VERSIONTYPE nVersion;           /**< OMX specification version information */
141fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 contentURI[1];               /**< The URI name */
142fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_PARAM_CONTENTURITYPE;
143fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
144fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* Parameter specifying the pipe to use. */
145fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** @ingroup cp */
146fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_PARAM_CONTENTPIPETYPE
147fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
148fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nSize;              /**< size of the structure in bytes */
149fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
150fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_HANDLETYPE hPipe;       /**< The pipe handle*/
151fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_PARAM_CONTENTPIPETYPE;
152fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
153fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** @ingroup rpm */
154fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_RESOURCECONCEALMENTTYPE {
155fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nSize;             /**< size of the structure in bytes */
156fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_VERSIONTYPE nVersion;  /**< OMX specification version information */
157fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bResourceConcealmentForbidden; /**< disallow the use of resource concealment
158fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                                            methods (like degrading algorithm quality to
159fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                                            lower resource consumption or functional bypass)
160fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                                            on a component as a resolution to resource conflicts. */
161fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_RESOURCECONCEALMENTTYPE;
162fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
163fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
164fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** @ingroup metadata */
165fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_METADATACHARSETTYPE {
166fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetUnknown = 0,
167fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetASCII,
168fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetBinary,
169fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetCodePage1252,
170fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetUTF8,
171fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetJavaConformantUTF8,
172fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetUTF7,
173fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetImapUTF7,
174fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetUTF16LE,
175fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetUTF16BE,
176fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetGB12345,
177fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetHZGB2312,
178fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetGB2312,
179fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetGB18030,
180fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetGBK,
181fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetBig5,
182fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetISO88591,
183fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetISO88592,
184fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetISO88593,
185fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetISO88594,
186fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetISO88595,
187fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetISO88596,
188fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetISO88597,
189fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetISO88598,
190fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetISO88599,
191fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetISO885910,
192fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetISO885913,
193fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetISO885914,
194fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetISO885915,
195fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetShiftJIS,
196fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetISO2022JP,
197fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetISO2022JP1,
198fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetISOEUCJP,
199fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetSMS7Bit,
200fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
201fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
202fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataCharsetTypeMax= 0x7FFFFFFF
203fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_METADATACHARSETTYPE;
204fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
205fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** @ingroup metadata */
206fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_METADATASCOPETYPE
207fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
208fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataScopeAllLevels,
209fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataScopeTopLevel,
210fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataScopePortLevel,
211fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataScopeNodeLevel,
212fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataScopeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
213fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataScopeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
214fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataScopeTypeMax = 0x7fffffff
215fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_METADATASCOPETYPE;
216fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
217fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** @ingroup metadata */
218fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_METADATASEARCHMODETYPE
219fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
220fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataSearchValueSizeByIndex,
221fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataSearchItemByIndex,
222fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataSearchNextItemByKey,
223fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataSearchKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
224fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataSearchVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
225fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_MetadataSearchTypeMax = 0x7fffffff
226fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_METADATASEARCHMODETYPE;
227fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** @ingroup metadata */
228fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_CONFIG_METADATAITEMCOUNTTYPE
229fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
230fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nSize;
231fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_VERSIONTYPE nVersion;
232fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_METADATASCOPETYPE eScopeMode;
233fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nScopeSpecifier;
234fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nMetadataItemCount;
235fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_CONFIG_METADATAITEMCOUNTTYPE;
236fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
237fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** @ingroup metadata */
238fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_CONFIG_METADATAITEMTYPE
239fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
240fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nSize;
241fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_VERSIONTYPE nVersion;
242fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_METADATASCOPETYPE eScopeMode;
243fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nScopeSpecifier;
244fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nMetadataItemIndex;
245fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_METADATASEARCHMODETYPE eSearchMode;
246fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_METADATACHARSETTYPE eKeyCharset;
247fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 nKeySizeUsed;
248fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 nKey[128];
249fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_METADATACHARSETTYPE eValueCharset;
250fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_STRING sLanguageCountry;
251fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nValueMaxSize;
252fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nValueSizeUsed;
253fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 nValue[1];
254fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_CONFIG_METADATAITEMTYPE;
255fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
256fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* @ingroup metadata */
257fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_CONFIG_CONTAINERNODECOUNTTYPE
258fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
259fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nSize;
260fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_VERSIONTYPE nVersion;
261fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bAllKeys;
262fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nParentNodeID;
263fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nNumNodes;
264fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_CONFIG_CONTAINERNODECOUNTTYPE;
265fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
266fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** @ingroup metadata */
267fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_CONFIG_CONTAINERNODEIDTYPE
268fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
269fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nSize;
270fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_VERSIONTYPE nVersion;
271fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bAllKeys;
272fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nParentNodeID;
273fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nNodeIndex;
274fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nNodeID;
275fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_STRING cNodeName;
276fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bIsLeafType;
277fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_CONFIG_CONTAINERNODEIDTYPE;
278fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
279fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** @ingroup metadata */
280fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_PARAM_METADATAFILTERTYPE
281fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
282fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nSize;
283fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_VERSIONTYPE nVersion;
284fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bAllKeys;	/* if true then this structure refers to all keys and
285fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                         * the three key fields below are ignored */
286fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_METADATACHARSETTYPE eKeyCharset;
287fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nKeySizeUsed;
288fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8   nKey [128];
289fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nLanguageCountrySizeUsed;
290fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U8 nLanguageCountry[128];
291fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_BOOL bEnabled;	/* if true then key is part of filter (e.g.
292fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                         * retained for query later). If false then
293fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin                         * key is not part of filter */
294fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_PARAM_METADATAFILTERTYPE;
295fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
296fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** The OMX_HANDLETYPE structure defines the component handle.  The component
297fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  handle is used to access all of the component's public methods and also
298fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  contains pointers to the component's private data area.  The component
299fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  handle is initialized by the OMX core (with help from the component)
300fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  during the process of loading the component.  After the component is
301fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  successfully loaded, the application can safely access any of the
302fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  component's public functions (although some may return an error because
303fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  the state is inappropriate for the access).
304fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *
305fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin *  @ingroup comp
306fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */
307fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_COMPONENTTYPE
308fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin{
309fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** The size of this structure, in bytes.  It is the responsibility
310fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        of the allocator of this structure to fill in this value.  Since
311fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        this structure is allocated by the GetHandle function, this
312fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        function will fill in this value. */
313fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_U32 nSize;
314fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
315fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** nVersion is the version of the OMX specification that the structure
316fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        is built against.  It is the responsibility of the creator of this
317fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        structure to initialize this value and every user of this structure
318fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        should verify that it knows how to use the exact version of
319fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        this structure found herein. */
320fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_VERSIONTYPE nVersion;
321fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
322fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** pComponentPrivate is a pointer to the component private data area.
323fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        This member is allocated and initialized by the component when the
324fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        component is first loaded.  The application should not access this
325fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        data area. */
326fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PTR pComponentPrivate;
327fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
328fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** pApplicationPrivate is a pointer that is a parameter to the
329fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_GetHandle method, and contains an application private value
330fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        provided by the IL client.  This application private data is
331fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        returned to the IL Client by OMX in all callbacks */
332fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_PTR pApplicationPrivate;
333fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
334fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** refer to OMX_GetComponentVersion in OMX_core.h or the OMX IL
335fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        specification for details on the GetComponentVersion method.
336fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin     */
337fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_ERRORTYPE (*GetComponentVersion)(
338fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_HANDLETYPE hComponent,
339fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_OUT OMX_STRING pComponentName,
340fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_OUT OMX_VERSIONTYPE* pComponentVersion,
341fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_OUT OMX_VERSIONTYPE* pSpecVersion,
342fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_OUT OMX_UUIDTYPE* pComponentUUID);
343fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
344fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** refer to OMX_SendCommand in OMX_core.h or the OMX IL
345fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        specification for details on the SendCommand method.
346fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin     */
347fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_ERRORTYPE (*SendCommand)(
348fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_HANDLETYPE hComponent,
349fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_COMMANDTYPE Cmd,
350fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_U32 nParam1,
351fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_PTR pCmdData);
352fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
353fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** refer to OMX_GetParameter in OMX_core.h or the OMX IL
354fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        specification for details on the GetParameter method.
355fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin     */
356fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_ERRORTYPE (*GetParameter)(
357fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_HANDLETYPE hComponent,
358fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_INDEXTYPE nParamIndex,
359fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_INOUT OMX_PTR pComponentParameterStructure);
360fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
361fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
362fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** refer to OMX_SetParameter in OMX_core.h or the OMX IL
363fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        specification for details on the SetParameter method.
364fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin     */
365fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_ERRORTYPE (*SetParameter)(
366fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_HANDLETYPE hComponent,
367fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_INDEXTYPE nIndex,
368fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_PTR pComponentParameterStructure);
369fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
370fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
371fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** refer to OMX_GetConfig in OMX_core.h or the OMX IL
372fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        specification for details on the GetConfig method.
373fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin     */
374fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_ERRORTYPE (*GetConfig)(
375fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_HANDLETYPE hComponent,
376fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_INDEXTYPE nIndex,
377fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_INOUT OMX_PTR pComponentConfigStructure);
378fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
379fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
380fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** refer to OMX_SetConfig in OMX_core.h or the OMX IL
381fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        specification for details on the SetConfig method.
382fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin     */
383fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_ERRORTYPE (*SetConfig)(
384fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_HANDLETYPE hComponent,
385fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_INDEXTYPE nIndex,
386fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_PTR pComponentConfigStructure);
387fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
388fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
389fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** refer to OMX_GetExtensionIndex in OMX_core.h or the OMX IL
390fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        specification for details on the GetExtensionIndex method.
391fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin     */
392fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_ERRORTYPE (*GetExtensionIndex)(
393fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_HANDLETYPE hComponent,
394fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_STRING cParameterName,
395fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_OUT OMX_INDEXTYPE* pIndexType);
396fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
397fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
398fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** refer to OMX_GetState in OMX_core.h or the OMX IL
399fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        specification for details on the GetState method.
400fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin     */
401fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_ERRORTYPE (*GetState)(
402fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_HANDLETYPE hComponent,
403fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_OUT OMX_STATETYPE* pState);
404fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
405fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
406fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** The ComponentTunnelRequest method will interact with another OMX
407fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        component to determine if tunneling is possible and to setup the
408fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        tunneling.  The return codes for this method can be used to
409fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        determine if tunneling is not possible, or if tunneling is not
410fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        supported.
411fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
412fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        Base profile components (i.e. non-interop) do not support this
413fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        method and should return OMX_ErrorNotImplemented
414fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
415fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        The interop profile component MUST support tunneling to another
416fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        interop profile component with a compatible port parameters.
417fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        A component may also support proprietary communication.
418fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
419fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        If proprietary communication is supported the negotiation of
420fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        proprietary communication is done outside of OMX in a vendor
421fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        specific way. It is only required that the proper result be
422fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        returned and the details of how the setup is done is left
423fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        to the component implementation.
424fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
425fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        When this method is invoked when nPort in an output port, the
426fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        component will:
427fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        1.  Populate the pTunnelSetup structure with the output port's
428fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            requirements and constraints for the tunnel.
429fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
430fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        When this method is invoked when nPort in an input port, the
431fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        component will:
432fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        1.  Query the necessary parameters from the output port to
433fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            determine if the ports are compatible for tunneling
434fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        2.  If the ports are compatible, the component should store
435fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            the tunnel step provided by the output port
436fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        3.  Determine which port (either input or output) is the buffer
437fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            supplier, and call OMX_SetParameter on the output port to
438fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            indicate this selection.
439fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
440fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        The component will return from this call within 5 msec.
441fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
442fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        @param [in] hComp
443fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            Handle of the component to be accessed.  This is the component
444fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            handle returned by the call to the OMX_GetHandle method.
445fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        @param [in] nPort
446fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            nPort is used to select the port on the component to be used
447fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            for tunneling.
448fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        @param [in] hTunneledComp
449fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            Handle of the component to tunnel with.  This is the component
450fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            handle returned by the call to the OMX_GetHandle method.  When
451fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            this parameter is 0x0 the component should setup the port for
452fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            communication with the application / IL Client.
453fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        @param [in] nPortOutput
454fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            nPortOutput is used indicate the port the component should
455fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            tunnel with.
456fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        @param [in] pTunnelSetup
457fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            Pointer to the tunnel setup structure.  When nPort is an output port
458fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            the component should populate the fields of this structure.  When
459fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            When nPort is an input port the component should review the setup
460fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            provided by the component with the output port.
461fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        @return OMX_ERRORTYPE
462fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            If the command successfully executes, the return code will be
463fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
464fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        @ingroup tun
465fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    */
466fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
467fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_ERRORTYPE (*ComponentTunnelRequest)(
468fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_IN  OMX_HANDLETYPE hComp,
469fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_IN  OMX_U32 nPort,
470fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_IN  OMX_HANDLETYPE hTunneledComp,
471fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_IN  OMX_U32 nTunneledPort,
472fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_INOUT  OMX_TUNNELSETUPTYPE* pTunnelSetup);
473fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
474fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** refer to OMX_UseBuffer in OMX_core.h or the OMX IL
475fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        specification for details on the UseBuffer method.
476fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        @ingroup buf
477fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin     */
478fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_ERRORTYPE (*UseBuffer)(
479fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN OMX_HANDLETYPE hComponent,
480fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr,
481fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN OMX_U32 nPortIndex,
482fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN OMX_PTR pAppPrivate,
483fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN OMX_U32 nSizeBytes,
484fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN OMX_U8* pBuffer);
485fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
486fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** refer to OMX_AllocateBuffer in OMX_core.h or the OMX IL
487fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        specification for details on the AllocateBuffer method.
488fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        @ingroup buf
489fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin     */
490fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_ERRORTYPE (*AllocateBuffer)(
491fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN OMX_HANDLETYPE hComponent,
492fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_INOUT OMX_BUFFERHEADERTYPE** ppBuffer,
493fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN OMX_U32 nPortIndex,
494fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN OMX_PTR pAppPrivate,
495fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN OMX_U32 nSizeBytes);
496fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
497fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** refer to OMX_FreeBuffer in OMX_core.h or the OMX IL
498fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        specification for details on the FreeBuffer method.
499fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        @ingroup buf
500fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin     */
501fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_ERRORTYPE (*FreeBuffer)(
502fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_HANDLETYPE hComponent,
503fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_U32 nPortIndex,
504fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_BUFFERHEADERTYPE* pBuffer);
505fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
506fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** refer to OMX_EmptyThisBuffer in OMX_core.h or the OMX IL
507fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        specification for details on the EmptyThisBuffer method.
508fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        @ingroup buf
509fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin     */
510fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_ERRORTYPE (*EmptyThisBuffer)(
511fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_HANDLETYPE hComponent,
512fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_BUFFERHEADERTYPE* pBuffer);
513fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
514fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** refer to OMX_FillThisBuffer in OMX_core.h or the OMX IL
515fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        specification for details on the FillThisBuffer method.
516fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        @ingroup buf
517fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin     */
518fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_ERRORTYPE (*FillThisBuffer)(
519fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_HANDLETYPE hComponent,
520fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_BUFFERHEADERTYPE* pBuffer);
521fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
522fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** The SetCallbacks method is used by the core to specify the callback
523fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        structure from the application to the component.  This is a blocking
524fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        call.  The component will return from this call within 5 msec.
525fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        @param [in] hComponent
526fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            Handle of the component to be accessed.  This is the component
527fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            handle returned by the call to the GetHandle function.
528fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        @param [in] pCallbacks
529fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            pointer to an OMX_CALLBACKTYPE structure used to provide the
530fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            callback information to the component
531fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        @param [in] pAppData
532fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            pointer to an application defined value.  It is anticipated that
533fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            the application will pass a pointer to a data structure or a "this
534fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            pointer" in this area to allow the callback (in the application)
535fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            to determine the context of the call
536fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        @return OMX_ERRORTYPE
537fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            If the command successfully executes, the return code will be
538fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
539fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin     */
540fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_ERRORTYPE (*SetCallbacks)(
541fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_HANDLETYPE hComponent,
542fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_CALLBACKTYPE* pCallbacks,
543fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_PTR pAppData);
544fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
545fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** ComponentDeInit method is used to deinitialize the component
546fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        providing a means to free any resources allocated at component
547fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        initialization.  NOTE:  After this call the component handle is
548fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        not valid for further use.
549fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        @param [in] hComponent
550fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            Handle of the component to be accessed.  This is the component
551fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            handle returned by the call to the GetHandle function.
552fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        @return OMX_ERRORTYPE
553fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            If the command successfully executes, the return code will be
554fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_ErrorNone.  Otherwise the appropriate OMX error will be returned.
555fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin     */
556fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_ERRORTYPE (*ComponentDeInit)(
557fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN  OMX_HANDLETYPE hComponent);
558fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
559fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    /** @ingroup buf */
560fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_ERRORTYPE (*UseEGLImage)(
561fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN OMX_HANDLETYPE hComponent,
562fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr,
563fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN OMX_U32 nPortIndex,
564fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN OMX_PTR pAppPrivate,
565fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin            OMX_IN void* eglImage);
566fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
567fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin    OMX_ERRORTYPE (*ComponentRoleEnum)(
568fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin        OMX_IN OMX_HANDLETYPE hComponent,
569fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin		OMX_OUT OMX_U8 *cRole,
570fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin		OMX_IN OMX_U32 nIndex);
571fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
572fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_COMPONENTTYPE;
573fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
574fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef __cplusplus
575fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin}
576fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif /* __cplusplus */
577fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin
578fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif
579fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* File EOF */
580