OpenMAXBellagio
0.9.3
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
OMX_Component.h
Go to the documentation of this file.
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
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
50
typedef
enum
OMX_PORTDOMAINTYPE
{
51
OMX_PortDomainAudio
,
52
OMX_PortDomainVideo
,
53
OMX_PortDomainImage
,
54
OMX_PortDomainOther
,
55
OMX_PortDomainKhronosExtensions
= 0x6F000000,
56
OMX_PortDomainVendorStartUnused
= 0x7F000000,
57
OMX_PortDomainMax
= 0x7ffffff
58
}
OMX_PORTDOMAINTYPE
;
59
61
typedef
struct
OMX_PARAM_PORTDEFINITIONTYPE
{
62
OMX_U32
nSize
;
63
OMX_VERSIONTYPE
nVersion
;
64
OMX_U32
nPortIndex
;
65
OMX_DIRTYPE
eDir
;
66
OMX_U32
nBufferCountActual
;
67
OMX_U32
nBufferCountMin
;
68
OMX_U32
nBufferSize
;
69
OMX_BOOL
bEnabled
;
73
OMX_BOOL
bPopulated
;
77
OMX_PORTDOMAINTYPE
eDomain
;
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
89
typedef
struct
OMX_PARAM_U32TYPE
{
90
OMX_U32
nSize
;
91
OMX_VERSIONTYPE
nVersion
;
92
OMX_U32
nPortIndex
;
93
OMX_U32
nU32
;
94
}
OMX_PARAM_U32TYPE
;
95
97
typedef
enum
OMX_SUSPENSIONPOLICYTYPE
{
98
OMX_SuspensionDisabled
,
99
OMX_SuspensionEnabled
,
100
OMX_SuspensionPolicyKhronosExtensions
= 0x6F000000,
101
OMX_SuspensionPolicyStartUnused
= 0x7F000000,
102
OMX_SuspensionPolicyMax
= 0x7fffffff
103
}
OMX_SUSPENSIONPOLICYTYPE
;
104
106
typedef
struct
OMX_PARAM_SUSPENSIONPOLICYTYPE
{
107
OMX_U32
nSize
;
108
OMX_VERSIONTYPE
nVersion
;
109
OMX_SUSPENSIONPOLICYTYPE
ePolicy
;
110
}
OMX_PARAM_SUSPENSIONPOLICYTYPE
;
111
113
typedef
enum
OMX_SUSPENSIONTYPE
{
114
OMX_NotSuspended
,
115
OMX_Suspended
,
116
OMX_SuspensionKhronosExtensions
= 0x6F000000,
117
OMX_SuspensionVendorStartUnused
= 0x7F000000,
118
OMX_SuspendMax
= 0x7FFFFFFF
119
}
OMX_SUSPENSIONTYPE
;
120
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. */
136
typedef
struct
OMX_PARAM_CONTENTURITYPE
137
{
138
OMX_U32
nSize
;
140
OMX_VERSIONTYPE
nVersion
;
141
OMX_U8
contentURI
[1];
142
}
OMX_PARAM_CONTENTURITYPE
;
143
144
/* Parameter specifying the pipe to use. */
146
typedef
struct
OMX_PARAM_CONTENTPIPETYPE
147
{
148
OMX_U32
nSize
;
149
OMX_VERSIONTYPE
nVersion
;
150
OMX_HANDLETYPE
hPipe
;
151
}
OMX_PARAM_CONTENTPIPETYPE
;
152
154
typedef
struct
OMX_RESOURCECONCEALMENTTYPE
{
155
OMX_U32
nSize
;
156
OMX_VERSIONTYPE
nVersion
;
157
OMX_BOOL
bResourceConcealmentForbidden
;
161
}
OMX_RESOURCECONCEALMENTTYPE
;
162
163
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,
201
OMX_MetadataCharsetVendorStartUnused
= 0x7F000000,
202
OMX_MetadataCharsetTypeMax
= 0x7FFFFFFF
203
}
OMX_METADATACHARSETTYPE
;
204
206
typedef
enum
OMX_METADATASCOPETYPE
207
{
208
OMX_MetadataScopeAllLevels
,
209
OMX_MetadataScopeTopLevel
,
210
OMX_MetadataScopePortLevel
,
211
OMX_MetadataScopeNodeLevel
,
212
OMX_MetadataScopeKhronosExtensions
= 0x6F000000,
213
OMX_MetadataScopeVendorStartUnused
= 0x7F000000,
214
OMX_MetadataScopeTypeMax
= 0x7fffffff
215
}
OMX_METADATASCOPETYPE
;
216
218
typedef
enum
OMX_METADATASEARCHMODETYPE
219
{
220
OMX_MetadataSearchValueSizeByIndex
,
221
OMX_MetadataSearchItemByIndex
,
222
OMX_MetadataSearchNextItemByKey
,
223
OMX_MetadataSearchKhronosExtensions
= 0x6F000000,
224
OMX_MetadataSearchVendorStartUnused
= 0x7F000000,
225
OMX_MetadataSearchTypeMax
= 0x7fffffff
226
}
OMX_METADATASEARCHMODETYPE
;
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
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
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
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
307
typedef
struct
OMX_COMPONENTTYPE
308
{
313
OMX_U32
nSize
;
314
320
OMX_VERSIONTYPE
nVersion
;
321
326
OMX_PTR
pComponentPrivate
;
327
332
OMX_PTR
pApplicationPrivate
;
333
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
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
356
OMX_ERRORTYPE
(*
GetParameter
)(
357
OMX_IN
OMX_HANDLETYPE
hComponent,
358
OMX_IN
OMX_INDEXTYPE
nParamIndex,
359
OMX_INOUT
OMX_PTR
pComponentParameterStructure);
360
361
365
OMX_ERRORTYPE
(*
SetParameter
)(
366
OMX_IN
OMX_HANDLETYPE
hComponent,
367
OMX_IN
OMX_INDEXTYPE
nIndex,
368
OMX_IN
OMX_PTR
pComponentParameterStructure);
369
370
374
OMX_ERRORTYPE
(*
GetConfig
)(
375
OMX_IN
OMX_HANDLETYPE
hComponent,
376
OMX_IN
OMX_INDEXTYPE
nIndex,
377
OMX_INOUT
OMX_PTR
pComponentConfigStructure);
378
379
383
OMX_ERRORTYPE
(*
SetConfig
)(
384
OMX_IN
OMX_HANDLETYPE
hComponent,
385
OMX_IN
OMX_INDEXTYPE
nIndex,
386
OMX_IN
OMX_PTR
pComponentConfigStructure);
387
388
392
OMX_ERRORTYPE
(*
GetExtensionIndex
)(
393
OMX_IN
OMX_HANDLETYPE
hComponent,
394
OMX_IN
OMX_STRING
cParameterName,
395
OMX_OUT
OMX_INDEXTYPE
* pIndexType);
396
397
401
OMX_ERRORTYPE
(*
GetState
)(
402
OMX_IN
OMX_HANDLETYPE
hComponent,
403
OMX_OUT
OMX_STATETYPE
* pState);
404
405
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
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
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
501
OMX_ERRORTYPE
(*
FreeBuffer
)(
502
OMX_IN
OMX_HANDLETYPE
hComponent,
503
OMX_IN
OMX_U32
nPortIndex,
504
OMX_IN
OMX_BUFFERHEADERTYPE
* pBuffer);
505
510
OMX_ERRORTYPE
(*
EmptyThisBuffer
)(
511
OMX_IN
OMX_HANDLETYPE
hComponent,
512
OMX_IN
OMX_BUFFERHEADERTYPE
* pBuffer);
513
518
OMX_ERRORTYPE
(*
FillThisBuffer
)(
519
OMX_IN
OMX_HANDLETYPE
hComponent,
520
OMX_IN
OMX_BUFFERHEADERTYPE
* pBuffer);
521
540
OMX_ERRORTYPE
(*
SetCallbacks
)(
541
OMX_IN
OMX_HANDLETYPE
hComponent,
542
OMX_IN
OMX_CALLBACKTYPE
* pCallbacks,
543
OMX_IN
OMX_PTR
pAppData);
544
556
OMX_ERRORTYPE
(*
ComponentDeInit
)(
557
OMX_IN
OMX_HANDLETYPE
hComponent);
558
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 */
Generated for OpenMAX Bellagio rel. 0.9.3 by
1.5.1