mvMovieEdit(3dm) mvMovieEdit(3dm)
mvMovieEdit: mvInsertMovieGapAtTime, mvDeleteMovieAtTime,
mvCopyMovieAtTime - edit movie/tracks
#include <dmedia/moviefile.h>
DMstatus mvInsertMovieGapAtTime( MVid movie, MVtime time,
MVtime duration, MVtimescale timeScale,
DMboolean enabledTracksOnly );
DMstatus mvDeleteMovieAtTime( MVid movie, MVtime time,
MVtime duration, MVtimescale timeScale,
DMboolean enabledTracksOnly );
DMstatus mvCopyMovieAtTime( MVid fromMovie, MVtime fromTime,
MVtime fromDuration, MVtimescale fromScale,
MVid toMovie, MVtime toTime, MVtimescale toScale,
DMboolean byReference, DMboolean enabledTracksOnly );
These functions edit movies. All of them take the enabledTracksOnly flag
as one of the parameters. If enabledTracksOnly == DM_TRUE, only enabled
tracks will be affected by the edit. Otherwise, all tracks in the movie
will be affected. A track can be enabled/disabled by calling
mvSetTrackEnable(3dm), and a track's enable state can be checked by
calling mvGetTrackEnable(3dm).
Note that not all file formats support writing out movies with edit
lists. Currently, the only file format which supports writing out movies
with certain types of edits is the Quicktime file format. If unwritable
edits are made to a movie, mvWriteM_FAILURE, with an appropriate error in mvGetErrno(3dm).
mvInsertMovieGapAtTime inserts an empty segment of data into the movie,
at the time for a duration of duration. (Note that both of these are
measured in the same time scale, timeScale.) Track gaps may be
interpreted in different ways by tracks with different DM_MEDIUMs. For
example, DM_AUDIO tracks will consider a gap to be silence, while
DM_IMAGE tracks will consider a gap to be the absence of an image to be
displayed. Note that Gaps may not be supported in all file formats.
mvCopyMovieAtTime copies a segment from the source movie to the
destination movie. byReference is a flag which determines how data will
be copied, under certain conditions.
If the source movie fromMovie and destination movie toMovie are the same,
the byReference flag will be ignored, and the movie will re-use the
Page 1
mvMovieEdit(3dm) mvMovieEdit(3dm)
source data, thus avoiding unneeded copying of data in the movie.
If the source and destination movies are different, then the byReference
flag will determine whether data will be actually copied from the source
movie and appended to the destination movie (byReference == DM_FALSE), or
whether the destination movie will be marked as having an "external
reference" to the source movie (byReference == DM_TRUE). Note that movies
with external references will not be playable if any moviefile which they
reference is not available.
Files with external references may not be writable in certain file
formats, in which case mvWrite(3dm) or mvClose(3dm) will return
DM_FAILURE.
mvDeleteMovieAtTime deletes a segment of the movie specified by the
parameters time and duration. Both time and duration are measured in the
same user-specified timeScale. mvDeleteMovieAtTime does not actually
remove data from a file; it simply modifies the movie so that the deleted
data will not be played, so calling mvDeleteMovieAtTime will not cause a
movie file to shrink in size.
mvIntro(3dm), mvTrackEdit(3dm), mvGetErrno(3dm), mvSetTrackEnable(3dm),
mvWrite(3dm).
PPPPaaaaggggeeee 2222 [ Back ]
|