/* Each OMX header must include all required header files to allow the *headertocompilewithouterrors.Theincludesbelowarerequired *forthisheaderfiletocompilesuccessfully
*/
#include <OMX_Core.h>
/** *Enumerationofpossibledatatypeswhichmatchtomultipledomainsorno *domainatall.Fortypeswhicharevendorspecific,avalueabove *OMX_OTHER_VENDORTSTARTshouldbeused.
*/ typedefenum OMX_OTHER_FORMATTYPE {
OMX_OTHER_FormatTime = 0, /**< Transmission of various timestamps, elapsed time,
time deltas, etc */
OMX_OTHER_FormatPower, /**< Perhaps used for enabling/disabling power
management, setting clocks? */
OMX_OTHER_FormatStats, /**< Could be things such as frame rate, frames
dropped, etc */
OMX_OTHER_FormatBinary, /**< Arbitrary binary data */
OMX_OTHER_FormatVendorReserved = 1000, /**< Starting value for vendor specific
formats */
OMX_OTHER_FormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
OMX_OTHER_FormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
OMX_OTHER_FormatMax = 0x7FFFFFFF
} OMX_OTHER_FORMATTYPE;
/** *Enumerationofseekmodes.
*/ typedefenum OMX_TIME_SEEKMODETYPE {
OMX_TIME_SeekModeFast = 0, /**< Prefer seeking to an approximation *oftherequestedseekpositionover *theactualseekpositionifit
* results in a faster seek. */
OMX_TIME_SeekModeAccurate, /**< Prefer seeking to the actual seek *positionoveranapproximation *oftherequestedseekpositioneven
* if it results in a slower seek. */
OMX_TIME_SeekModeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
OMX_TIME_SeekModeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
OMX_TIME_SeekModeMax = 0x7FFFFFFF
} OMX_TIME_SEEKMODETYPE;
/* Structure representing the seekmode of the component */ typedefstruct OMX_TIME_CONFIG_SEEKMODETYPE {
OMX_U32 nSize; /**< size of the structure in bytes */
OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
OMX_TIME_SEEKMODETYPE eType; /**< The seek mode */
} OMX_TIME_CONFIG_SEEKMODETYPE;
/** Structure representing a time stamp used with the following configs *ontheClockComponent(CC): * *OMX_IndexConfigTimeCurrentWallTime:queryoftheCC’scurrentwall *time *OMX_IndexConfigTimeCurrentMediaTime:queryoftheCC’scurrentmedia *time *OMX_IndexConfigTimeCurrentAudioReferenceand *OMX_IndexConfigTimeCurrentVideoReference:audio/videoreference *clocksendingSCitsreferencetime *OMX_IndexConfigTimeClientStartTime:aClockComponentclientsends *thisstructuretotheClockComponentviaaSetConfigonits *clientportwhenitreceivesabufferwith *OMX_BUFFERFLAG_STARTTIMEset.Itmustusethetimestamp *specifiedbythatbufferfornStartTimestamp. * *It’salsousedwiththefollowingconfigoncomponentsingeneral: * *OMX_IndexConfigTimePosition:ILclientqueryingcomponentposition *(GetConfig)orcommandingacomponenttoseektothegivenlocation *(SetConfig)
*/ typedefstruct OMX_TIME_CONFIG_TIMESTAMPTYPE {
OMX_U32 nSize; /**< size of the structure in bytes */
OMX_VERSIONTYPE nVersion; /**< OMX specification version
* information */
OMX_U32 nPortIndex; /**< port that this structure applies to */
OMX_TICKS nTimestamp; /**< timestamp .*/
} OMX_TIME_CONFIG_TIMESTAMPTYPE;
/** Enumeration of possible reference clocks to the media time. */ typedefenum OMX_TIME_UPDATETYPE {
OMX_TIME_UpdateRequestFulfillment, /**< Update is the fulfillment of a media time request. */
OMX_TIME_UpdateScaleChanged, /**< Update was generated because the scale chagned. */
OMX_TIME_UpdateClockStateChanged, /**< Update was generated because the clock state changed. */
OMX_TIME_UpdateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
OMX_TIME_UpdateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
OMX_TIME_UpdateMax = 0x7FFFFFFF
} OMX_TIME_UPDATETYPE;
/** Enumeration of possible reference clocks to the media time. */ typedefenum OMX_TIME_REFCLOCKTYPE {
OMX_TIME_RefClockNone, /**< Use no references. */
OMX_TIME_RefClockAudio, /**< Use references sent through OMX_IndexConfigTimeCurrentAudioReference */
OMX_TIME_RefClockVideo, /**< Use references sent through OMX_IndexConfigTimeCurrentVideoReference */
OMX_TIME_RefClockKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
OMX_TIME_RefClockVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
OMX_TIME_RefClockMax = 0x7FFFFFFF
} OMX_TIME_REFCLOCKTYPE;
/** Enumeration of clock states. */ typedefenum OMX_TIME_CLOCKSTATE {
OMX_TIME_ClockStateRunning, /**< Clock running. */
OMX_TIME_ClockStateWaitingForStartTime, /**< Clock waiting until the *prescribedclientsemittheir
* start time. */
OMX_TIME_ClockStateStopped, /**< Clock stopped. */
OMX_TIME_ClockStateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
OMX_TIME_ClockStateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
OMX_TIME_ClockStateMax = 0x7FFFFFFF
} OMX_TIME_CLOCKSTATE;
/** Structure representing a media time request to the clock component. * *AclientcomponentsendsthisstructuretotheClockComponentviaaSetConfig *onitsclientporttospecifyamediatimestamptheClockComponent *shouldemit.TheClockComponentshouldfulfilltherequestbysendinga *OMX_TIME_MEDIATIMETYPEwhenitsmediaclockmatchestherequested *timestamp. * *Theclientmayrequireamediatimerequestbefulfilledslightly *earlierthanthemediatimespecified.Inthiscasetheclientspecifies *anoffsetwhichisequaltothedifferencebetweenwalltimecorresponding *totherequestedmediatimeandthewalltimewhenitwillbe *fulfilled. * *AclientcomponentmayusestheserequestsandtheOMX_TIME_MEDIATIMETYPEto *timeeventsaccordingtotimestamps.IfaclientmustperformanoperationOat *atimeT(e.g.deliveravideoframeatitscorrespondingtimestamp),itmakesa *mediatimerequestatT(perhapsspecifyinganoffsettoensuretherequestfulfillment *isalittleearly).WhentheclockcomponentpassestheresultingOMX_TIME_MEDIATIMETYPE *structurebacktotheclientcomponent,theclientmayperformoperationO(perhapshaving *towaitaslightamountmoretimeitselfasspecifiedbythereturnvalues).
*/
typedefstruct OMX_TIME_CONFIG_MEDIATIMEREQUESTTYPE {
OMX_U32 nSize; /**< size of the structure in bytes */
OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
OMX_U32 nPortIndex; /**< port that this structure applies to */
OMX_PTR pClientPrivate; /**< Client private data to disabiguate this media time *fromothers(e.g.thenumberoftheframetodeliver). *Duplicatedinthemediatimestructurethatfulfills *thisrequest.Avalueofzeroisreservedfortimescale
* updates. */
OMX_TICKS nMediaTimestamp; /**< Media timestamp requested.*/
OMX_TICKS nOffset; /**< Amount of wall clock time by which this
* request should be fulfilled early */
} OMX_TIME_CONFIG_MEDIATIMEREQUESTTYPE;
/**< Structure sent from the clock component client either when fulfilling *amediatimerequestorwhenthetimescalehaschanged. * *IntheformercasetheClockComponentfillsthisstructureandtimesitsemission *toaclientcomponent(viatheclientport)accordingtothecorrespondingmedia *timerequestsentbytheclient.TheClockComponentshouldtimetheemissiontooccur *whentherequestedtimestampmatchestheClockComponent'smediatimebutalsothe *prescribedoffsetearly. * *UponscalechangestheclockcomponentclearsthenClientPrivatedata,sendsthecurrent *mediatimeandsetsthenScaletothenewscaleviatheclientport.Itemitsa *OMX_TIME_MEDIATIMETYPEtoallclientsindependentofanyrequests.Thisallowsclientsto *alterprocessingtoaccomodatescaling.Forinstanceavideocomponentmightskipinter-frames *inthecaseofextremefastforward.Likewiseanaudiocomponentmightaddorremovesamples *fromanaudioframetoscaleaudiodata. * *Itisexpectedthatsomeclockcomponentsmaynotbeabletofulfillrequests *atexactlytheprescribedtime.Thisisacceptablesolongastherequestis *fulfilledatleastasearlyasdescribedandnotlater.Thisstructureprovides *fieldstheclientmayusetowaitfortheremainingtime. * *TheclientmayuseeitherthenOffsetornWallTimeAtMediafieldstodeterminethe *walltimeuntilthenMediaTimestampactuallyoccurs.Inthelattercasethe *clientcangetamoreaccuratevalueforoffsetbygettingthecurrentwall *fromthecloccomponentandsubtractingitfromnWallTimeAtMedia.
*/
typedefstruct OMX_TIME_MEDIATIMETYPE {
OMX_U32 nSize; /**< size of the structure in bytes */
OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
OMX_U32 nClientPrivate; /**< Client private data to disabiguate this media time *fromothers.Copiedfromthemediatimerequest.
* A value of zero is reserved for time scale updates. */
OMX_TIME_UPDATETYPE eUpdateType; /**< Reason for the update */
OMX_TICKS nMediaTimestamp; /**< Media time requested. If no media time was
* requested then this is the current media time. */
OMX_TICKS nOffset; /**< Amount of wall clock time by which this
* request was actually fulfilled early */
OMX_TICKS nWallTimeAtMediaTime; /**< Wall time corresponding to nMediaTimeStamp. *Aclientmaycomparethisvaluetocurrent *mediatimeobtainedfromtheClockComponenttodetermine *thewalltimeuntilthemediatimestampisreally
* current. */
OMX_S32 xScale; /**< Current media time scale in Q16 format. */
OMX_TIME_CLOCKSTATE eState; /* Seeking Change. Added 7/12.*/ /**< State of the media time. */
} OMX_TIME_MEDIATIMETYPE;
/** Structure representing the current media time scale factor. Applicable only to clock *component,othercomponentsseescalechangesviaOMX_TIME_MEDIATIMETYPEbufferssentvia *theclockcomponentclientports.Uponrecievingthisconfigtheclockcomponentchanges *theratebywhichthemediatimeincreasesordecreaseseffectivelyimplementingtrickmodes.
*/ typedefstruct OMX_TIME_CONFIG_SCALETYPE {
OMX_U32 nSize; /**< size of the structure in bytes */
OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
OMX_S32 xScale; /**< This is a value in Q16 format which is used for
* scaling the media time */
} OMX_TIME_CONFIG_SCALETYPE;
/** Bits used to identify a clock port. Used in OMX_TIME_CONFIG_CLOCKSTATETYPE’s nWaitMask field */ #define OMX_CLOCKPORT0 0x00000001 #define OMX_CLOCKPORT1 0x00000002 #define OMX_CLOCKPORT2 0x00000004 #define OMX_CLOCKPORT3 0x00000008 #define OMX_CLOCKPORT4 0x00000010 #define OMX_CLOCKPORT5 0x00000020 #define OMX_CLOCKPORT6 0x00000040 #define OMX_CLOCKPORT7 0x00000080
/** Structure representing the current mode of the media clock. *ILClientusesthisconfigtochangeorquerythemodeofthe *mediaclockoftheclockcomponent.Applicableonlytoclock *component. * *OnaSetConfigifeStateisOMX_TIME_ClockStateRunningmediatime *startsimmediatelyattheprescribedstarttime.If *OMX_TIME_ClockStateWaitingForStartTimetheClockComponentignores *thegivennStartTimeandwaitsforallclientsspecifiedinthe *nWaitMasktosendstarttimes(via *OMX_IndexConfigTimeClientStartTime).TheClockComponentthenstarts
* the media clock using the earliest start time supplied. */ typedefstruct OMX_TIME_CONFIG_CLOCKSTATETYPE {
OMX_U32 nSize; /**< size of the structure in bytes */
OMX_VERSIONTYPE nVersion; /**< OMX specification version
* information */
OMX_TIME_CLOCKSTATE eState; /**< State of the media time. */
OMX_TICKS nStartTime; /**< Start time of the media time. */
OMX_TICKS nOffset; /**< Time to offset the media time by *(e.g.preroll).Mediatimewillbe *reportedtobenOffsetticksearlier.
*/
OMX_U32 nWaitMask; /**< Mask of OMX_CLOCKPORT values. */
} OMX_TIME_CONFIG_CLOCKSTATETYPE;
/** Structure representing the reference clock currently being used to *computemediatime.ILclientusesthisconfigtochangeorquerythe
* clock component's active reference clock */ typedefstruct OMX_TIME_CONFIG_ACTIVEREFCLOCKTYPE {
OMX_U32 nSize; /**< size of the structure in bytes */
OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
OMX_TIME_REFCLOCKTYPE eClock; /**< Reference clock used to compute media time */
} OMX_TIME_CONFIG_ACTIVEREFCLOCKTYPE;
/** Descriptor for setting specifics of power type.
* Note: this structure is listed for backwards compatibility. */ typedefstruct OMX_OTHER_CONFIG_POWERTYPE {
OMX_U32 nSize; /**< size of the structure in bytes */
OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
OMX_BOOL bEnablePM; /**< Flag to enable Power Management */
} OMX_OTHER_CONFIG_POWERTYPE;
/** Descriptor for setting specifics of stats type.
* Note: this structure is listed for backwards compatibility. */ typedefstruct OMX_OTHER_CONFIG_STATSTYPE {
OMX_U32 nSize; /**< size of the structure in bytes */
OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ /* what goes here */
} OMX_OTHER_CONFIG_STATSTYPE;
/** *ThePortDefinitionstructureisusedtodefinealloftheparameters *necessaryforthecompliantcomponenttosetupaninputoranoutputother *path.
*/ typedefstruct OMX_OTHER_PORTDEFINITIONTYPE {
OMX_OTHER_FORMATTYPE eFormat; /**< Type of data expected for this channel */
} OMX_OTHER_PORTDEFINITIONTYPE;
/** Port format parameter. This structure is used to enumerate *thevariousdatainput/outputformatsupportedbytheport.
*/ typedefstruct OMX_OTHER_PARAM_PORTFORMATTYPE {
OMX_U32 nSize; /**< size of the structure in bytes */
OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
OMX_U32 nPortIndex; /**< Indicates which port to set */
OMX_U32 nIndex; /**< Indicates the enumeration index for the format from 0x0 to N-1 */
OMX_OTHER_FORMATTYPE eFormat; /**< Type of data expected for this channel */
} OMX_OTHER_PARAM_PORTFORMATTYPE;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.