MP4AddTrackEdit man page
MP4AddTrackEdit — Add an edit segment to a track
MP4Timestamp startTime = 0,
MP4Duration duration = 0,
bool dwell = false
Specifies the mp4 file to which the operation applies.
Specifies the track to which the operation applies.
Specifies the desired position in the edit list sequence for the new edit segment. If the value is MP4_INVALID_EDIT_ID, then the edit segment is added at the end of the existing edit list. Note editId's start with the value of 1, not 0.
Specifies the starting time of the edit segment in the track time scale.
Specifies the duration of the edit segment in the track time scale.
If false, the track media should be played at its normal rate. If true, the media should be paused for the duration of this edit segment. This is a mechanism by which one can delay the start of a media track.
Upon success, the edit id of the new edit segment. Upon an error, MP4_INVALID_EDIT_ID.
MP4AddTrackEdit adds an edit segment to the track edit list.
The track edit list is a feature that allows creation of an alternate timeline for the track, typically cutting out segments of the full track to form an shorten, cleaned up version. The edit segments that form the edit list are a sequence of track start times and durations, they do not alter the track media in any way. I.e. no data can be lost via edit list operations.
To read out the editted version of the track, use MP4ReadSampleFromEditTime() instead of MP4ReadSample().
To export the editted version of the track to a new track, potentially in a new mp4 file, see MP4CopyTrack().
Note with many media encodings such as MPEG-4, AAC, and MP3, care must be taken when choosing the edit segment start times. E.g. for video tracks a reference or key frame should be selected as the starting sample of any edit segment. For audio tracks, an audio sample start time should be used.
MP4(3) MP4DeleteTrackEdit(3) MP4ReadSampleFromEditTime(3) MP4CopyTrack(3)
MP4CopyTrack(3), MP4DeleteTrackEdit(3), MP4GetTrackNumberOfEdits(3).