mvGetBoundary(3dm)
mvGetBoundary: mvGetMovieBoundary, mvGetTrackBoundary - get timing information about movie or track
As shipped in IRIX 6.5. First release of IRIX 6.5.
NAME mvGetBoundary: mvGetMovieBoundary, mvGetTrackBoundary - get timing information about movie or track SYNOPSIS #include <dmedia/moviefile.h> DMstatus mvGetMovieBoundary( MVid movie, MVtime time, MVtimescale timeScale, MVdirection Direction, MVboundtype BoundType, int numMedia, DMmedium *medium, MVtime *returnTime ); DMstatus mvGetTrackBoundary( MVid track, MVtime time, MVtimescale timeScale, MVdirection Direction, MVboundtype BoundType, MVtime *returnTime ); DESCRIPTION Each track is made up of frames, each of which can be typed. Current frame types supported are key frames (MV_FRAMETYPE_KEY) or delta frames (MV_FRAMETYPE_DELTA). Frames can be grouped into chunks and/or edit atoms. mvGetMovieBoundary and mvGetTrackBoundary allow the user to get at this information. Valid values for MVdirection are: MV_FORWARD and MV_BACKWARD. Valid values for MVboundtype are: MV_FRAME, MV_KEYFRAME, MV_TRACKDATA, MV_EDITATOM. mvGetMovieBoundary takes a time cursor, described in user's timeScale, a Direction for searching, and a boundtype that the user is looking for. Users also need to specify the media he/she is interested in, passed as an array in medium, with numMedium specifying the number of medium to look for in the array. The time for the concerned boundary is returned in returnTime. If the cursor time passed in to this function happens to be the boundtype described in BoundType, the time for the next/prev boundary will be returned. mvGetTrackBoundary takes a track, a time cursor, a time scale, a direction, and a boundtype and returns the time for the boundary being searched for. If no more valid boundaries can be found between the time passed in and the end of the track (tail of the track if direction is forward and head of the track if direction is backward), DM_FAILURE is returned and the error code will be set to MV_TIME_OUT_OF_RANGE. These functions return DM_SUCCESS if a valid time boundary could be found and returned. Otherwise, it returns DM_FAILURE, and the error may be retrieved by mvGetErrno(3dm). EXAMPLES /* * this piece of code describes how to find all the times for the * key frames in a track. */ #include <moviefile.h> void ListTrackKeyFrameTimes( MVid track ) { MVtimescale timeScale; MVtime lastKeyFrame = 0; MVtime cursor = 0; timeScale = mvGetTrackTimeScale( track ); mvGetTrackBoundary( track, mvGetTrackDuration( track, timeScale ), timeScale, MV_BACKWARD, MV_KEYFRAME, &lastKeyFrame ); while( cursor < lastKeyFrame ) { MVtime tmp; mvGetTrackBoundary( track, cursor, timeScale, MV_FORWARD, MV_KEYFRAME, &tmp ); fprintf( stderr, "key frame found at : %lld0, tmp ); cursor = tmp; } } SEE ALSO mvIntro(3dm), mvGetTimeScale(3dm), mvGetErrno(3dm).