|
OpenMAXBellagio 0.9.3
|
00001 /* 00002 * Copyright (c) 2008 The Khronos Group Inc. 00003 * 00004 * Permission is hereby granted, free of charge, to any person obtaining 00005 * a copy of this software and associated documentation files (the 00006 * "Software"), to deal in the Software without restriction, including 00007 * without limitation the rights to use, copy, modify, merge, publish, 00008 * distribute, sublicense, and/or sell copies of the Software, and to 00009 * permit persons to whom the Software is furnished to do so, subject 00010 * to the following conditions: 00011 * The above copyright notice and this permission notice shall be included 00012 * in all copies or substantial portions of the Software. 00013 * 00014 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 00015 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00016 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 00017 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 00018 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 00019 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 00020 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 00021 * 00022 */ 00023 00029 #ifndef OMX_Other_h 00030 #define OMX_Other_h 00031 00032 #ifdef __cplusplus 00033 extern "C" { 00034 #endif /* __cplusplus */ 00035 00036 00037 /* Each OMX header must include all required header files to allow the 00038 * header to compile without errors. The includes below are required 00039 * for this header file to compile successfully 00040 */ 00041 00042 #include <OMX_Core.h> 00043 00044 00050 typedef enum OMX_OTHER_FORMATTYPE { 00051 OMX_OTHER_FormatTime = 0, 00053 OMX_OTHER_FormatPower, 00055 OMX_OTHER_FormatStats, 00057 OMX_OTHER_FormatBinary, 00058 OMX_OTHER_FormatVendorReserved = 1000, 00061 OMX_OTHER_FormatKhronosExtensions = 0x6F000000, 00062 OMX_OTHER_FormatVendorStartUnused = 0x7F000000, 00063 OMX_OTHER_FormatMax = 0x7FFFFFFF 00064 } OMX_OTHER_FORMATTYPE; 00065 00069 typedef enum OMX_TIME_SEEKMODETYPE { 00070 OMX_TIME_SeekModeFast = 0, 00074 OMX_TIME_SeekModeAccurate, 00078 OMX_TIME_SeekModeKhronosExtensions = 0x6F000000, 00079 OMX_TIME_SeekModeVendorStartUnused = 0x7F000000, 00080 OMX_TIME_SeekModeMax = 0x7FFFFFFF 00081 } OMX_TIME_SEEKMODETYPE; 00082 00083 /* Structure representing the seekmode of the component */ 00084 typedef struct OMX_TIME_CONFIG_SEEKMODETYPE { 00085 OMX_U32 nSize; 00086 OMX_VERSIONTYPE nVersion; 00087 OMX_TIME_SEEKMODETYPE eType; 00088 } OMX_TIME_CONFIG_SEEKMODETYPE; 00089 00112 typedef struct OMX_TIME_CONFIG_TIMESTAMPTYPE { 00113 OMX_U32 nSize; 00114 OMX_VERSIONTYPE nVersion; 00116 OMX_U32 nPortIndex; 00117 OMX_TICKS nTimestamp; 00118 } OMX_TIME_CONFIG_TIMESTAMPTYPE; 00119 00121 typedef enum OMX_TIME_UPDATETYPE { 00122 OMX_TIME_UpdateRequestFulfillment, 00123 OMX_TIME_UpdateScaleChanged, 00124 OMX_TIME_UpdateClockStateChanged, 00125 OMX_TIME_UpdateKhronosExtensions = 0x6F000000, 00126 OMX_TIME_UpdateVendorStartUnused = 0x7F000000, 00127 OMX_TIME_UpdateMax = 0x7FFFFFFF 00128 } OMX_TIME_UPDATETYPE; 00129 00131 typedef enum OMX_TIME_REFCLOCKTYPE { 00132 OMX_TIME_RefClockNone, 00133 OMX_TIME_RefClockAudio, 00134 OMX_TIME_RefClockVideo, 00135 OMX_TIME_RefClockKhronosExtensions = 0x6F000000, 00136 OMX_TIME_RefClockVendorStartUnused = 0x7F000000, 00137 OMX_TIME_RefClockMax = 0x7FFFFFFF 00138 } OMX_TIME_REFCLOCKTYPE; 00139 00141 typedef enum OMX_TIME_CLOCKSTATE { 00142 OMX_TIME_ClockStateRunning, 00143 OMX_TIME_ClockStateWaitingForStartTime, 00146 OMX_TIME_ClockStateStopped, 00147 OMX_TIME_ClockStateKhronosExtensions = 0x6F000000, 00148 OMX_TIME_ClockStateVendorStartUnused = 0x7F000000, 00149 OMX_TIME_ClockStateMax = 0x7FFFFFFF 00150 } OMX_TIME_CLOCKSTATE; 00151 00175 typedef struct OMX_TIME_CONFIG_MEDIATIMEREQUESTTYPE { 00176 OMX_U32 nSize; 00177 OMX_VERSIONTYPE nVersion; 00178 OMX_U32 nPortIndex; 00179 OMX_PTR pClientPrivate; 00184 OMX_TICKS nMediaTimestamp; 00185 OMX_TICKS nOffset; 00187 } OMX_TIME_CONFIG_MEDIATIMEREQUESTTYPE; 00188 00216 typedef struct OMX_TIME_MEDIATIMETYPE { 00217 OMX_U32 nSize; 00218 OMX_VERSIONTYPE nVersion; 00219 OMX_U32 nClientPrivate; 00222 OMX_TIME_UPDATETYPE eUpdateType; 00223 OMX_TICKS nMediaTimestamp; 00225 OMX_TICKS nOffset; 00228 OMX_TICKS nWallTimeAtMediaTime; 00233 OMX_S32 xScale; 00234 OMX_TIME_CLOCKSTATE eState; /* Seeking Change. Added 7/12.*/ 00236 } OMX_TIME_MEDIATIMETYPE; 00237 00243 typedef struct OMX_TIME_CONFIG_SCALETYPE { 00244 OMX_U32 nSize; 00245 OMX_VERSIONTYPE nVersion; 00246 OMX_S32 xScale; 00248 } OMX_TIME_CONFIG_SCALETYPE; 00249 00251 #define OMX_CLOCKPORT0 0x00000001 00252 #define OMX_CLOCKPORT1 0x00000002 00253 #define OMX_CLOCKPORT2 0x00000004 00254 #define OMX_CLOCKPORT3 0x00000008 00255 #define OMX_CLOCKPORT4 0x00000010 00256 #define OMX_CLOCKPORT5 0x00000020 00257 #define OMX_CLOCKPORT6 0x00000040 00258 #define OMX_CLOCKPORT7 0x00000080 00259 00272 typedef struct OMX_TIME_CONFIG_CLOCKSTATETYPE { 00273 OMX_U32 nSize; 00274 OMX_VERSIONTYPE nVersion; 00276 OMX_TIME_CLOCKSTATE eState; 00277 OMX_TICKS nStartTime; 00278 OMX_TICKS nOffset; 00282 OMX_U32 nWaitMask; 00283 } OMX_TIME_CONFIG_CLOCKSTATETYPE; 00284 00288 typedef struct OMX_TIME_CONFIG_ACTIVEREFCLOCKTYPE { 00289 OMX_U32 nSize; 00290 OMX_VERSIONTYPE nVersion; 00291 OMX_TIME_REFCLOCKTYPE eClock; 00292 } OMX_TIME_CONFIG_ACTIVEREFCLOCKTYPE; 00293 00296 typedef struct OMX_OTHER_CONFIG_POWERTYPE { 00297 OMX_U32 nSize; 00298 OMX_VERSIONTYPE nVersion; 00299 OMX_BOOL bEnablePM; 00300 } OMX_OTHER_CONFIG_POWERTYPE; 00301 00302 00305 typedef struct OMX_OTHER_CONFIG_STATSTYPE { 00306 OMX_U32 nSize; 00307 OMX_VERSIONTYPE nVersion; 00308 /* what goes here */ 00309 } OMX_OTHER_CONFIG_STATSTYPE; 00310 00311 00317 typedef struct OMX_OTHER_PORTDEFINITIONTYPE { 00318 OMX_OTHER_FORMATTYPE eFormat; 00319 } OMX_OTHER_PORTDEFINITIONTYPE; 00320 00324 typedef struct OMX_OTHER_PARAM_PORTFORMATTYPE { 00325 OMX_U32 nSize; 00326 OMX_VERSIONTYPE nVersion; 00327 OMX_U32 nPortIndex; 00328 OMX_U32 nIndex; 00329 OMX_OTHER_FORMATTYPE eFormat; 00330 } OMX_OTHER_PARAM_PORTFORMATTYPE; 00331 00332 #ifdef __cplusplus 00333 } 00334 #endif /* __cplusplus */ 00335 00336 #endif 00337 /* File EOF */