From 774a32ff896221e1c35da8b254f2034eef4f5d4c Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Fri, 18 Dec 2015 05:17:15 +1100 Subject: [PATCH] qtmux: Don't write invalid edit list start time. Avoid writing a negative number as a large positive integer in an edit list when the first_ts is smaller than the first_dts - which can happen when the first packet received has a PTS but no DTS. https://bugzilla.gnome.org/show_bug.cgi?id=759615 --- gst/isomp4/gstqtmux.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gst/isomp4/gstqtmux.c b/gst/isomp4/gstqtmux.c index 6f1dd3f267..9ac7c77e81 100644 --- a/gst/isomp4/gstqtmux.c +++ b/gst/isomp4/gstqtmux.c @@ -2481,10 +2481,12 @@ gst_qt_mux_update_edit_lists (GstQTMux * qtmux) /* has shift */ if (has_gap || (qtpad->dts_adjustment > 0)) { - GstClockTime ctts; + GstClockTime ctts = 0; guint32 media_start; - ctts = qtpad->first_ts - qtpad->first_dts; + if (qtpad->first_ts > qtpad->first_dts) + ctts = qtpad->first_ts - qtpad->first_dts; + media_start = gst_util_uint64_scale_round (ctts, atom_trak_get_timescale (qtpad->trak), GST_SECOND); -- 2.34.1