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 <openmax/il/khronos/v1_x/OMX_Audio.h> |
|
45 #include <openmax/il/khronos/v1_x/OMX_Video.h> |
|
46 #include <openmax/il/khronos/v1_x/OMX_Image.h> |
|
47 #include <openmax/il/khronos/v1_x/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 introducing Khronos Standard Extensions */ |
|
56 OMX_PortDomainVendorStartUnused = 0x7F000000, /**< Reserved region for introducing 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 on 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 for this channel */ |
|
69 OMX_BOOL bEnabled; /**< Ports default to enabled and are enabled/disabled by |
|
70 OMX_CommandPortEnable/OMX_CommandPortDisable. |
|
71 When disabled a port is unpopulated. A disabled port |
|
72 is not populated with buffers on a transition to IDLE. */ |
|
73 OMX_BOOL bPopulated; /**< Port is populated with all of its buffers as indicated by |
|
74 nBufferCountActual. A disabled port is always unpopulated. |
|
75 An enabled port is populated on a transition to OMX_StateIdle |
|
76 and unpopulated on a transition to loaded. */ |
|
77 OMX_PORTDOMAINTYPE eDomain; /**< Domain of the port. Determines the contents 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 introducing 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 introducing Khronos Standard Extensions */ |
|
117 OMX_SuspensionVendorStartUnused = 0x7F000000, /**< Reserved region for introducing 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, including |
|
139 actual URI name */ |
|
140 OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ |
|
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 concealment |
|
158 methods (like degrading algorithm quality to |
|
159 lower resource consumption or functional bypass) |
|
160 on a component as a resolution to resource 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 introducing Khronos Standard Extensions */ |
|
213 OMX_MetadataScopeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing 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 introducing Khronos Standard Extensions */ |
|
224 OMX_MetadataSearchVendorStartUnused = 0x7F000000, /**< Reserved region for introducing 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 */ |
|