NAME
MP4CopySample - Make a copy of a specified sample
SYNTAX
#include <mp4.h>
MP4TrackId MP4CopySample(
MP4FileHandle srcFile,
MP4TrackId srcTrackId,
MP4SampleId srcSampleId,
MP4FileHandle dstFile = MP4_INVALID_FILE_HANDLE,
MP4TrackId dstTrackId = MP4_INVALID_TRACK_ID,
MP4Duration dstSampleDuration = MP4_INVALID_DURATION
)
ARGUMENTS
srcFile
Specifies the mp4 file of the source of the operation.
srcTrackId
Specifies the track of the source sample.
srcSampleId
Specifies the sample to be copied.
dstFile
Specifies the mp4 file of the new, copied sample. If the value
is MP4_INVALID_FILE_HANDLE, the new sample is created in the
same file as the source sample.
dstTrackId
Specifies the track of the new sample. If the value is
MP4_INVALID_TRACK_ID, the new sample is created in the same
track as the source sample.
dstSampleDuration
Specifies the duration in the track time scale of the new
sample. If the value is MP4_INVALID_DURATION, then the duration
of the source sample is used.
RETURN VALUES
Upon success, the sample id of the new sample. Upon an error,
MP4_INVALID_SAMPLE_ID.
DESCRIPTION
MP4CopySample creates a new sample based on an existing sample. Note
that another copy of the media sample data is created in the file using
this function. I.e. this call is equivalent to MP4ReadSample() followed
by MP4WriteSample().
Note that is the responsibility of the caller to ensure that the copied
media sample makes sense in the destination track. E.g. copying a video
sample to an audio track is unlikely to result in anything good
happening, even copying a sample from video track to another requires
that the tracks use the same encoding and that issues such as image
size are addressed.
SEE ALSO
MP4(3) MP4ReadSample(3) MP4WriteSample(3)