jitterbuffer: handle segments with non-0 start
authorWim Taymans <wim.taymans@collabora.co.uk>
Thu, 12 Sep 2013 13:01:36 +0000 (15:01 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Thu, 12 Sep 2013 13:04:30 +0000 (15:04 +0200)
We keep the DTS and PTS in running-time inside the jitterbuffer. Make sure to
transform it back to a buffer timestamp before pushing out the buffer.

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

gst/rtpmanager/gstrtpjitterbuffer.c

index 079ae0c..6326476 100644 (file)
@@ -2071,6 +2071,9 @@ pop_and_push_next (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum)
   dts = GST_BUFFER_DTS (outbuf);
   pts = GST_BUFFER_PTS (outbuf);
 
+  dts = gst_segment_to_position (&priv->segment, GST_FORMAT_TIME, dts);
+  pts = gst_segment_to_position (&priv->segment, GST_FORMAT_TIME, pts);
+
   /* apply timestamp with offset to buffer now */
   GST_BUFFER_DTS (outbuf) = apply_offset (jitterbuffer, dts);
   GST_BUFFER_PTS (outbuf) = apply_offset (jitterbuffer, pts);