rtcp: handle size update correctly
authorWim Taymans <wim.taymans@collabora.co.uk>
Thu, 19 Jan 2012 14:19:34 +0000 (15:19 +0100)
committerWim Taymans <wim.taymans@collabora.co.uk>
Thu, 19 Jan 2012 14:20:01 +0000 (15:20 +0100)
Do explicit resize to set the size of a buffer instead of setting a value in
unmap.

gst-libs/gst/rtp/gstrtcpbuffer.c

index fb99c4a..c3b2ebb 100644 (file)
@@ -262,9 +262,8 @@ gst_rtcp_buffer_map (GstBuffer * buffer, GstMapFlags flags,
 
   /* allow for expansion, e.g. adding packets, if needed */
   if ((flags & GST_MAP_WRITE) != 0) {
-    /* unmap and adjust to max available, and remap */
-    gst_buffer_unmap (buffer, rtcp->data, rtcp->maxsize);
-    rtcp->data = gst_buffer_map (buffer, &rtcp->size, &rtcp->maxsize, flags);
+    /* adjust to max available */
+    rtcp->size = rtcp->maxsize;
   }
 
   return TRUE;
@@ -294,6 +293,7 @@ gst_rtcp_buffer_unmap (GstRTCPBuffer * rtcp)
     while (gst_rtcp_packet_move_to_next (&packet));
 
   /* shrink size */
+  gst_buffer_resize (rtcp->buffer, 0, packet.offset);
   res = gst_buffer_unmap (rtcp->buffer, rtcp->data, packet.offset);
   rtcp->buffer = NULL;