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