00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef OMX_Component_h
00031 #define OMX_Component_h
00032
00033 #ifdef __cplusplus
00034 extern "C" {
00035 #endif
00036
00037
00038
00039
00040
00041
00042
00043
00044 #include <OMX_Audio.h>
00045 #include <OMX_Video.h>
00046 #include <OMX_Image.h>
00047 #include <OMX_Other.h>
00048
00049
00050 typedef enum OMX_PORTDOMAINTYPE {
00051 OMX_PortDomainAudio,
00052 OMX_PortDomainVideo,
00053 OMX_PortDomainImage,
00054 OMX_PortDomainOther,
00055 OMX_PortDomainKhronosExtensions = 0x6F000000,
00056 OMX_PortDomainVendorStartUnused = 0x7F000000,
00057 OMX_PortDomainMax = 0x7ffffff
00058 } OMX_PORTDOMAINTYPE;
00059
00060
00061 typedef struct OMX_PARAM_PORTDEFINITIONTYPE {
00062 OMX_U32 nSize;
00063 OMX_VERSIONTYPE nVersion;
00064 OMX_U32 nPortIndex;
00065 OMX_DIRTYPE eDir;
00066 OMX_U32 nBufferCountActual;
00067 OMX_U32 nBufferCountMin;
00068 OMX_U32 nBufferSize;
00069 OMX_BOOL bEnabled;
00070
00071
00072
00073 OMX_BOOL bPopulated;
00074
00075
00076
00077 OMX_PORTDOMAINTYPE eDomain;
00078 union {
00079 OMX_AUDIO_PORTDEFINITIONTYPE audio;
00080 OMX_VIDEO_PORTDEFINITIONTYPE video;
00081 OMX_IMAGE_PORTDEFINITIONTYPE image;
00082 OMX_OTHER_PORTDEFINITIONTYPE other;
00083 } format;
00084 OMX_BOOL bBuffersContiguous;
00085 OMX_U32 nBufferAlignment;
00086 } OMX_PARAM_PORTDEFINITIONTYPE;
00087
00088
00089 typedef struct OMX_PARAM_U32TYPE {
00090 OMX_U32 nSize;
00091 OMX_VERSIONTYPE nVersion;
00092 OMX_U32 nPortIndex;
00093 OMX_U32 nU32;
00094 } OMX_PARAM_U32TYPE;
00095
00096
00097 typedef enum OMX_SUSPENSIONPOLICYTYPE {
00098 OMX_SuspensionDisabled,
00099 OMX_SuspensionEnabled,
00100 OMX_SuspensionPolicyKhronosExtensions = 0x6F000000,
00101 OMX_SuspensionPolicyStartUnused = 0x7F000000,
00102 OMX_SuspensionPolicyMax = 0x7fffffff
00103 } OMX_SUSPENSIONPOLICYTYPE;
00104
00105
00106 typedef struct OMX_PARAM_SUSPENSIONPOLICYTYPE {
00107 OMX_U32 nSize;
00108 OMX_VERSIONTYPE nVersion;
00109 OMX_SUSPENSIONPOLICYTYPE ePolicy;
00110 } OMX_PARAM_SUSPENSIONPOLICYTYPE;
00111
00112
00113 typedef enum OMX_SUSPENSIONTYPE {
00114 OMX_NotSuspended,
00115 OMX_Suspended,
00116 OMX_SuspensionKhronosExtensions = 0x6F000000,
00117 OMX_SuspensionVendorStartUnused = 0x7F000000,
00118 OMX_SuspendMax = 0x7FFFFFFF
00119 } OMX_SUSPENSIONTYPE;
00120
00121
00122 typedef struct OMX_PARAM_SUSPENSIONTYPE {
00123 OMX_U32 nSize;
00124 OMX_VERSIONTYPE nVersion;
00125 OMX_SUSPENSIONTYPE eType;
00126 } OMX_PARAM_SUSPENSIONTYPE ;
00127
00128 typedef struct OMX_CONFIG_BOOLEANTYPE {
00129 OMX_U32 nSize;
00130 OMX_VERSIONTYPE nVersion;
00131 OMX_BOOL bEnabled;
00132 } OMX_CONFIG_BOOLEANTYPE;
00133
00134
00135
00136 typedef struct OMX_PARAM_CONTENTURITYPE
00137 {
00138 OMX_U32 nSize;
00139
00140 OMX_VERSIONTYPE nVersion;
00141 OMX_U8 contentURI[1];
00142 } OMX_PARAM_CONTENTURITYPE;
00143
00144
00145
00146 typedef struct OMX_PARAM_CONTENTPIPETYPE
00147 {
00148 OMX_U32 nSize;
00149 OMX_VERSIONTYPE nVersion;
00150 OMX_HANDLETYPE hPipe;
00151 } OMX_PARAM_CONTENTPIPETYPE;
00152
00153
00154 typedef struct OMX_RESOURCECONCEALMENTTYPE {
00155 OMX_U32 nSize;
00156 OMX_VERSIONTYPE nVersion;
00157 OMX_BOOL bResourceConcealmentForbidden;
00158
00159
00160
00161 } OMX_RESOURCECONCEALMENTTYPE;
00162
00163
00164
00165 typedef enum OMX_METADATACHARSETTYPE {
00166 OMX_MetadataCharsetUnknown = 0,
00167 OMX_MetadataCharsetASCII,
00168 OMX_MetadataCharsetBinary,
00169 OMX_MetadataCharsetCodePage1252,
00170 OMX_MetadataCharsetUTF8,
00171 OMX_MetadataCharsetJavaConformantUTF8,
00172 OMX_MetadataCharsetUTF7,
00173 OMX_MetadataCharsetImapUTF7,
00174 OMX_MetadataCharsetUTF16LE,
00175 OMX_MetadataCharsetUTF16BE,
00176 OMX_MetadataCharsetGB12345,
00177 OMX_MetadataCharsetHZGB2312,
00178 OMX_MetadataCharsetGB2312,
00179 OMX_MetadataCharsetGB18030,
00180 OMX_MetadataCharsetGBK,
00181 OMX_MetadataCharsetBig5,
00182 OMX_MetadataCharsetISO88591,
00183 OMX_MetadataCharsetISO88592,
00184 OMX_MetadataCharsetISO88593,
00185 OMX_MetadataCharsetISO88594,
00186 OMX_MetadataCharsetISO88595,
00187 OMX_MetadataCharsetISO88596,
00188 OMX_MetadataCharsetISO88597,
00189 OMX_MetadataCharsetISO88598,
00190 OMX_MetadataCharsetISO88599,
00191 OMX_MetadataCharsetISO885910,
00192 OMX_MetadataCharsetISO885913,
00193 OMX_MetadataCharsetISO885914,
00194 OMX_MetadataCharsetISO885915,
00195 OMX_MetadataCharsetShiftJIS,
00196 OMX_MetadataCharsetISO2022JP,
00197 OMX_MetadataCharsetISO2022JP1,
00198 OMX_MetadataCharsetISOEUCJP,
00199 OMX_MetadataCharsetSMS7Bit,
00200 OMX_MetadataCharsetKhronosExtensions = 0x6F000000,
00201 OMX_MetadataCharsetVendorStartUnused = 0x7F000000,
00202 OMX_MetadataCharsetTypeMax= 0x7FFFFFFF
00203 } OMX_METADATACHARSETTYPE;
00204
00205
00206 typedef enum OMX_METADATASCOPETYPE
00207 {
00208 OMX_MetadataScopeAllLevels,
00209 OMX_MetadataScopeTopLevel,
00210 OMX_MetadataScopePortLevel,
00211 OMX_MetadataScopeNodeLevel,
00212 OMX_MetadataScopeKhronosExtensions = 0x6F000000,
00213 OMX_MetadataScopeVendorStartUnused = 0x7F000000,
00214 OMX_MetadataScopeTypeMax = 0x7fffffff
00215 } OMX_METADATASCOPETYPE;
00216
00217
00218 typedef enum OMX_METADATASEARCHMODETYPE
00219 {
00220 OMX_MetadataSearchValueSizeByIndex,
00221 OMX_MetadataSearchItemByIndex,
00222 OMX_MetadataSearchNextItemByKey,
00223 OMX_MetadataSearchKhronosExtensions = 0x6F000000,
00224 OMX_MetadataSearchVendorStartUnused = 0x7F000000,
00225 OMX_MetadataSearchTypeMax = 0x7fffffff
00226 } OMX_METADATASEARCHMODETYPE;
00227
00228 typedef struct OMX_CONFIG_METADATAITEMCOUNTTYPE
00229 {
00230 OMX_U32 nSize;
00231 OMX_VERSIONTYPE nVersion;
00232 OMX_METADATASCOPETYPE eScopeMode;
00233 OMX_U32 nScopeSpecifier;
00234 OMX_U32 nMetadataItemCount;
00235 } OMX_CONFIG_METADATAITEMCOUNTTYPE;
00236
00237
00238 typedef struct OMX_CONFIG_METADATAITEMTYPE
00239 {
00240 OMX_U32 nSize;
00241 OMX_VERSIONTYPE nVersion;
00242 OMX_METADATASCOPETYPE eScopeMode;
00243 OMX_U32 nScopeSpecifier;
00244 OMX_U32 nMetadataItemIndex;
00245 OMX_METADATASEARCHMODETYPE eSearchMode;
00246 OMX_METADATACHARSETTYPE eKeyCharset;
00247 OMX_U8 nKeySizeUsed;
00248 OMX_U8 nKey[128];
00249 OMX_METADATACHARSETTYPE eValueCharset;
00250 OMX_STRING sLanguageCountry;
00251 OMX_U32 nValueMaxSize;
00252 OMX_U32 nValueSizeUsed;
00253 OMX_U8 nValue[1];
00254 } OMX_CONFIG_METADATAITEMTYPE;
00255
00256
00257 typedef struct OMX_CONFIG_CONTAINERNODECOUNTTYPE
00258 {
00259 OMX_U32 nSize;
00260 OMX_VERSIONTYPE nVersion;
00261 OMX_BOOL bAllKeys;
00262 OMX_U32 nParentNodeID;
00263 OMX_U32 nNumNodes;
00264 } OMX_CONFIG_CONTAINERNODECOUNTTYPE;
00265
00266
00267 typedef struct OMX_CONFIG_CONTAINERNODEIDTYPE
00268 {
00269 OMX_U32 nSize;
00270 OMX_VERSIONTYPE nVersion;
00271 OMX_BOOL bAllKeys;
00272 OMX_U32 nParentNodeID;
00273 OMX_U32 nNodeIndex;
00274 OMX_U32 nNodeID;
00275 OMX_STRING cNodeName;
00276 OMX_BOOL bIsLeafType;
00277 } OMX_CONFIG_CONTAINERNODEIDTYPE;
00278
00279
00280 typedef struct OMX_PARAM_METADATAFILTERTYPE
00281 {
00282 OMX_U32 nSize;
00283 OMX_VERSIONTYPE nVersion;
00284 OMX_BOOL bAllKeys;
00285
00286 OMX_METADATACHARSETTYPE eKeyCharset;
00287 OMX_U32 nKeySizeUsed;
00288 OMX_U8 nKey [128];
00289 OMX_U32 nLanguageCountrySizeUsed;
00290 OMX_U8 nLanguageCountry[128];
00291 OMX_BOOL bEnabled;
00292
00293
00294 } OMX_PARAM_METADATAFILTERTYPE;
00295
00296
00297
00298
00299
00300
00301
00302
00303
00304
00305
00306
00307 typedef struct OMX_COMPONENTTYPE
00308 {
00309
00310
00311
00312
00313 OMX_U32 nSize;
00314
00315
00316
00317
00318
00319
00320 OMX_VERSIONTYPE nVersion;
00321
00322
00323
00324
00325
00326 OMX_PTR pComponentPrivate;
00327
00328
00329
00330
00331
00332 OMX_PTR pApplicationPrivate;
00333
00334
00335
00336
00337 OMX_ERRORTYPE (*GetComponentVersion)(
00338 OMX_IN OMX_HANDLETYPE hComponent,
00339 OMX_OUT OMX_STRING pComponentName,
00340 OMX_OUT OMX_VERSIONTYPE* pComponentVersion,
00341 OMX_OUT OMX_VERSIONTYPE* pSpecVersion,
00342 OMX_OUT OMX_UUIDTYPE* pComponentUUID);
00343
00344
00345
00346
00347 OMX_ERRORTYPE (*SendCommand)(
00348 OMX_IN OMX_HANDLETYPE hComponent,
00349 OMX_IN OMX_COMMANDTYPE Cmd,
00350 OMX_IN OMX_U32 nParam1,
00351 OMX_IN OMX_PTR pCmdData);
00352
00353
00354
00355
00356 OMX_ERRORTYPE (*GetParameter)(
00357 OMX_IN OMX_HANDLETYPE hComponent,
00358 OMX_IN OMX_INDEXTYPE nParamIndex,
00359 OMX_INOUT OMX_PTR pComponentParameterStructure);
00360
00361
00362
00363
00364
00365 OMX_ERRORTYPE (*SetParameter)(
00366 OMX_IN OMX_HANDLETYPE hComponent,
00367 OMX_IN OMX_INDEXTYPE nIndex,
00368 OMX_IN OMX_PTR pComponentParameterStructure);
00369
00370
00371
00372
00373
00374 OMX_ERRORTYPE (*GetConfig)(
00375 OMX_IN OMX_HANDLETYPE hComponent,
00376 OMX_IN OMX_INDEXTYPE nIndex,
00377 OMX_INOUT OMX_PTR pComponentConfigStructure);
00378
00379
00380
00381
00382
00383 OMX_ERRORTYPE (*SetConfig)(
00384 OMX_IN OMX_HANDLETYPE hComponent,
00385 OMX_IN OMX_INDEXTYPE nIndex,
00386 OMX_IN OMX_PTR pComponentConfigStructure);
00387
00388
00389
00390
00391
00392 OMX_ERRORTYPE (*GetExtensionIndex)(
00393 OMX_IN OMX_HANDLETYPE hComponent,
00394 OMX_IN OMX_STRING cParameterName,
00395 OMX_OUT OMX_INDEXTYPE* pIndexType);
00396
00397
00398
00399
00400
00401 OMX_ERRORTYPE (*GetState)(
00402 OMX_IN OMX_HANDLETYPE hComponent,
00403 OMX_OUT OMX_STATETYPE* pState);
00404
00405
00406
00407
00408
00409
00410
00411
00412
00413
00414
00415
00416
00417
00418
00419
00420
00421
00422
00423
00424
00425
00426
00427
00428
00429
00430
00431
00432
00433
00434
00435
00436
00437
00438
00439
00440
00441
00442
00443
00444
00445
00446
00447
00448
00449
00450
00451
00452
00453
00454
00455
00456
00457
00458
00459
00460
00461
00462
00463
00464
00465
00466
00467 OMX_ERRORTYPE (*ComponentTunnelRequest)(
00468 OMX_IN OMX_HANDLETYPE hComp,
00469 OMX_IN OMX_U32 nPort,
00470 OMX_IN OMX_HANDLETYPE hTunneledComp,
00471 OMX_IN OMX_U32 nTunneledPort,
00472 OMX_INOUT OMX_TUNNELSETUPTYPE* pTunnelSetup);
00473
00474
00475
00476
00477
00478 OMX_ERRORTYPE (*UseBuffer)(
00479 OMX_IN OMX_HANDLETYPE hComponent,
00480 OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr,
00481 OMX_IN OMX_U32 nPortIndex,
00482 OMX_IN OMX_PTR pAppPrivate,
00483 OMX_IN OMX_U32 nSizeBytes,
00484 OMX_IN OMX_U8* pBuffer);
00485
00486
00487
00488
00489
00490 OMX_ERRORTYPE (*AllocateBuffer)(
00491 OMX_IN OMX_HANDLETYPE hComponent,
00492 OMX_INOUT OMX_BUFFERHEADERTYPE** ppBuffer,
00493 OMX_IN OMX_U32 nPortIndex,
00494 OMX_IN OMX_PTR pAppPrivate,
00495 OMX_IN OMX_U32 nSizeBytes);
00496
00497
00498
00499
00500
00501 OMX_ERRORTYPE (*FreeBuffer)(
00502 OMX_IN OMX_HANDLETYPE hComponent,
00503 OMX_IN OMX_U32 nPortIndex,
00504 OMX_IN OMX_BUFFERHEADERTYPE* pBuffer);
00505
00506
00507
00508
00509
00510 OMX_ERRORTYPE (*EmptyThisBuffer)(
00511 OMX_IN OMX_HANDLETYPE hComponent,
00512 OMX_IN OMX_BUFFERHEADERTYPE* pBuffer);
00513
00514
00515
00516
00517
00518 OMX_ERRORTYPE (*FillThisBuffer)(
00519 OMX_IN OMX_HANDLETYPE hComponent,
00520 OMX_IN OMX_BUFFERHEADERTYPE* pBuffer);
00521
00522
00523
00524
00525
00526
00527
00528
00529
00530
00531
00532
00533
00534
00535
00536
00537
00538
00539
00540 OMX_ERRORTYPE (*SetCallbacks)(
00541 OMX_IN OMX_HANDLETYPE hComponent,
00542 OMX_IN OMX_CALLBACKTYPE* pCallbacks,
00543 OMX_IN OMX_PTR pAppData);
00544
00545
00546
00547
00548
00549
00550
00551
00552
00553
00554
00555
00556 OMX_ERRORTYPE (*ComponentDeInit)(
00557 OMX_IN OMX_HANDLETYPE hComponent);
00558
00559
00560 OMX_ERRORTYPE (*UseEGLImage)(
00561 OMX_IN OMX_HANDLETYPE hComponent,
00562 OMX_INOUT OMX_BUFFERHEADERTYPE** ppBufferHdr,
00563 OMX_IN OMX_U32 nPortIndex,
00564 OMX_IN OMX_PTR pAppPrivate,
00565 OMX_IN void* eglImage);
00566
00567 OMX_ERRORTYPE (*ComponentRoleEnum)(
00568 OMX_IN OMX_HANDLETYPE hComponent,
00569 OMX_OUT OMX_U8 *cRole,
00570 OMX_IN OMX_U32 nIndex);
00571
00572 } OMX_COMPONENTTYPE;
00573
00574 #ifdef __cplusplus
00575 }
00576 #endif
00577
00578 #endif
00579