rtprtxreceive: Use offset when copying header
authorOlivier Crête <olivier.crete@collabora.com>
Sat, 29 Nov 2014 23:35:42 +0000 (18:35 -0500)
committerOlivier Crête <olivier.crete@collabora.com>
Sat, 29 Nov 2014 23:38:12 +0000 (18:38 -0500)
The header is not always at the start of the packet, so we need to compute
the offset first.

gst/rtpmanager/gstrtprtxreceive.c

index 4ae4e65..32933a1 100644 (file)
@@ -427,12 +427,14 @@ _gst_rtp_buffer_new_from_rtx (GstRTPBuffer * rtp, guint32 ssrc1,
   guint payload_len = 0;
 
   /* copy fixed header */
-  mem = gst_memory_copy (rtp->map[0].memory, 0, rtp->size[0]);
+  mem = gst_memory_copy (rtp->map[0].memory,
+      (guint8 *) rtp->data[0] - rtp->map[0].data, rtp->size[0]);
   gst_buffer_append_memory (new_buffer, mem);
 
   /* copy extension if any */
   if (rtp->size[1]) {
-    mem = gst_memory_copy (rtp->map[1].memory, 0, rtp->size[1]);
+    mem = gst_memory_copy (rtp->map[1].memory,
+        (guint8 *) rtp->data[1] - rtp->map[1].data, rtp->size[1]);
     gst_buffer_append_memory (new_buffer, mem);
   }