collectpads: Assume PTS is equal DTS if PTS is missing
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Thu, 3 Mar 2016 02:11:51 +0000 (21:11 -0500)
committerSebastian Dröge <sebastian@centricular.com>
Thu, 24 Mar 2016 12:29:47 +0000 (14:29 +0200)
This is the best guess we can make if such a buffer reached the collect
pad. This is uncommon, we do expect parsers to have tried and fixed that
if possible (or needed).

https://bugzilla.gnome.org/show_bug.cgi?id=762207

libs/gst/base/gstcollectpads.c

index dc18222..7358cb3 100644 (file)
@@ -515,6 +515,12 @@ gst_collect_pads_clip_running_time (GstCollectPads * pads,
 
     time = GST_BUFFER_PTS (buf);
 
+    /* If PTS is not set, the best guess we can make is to assume that both
+     * PTS and DTS are the same. If it was possible, parsers should have fixed
+     * it already as explained in https://bugzilla.gnome.org/show_bug.cgi?id=659489 */
+    if (!GST_CLOCK_TIME_IS_VALID (time))
+      time = GST_BUFFER_DTS (buf);
+
     if (GST_CLOCK_TIME_IS_VALID (time)) {
       time =
           gst_segment_to_running_time (&cdata->segment, GST_FORMAT_TIME, time);