We recalculate them, so any old information has to be forgotten.
Otherwise we write invalid edit lists when writing headers multiple
times.
https://bugzilla.gnome.org/show_bug.cgi?id=778330
*e = *entry;
}
+void
+atom_trak_edts_clear (AtomTRAK * trak)
+{
+ if (trak->edts) {
+ atom_edts_clear (trak->edts);
+ trak->edts = NULL;
+ }
+}
+
/*
* Update an entry in this trak edits list, creating it if needed.
* index is the index of the entry to update, or create if it's past the end.
gint64 pts_offset);
void atom_trak_set_elst_entry (AtomTRAK * trak, gint index, guint32 duration,
guint32 media_time, guint32 rate);
+void atom_trak_edts_clear (AtomTRAK * trak);
guint32 atom_trak_get_timescale (AtomTRAK *trak);
guint32 atom_trak_get_id (AtomTRAK * trak);
void atom_stbl_add_samples (AtomSTBL * stbl, guint32 nsamples,
GstCollectData *cdata = (GstCollectData *) walk->data;
GstQTPad *qtpad = (GstQTPad *) cdata;
+ atom_trak_edts_clear (qtpad->trak);
+
if (GST_CLOCK_TIME_IS_VALID (qtpad->first_ts)) {
guint32 lateness = 0;
guint32 duration = qtpad->trak->tkhd.duration;
/* need to add the empty time to the trak duration */
duration += lateness;
-
qtpad->trak->tkhd.duration = duration;
if (qtpad->tc_trak) {
qtpad->tc_trak->tkhd.duration = duration;