OpenMAXBellagio 0.9.3
OMX_Other.h
Go to the documentation of this file.
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 */