opuspay: fix timestamps
authorWim Taymans <wim.taymans@collabora.co.uk>
Thu, 31 Jan 2013 11:30:49 +0000 (12:30 +0100)
committerTim-Philipp Müller <tim@centricular.com>
Wed, 17 Feb 2016 14:58:00 +0000 (14:58 +0000)
Copy timestamps to payloaded buffer.
Avoid input buffer memory leak.

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

gst/rtp/gstrtpopuspay.c

index acebc8d..69ad51e 100644 (file)
@@ -107,9 +107,18 @@ gst_rtp_opus_pay_handle_buffer (GstRTPBasePayload * basepayload,
     GstBuffer * buffer)
 {
   GstBuffer *outbuf;
+  GstClockTime pts, dts, duration;
+
+  pts = GST_BUFFER_PTS (buffer);
+  dts = GST_BUFFER_DTS (buffer);
+  duration = GST_BUFFER_DURATION (buffer);
 
   outbuf = gst_rtp_buffer_new_allocate (0, 0, 0);
-  outbuf = gst_buffer_append (outbuf, gst_buffer_ref (buffer));
+  outbuf = gst_buffer_append (outbuf, buffer);
+
+  GST_BUFFER_PTS (outbuf) = pts;
+  GST_BUFFER_DTS (outbuf) = dts;
+  GST_BUFFER_DURATION (outbuf) = duration;
 
   /* Push out */
   return gst_rtp_base_payload_push (basepayload, outbuf);